天地融2014校園招聘筆試題

2021-06-19 04:32:30 字數 3459 閱讀 1435

注:憑記憶寫的,題型可能有變化。

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 乙個類可以有多個...