網易招聘筆試題+答案解析

網易遊戲2011筆試:

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

頁號:0x2F。也就是地址0x0005F123除以8K的商.

頁內偏移: 地址0x0005F123除以8K的餘數0x1123

2、如果X大於0並小於65536,用移位法計算X乘以255的值爲?

    X*255=X*(256-1)=(X<<8)-X 這裏的括號不能少,因爲移位運算符的優先級較低

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

解:n個節點的樹有n-1條邊,而4n個指針有總共會產生4n條邊,那麼就有4n-(n-1)個空指針。

4、以下兩個語句的區別是:

  1. int *p1 = new int[10]; 

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

    p1指向10個整型空間的首地址,每個整型空間裏的值未初始化(爲垃圾值),p2指向10個整型空間的首地址,每個整型空間裏的值初始化爲0。

5、

計算機在內存中存儲數據時使用了大、小端模式,請分別寫出A=0X123456在不同情況下的首字節是,大端模式:0x12 小端模式0x56     X86結構的計算機使用小端模式

大端模式:0x12,小端模式:0x56,X86採用的是小端模式。大端模式(又稱大尾模式)是“低對高,高對低”,即低地址存儲高字節,高地址存儲低字節。小端模式是“低對低,高對高”。

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

int  (*p) (int *);

7、下面程序運行後的結果爲:

   

char str[] = "glad to test something";     char *p = str; 
    p++; 
    int *p1 = static_cast<int *>(p); 
    p1++; 
    p = static_cast<char *>(p1); 
    printf("result is %s\n",p);

static_cast <new_type> (expression)

輸出:to test something

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

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

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

wKiom1OW1RfTEkwcAAAj4V8CsS8626.gif

    

9、頭文件中ifndef / define / endif 是做什麼用的?

    宏定義。

    預編譯時防止頭文件被重複包含

10、

代碼裏有時可以看到extern “C”,這語句是做什麼用的?

表示用C風格的編譯器來編譯函數。

11、在下列乘法算式中,每個字母代表0~9的一個數字,而且不同的字母代表不同的數字:

 ABCDEFGH

*           AJ

------------------

 EJAHFDGKC

+BDFHAJEC

------------------

 CCCCCCCCC

請寫出推導的過程。

參考:http://www.cnblogs.com/jerry19880126/archive/2012/08/07/2626982.html

12、輸入格式:第一行輸入N(N<=100)表示流通的紙幣面額數量;第二行N個紙幣的具體表示的面額,從小到大排列,取值【1,10^6】。

輸出格式:輸出一個整數,表示應該發行的紙幣面額,這個整數是已經發行的所有紙幣面額都無法表示的最小整數。(已經發行的每個紙幣面額最多隻能使用一次)

wKiom1OWus7y2cJLAAASzGpcv88680.gif

參考:http://www.cnblogs.com/jerry19880126/archive/2012/08/07/2626982.html

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