十月下旬騰訊,網易遊戲,百度迅雷校園招聘筆試題集錦(第271-330題)

十月下旬騰訊,網易遊戲,百度最新校園招聘筆試題集錦(第271-330題)

引言

    此文十月百度,阿里巴巴,迅雷搜狗最新面試十一題已經整理了最新的面試題70道,本文依次整理騰訊,網易遊戲,百度等各大公司最新校園招聘的筆試題,後續將繼續整理十月下旬的筆/面試題。ios

騰訊2011.10.15校園招聘會筆試題

一、下面的排序算法中,初始數據集的排列順序對算法的性能無影響的是(B面試

A、插入排序                      B、堆排序                    C、冒泡排序                     D、快速排序算法

二、如下關於Cache的敘述中,正確的是(B編程

A、CPU中的Cache容量應大於CPU以外的Cache容量windows

B、Cache的設計思想是在合理成本下提升命中率設計模式

C、Cache的設計目標是容量儘量與主存容量相等數組

D、在容量肯定的狀況下,替換算法的時間複雜度是影響Cache命中率的關鍵因素服務器

三、數據存儲在磁盤上的排列方式會影響I/O服務的性能,一個圓環的磁道上有10個物理塊,10個數據記錄R1------R10存放在這個磁道上,記錄的安排順序以下表所示:網絡

物理塊數據結構

1

2

3

4

5

6

7

8

9

10

邏輯記錄

R1

R2

R3

R4

R5

R6

R7

R8

R9

R10

假設磁盤的旋轉速度爲20ms/周,磁盤當前處在R1的開頭處,若系統順序掃描後將數據放入單緩衝區內,處理數據的時間爲4ms(而後再讀取下個記錄),則處理這10個記錄的最長時間爲(C

A、180ms                           B、200ms                          C、204ms                             D、220ms

4、隨着IP網絡的發展,爲了節省可分配的註冊IP地址,有一些地址被拿出來用於私有IP地址,如下不屬於私有IP地址範圍的是(C)(私網IP地址:10.0.0.0- 10.255.255.255;172.16.0.0 -   172.31.255.255;192.168.0.0-192.168.255.255。故選C)

A、10.6.207.84                              B、172.23.30.28                      C、172.32.50.80               D、192.168.1.100

五、下列關於一個類的靜態成員的描述中,不正確的是(D

A、該類的對象共享其靜態成員變量的值                              B、靜態成員變量可被該類的全部方法訪問                 

C、該類的靜態方法只能訪問該類的靜態成員變量                 D、該類的靜態數據成員變量的值不可修改

六、已知一個線性表(38,25,74,63,52,48),假定採用散列函數h(key) = key%7計算散列地址,並散列存儲在散列表A【0....6】中,若採用線性探測方法解決衝突,則在該散列表上進行等機率成功查找的平均查找長度爲(C

A、1.5                  B、1.7                           C、2.0                       D、2.3

依次進行取模運算求出哈希地址:

A

0

1

2

3

4

5

6

記錄

63

48

 

38

25

74

52

查找次數

1

3

 

1

1

2

4

74應該放在下標爲4的位置,因爲25已經放在這個地方,因此74日後移動,放在了下標爲5的位置上了。

因爲是等機率查找,因此結果爲:1/6*(1+3+1+1+2+4)= 2.0

七、表達式「X=A+B*(C--D)/E」的後綴表示形式能夠爲(C

A、XAB+CDE/-*=                     B、XA+BC-DE/*=                      C、XABCD-*E/+=                         D、XABCDE+*/=

八、(B)設計模式將抽象部分與它的實現部分相分離。

A、Singleton(單例)                   B、 Bridge(橋接)                     

C、 Composite(組合)                                   D、 Facade(外觀)

九、下面程序的輸出結果爲多少?

  1. void Func(char str_arg[100])  
  2. {  
  3.     printf("%d\n",sizeof(str_arg));  
  4. }  
  5.   
  6. int main(void)  
  7. {  
  8.     char str[]="Hello";  
  9.     printf("%d\n",sizeof(str));  
  10.     printf("%d\n",strlen(str));  
  11.     char *p = str;  
  12.     printf("%d\n",sizeof(p));  
  13.     Func(str);  
  14. }  

輸出結果爲:6   5     4      4

對字符串進行sizeof操做的時候,會把字符串的結束符「\0」計算進去的,進行strlen操做求字符串的長度的時候,不計算\0的。

數組做爲函數參數傳遞的時候,已經退化爲指針了,Func函數的參數str_arg只是表示一個指針,那個100不起任何做用的。

十、下面程序的輸出結果爲多少?

  1. void Func(char str_arg[2])  
  2. {  
  3.     int m = sizeof(str_arg);     //指針的大小爲4  
  4.     int n = strlen(str_arg);     //對數組求長度,str_arg後面的那個2沒有任何意義,數組已經退化爲指針了  
  5.     printf("%d\n",m);  
  6.     printf("%d\n",n);  
  7. }  
  8. int main(void)  
  9. {  
  10.     char str[]="Hello";  
  11.     Func(str);  
  12. }  

輸出結果爲:      4         5

strlen只是對傳遞給Func函數的那個字符串求長度,跟str_arg中的那個2是沒有任何關係的,即便把2改成200也是不影響輸出結果的。。

十一、到商店裏買200的商品返還100優惠券(能夠在本商店代替現金)。請問實際上折扣是多少?

算法編程題

一、給定一個字符串,求出其最長的重複子串。
思路:使用後綴數組,對一個字符串生成相應的後綴數組後,而後再排序,排完序依次檢測相鄰的兩個字符串的開頭公共部分。
這樣的時間複雜度爲:

生成後綴數組 O(N)
排序 O(NlogN*N) 最後面的 N 是由於字符串比較也是 O(N)
依次檢測相鄰的兩個字符串 O(N * N)
總的時間複雜度是 O(N^2*logN), 

網易遊戲2011.10.15校園招聘會筆試題

一、對於一個內存地址是32位、內存頁是8KB的系統。0X0005F123這個地址的頁號與頁內偏移分別是多少。

二、若是X大於0並小於65536,用移位法計算X乘以255的值爲:-X+X<<8

X<<8-X是不對的,X<<8,已經把X的值改變了(訂正:X<<8是個臨時變量,不會改變X的值,就像a+1不會改變a同樣)。

三、一個包含n個節點的四叉樹,每一個節點都有四個指向孩子節點的指針,這4n個指針中有   3n+1   個空指針。

四、如下兩個語句的區別是:

  1. int *p1 = new int[10];  
  2. int *p2 = new int[10]();  

五、計算機在內存中存儲數據時使用了大、小端模式,請分別寫出A=0X123456在不一樣狀況下的首字節是,大端模式:0X12           小端模式:0X56           X86結構的計算機使用  小端    模式。

通常來講,大部分用戶的操做系統(如windows, FreeBsd,Linux)是小端模式的。少部分,如MAC OS,是大端模式 的。

六、在遊戲設計中,常常會根據不一樣的遊戲狀態調用不一樣的函數,咱們能夠經過函數指針來實現這一功能,請聲明一個參數爲int *,返回值爲int的函數指針:

int (*fun)(int *)

七、在一冒險遊戲裏,你見到一個寶箱,身上有N把鑰匙,其中一把能夠打開寶箱,假如沒有任何提示,隨機嘗試,問:

(1)剛好第K次(1=<K<=N)打開寶箱的機率是多少。

(2)平均須要嘗試多少次。

百度2011.10.16校園招聘會筆試題

 1、算法設計
一、設rand(s,t)返回[s,t]之間的隨機小數,利用該函數在一個半徑爲R的圓內找隨機n個點,並給出時間複雜度分析。

二、爲分析用戶行爲,系統常需存儲用戶的一些query,但因query很是多,故系統不能全存,設系統天天只存m個query,現設計一個算法,對用戶請求的query進行隨機選擇m個,請給一個方案,使得每一個query被抽中的機率相等,並分析之,注意:不到最後一刻,並不知用戶的總請求量。

三、C++ STL中vector的相關問題:
    (1)、調用push_back時,其內部的內存分配是如何進行的?
    (2)、調用clear時,內部是如何具體實現的?若想將其內存釋放,該如何操做?

2、系統設計
正經常使用戶端每分鐘最多發一個請求至服務端,服務端需作一個異常客戶端行爲的過濾系統,設服務器在某一刻收到客戶端A的一個請求,則1分鐘內的客戶端任何其它請求都須要被過濾,現知每一客戶端都有一個IPv6地址可做爲其ID,客戶端個數太多,以致於沒法所有放到單臺服務器的內存hash表中,現需簡單設計一個系統,使用支持高效的過濾,可以使用多臺機器,但要求使用的機器越少越好,請將關鍵的設計和思想用圖表和代碼表現出來。

3、求一個全排列函數:
如p([1,2,3])輸出:
[123]、[132]、[213]、[231]、[321]、[323]
 求一個組合函數
如p([1,2,3])輸出:
[1]、[2]、[3]、[1,2]、[2,3]、[1,3]、[1,2,3]
這兩問能夠用僞代碼。
 

迅雷2011.10.21筆試題

一、下面的程序能夠從1....n中隨機輸出m個不重複的數。請填空

knuth(int n, int m)

{

         srand((unsigned int)time(0));

       for (int i=0; i<n; i++)

          {

                 if (            )

                  {

                                cout<<i<<endl;

                                                         ;

                   }

          }

}

分別爲:rand()%(n-i)<m  和 m--;

二、如下prim函數的功能是分解質因數。請填空

void prim(int m, int n)

{

    if (m>n)

    {

        while (            ) n++;

                                       ;

       prim(m,n);

       cout<<n<<endl;

    }

}

分別爲:m%n  和 m/=n

三、下面程序的功能是輸出數組的全排列。請填空

void perm(int list[], int k, int m)

{

    if (            )

    {

        copy(list,list+m,ostream_iterator<int>(cout," "));

        cout<<endl;

        return;

    }

    for (int i=k; i<=m; i++)

    {

        swap(&list[k],&list[i]);

                                         ;

        swap(&list[k],&list[i]);

    }

}

分別爲:k==m 和 perm(list,k+1,m)

2、主觀題:

一、(40分)用戶啓動迅雷時,服務器會以uid,login_time,logout_time的形式記錄用戶的在線時間;用戶在使用迅雷下載時,服務器會以taskid,start_time,finish_time的形式記錄任務的開始時間和結束時間。有效下載時間是指用戶在開始時間和結束時間之間的在線時間,因爲用戶可能在下載的時候退出迅雷,所以有效下載時間並不是finish_time 和 start_time之差。假設登陸記錄保存在login.txt中,每一行表明用戶的上下線記錄;下載記錄保存在task.txt中,每一行表明一個任務記錄,記錄的字段之間以空格分開。計算每一個用戶的有效下載時間和總在線時間的比例。注意:請儘可能使用STL的數據結構和算法
二、(60分)在8X8的棋盤上分佈着n個騎士,他們想約在某一個格中聚會。騎士天天能夠像國際象棋中的馬那樣移動一次,能夠從中間像8個方向移動(固然不能走出棋盤),請計算n個騎士的最先聚會地點和要走多少天。要求儘早聚會,且n我的走的總步數最少,先到聚會地點的騎士能夠再也不移動等待其餘的騎士。
 從鍵盤輸入n(0<n<=64),而後一次輸入n個騎士的初始位置xi,yi(0<=xi,yi<=7)。屏幕輸出以空格分隔的三個數,分別爲聚會點(x,y)以及走的天數。


盛大遊戲2011.10.22校園招聘會筆試題

一、下列代碼的輸出爲:

  1. #include "iostream"  
  2. #include "vector"  
  3. using namespace std;  
  4.   
  5. int main(void)  
  6. {  
  7.     vector<int>array;  
  8.     array.push_back(100);  
  9.     array.push_back(300);  
  10.     array.push_back(300);  
  11.     array.push_back(500);  
  12.     vector<int>::iterator itor;  
  13.     for(itor=array.begin();itor!=array.end();itor++)  
  14.     {  
  15.         if(*itor==300)  
  16.         {  
  17.             itor = array.erase(itor);  
  18.         }  
  19.     }  
  20.     for(itor=array.begin();itor!=array.end();itor++)  
  21.     {  
  22.         cout<<*itor<<" ";  
  23.     }  
  24.     return 0;  
  25. }  

A、100   300   300   500      B、100    300     500       C、100    500      D、程序錯誤

vector在erase以後,指向下一個元素的位置,其實進行erase操做時將後面全部元素都向前移動,迭代器位置沒有移動。itor=array.erase(itor)  erase返回下一個元素的地址,至關於給itor一個新值。

二、下列代碼的輸出爲:

  1. class CParent  
  2. {  
  3. public:  
  4.     virtual void Intro()  
  5.     {  
  6.         printf("I'm a Parent, ");  
  7.         Hobby();  
  8.     }  
  9.     virtual void Hobby()  
  10.     {  
  11.         printf("I like football!");  
  12.     }  
  13. };  
  14. class CChild:public CParent  
  15. {  
  16. public:  
  17.     virtual void Intro()  
  18.     {  
  19.         printf("I'm a Child, ");  
  20.         Hobby();  
  21.     }  
  22.     virtual void Hobby()  
  23.     {  
  24.         printf("I like basketball!\n");  
  25.     }  
  26. };  
  27. int main(void)  
  28. {  
  29.     CChild *pChild = new CChild();  
  30.     CParent *pParent = (CParent*)pChild;  
  31.     pParent->Intro();  
  32.     return 0;  
  33. }  

A、I'm a Child,I like football!                            B、I'm a Child,I like basketball!  

C、I'm a Parent,I like football!                         D、I'm a Parent,I like basketball! 

三、在win32平臺下,如下哪一種方式沒法實現進程同步?

A、Critical Section      B、Event      C、Mutex         D、Semaphore

四、如下哪句的說法是正確的
A、在頁式存儲管理中,用戶應將本身的程序劃分爲若干個相等的頁
B、全部的進程都掛起時,系統將陷入死鎖
C、執行系統調用能夠被中斷
D、進程優先數是進程調度的重要依據,必須根據進程運行狀況動態改變

五、如下描述正確的是
A、虛函數是能夠內聯的,能夠減小函數調用的開銷提升效率
B、類裏面能夠同時存在函數名和參數都同樣的虛函數和靜態函數
C、父類的析構函數是非虛的,可是子類的析構函數是虛的,delete子類對象指針會調用父類的析構函數
D、以上都不對

簡答題:快速排序的思想是遞歸的,可是它的平均效率倒是衆多排序算法中最快的,爲何?請結合本例說明你對遞歸程序的理解。
算法題:用你熟悉的編程語言,設計以下功能的函數:輸入一個字符串,輸出該字符串中全部字母的全排列。程序請適當添加註釋。
C++函數原型: void Print(const char *str)
輸入樣例: abc
輸出結果: abc、acb、bca、bac、cab、cba

(以上部分整理自此君博客: http://blog.csdn.net/Hackbuteer1。十分感謝。有何不妥之處,還望海涵海涵。)
 

後續整理

  1. 12個工廠分佈在一條東西向高速公路的兩側,工廠距離公路最西端的距離分別是0、四、五、十、十二、1八、2七、30、3一、3八、3九、47.在這12個工廠中選取3個原料供應廠,使得剩餘工廠到最近的原料供應廠距離之和最短,問應該選哪三個廠 ? 
  2. hash衝突時候的解決方法?
     1)、開放地址法
     2)、再哈希法
     3)、鏈地址法
     4)、創建一個公共溢出區
  3. int main()
    {
      if()
      {   
        printf("Hello ");
      }
      else
      {
        printf("World !!!");
      }
      return 0;
    }
    在if裏面請寫入語句 使得打印出  hello  world。
  4. 今天10.19西山居筆試題:
    分別寫一個宏和函數來獲取元素個數 如count(a) 會獲得a數組元素個數 。
  5. 平均要取多少個(0,1)中的隨機數才能讓和超過1。(答案: e 次,  其中e是天然對數的底數)
  6. 今天支付寶10.20筆試題:漢諾塔一共爲 2*N,2個同樣大小,有編號順序 每次只能移動一個 大的不能疊在小得上面 移動完以後,相同大小的編號必須和原來同樣 問最小要移動多少次? 如 A1 A2  B1 B2 C1 C2 ...... 這樣疊,A<B<C....   B不能放A上面,C不能放B A上面,移動到另一個柱子後,還必須是 A1 A2  B1 B2 C1 C2 ....
  7. socket編程的問題
    TCP鏈接創建後,調用send 5次,每次發100字節,問recv最少要幾回,最多要幾回?
  8. 迅雷筆試題:
    下面的程序能夠從1....n中隨機輸出m個不重複的數。請填空
    knuth(int n, int m) 
    {
        srand((unsigned int)time(0));
        for (int i=0; i<n; i++)
            if (            )
            {
               cout<<i<<endl;
                (                 );
            }
    }
  9. 四個線程t1,t2,t3,t4,向4個文件中寫入數據,t1只能寫入1,t2只能寫入2,t3只能寫入3,t4只能寫入4,對4個文件A,B,C,D寫入以下內容
    A:123412341234.....
    B:234123412341....
    C:341234123412....
    D:412341234123....
    怎麼實現同步可讓線程並行工做?
  10. 好比一個數組[1,2,3,4,6,8,9,4,8,11,18,19,100]
    前半部分是是一個遞增數組,後面一個仍是遞增數組,但整個數組不是遞增數組,那麼怎麼最快的找出其中一個數?
  11. 今日10.21迅雷筆試題:  一、一棵二叉樹節點的定義(和平時咱們定義的同樣的) 它給出了一棵二叉樹的根節點 說如今懷疑這棵二叉樹有問題 其中可能存在某些節點不僅有一個父親節點 現要你編寫一個函數判斷給定的二叉樹是否存在這樣的節點  存在則打印出其父親節點返回true 不然返回false
    打印節點形式:
    [當前節點][父親節點1][父親節點的父親節點][。。。]
    [當前節點][父親節點2][父親節點的父親節點][。。。]
      二、有一億個整數,請找出最大的1000個,要求時間越短越好,空間佔用越少越好
  12. 在頻繁使用小內存時,一般會先申請一塊大的內存,每次使用小內存時都從大內存裏取,最後大內存使用完後一次性釋放,用算法實現。
  13. 今天亞馬遜A卷校招筆試題:
    輸入一個字符串,如何求最大重複出現的字符串呢?好比輸入ttabcftrgabcd,輸出結果爲abc,canffcancd,輸出結果爲can。
  14. 今天10.22盛大:刪除模式串中出現的字符,如「welcome to asted」,模式串爲「aeiou」那麼獲得的字符串爲「wlcm t std",要求性能最優。
  15. 數組中的數分爲兩組,讓給出一個算法,使得兩個組的和的差的絕對值最小 
    數組中的數的取值範圍是0<x<100,元素個數也是大於0, 小於100 
    好比a[]={2,4,5,6,7},得出的兩組數{2,4,6}和{5,7},abs(sum(a1)-sum(a2))=0;
    好比{2,5,6,10},abs(sum(2,10)-sum(5,6))=1,因此得出的兩組數分別爲{2,10}和{5,6}。
  16. 百度北京研發一道系統設計題,如何快速訪問ipv6地址呢?ipv6地址如何存放?
  17. 百度2012校招北京站筆試題系統設計:正經常使用戶端每分鐘最多發一個請求至服務端,服務端需作一個異常客戶端行爲的過濾系統,設服務器在某一刻收到客戶端A的一個請求,則1分鐘內的客戶端任何其它請求都須要被過濾,現知每一客戶端都有一個IPv6地址可做爲其ID,客戶端個數太多,以致於沒法所有放到單臺服務器的內存hash表中,現需簡單設計一個系統,使用支持高效的過濾,可以使用多臺機器,但要求使用的機器越少越好,請將關鍵的設計和思想用圖表和代碼表現出來。 
  18. #include <iostream>
    using namespace std;
    class A
    {
    public:
    A(){cout<<"A"<<endl;}
    ~A(){cout<<"~A"<<endl;}
    };
    class B
    {
    public:
    B(A &a):_a(a)
    {
    cout<<"B"<<endl;
    }
    ~B(){cout<<"~B"<<endl;}
    private:
    A _a;
    };
    int main()
    {
    A a; 
    B b(a); 
    return 0;
    //  構造次序和析構次序是對稱的,這種題解答都是有技巧的.
    //  拷貝構造就不說了,構造過程是:
    //  A A B ,那麼析構必然是對稱的:B A A。
    }
....
    ok,以上全部任何參考答案如有問題,歡迎不吝指正。謝謝。往後,繼續整理十月下旬的各大IT公司的筆/面試題,持續更新,直到十月月底。祝全部諸君找到本身合適而滿意的offer,工做。July、2011.10.17。
相關文章
相關標籤/搜索