以下程序的输出结果是【 】。 #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; p

admin2013-06-11  30

问题 以下程序的输出结果是【  】。
   #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);
   }

选项

答案7

解析 在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。
转载请注明原文地址:https://kaotiyun.com/show/GxJp777K
0

最新回复(0)