以下程序的输出结果是【 】。 #define MAX(x,y) (x)>(y)?(x):(y) main() { int a=5,b=2,c=3,d=3,t; t=MAX(a+b,e+d)*10;

admin2009-02-15  17

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

选项

答案7

解析 在C语言中,宏定义是直接替换的,所以在对表达式MAX(a+b,c+d)*l0进行替换后,表达式变为(a+b)>(c+d)?(a+b):(c+d)*10。在这个条件表达式中,(a+b)>(c+d)为真,所以用(a+b)的值作为整个表达式的值(否则用(c+9d)*10)的值作为整个表达式的值),而(a+b)的值为7。所以整个表达式的值为7。
转载请注明原文地址:https://kaotiyun.com/show/FAXp777K
0

最新回复(0)