本試題僅用於考查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 區域性變數能否和全域性變數重名?答 能,區域性會遮蔽全域性。要用全域性變數,需要使用 區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同乙個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義乙個同名的區域性變數...