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

admin2009-01-15  21

问题 以下程序的输出结果是 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,所以,4个选项中C为所选。
转载请注明原文地址:https://kaotiyun.com/show/unXp777K
0

最新回复(0)