正文 第27章 預處理命令2(2 / 2)

習題九

1.以下敘述中錯誤的是。

A.C語言程序中的#include和#define均不是C語句

B.在C語言中,預處理命令都以“#”開頭

C.每個C語言程序必須在開頭包含預處理命令#include

D.一行中不能有多條預處理命令

2.有以下程序:

#defineP3

voidF(intx)

{return(P*x*x);}

voidmain()

{printf("%d\n",F(3+5));}

程序運行後的輸出結果是。

A.192B.29C.25D.編譯出錯

3.有以下的宏定義:

#defineSQR(x)x*x

則表達式a=16,a/=SQR(2+1)/SQR(2+1)執行後的值是。

A.16B.2C.9D.1

4.程序中,頭文件type1.h的內容是:

#defineN5

#defineM1N+3

源程序如下:

#include"type1.h"

#defineM2N+2

main()

{inti;

i=M1+M2;

printf("%d\n",i);

程序執行後的結果是。

A.10B.20C.25D.30

5.以下程序執行後的結果是。

#include

#defineF(x,y)(x)*(y)

main()

{inta=3,b=4;

printf("%d\n",F(a++,b++));

A.12B.15C.16D.20

6.以下程序執行後的結果是。

#defineM(x,y,z)x*y+z

main()

{inta=1,b=2,c=3;

printf("%d\n",M(a+b,b+c,c+a));

A.19B.17C.15D.12

7.下列說法不正確的是。

A.有參宏的參數不占內存空間

B.宏定義可以嵌套定義

C.宏定義可以遞歸定義

D.宏展開時,隻作替換,不含計算過程

8.下列說法正確的是。

A.宏名必須用大寫字母表示

B.預處理命令行必須在源程序的開頭

C.當程序有語法錯誤時,預處理的時候就能夠檢查出來

D.宏定義必須寫在函數之外