C 經典面試題

2021-05-05 01:28:48 字數 2655 閱讀 5802

本試題僅用於考查c++/c程式設計師的基本程式設計技能。內容限於c++/c常用語法,不涉及資料結構、演算法以及深奧的語法。考試成績能反映出考生的程式設計質量以及對c++/c的理解程度,但不能反映考生的智力和軟體開發能力。

筆試時間90分鐘。請考生認真答題,切勿輕視。

一、請填寫bool , float, 指標變數與「零值」比較的 if 語句。(10分)

提示:這裡「零值」可以是0, 0.0 , false或者「空指標」。例如 int 變數 n 與「零值」比較的 if 語句為:

if ( n == 0 )

if ( n != 0 )

以此類推。

二、以下為windows nt下的32位c++程式,請計算sizeof的值(10分)

三、簡答題(25分)

1、標頭檔案中的 ifndef/define/endif 幹什麼用?

防止標頭檔案被重複引用 (巨集保護作用)

2、#include 和 #include 「filename.h」 有什麼區別?

#include 編譯器從系統目錄中開始尋找filename.h,

#include 」filename.h」 編譯器從當前目錄開始尋找filename.h

尋找標頭檔案,若沒有找到再到系統目錄中查詢

3、const 有什麼用途?(請至少說明兩種)

4、在c++ 程式中呼叫被 c編譯器編譯後的函式,為什麼要加 extern 「c」宣告?

c++支援函式過載,c不支援函式過載,加入extern 「c」可以解決c++ 和 c的名字匹配問題

5、請簡述以下兩個for迴圈的優缺點

四、有關記憶體的思考題(20分)

五、編寫strcpy函式(10分)

已知strcpy函式的原型是

char *strcpy(char *strdest, const char *strsrc);

其中strdest是目的字串,strsrc是源字串。

(1)不呼叫c++/c的字串庫函式,請編寫函式 strcpy

char *strcpy(char *strdest, const char *strsrc)

*strdest = 『\0』;

return temp;

}(2)strcpy能把strsrc的內容複製到strdest,為什麼還要char * 型別的返回值?

可以實現以下語句:strcat(「xif」, strcopy(strdest, strsrc));

六、編寫類string的建構函式、析構函式和賦值函式(25分)

已知類string的原型為:

class string

;請編寫string的上述4個函式。

華為的筆試題

找錯voidtest1()

voidtest2()

a[9] = 『\0』;

strcpy(string,str1);

}voidtest3(char*str1)

}2.找錯

#definemax_srm256

dsnget_srm_no()

3.寫出程式執行結果

intsum(inta)

voidmain()}4.

intfunc(inta)

returnb;

}則func(1)=?//0

5:inta[3];

a[0]=0;a[1]=1;a[2]=2;

int*p,*q;

p=a;

q=&a[2]; //q = 0x0002

則a[q-p]=?

6.定義int**a[3][4],則變數占有的記憶體空間為:__4___

7.編寫乙個函式,要求輸入年月日時分秒,輸出該年月日時分秒的下一秒。如輸入2023年12月31日23時59分59秒,則輸出2023年1月1日0時0分0秒。

華為面試題

1 32 31 30 29 28 27 26 25 24 23

2 3352 51 50 49 22

3 3448 21

4 3547 20

5 3646 19

6 37 38 39 40 41 42 43 44 45 18

7 8 9 10 11 12 13 14 15 16 17

由外到裡的依次遞加。然後列印的。

#ifndef qlcheng

#define qlcheng

#include

#define width 10

#define hight 10

#define space width*hight

void main()

; int i=0, j=0;

int value=1;

int down=hight, up=-1, right=width, left=0;

bool drection = 1;//向下向右

while(value

else

{for(; i>up; i--)

a[i][j] = value++;

i++; //迴圈結束後的i=up,越界

j--; //後退一列,轉向left

for(; j>left; j--)

經典C面試題

1.找錯題 void test1 string只能容納9個字元,複製的時候會越界 2.找錯題 void test2 strcpy string,str1 由於在陣列str1內沒有 n 所以複製的長度不確定,導致string結束不確定。3 找錯題 void test3 char str1 strlen...

C經典面試題

1.gets 函式 問 請找出下面 裡的問題 1.include 2.int main void 3.答 上面 裡的問題在於函式gets 的使用,這個函式從stdin接收乙個字串而不檢查它所複製的快取的容積,這可能會導致快取溢位。這裡推薦使用標準函式fgets 代替。2.strcpy 函式 問 下面...

C經典筆試面試題

1 區域性變數能否和全域性變數重名?答 能,區域性會遮蔽全域性。要用全域性變數,需要使用 區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同乙個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義乙個同名的區域性變數...