问题 填空题

以下程序的输出结果是 【18】
#include <stdio.h>
#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

解析: 本题综合考查带参数的宏以及三目运算符的计算方法。三目运算符的一般形式是:<表达式1><表达式2>:<表达式3>。“:”运算符的含义是:先求表达式1的值,如果为真,则求表达式2的值,并把它作为整个表达式的值;如果表达式1的值为假,则求表达式3的值,并把它作为整个表达式的值。
注意,在本题中宏替换时可采用逐步求解,最终为7>6 7:6*10,即t=7>6 7:60,其值为t=7。

单项选择题
单项选择题