網易遊戲2011 10 15校園招聘會筆試題

2021-06-19 19:36:44 字數 3075 閱讀 6335

1、對於乙個記憶體位址是32位、記憶體頁是8kb的系統。0x0005f123這個位址的頁號與頁內偏移分別是多少。

頁面大小是8kb,那麼頁內偏移量是從0x0000(0)~ 0x1fff(2的13次方 - 1)。0x5f123/8k=2e,餘數是1123;則頁號是47頁,頁內偏移量應該是0x00001123。

2、如果x大於0並小於65536,用移位法計算x乘以255的值為:(x<<8)-x

x<<8-x是不對的,因為移位運算子的優先順序沒有減號的優先順序高,首先計算8-x為0,x左移0位還是8。

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

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

第乙個動態申請的空間裡面的值是隨機值,第二個進行了初始化,裡面的值為0

[cpp]view plain

copy

int*p1 = 

newint

[10];  

int*p2 = 

newint

[10]();  

5、計算機在記憶體中儲存資料時使用了大、小端模式,請分別寫出a=0x123456在不同情況下的首位元組是,大端模式:0x12           小端模式:0x56           x86結構的計算機使用小端模式。

一般來說,大部分使用者的作業系統(如windows, freebsd,linux)是小端模式的。少部分,如mac os,是大端模式 的。

6、在遊戲設計中,經常會根據不同的遊戲狀態呼叫不同的函式,我們可以通過函式指標來實現這一功能,請宣告乙個引數為int *,返回值為int的函式指標:

int (*fun)(int *)

7、下面程式執行後的結果為:to test something

[cpp]view plain

copy

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);  

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

(1)恰好第k次(1=(1-1/n)*(1-1/(n-1))*(1-1/(n-2))***(1/(n-k+1)) = 1/n

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

這個就是求期望值   由於每次開啟寶箱的概率都是1/n,則期望值為:   1*(1/n)+2*(1/n)+3*(1/n)+......+n*(1/n) = (n+1)/2

9、標頭檔案中ifndef / define / endif 是做什麼用的?

10、**裡有時可以看到extern 「c」,這語句是做什麼用的?

11、平均要取多少個(0,1)中的隨機數才能讓和超過1。 

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

abcdefgh

*                 aj

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

ejahfdgkc

bdfhajec

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

ccccccccc

請寫出推導的過程。

本題唯一解為:a=2、b=4、c=6、d=9、e=1、f=3、g=5、h=8、j=7、k=0

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

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

輸出51 2 3 9 10075

1 2 4 9 10085

1 2 4 7 100

15思路:這是乙個典型的母函式問題,一般的典型母函式如 g(x)=  (1+x+x^2+x^3+x^4+x^5+....)*(1+x^2+x^4+x^6+x^8+x^10+....)*(1+x^3+x^6+x^9+x^12....).....

這個題目中的每個紙幣只能夠使用0次或1次,在上面的那個一般的母函式的基礎上修改一下就行了,就很簡單了。。

具體**如下:

[cpp]view plain

copy

#include 

using

namespace

std;  

const

intlmax=10000;  

intc1[lmax+1],c2[lmax+1];  

intmain(

void

)    

n += 5;     //有可能無法表示的那個數比所有紙幣面額的總和還要大

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

for(i = 0; i 

//母函式的表示式中第乙個括號內的各項係數

c1[i] = 1;  

//第一層迴圈是一共有 n 個小括號,而剛才已經算過乙個了,所以是從2 到 n 

// i 就是代表的母函式中第幾個大括號中的表示式

for(i = 2; i <= m; i++)  

}  for(j = 0; j <= n; j++)    

// 重新整理一下資料,繼續下一次計算,就是下乙個括號裡面的每一項

}  for(i = 1; i <= n; i++)  

}  }  return

0;  

}  

網易遊戲2011 10 15校園招聘會筆試題

1 對於乙個記憶體位址是32位 記憶體頁是8kb的系統。0x0005f123這個位址的頁號與頁內偏移分別是多少。2 如果x大於0並小於65536,用移位法計算x乘以255的值為 x 8 x x 8 x是不對的,因為移位運算子的優先順序沒有減號的優先順序高,首先計算8 x為0,x左移0位還是8。3 乙...

網易遊戲2011 10 15校園招聘會筆試題

1 對於乙個記憶體位址是32位 記憶體頁是8kb的系統。0x0005f123這個位址的頁號與頁內偏移分別是多少。2 如果x大於0並小於65536,用移位法計算x乘以255的值為 x 8 x x 8 x是不對的,因為移位運算子的優先順序沒有減號的優先順序高,首先計算8 x為0,x左移0位還是8。3 乙...

網易遊戲2011 10 15校園招聘會筆試題

1 對於乙個記憶體位址是32位 記憶體頁是8kb的系統。0x0005f123這個位址的頁號與頁內偏移分別是多少。頁面大小是8kb,那麼頁內偏移量是從0x0000 0 0x1fff 2的13次方 1 0x5f123的頁號是0x2e 48 頁,頁內偏移量是0x1104。2 如果x大於0並小於65536,...