A-A+
有以下程序 include<stdio.h> defineSUB(a)(a)-(a) mai
问题详情
有以下程序 include<stdio.h> defineSUB(a)(a)-(a) main(){ inta=2,b=3,c=5,d; d=SUB(a+b)*c: printf(%dln,d);} 程序运行后的输出结果是
A.-12
B.0
C.10
D.-20
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:D
本题主要考查的是宏替换,在程序中执行d=sub(a+b)+c这条语句时,首先要进行宏替换,依据宏suB(a)的定义可知,上面这条语句替换为d=(a+b).(a+b)+c,因为乘法的优先级比减法的优先级高,所以先进行乘法运算,即d=5.5*5=-20。