有以下程序 #include<stdio.h> #defineSUB(a)(a)-(a) main( ){ inta=2,b=3,c=5,d; d=SUB(a+b)*c: printf(’’%dl\n’’,d);} 程序运行后的输出结果是

admin2020-11-23  27

问题 有以下程序
#include<stdio.h>
#defineSUB(a)(a)-(a)
main(    ){
inta=2,b=3,c=5,d;
d=SUB(a+b)*c:
printf(’’%dl\n’’,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。
转载请注明原文地址:https://jikaoti.com/ti/1oD0FFFM
0

随机试题
最新回复(0)