问题:
[单选]执行下列程序后,输出的结果是( )。
#include<stdio.h>
#define S(X) X*X
void main()
{ int a=9,k=3,m=2;
a/=S(k+m)/S(k+m):
printf("%d",a);
}
A . 1
B . 4
C . 9
D . 0
参考答案:D
参考解析:
本题主要考查带参数的宏定义,过程如下:由于定义为define(x) x*x没有括号优先级,所以:a= a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m) =9/(3+2*3+2/3+2*3+2)=0。