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

admin2009-01-15  34

问题 以下程序的输出结果是【  】。
   #define  MAX(x,y)  (x)>(y)?(x)L:(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/J6Xp777K
0

最新回复(0)