执行下列程序后的输出结果是( ) define M(a,b)(a)>(b)?(a):(b) main() { int i=10,i

18 查阅

执行下列程序后的输出结果是( ) define M(a,b)(a)>(b)?(a):(b) main() { int i=10,i=15; printf("%d\n",10*M(i,j)); }

A.10

B.15

C.100

D.150

参考答案:

A本题要输出的表达式是“10*M(i,j)”,其中的“M(i,j)”是带参数的宏调用,宏替换后,表达式的结果是“10*(i)>(j)?(i):(j)”,而变量i值为10、变量j值为15,带入整个要输出的表达式后结果是“10*(10)>(15)?(10):(15)”,,其中的条件“10*10>15”是成立的,结果等于10。所以本题答案应选A

软考初级