以下程序的输出结果是 main() { int a=5,b=4,c=6,d; printf((“%d\n”,d=a>b?)(a>c?a:c):(b)); }

admin2010-01-10  23

问题 以下程序的输出结果是    main()    { int a=5,b=4,c=6,d;    printf((“%d\n”,d=a>b?)(a>c?a:c):(b));    }

选项 A、5
B、4
C、6
D、不确定

答案4

解析 在C语言中问号表达式(如:a>c?a:c;)的计算规则为:如果a>c为真,那么表达式的值为a的值;否则表达式的值为c的值。本题中的printf()函数中的输出表达式,首先计算括号内的条件表达式,它的值为6(a>c?a:C中a>c即5>6为假故该表达式的值为c的值即为6),然后再计算外面表达式(等价于a>b?6:B) 的值,同理可得该表达式的值为6,将值6赋值给d,因此最后输出该表达式的值为6。
转载请注明原文地址:https://kaotiyun.com/show/wLWp777K
0

最新回复(0)