2013-4-13騰訊實習生招聘筆試題目
轉http://www.itmian4.com/forum.php?mod=viewthread&tid=2392
題目不完整,歡迎大家補充。。。。。
先將就看下題目,圍觀一下,有些選項真的記不住了,有些慢慢補充,還有分析,me 表示有些鴨梨大。還是原來的思路,me 認爲的正確答案標註爲藍色,me 選的答案,可能是錯的,標註爲紅色。(題目處於更新中,所以,一段時間後可以刷新一下,O__O"…。)
- 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){f();} 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 們的分就考不高了(%>_<%)。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 (a+4)不能表示,表示的是 a[4] 的地址。(選錯誤的!) C 能表示是因爲取了首地址作爲一個 int* 然後 +1,就是偏移一個元素,所以不選。B 腫麼說呢,me 一直以爲 &a[0] 是一個普普通通的地址,+1 就是 +1個字節,實際上是 +1 個元素!D 也能表示?將 a 的首地址轉換爲一個 char* 指針,這個時候 +1 是偏移一個 char,也就是一個字節,實際上應該偏移 sizeof(int) 個字節才能到達 a[1],所以 D 可以表示(不選)。不多說了。(如果是二維數組是不是會更懵呢,O__O"…)
- 問下面的數據都存放在哪些存儲區?
- int main()
- {
- char *p = "hello,world";
- return 0;
- }
A. ... B. ... C. 棧和常量區 D. 棧和堆
分析:"hello,world" 是常量,趕腳應該就是 C 吧,應該大家感覺都一樣。這裏不涉及什麼堆的事。
- 假設在一個 32 位 little endian 的機器上運行下面的程序,結果是多少?
- #include <stdio.h>
- int main()
- {
- long long a = 1, b = 2, c = 3;
- printf("%d %d %d\n", a, b, c);
- return 0;
- }
A. ... B. ... C. ... D. ...
分析:貌似問題沒有想的那麼簡單。如果說運行結果,很簡單,有人是 1 0 2;有人是 1 2 3。涉及到 little/big endian 和參數入棧的問題,me 表示現在有點無能爲力,O__O"…。時過境遷有木有!如果說有標準答案的話,應該選擇 1 0 2。(me 的童鞋和 me 在 vc++2012 上的結果都是 1 0 2,然而 me 的 g++4.8.0 竟然是 1 2 3。)現在就要說說 me “想當然”的結果。有人建議從彙編的角度來分析,me 不喜歡,me 認爲一個實現的語言,可以透過表象是認識“本質”,me 想當然的時候,都會通過程序來驗證“想當然”的正確,即使可能不是這樣,也不會錯的離譜。
洗澡的時候,me 在想,入棧是怎麼樣的?c 的 printf 又是如何處理的?以前已經見到過下面一些說法:c 的函數調用時從右到左求值,雖然不是絕對;printf 不檢查第一個參數以後的參數類型,因爲 c 語言是“弱檢查”的語言,程序員認爲第二個參數應該是 int,他就傳個 int,他認爲是 double,就傳個 double,雖然格式符未必是 %d 和 %f。現在問題是,如果傳一個 long long (8 個字節)進去,然後當做一個 int (4 個字節),處理怎麼樣呢?看看一個程序的結果吧:
- #include <stdio.h>
- int main()
- {
- long long a = 0x1234567887654321;
- printf("%x\n", a); // 87654322
- printf("%x %x\n", a); // 87654321 12345678
- return 0;
- }
明眼一看,這是神馬情況?!傳進去 8 個字節 (long long) 的數據,可以當成兩個 4 字節(unsigned int) 的數用!而且第一個 uint 是 8 個字節的低 4 個字節,後一個 uint 是高 4 個字節!其實 me 已經猜測了好幾點:
- printf 的參數傳遞是從後往前傳遞,也就是 printf("%d %d %d", a, b, c); 是先傳 c ,再傳 b,其次 a,最後是格式化串 "%d %d %d",這樣有神馬好處呢?!因爲後面的參數是不確定的丫,如果先傳格式化串,後面的參數不知道什麼時候結束丫,有木有?!!如果從後向前傳,最後一個傳進去的就是格式化串。然後可以倒着看參數。
- 參數如果不檢查類型的話,那就是原模原樣傳進去的,而不是截斷傳。若檢查,它也沒法判斷確定類型丫!
- 關於 char 和 short,貌似類型要轉換成 int,這不是 me 猜的,是以前一個地方看到的。(float 可能要轉換成 double,這都意味着長度增加了有木有!)
還有一個問題是,字節順序的問題,本來不打算在這裏說的,因爲 me 本來在第 21 題說了,不過換到這裏說吧。介紹過之後,然後再來一個 demo,本題的結果就豁然開朗了。神馬是字節順序?一個 int 的變量 a,比如佔 4 個字節,也就是 sizeof(int) == 4,me 們使用 &(取地址) 的時候取的是低地址呢,還是高地址呢?比如 int a = 0x12345678; 如果 &a 然後當做一個字節地址,比如 uchar* 看的話,輸出 12 呢,還是 78 呢?下面來個程序瞧瞧:
- #include<windows.h>
- #include <stdio.h>
- int main()
- {
- int a = 0x12345678;
- char pch = *(char*)&a;
- printf("%x\n", pch); // 78
- a = htonl(a);
- pch = *(char*)&a;
- printf("%x\n", pch); // 12
- return 0;
- }
上面第一個結果輸入,就是上面問的問題,也就是輸出低字節,maybe u 會問一定是 78 嗎,可不可能是 12 ?可能!輸出 78 的就叫做 little endian 字節順序,輸出 12 的就叫做 big endian 順序。這樣不好記,me 以前的記法:“低位低存,高位高存,就是 little endian;地位高存,高位低存,就是 big endian”。比如 0x12345678 低字節是 78 放在內存中的低地址上,12 放在高地址上就是 little endian;相反的就是 big endian。可以將內存看成是從左到右的地址增長的一條直線,下面有個圖示:
int a = 0x12345678;---------------------------------->78 56 34 12 (little endian)12 34 56 78 (big endian)然後說,網絡中在不同的計算機中傳數據的時候,比如傳一個 IPv4 的一個地址,32 位,192.168.1.111,話說,192 是放在一個低地址上呢,還是一個高地址上呢?總要統一吧,不然 me 是 little 傳到一個 big 的電腦上,看到的 ip 可能就是 me 想表達的。好吧,標準的網絡字節順序,是並不流行的 big endian !而 ntohl 就是將一個 32 位的主機整數轉換成網絡自己順序的整數!如果轉換前後數據是一樣的,說明電腦就是 big endian;不一樣,說明就是 little endian !好吧,u 們應該看到了,me 的是 little endian !
現在可以解答本題了,看下下面的結果,應該就都明白了:
- #include <stdio.h>
- int main()
- {
- long long a = 1, b = 2, c = 3;
- printf("%d %d %d %d %d %d %d\n", a, b, c); // 1 0 2 0 3 0
- return 0;
- }
這裏是給還不明白的人說的:printf 傳進去 3 個 8字節的數據,如果表示應該是:0x 000000 00000001 + 00000000 0000002 + 00000000 00000003,u 認爲這就是內存中的順序碼?內存中的數據佈局如下:
-------------------------------------------------------------------------------------------->01 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00上圖中的,3 個 long long 數據,如果當成 6 個 int,結果不正是:1 0 2 0 3 0 嗎?!
以上均是個人的猜測分析,有多少把握?實際一個編譯器的實現是不是這樣呢?至少 vc++ 是不是呢?用程序去驗證自己的想法吧?!或是自己看彙編(me 表示沒有看的想法)。還有就是,在 gcc 上,這樣的思路是不對的,gcc 實現可能不是這樣的!
深入猜測:上面有個隱含的東西,不清楚有木有注意到!從運行結果是 1 0 2 0 3 0 而不是 0 1 0 2 0 3 ,這能反映神馬?已經是 little endian,這是明確的了,看看上面的圖,如果果真是上面的圖,是不是意味着,如果按參數的順序來看,在棧中的位置是從低到高排列的呢?如果說後面的參數先入棧,是不是意味着,變量的分配棧的擴展方向是從高地址向低地址方向發展呢?如果一個函數中定義了兩個連續的 int a,b; a 、 b 的地址關係,或是說大小是不是也是從高到低呢?看看程序吧:
- #include <stdio.h>
- void test(int a, int b, int c);
- int main()
- {
- int x, y, z;
- printf("x:%p y:%p z:%p\n", &x, &y, &z);
- test(1,2,3);
- return 0;
- }
- void test(int a, int b, int c)
- {
- static int i = 0;
- int x, y, z;
- printf("a:%p b:%p c:%p x:%p y:%p z:%p\n", &a, &b, &c, &x, &y, &z);
- ++i;
- i < 3 ? test(i,i+1,i+2) : 0;
- }
運行結果:
vs 2012:x:002BFBE8 y:002BFBDC z:002BFBD0a:002BFAF4 b:002BFAF8 c:002BFAFC x:002BFAE0 y:002BFAD4 z:002BFAC8a:002BF9EC b:002BF9F0 c:002BF9F4 x:002BF9D8 y:002BF9CC z:002BF9C0a:002BF8E4 b:002BF8E8 c:002BF8EC x:002BF8D0 y:002BF8C4 z:002BF8B8mingw-w64 gcc 4.8.0:x:000000000022FE5C y:000000000022FE58 z:000000000022FE54a:000000000022FE30 b:000000000022FE38 c:000000000022FE40 x:000000000022FE1C y:000000000022FE18 z:000000000022FE14a:000000000022FDD0 b:000000000022FDD8 c:000000000022FDE0 x:000000000022FDBC y:000000000022FDB8 z:000000000022FDB4a:000000000022FD70 b:000000000022FD78 c:000000000022FD80 x:000000000022FD5C y:000000000022FD58 z:000000000022FD54結果着實有點令人震驚!vs 上的地址是 32 位,而 gcc 的地址卻是 64 位!這只是其一。其二,普通 int 變量 x、y、z 在 vs 中竟然間隔 12 個字節,而 gcc 只間隔 4 個字節,雖然 sizeof(int) == 4 這大家都一樣!(在 gcc 上竟然提示 sizeof(int) 是 ull,unsigned long long 類型,vs 上沒有任何提醒,甚至將 char ch=sizeof(int); 都沒有任何提醒。sizeof(sizeof(int)) 是多少呢?vs 是 4,gcc 是 8 !) 有點跑題了!第一行 a、b 和 c 的地址方向都是遞增,和上面的猜測是相符的,如果按參數的逆序入棧的話,棧的發展方向是向低地址方向發展,而且 test 中的 x、y、z 都是如此!還有就是,第二行的 a、b 和 c 的地址都比前一行的低,也就是遞歸調用的棧幀發展也是在向低地址方向!現在問題是,如果是數組會怎麼樣呢?這個程序就不寫勒,數組的首地址是 a,a+1 便是下一個元素的地址,也就是,數組中的元素是按地址增高的方向發展的!那這是不是有點奇怪呢?只能說以前的想法有問題呀!局按局部變量聲明的順序在棧中存儲的話,是按地址向低的方向發展的,但是同一個數組的內部,a[0]、a[1]、a[2] 是按高地址方向發展的!
問題貌似還有一些,比如 vs 的相鄰 int 是 12,爲嘛呢?(數組中的 int 相差 sizeof(int) == 4這是已經確認過的。) 不過這不影響,參數傳遞的 int 還是 4 個!然而就是 gcc 中的 int 傳遞竟然是按 8 個字節進行的傳遞?是不是意味着,所有的整型傳遞都要擴展到 long long 呢?%d 實際是按 long long 輸出呢?這樣的話,gcc 的結果 1 2 3 貌似也順利成章了丫!然後剩餘另外一個比較大的問題,對齊問題!不過這裏並不涉及。基本問題就以一個圖+一個神奇的程序結束吧:
int x, a[10], y, z;--------------------------------------->z y a[0] a[1] a[2] ... a[9] x (這隻反映地址高低順序,並不一定就是連續放置的,中間可能存在空隙;不過數組元素是連續的)- #include <stdio.h>
- int main()
- {
- int i, a[11;
- for(i=0; i<12; i++)
- a[i = 0;
- return 0;
- }
上面這個簡單的程序, 可以在 gcc 中運行一下,看看會發生神馬神奇的效果!
- 下面哪些函數調用必須進入內核才能完成?
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 不需要中斷控制,... - 死鎖發生的必要條件?
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) 低,而快速排序平均複雜度就是 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 和 f g 就寫反了,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 吧?shit !子網數?不是主機數丫,有沒有,O__O"…,主機數貌似還得 -2 丫,有沒有,當時 me 還奇怪來着,O__O"… x.x.x.x 貌似是個 C 類地址?這樣的話,應該是 2 ^ 3 = 8 !
- TCP協議棧的定時器有哪些?
A. ... B. ... C. ... D. ...
分析:不會的路過。
- 高內聚和低耦合,下面哪個耦合度最高?
A. 通過函數參數傳遞...
B. 一個函數修改另外一個函數中的數據;
C. 通過全局變量...
D. 通過指示器...分析:哭丫,me 錯了。這是軟件工程上的玩意,me 一直認爲 C 比 B 耦合度高呢,O__O"…。耦合度由低到高:A --> D --> C -->B
- 關於訪問
http://ilovers-drupal.stor.sinaapp.com/public/field/image/000631.jpg ,下面哪些是後臺絕對不會執行的?
A. 本地查查 DNS,是否有 sinaapp.com 的 ip;
B. 通過 cn. 查找 ip;
C. 通過 com. 查找 ip;
D. 瀏覽器發送 http get 請求;
D. 服務器回送 xxx.jpg;分析:蒙也是蒙 B,O__O"…
- 在一個 big endian 的 32 位的計算機上,b 的結果是?(該處 1 個空)
- unsigned int a = 0x1234;
- char b
= *((char*)&a);
分析:想不到又一個 big/little endian 的問題。這個結果,me 還比較確定寫,就是 0。uint 是 4 個字節,0x1234 的完整表示是 0x 00 00 12 34,因爲是 big endian,所以,所以 &(取地址) 的話,如果當字節看的話,取到了最左邊 00 字節的地址,一定要轉換成 char 看的話,值就是 0 。
- 一個有 800 個結點的完全二叉樹,問有多少個葉子結點?(該處 1 個空)
分析:雖然 me 忘記是神馬公式計算了,只感覺和 n/2 有關係。然後隨便畫了幾個試試,就可以找出來 (n+1)/2 的規律來,所以 答案是: 400。
- 下面 get 是求一個二維數組元素的函數,請補全。( 1 個空)
- #include <stdio.h>
- #include <stdlib.h>
- #define M 3
- #define N 4
- int get(int *a, int i, int j)
- {
- int v;
- if(a == NULL || i<0 || i>=M || j<0 || j>=N) exit(1); //
- v = *(a+i*N+j); // 這裏有一個空
- return v;
- }
- int main()
- {
- int a[M[N = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
- int v;
- v = get(a, 2, 1);
- printf("a[2][1] == %d\n", v );
- return 0;
- }
分析:差點寫錯了,還好迷途知返了,O__O"…
- 補全插入排序:(有 2 個空)
- int insert_sort(int *p, int count)
- {
- int i, j, tmp;
- if(p == NULL || count < 0) return 0; //
- for(i=1; i<count; i++){
- tmp = p[i];
- j = i-1;
- while(j>=0 && p[j]>tmp){ // 此處判斷條件一個空
- p[j+1]= p[j];
- --j;
- }
- p[j+1] = tmp; // 此處一個空
- }
- return 1;
- }
- int main()
- {
- int i, a[10] ={3, 2, 1, 7, 8, 10, 4, 5, 6, 9};
- insert_sort(a, 10);
- for(i=0; i<10; i++)
- printf("%d ", a[i]);
- printf("\n");
- return 0;
- }
分析:me 感覺 me 的代碼還是比較工整的,u 腫麼看,... - int insert_sort(int *p, int count)
- 使用 FIFO 管理頁面請求,如果分配的物理塊 M = 3 或是 4,請求順序如下:4 3 2 1 4 3 5 4 5 3 1 2 5 1 5 1 5 5 4,問兩種情況下頁面失效的次數各是多少?( 2 個空)
分析:7 和 7,這是 me 的結果(貌似錯了?O__O"…)。現在是確信,自己錯了,答案是 10 和 11,me 沒有加上來就沒有命中的 3/4 次,雖然沒有頁面替換,但是確實屬於頁面失效的情況。每空 4 分,兩個 8 分,me 還有神馬好說的呢,O__O"…(大哭ing...)。
下面給出計算結果,如果沒有命中,就打一個 x,然後寫上頁面的值,~~~~(>_<)~~~~
M = 3 (從上往下,從左往右看):10 次x4 x1 x5 x4x3 x4 x1x2 x3 x2M = 4 (從上往下,從左往右看):11 次x4 x5 x1x3 x4 x5x2 x3 x4x1 x2 - 一個網絡圖,問 Q 路由器到某個網絡要進行跳轉的下一個 ip 是多少?(有 1 個空)
分析:me 一下子就猶豫了,貌似趕腳也不是正確答案,就不多說了。
- 軟件可靠性評估的兩個指標是神馬?( 2 個空)
分析:不會的路過。
- 選做 1:qq 用戶有 30 億,每日的登陸、登出的記錄條數有 100 億之多,讓設計程序統計每天登陸人數;設計程序剔除因爲掉線而重複登陸的情況;設計程序求出在線人數最高的時刻。
- 選做 2:問 qq 的加好友功能可能存在的安全漏洞有哪些?
另外騰訊相關的部分筆試面試題目如下:
2013年4月13日騰訊廣州實習招聘筆試總結(web開發方向)
http://www.itmian4.com/forum.php?mod=viewthread&tid=2409&fromuid=1599
2013年廣州騰訊產品實習筆試
http://www.itmian4.com/forum.php?mod=viewthread&tid=2403&fromuid=1599
2013-4-13騰訊實習生招聘筆試題目
http://www.itmian4.com/forum.php?mod=viewthread&tid=2392&fromuid=1599
騰訊2012實習生筆試題2+答案解析
http://www.itmian4.com/forum.php?mod=viewthread&tid=2401&fromuid=1599
騰訊2012實習生筆試題(答案解析版)
http://www.itmian4.com/forum.php?mod=viewthread&tid=2397&fromuid=1599
2013年3-19騰訊電商筆試題
http://www.itmian4.com/forum.php?mod=viewthread&tid=2388&fromuid=1599
2012年百度、騰訊、微軟、奇虎360、人人、去哪網找工作經歷總結
http://www.itmian4.com/forum.php?mod=viewthread&tid=2175&fromuid=1599
給大家發一道挺有意思的思考題——2013騰訊編程馬拉松的一道題
http://www.itmian4.com/forum.php?mod=viewthread&tid=2333&fromuid=1599
騰訊2012年實習生筆試加分題
http://www.itmian4.com/forum.php?mod=viewthread&tid=2236&fromuid=1599
一道騰訊面試題
http://www.itmian4.com/forum.php?mod=viewthread&tid=1494&fromuid=1599
騰訊實習生web前端JS開發工程師面試經歷
http://www.itmian4.com/forum.php?mod=viewthread&tid=2171&fromuid=1599
騰訊2012.9.23校園招聘會筆試題
http://www.itmian4.com/forum.php?mod=viewthread&tid=8&fromuid=1599
騰訊面試--QQ技術類經歷
http://www.itmian4.com/forum.php?mod=viewthread&tid=1741&fromuid=1599
騰訊後臺開發面試
http://www.itmian4.com/forum.php?mod=viewthread&tid=1690&fromuid=1599
2012暑假我的騰訊實習筆試面試經歷
http://www.itmian4.com/forum.php?mod=viewthread&tid=1393&fromuid=1599
2013騰訊的筆試與面試(廣州)
http://www.itmian4.com/forum.php?mod=viewthread&tid=1169&fromuid=1599
騰訊2012實習生筆試題
http://www.itmian4.com/forum.php?mod=viewthread&tid=262&fromuid=1599
2013 騰訊一面面試題
http://www.itmian4.com/forum.php?mod=viewthread&tid=9&fromuid=1599