C和C++經典筆試題附答案解析

才智咖 人氣:1.12W

1. 用預處理指令#define宣告一個常數,用以表明1年中有多少秒(忽略閏年問題)。

C和C++經典筆試題附答案解析

答案:#define SECONDS_PER_YEAR(60*60*24*365)UL

應該意識到表示式將使一個16位機的整形數溢位,因此要用到長整型符號L,表示式中UL表示無符號長整型。

2. 寫一個“標準”巨集MIN,這個巨集輸入連個引數並返回較小的一個。

答案:#define MIN(A,B) ((A)<=(B)?(A):(B));懂得在巨集中小心的吧引數用括號擴起來

3. sizeof 的一些考察

char* ss1=”0123456789”; char ss2[]=”0123456789”; char ss3[100]=”0123456789”;

int ss4[100]; char q1[]=”abc”; char q2[]=”an”; char* q3=”an”;

答案:ss1是一個字元指標,指標的大小是一個確定的值,就是4,sizeof(ss1)=4;

ss2是一個字元陣列,這個陣列最初的大小未定,填充值是“0123456789”,一個字元佔一位,再加上隱含的“