问题
单项选择题
以下程序的输出结果是 ______。# 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。