參考:
1、對於乙個記憶體位址是32位、記憶體頁是8kb的系統。0x0005f123這個位址的頁號與頁內偏移分別是多少。
[cpp]view plain
copy
print?
記憶體位址=記憶體頁號+頁內偏移。共32位。記憶體是8kb==》頁內偏移是13位,剩餘19位是頁號。
頁號=0x2f=27,頁內偏移=0x1123
記憶體位址=記憶體頁號+頁內偏移。共32位。記憶體是8kb==》頁內偏移是13位,剩餘19位是頁號。
頁號=0x2f=27,頁內偏移=0x1123
2、如果x大於0並小於65536,用移位法計算x乘以255的值為()
[cpp]view plain
copy
print?
答:(x<<8)-1,必須有括號,因為移位運算子的優先順序沒有減號的優先順序高
答:(x<<8)-1,必須有括號,因為移位運算子的優先順序沒有減號的優先順序高
3、乙個包含n個節點的四叉樹,每個節點都有四個指向孩子節點的指標,這4n個指標中有()
個空指標。
[cpp]view plain
copy
print?
答:3n+1。n個結點共有4n個指標,樹只有n-1條邊,所以只有n-1條邊是使用的。
答:3n+1。n個結點共有4n個指標,樹只有n-1條邊,所以只有n-1條邊是使用的。
4、以下兩個語句的區別是:
[cpp]view plain
copy
print?
int *p1 = new
int[10];
int *p2 = new
int[10]();
int *p1 = new int[10];
int *p2 = new int[10]();
[cpp]view plain
copy
print?
答:1:開闢了乙個int型的陣列,陣列大小為10,值為隨機,用p1指向這個陣列
2:開闢了乙個int型的陣列,陣列大小為10,值為0,用p2指向這個陣列
答:1:開闢了乙個int型的陣列,陣列大小為10,值為隨機,用p1指向這個陣列
2:開闢了乙個int型的陣列,陣列大小為10,值為0,用p2指向這個陣列
5、計算機在記憶體中儲存資料時使用了大、小端模式,請分別寫出a=0x123456在不同情況下的首位元組是,大端模式
()小端模式(),
x86結構的計算機使用()
模式。[cpp]view plain
copy
print?
答:0x12,0x56,小端
一般來說,大部分使用者的作業系統(如windows, freebsd,linux)是小端模式的。少部分,如mac os,是大端模式 的。
答:0x12,0x56,小端
一般來說,大部分使用者的作業系統(如windows, freebsd,linux)是小端模式的。少部分,如mac os,是大端模式 的。
6、在遊戲設計中,經常會根據不同的遊戲狀態呼叫不同的函式,我們可以通過函式指標來實現這一功能,請宣告乙個引數為int *,返回值為int的函式指標:
答:int (*func)(int *);
關於函式指標見函式指標總結
7、下面程式執行後的結果為:
[cpp]view plain
copy
print?
char str = "glad to test something";
char *p = str;
p++;
int *p1 = static_cast
(p);
p1++;
p = static_cast
(p1);
printf("result is %s\n",p);
char str = "glad to test something";
char *p = str;
p++;
int *p1 = static_cast(p);
p1++;
p = static_cast(p1);
printf("result is %s\n",p);
答:
[cpp]view plain
copy
print?
to test something
p=str[0] -----> p=str[1] -----> p=str[5]
to test something
p=str[0] -----> p=str[1] -----> p=str[5]
8、在一冒險遊戲裡,你見到乙個寶箱,身上有n把鑰匙,其中一把可以開啟寶箱,假如沒有任何提示,隨機嘗試,問:
(1)恰好第k次(1=
(2)平均需要嘗試多少次。
[cpp]view plain
copy
print?
答:(1)1/n。每一次成功的概論都是相等的
(2)(n+1)/2
答:(1)1/n。每一次成功的概論都是相等的
(2)(n+1)/2
9、標頭檔案中ifndef / define / endif 是做什麼用的?
[cpp]view plain
copy
print?
#ifndef //....如果未定義 什麼什麼
#define //....則定義 什麼什麼
#endif //結束語句
可以用來預防多重包含同一標頭檔案
#ifndef //....如果未定義 什麼什麼
#define //....則定義 什麼什麼
#endif //結束語句
可以用來預防多重包含同一標頭檔案
10、**裡有時可以看到extern 「c」,這語句是做什麼用的?
見4-16筆試
11、在下列乘法算式中,每個字母代表0~9的乙個數字,而且不同的字母代表不同的數字:
abcdefgh
* aj
------------------
ejahfdgkc
bdfhajec
------------------
ccccccccc
請寫出推導的過程。
[cpp]view plain
copy
print?
答:唯一解:a=2、b=4、c=6、d=9、e=1、f=3、g=5、h=8、j=7、k=0
a*a=b先推出a=2
答:唯一解:a=2、b=4、c=6、d=9、e=1、f=3、g=5、h=8、j=7、k=0
a*a=b先推出a=2
12、輸入格式:第一行輸入n(n<=100)表示流通的紙幣面額數量;第二行n個紙幣的具體表示的面額,從小到大排列,取值【1,10^6】。
輸出格式:輸出乙個整數,表示應該發行的紙幣面額,這個整數是已經發行的所有紙幣面額都無法表示的最小整數。(已經發行的每個紙幣面額最多只能使用一次) 輸入
輸出51 2 3 9 10075
1 2 4 9 10085
1 2 4 7 100
15 答:見
普通母函式
[cpp]view plain
copy
print?
#include
using
namespace std;
const
int lmax=10000;
int c1[lmax+1],c2[lmax+1];
int main(void)
n += 5; //有可能無法表示的那個數比所有紙幣面額的總和還要大
for(i = 0; i <= n; i++)
for(i = 0; i < 2*a[0]; i += a[0]) //母函式的表示式中第乙個括號內的各項係數
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,...