问题 单项选择题

以下程序的输出结果是 ______。# defineSQR(X) X*X main() { int a=10,k=2,m=1; a/=SQR(k+m)/SQR(k+m); printf("d\n",a); }

A.16

B.2

C.9

D.1

答案

参考答案:D

解析: 本题考查带参数的宏调用。a/=SQR(k+m)/SQR(k+m)进行宏替换后得: a=a/(SQR(k+m)/SQR(k+m))=a/(k+m*k+m/k+m*k+m)=10/(2+1*2+1/2+1*2+1) =10/(2+2+0+2+1)=10/7/1。

多项选择题
单项选择题