问题 填空题

以下程序的输出结果是 【20】
#define MAX(x,y) (x)>(y)(x):(y)
main()
int a=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+D) *10;
printf("%d\n",t);

答案

参考答案:G

解析:[评析] 在C语言中,宏定义是直接替换的,所以在对表达式MAX(a+b,c+d)*10进行替换后,表达式变为(a+b>(c+d)(a+b): (c+d)*10。
在这个条件表达式中,(a+b)>(c+d)为真,所以用(a+b)的值作为整个表达式的值(否则用(c+d)*10的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。

单项选择题
问答题 简答题