2019騰訊實習生招聘筆試題目

2021-03-04 09:45:16 字數 5059 閱讀 2863

32 位機上根據下面的**,問哪些說法是正確的?

signed char a = 0xe0;

unsigned int b = a;

unsigned char c = a;

a. a>0 && c>0 為真 b. a == c 為真 c. b 的十六進製制表示是:0xffffffe0 d. 上面都不對

分析:坑爹丫,有木有!10 個人 9 個這個恐怕都不敢確定!

(敢肯定的要麼是高手,要麼就是錯的!) b me 認為是錯的,乙個 uchar 和乙個 schar 比較,真的就是乙個位元組在比較嗎?c me 認為是對的,將乙個 schar 賦值給乙個 uint,要不要符號擴充套件呢?

是絕對會還是可能會呢?細節到底是神馬?o__o"…a 貌似比較確定,肯定是錯的,肯定?

揭露真相:a 確實是錯的,b 也是錯的,c 是對的,所以 d 也是錯的。理由?

a 錯是因為,a 是負數,c 是正數,即使跟 0 比較要轉換到 int(後面暫不區分轉換和型別提公升,總之就是型別變了),也是一負一正,所以 a 錯。b 呢?是說一正一負不會相等,難道是因為這嗎?

難道不是嗎?首先說 a 和 c 的二進位制表示一模一樣,都是 0xe0,那麼比較就不相等?!是的,比較的時候全部轉換為 int,所以呢,a 還是作為乙個負數存在,c 作為乙個正數存在,於是就不相等了,所以 b 錯。

c 腫麼就對了?a 是乙個 schar,賦值給 uint 的 b,前若干個位元組不是補 0 嗎?首先 schar 轉換為 int,然後 int 轉換成 uint,所以最初是符號擴充套件,然後乙個 int 賦值給了 uint,c correct!

me 曾經要寫一篇關於c的型別以及指標的 blog,不過最後沒有完成,不過還是可以參考一下的。

下面哪些選項能編譯通過?

int i;

