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,...