騰訊實習生招聘筆試題目【附加鏈接】

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 個空)
    1. int insert_sort(int *p, int count)
    2. {
    3.         int i, j, tmp;
    4.         if(p == NULL || count < 0) return 0;    //
    5.         for(i=1; i<count; i++){
    6.                 tmp = p[i];
    7.                 j = i-1;
    8.                 while(j>=0 && p[j]>tmp){    // 此處判斷條件一個空
    9.                         p[j+1]= p[j];
    10.                         --j;
    11.                 }
    12.                 p[j+1] = tmp;   // 此處一個空
    13.         }
    14.         return 1;
    15. }
    16. int main()
    17. {
    18.         int i, a[10] ={3, 2, 1, 7, 8, 10, 4, 5, 6, 9};
    19.         insert_sort(a, 10);
    20.         for(i=0; i<10; i++)
    21.                 printf("%d ", a[i]);
    22.         printf("\n");
    23.         return 0;
    24. }
    複製代碼

    分析:me 感覺 me 的代碼還是比較工整的,u 腫麼看,...
  • 使用 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章