注:憑記憶寫的,題型可能有變化。
1、
int a;
#define m(x,y) (x/y)
a = m(4+2, 3)
a=?
這是考察巨集定義的知識,巨集定義就是簡單的替換。
m(4+2, 3)的展開式為4+2/3。
所以a=4。
下面的這兩個例子可能有助於更好的理解:
#define m(x) x*x*(x+1)
int a=2,b=3;
m(a+b)的結果是26
m(a+b)的展開式是a+b*a+b*(a+b+1),結果是26
#define m(x) (x)*(x)*(x+1)
int a=2,b=3;
m(a+b)的結果是150
m(a+b)展開式是(a+b)*(a+b)*(a+b+1)結果是5*5*6=150
2、
int f(int x)
int i;
i = f(3)*f(2);
i = ?
k是乙個靜態變數,它的作用相當於全域性變數,但是它定義在了函式內部,外部是不可見的,不可見的全域性靜態變數。
所以執行完f(3)之後,k=1,再執行f(2)時,k的值還是1,執行完f(2)後,k=2.
3、在x86,32位環境下,下面程式的輸出結果是什麼?
double darrary[2] = , *p, *q;
p = &darrary[0];
q = p+1;
cout<
4、計算下列sizeof的值。
char str = "";
char *p = str;
int n = 10;
sizeof(str) = 25
sizeof(p) = 4
sizeof(n) = 4
void foo(char str[100])
void test(void)
輸出hello。
6、下面的程式輸出什麼?
void test(void)
}
free(str)後必須手動將str置為null,否則它並不是指向null。
free(str);釋放了指向的記憶體,str並不為null,而是乙個隨機數,俗稱野指標。
free函式只是把malloc申請到的記憶體塊中某個特殊的標誌變了一下而已,並沒有立刻就清空塊中的資料。是否釋放這塊記憶體是作業系統自己來判斷的,而且釋放後是否會對記憶體塊鏈進行調整,使記憶體碎片減少,都是用作業系統自己來進行的。
輸出world。
7、下面程式的輸出結果是什麼?
char *getmemory()
char *str = null;
str = getmemory();
printf("%s", str);
在函式內生命的這個字元陣列p是區域性變數,不能用來返回,所以輸出的是乙個亂碼。
8、說明下面的程式有什麼問題
char *_strcpy(const char *strsrc)
這個問題我說不好,有會的可以解釋一下。
9、一下兩個迴圈的優先
for(int i = 0; i < n; i++)
if(condition)
else
10、簡答windows平台動態鏈結庫的兩種呼叫方式,以及靜態庫和動態庫的區別。
11、已知鍊錶結點head,寫乙個函式把這個鍊錶逆序,結構如下
strcut node
;typedef struct node node;
12、在32位系統上,用程式將16進製制字串,如「fe1234」轉化為乙個長整型。
13、寫一函式isbigendian,判斷計算機的位元組儲存順序是公升序還是降序。
14、有28個人買水,3個空瓶可以換一瓶水,請問至少買多少瓶水?
15、教授從2到9的數字中選出兩個,把和告訴甲,把積告訴乙,他們輪流猜這個數,甲說:我猜不出,乙說:我也猜不出,甲說:我猜到了,乙說:我也猜到了。請問這兩個數是什麼?
-------------------------------分析過程-------------------------------------
第一步甲說:「我猜不到」證明和的組合不唯一:滿足條件的和:
[15] 6+9,7+8
[8] 2+6,3+5
[7] 2+5,3+4
[14] 5+9,6+8
[10] 2+8,3+7,4+6
[9] 2+7,3+6,4+5
[12] 3+9,4+8,5+7
[13] 4+9,5+8,6+7
[11] 2+9,3+8,4+7,5+6
第二步乙說:「我猜不到」證明積的組合不唯一,滿足條件的積:
[24] 3×8,4×6
[18] 2×9,3×6
[12] 2×6,3×4
第三步甲說:「我猜到了」有以下幾種情況:
2+6=8 2*6=12(和為8的情況,滿足第二步)
3+5=8 3*5=15(和為8的情況,不滿足第二步)
2+5=7 2*6=10(和為7的情況,不滿足第二步)
3+4=7 3*4=12(和為7的情況,滿足第二步)
2+8=10 2+8=16 (和為10的情況,不滿足第二步)
3+7=10 3+7=21(和為10的情況,不滿足第二步)
4+6=10 4+6=24(和為10的情況,滿足第二步)
2+7=9 2*7=14(和為9的情況,不滿足第二步)
3+6=9 3*6=18(和為9的情況,滿足第二步)
4+5=9 4*5=20(和為9的情況,不滿足第二步)
7+8=15 7*8=56(和為15的的情況,不滿足第二步)
6+9=15 6*9=54(和為15的情況,不滿足第二步)
和為其它值的情況與和為15的的情況類似.
第三步甲說:「我猜到了」證明組合可能是: 2-6 3-4 4-6 3-6
第四步乙說:「我猜到了」有以下幾種情況:
如果12,組合可能為2-6,3-4, 2-6,3-4組合的情況下第三步有可能, 所以是乙在第四步不可能猜到
如果18,組合可能為2-9,3-6, 2-9組合的情況下第三步不可能,3-6組合情況下第三步有可能, 所以乙在第四步能確定3-6是唯一的可能,即充分必要條件,所以說猜到了.
如果24,組合可能為3-8,4-6, 3-8組合的情況下第三步不可能,4-6組合情況下第三步有可能, 所以乙在第四步能確定4-6是唯一的可能,即充分必要條件,所以說猜到了.
第四步乙說:「我猜到了」證明組合可能是: 3-6(和為9,積為18) 4-6(和為10,積為24) 中的一種.
最終答案3-6或4-6
2014迅雷校園招聘筆試題答案
目前暫時只做了選擇題部分,不保證沒有錯誤,僅供參考,祝願大家和我今年都能找到滿意的工作哦 選擇題答案部分 單選題1.b2.a p為指標,32位位址的指標大小為4個位元組 3.d str為陣列,勿忘最後有乙個 0 4.d5.c a 使用者自定義了建構函式編譯器不會合成無參建構函式 b 乙個類可以有多個...
2014迅雷校園招聘筆試題答案
目前暫時只做了選擇題部分,不保證沒有錯誤,僅供參考,祝願大家和我今年都能找到滿意的工作哦 選擇題答案部分 單選題1.b2.a p為指標,32位位址的指標大小為4個位元組 3.d str為陣列,勿忘最後有乙個 0 4.d5.c a 使用者自定義了建構函式編譯器不會合成無參建構函式 b 乙個類可以有多個...
2014迅雷校園招聘筆試題答案
目前暫時只做了選擇題部分,不保證沒有錯誤,僅供參考,祝願大家和我今年都能找到滿意的工作哦 選擇題答案部分 單選題1.b2.a p為指標,32位位址的指標大小為4個位元組 3.d str為陣列,勿忘最後有乙個 0 4.d5.c a 使用者自定義了建構函式編譯器不會合成無參建構函式 b 乙個類可以有多個...