char a[10;

string f();

string g(string &str);

a. if(!!i) b. g(f()); c. a=a+1; d. g("abc");

分析:再次坑爹有木有!(其實 me 比較確信這道題,是坑別人的爹,o__o"…)a 絕對是正確的,c 絕對是錯的,d 基本肯定是錯的,那 b 呢?

要麼 error ,要嚒 warning!如果是 warning 但是沒有 error ,這算神馬情況呢?b 確實不應該選,至少語義上不該選!

f() 返回乙個臨時量,然後傳給 g 函式,而 g 的引數是非 const 引用,是不能引用臨時量的!為嘛,如果 g 中修改了傳進來的 string,那麼會是怎麼一回事呢?修改了乙個臨時量的值?

那這意義何在呢?但是如果將 g 的原型修改為 string g(const string&); 就是可以的,為麼可以?訪問(唯讀)臨時量就是正確的?

那必須的,比如 u 可能想知道 a+b 的結果是多少,然後輸出!a+b 的結果就是乙個臨時量。如果說修改 a+b 的結果,這是神馬個邏輯?!

真相:c 錯是以為 a 是乙個位址常量,不可能再被賦值。d 為嘛錯呢?

"abc" 的型別可是 const char* 呢,是個常量指標呢!(可以用來初始化 string。)

int a[10]; 問下面哪些不可以表示 a[1] 的位址?

a. a+sizeof(int) b. &a[0]+1 c. (int*)&a+1 d. (int*)((char*)&a+sizeof(int))

分析:奇葩丫!(其實並不奇葩!

)騰訊的題目有時候出的的確有水平丫,雖然出的太有水平了分就考不高了。me 想哭丫,想來想去還是在 a 和 b 中選錯了,%>_<%,當時還特意提醒自己來著的,o__o"…c++ 中的 sort 如何用來排序 a 陣列呢?sort(a, a+n); 或是 sort(a, a+sizeof(a)/sizeof(a[0])); 當時懵了,實際上 a+1,就是 a[1] 的位址呢!

a 的型別是 int[10],a+1 和乙個 int* 型別的 +1 效果一樣,都表示偏移 1 個元素,所以 a 不能表示。(選錯誤的!) c 能表示是因為取了首位址作為乙個 int* 然後 +1,就是偏移乙個元素,所以不選。

b 腫麼說呢,me 一直一位&a[0] 是乙個普普通通的位址,+1 就是 +1個位元組,實際上是 +1 個元素!d 也能表示?將 a 的首位址轉換為乙個 char* 指標,這個時候 +1 是偏移乙個 char,也就是乙個位元組,實際上應該偏移 sizeof(int) 個位元組才能到達 a[1],所以 d 可以表示(不選)。

不多說了。(如果是二維陣列是不是會更懵呢,o__o"…)

問下面的資料都存放在哪些儲存區?

int main()

a. ... b. ... c. 棧和常量區 d. 棧和堆

分析:"hello,world" 是常量,趕腳應該就是 c 吧,應該大家感覺都一樣。這裡不涉及什麼堆的事。

假設在乙個 32 位 little endian 的機器上執行下面的程式,結果是多少?

#include

int main()

a. ... b. ... c. ... d. ...

分析:貌似問題沒有想的那麼簡單。如果說執行結果,很簡單,有人是 1 0 2;有人是 1 2 3。

涉及到 little/big endian 和引數入棧的問題,me 表示現在有點無能為力,o__o"…

下面哪些函式呼叫必須進入核心才能完成?

a. fopen b. exit c. memcpy d. strlen

分析:有些無能為力。a 是要開啟檔案的,貌似設計很多核心操作丫;exit 是退出程序,結束程序,應該也要深入核心。

memcpy ,me 一直猶豫使用者區的資料拷貝要不要通過核心。strlen me 感覺關係不大。

記憶體管理中的 lru 方法是用來管理神馬的?

a. 虛擬記憶體的分配 b. 虛擬記憶體的釋放 c. 物理記憶體的分配 d. 物理記憶體的釋放

分析:貌似是用來關係物理塊的,後面的填空題正好有說,o__o"…

關於dma 的說法,哪些是錯誤的?

a. dma,direct memory acess 直接儲存器訪問,使得不同的速度的硬體裝置可以直接通訊,不通過 cpu 干預;

b. dma 訪問的時候需要從 cpu 那裡奪得匯流排控制權,然後...

c. dma 速度快;

d. dma 不需要中斷控制,cpu 管理不要它;

死鎖發生的必要條件?

a. 互斥條件 b. 請求和保持 c. 不可剝奪 d. 迴圈等待

分析:abcd 就是死鎖的四個必要條件,作業系統書上貌似說的很明確。

有兩個執行緒,最初 n=0,乙個執行緒執行 n++; n++; 另乙個執行 n+=2; 問,最後可能的 n 值?

a. 1 b. 2 c. 3 d. 4

分析:d 順序執行以下,就可以。b 的話,讓後面乙個執行到+2,但不要寫結果,然後前乙個執行完,然後寫結果,為 2。

c 3 的話,也好分析。a 不可能!腫麼可能呢?

腫麼可能結果只為 1 呢?兩個執行緒都會 +2,+1 何從談起?先 +1,然後讓後面的加法錯了,然後結果寫進去?

前乙個 ++n 都沒執行的話,後乙個又腫麼會執行呢?總之不可能是 1 !不可能!

o__o"…(堅決不相信它可以。)

下面哪些說法正確?

a. 陣列和鍊錶都可以隨機訪問

b. 陣列的插入和刪除可以 o(1)

c. 雜湊表麼法範圍檢查

d. ...

分析:總之 abd 給人的感覺是顯而易見的錯丫,有木有,所以排除法還是能用的!至於 hash 結構,確實也不可以範圍檢查,因為 key 對映為 value,完全將根據的 hash 函式,而這個函式一般不滿足原來的單調性,實際上就應該滿足!

因為 hash 函式的設計是要 value 的對映隨機、均勻!

基於比較的排序的時間複雜度下限是多少?

a. o(n) b. o(n^2) c. o(nlogn) d. ...

分析:貌似是資料結構上面的乙個結論,基於比較的排序的時間複雜度不能比 o(nlogn) 地。

下面圖的拓撲排序可能是?

a...

分析:對於知道拓撲排序的,應該很容易作答(me 有時候在懷疑自己理解的是否正確?!)。

求 n 個數中的最大值和最小值,最少的比較次數是?

a. 4n/3 b. 2n-2 c. n-1 d. 3n/2

分析:雖然 me 不知道很高深的演算法,但是 me 想丫,如果是 2 1 3 4 5 6 這樣的序列,u 認為最少是多少次呢?me 感覺是 n-1 。

但是,題目也許是另外乙個意思,也就是對於普通的序列,求最大值和最小值,能將比較次數降到多少?(me 貌似見到過一些方法,但是忘了,o__o"…)

一棵二叉樹的先序遍歷是 f b a c d e g h,中序遍歷是 a b d c e f g h,問後序遍歷是神馬?

a. ... b. ... c. ... d. ...

分析:構建二叉樹,然後看看後序遍歷是神馬?a d e c b h g f,o__o"…,突然感覺一不小心 g f 和 fg 就寫反了,me 應該沒有吧?!

網絡卡、交換機、路由器和 udp 分別工作網路的哪些層?

a. ...

b. ...

c. ...

d. ....

分析:值根據 udp 在傳輸層,me 就選出答案了:物理層、資料鏈路層、網路層和傳輸層。

子網掩碼 25..255.255.224 可以將網路 x.x.x.x 分成多少個子網?

a. ... b. ... c. 8 d. 32

分析:224 = 128+64+32 = 1110 0000 b,me 一看,後面 5 個 0 ,就是 2^5 = 32 吧?

tcp協議棧的定時器有哪些?

a. ... b. ... c. ... d. ...

分析:不會的路過。

高內聚和低耦合,下面哪個耦合度最高?

a. 通過函式引數傳遞...

b. 乙個函式修改另外乙個函式中的資料;

c. 通過全域性變數...

d. 通過指示器...

分析:一看全域性變數,就是它無疑了。o__o"…

關於訪問,下面哪些是後台絕對不會執行的?

a. 本地查查 dns,是否有 的 ip;

b. 通過 **. 查詢 ip;

c. 通過 ***. 查詢 ip;

d. 瀏覽器傳送 http get 請求;

d. 伺服器回送 ***.jpg;

2023年騰訊實習生招聘武漢站一面試題

智慧型裝置的猜想 2013年騰訊實習生招聘武漢站一面試題第六題 隨著2012年6月google glass正式面世,google glass掀起了智慧型裝置領域的以此革命,他可以辦到的事情包括錄製 傳送簡訊。翻譯文字 指示方向等。針對google glass i watch的出現,未來人們從頭到腳都...

2019浦發銀行實習生招聘簡章

浦發銀行實習生 一 任職資格 1 全日制統招本科以上學歷17屆18屆畢業生,985 211院校者優先。2 男女不限 3 形象好,氣質佳 4 熱愛金融行業 5 善於並樂於與人溝通 6 具有良好的自我調節能力 7 一周請至少保證四天以上實習時間 含週六周天 二 崗位職責 負責為客戶提供基礎業務諮詢 負責...

2019文思創新實習生招聘計畫

公司概況 文思創新成立於1995年,是第一家在紐約 交易所上市的中國軟體服務外包企業,從2007年起至今,一直蟬聯中國面向歐美服務外包提供商第一名。文思創新總部在北京,在中國上海 南京 深圳 杭州 大連 廣州 成都 武漢 西安 天津 香港,日本東京,馬來西亞,美國聖地牙哥 西雅圖 舊金山和英國倫敦設...