表达式:a>b?a:c>d?a:d的结果为4。
解析:
1、由于C语言的相同优先级运算符运算规则为从左至右依次运算,而条件运算符具有右结合性,所以表达式:a>b?a:c>d?a:d优先运算c>d?a:d,得出的结果为4;
2、再运输a>b?a:4,得出的结果为4。
所以最终得出的结果为4。
扩展资料
表达式为:表达式1?表达式2:表达式3
先求解表达式1,
若其值为真(非0)则将表达式2的值作为整个表达式的取值,
否则(表达式1的值为0)将表达式3的值作为整个表达式的取值。
例如:
1、max=(a>b)?a:b,就是将a和b二者中较大的一个赋给max。
2、min=(a<b)?a:b,就是将a和b二者中较小的一个赋给min。
条件运算符具有右结合性
当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。
例如:
w<x ? x+w : x<y ? x : y,与 w<x ? x+w : ( x<y ? x : y) 等价,与 (w<x ? x+w : x<y) ? x : y 不等价。
参考资料:百度百科-C语言运算符
参考资料:百度百科-条件运算符
...设a=1,b=2,c=3,d=4,则表达式:a>b?a:c>d?a:d的结果为( )
表达式:a>b?a:c>d?a:d的结果为4。解析:1、由于C语言的相同优先级运算符运算规则为从左至右依次运算,而条件运算符具有右结合性,所以表达式:a>b?a:c>d?a:d优先运算c>d?a:d,得出的结果为4;2、再运输a>b?a:4,得出的结果为4。所以最终得出的结果为4。
、设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为( )。
比如a<b?a:c<d?a:d等价于 if (a<b)return a;else if(c < d)return a;else return d;根据你的题目,结果是a,也就是1;
c语言题目;设a=1,b=2,c=3,d=4,则表达式a<b?a:c<d?a:d的结果是
正确。结果是1
C语言 设a=1, b=2, c=3,d=4,则表达式a<b?a:c<d?a:d的结果为何是
即a<b?a:c<d?c:d等价于a<b?a:(c<d?c:d) 翻译成语言文字即先c<d?答案 是,所以执行冒号q前面的c,再判断,前面的a<b?答案 是 所以再a和前面执行的c中选择冒号前面的a 我才是正解,专门扒拉出书来看的,答案是一样的但是优先级不一样,我参考的书是C语言程序设计第三版 何钦铭,颜晖...
4. 设a=1,b=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为( )。 (A) 4...
a<b?a:c<d?a:d可以看做 a < b? a : (c<d?a:d)所以答案是D 1
设a=1,b=2,c=3,d=4;表达式a>b?a:c<d?a:d的值是( 1 )。
a>b?a:c<d?a:d 可以这么看 a>b?a:(c<d?a:d)所以先比较(c<d?a;b)的值为a,也就是1 然后在执行 a>b?a;(a)所以结果的值是a,也就是1
...a=1,b=2,c=3,d=4;"则表达式"a>b? a:c>d? c:d"的值是多少?
答案是4,因为:?是右结合的运算符,a>b?a:c>d?c:d=a>b?a:(c>d?c:d)
a=1,b=2,c=3,d=4,则a>b?a:c<d?c:d值为多少
那么:a>b?a:c<d?c:d等于:(a>b)?a:(c<d)?c:d,下面是两个条件运算符的嵌套,条件运算符的结合方向为“自右至左”,那么,上述表达式可以等于:(a>b)?a:[(c<d)?c:d],所以,判断C<d,为真,则值为c==3;然后再判断a>b,为假,所以其值为后,为3.所以,值为3.
、设a=1, b=2, c=3, d=4,则条件表达式a<b ? a : c<d ? c : d的值为...
感觉加上括号会好理解很多:(a<b) ? a : (c<d ? c : d)(a<b) ? a : c 由于a<b条件成立,所以选a;结果:1
设a=1 , b=2 , c=3 , d=4 ,则条件表达式 a<b? a:c<d?c:d 的值为...
选择答案A,执行条件表达式后的结果为1。执行的结果:首先比较a和b的大小,当a<b的情况下执行结果为a,当a>b为1的时候那么会执行表达式c<d?c:d,然后比较c和d的大小,如果c小于d那么表达式的结果就为c,如果c大于d,那么表达式的结果为d。因为a=1,b=2,所以a<b成立,那么表达式的结果直赋值...