C语言环境中,设a=1,b=2,c=3,d=4,则表达式:a>b?a:c>d?a:d的结果为( )

小胖纸本不胖
2019-06-06 · TA获得超过4437个赞
知道答主
回答量:2768
采纳率:0%
帮助的人:93万
展开全部

表达式: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语言运算符

参考资料:百度百科-条件运算符

百度网友8ad2c1d
推荐于2018-02-27 · TA获得超过402个赞
知道小有建树答主
回答量:261
采纳率:0%
帮助的人:127万
展开全部

结果是4,一会写出过程 


“?:" 这是一个三目运算符,以 “c>d?a:d”这个代码为例,程序会首先判断“c>d”是否为真,若为真则执行冒号前的语句,即其结果为”a“的值;若为假,则执行冒号后的语句,即其值为"d"的值。


一般遇到这样的题要拆分着做,首先判断最左边的“a>b”,这个结果为假,根据条件判断运算符的性质,所以接下来执行第一个冒号后的语句“c>d?a:d”,接着判断“c>d”,结果为假,所以最终取值为第二个冒号后的值,即为d的值,也就是4。


 

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
漂亮且舒适灬财宝K
2012-11-19
知道答主
回答量:39
采纳率:0%
帮助的人:14.5万
展开全部
答案为4,“a?b:c”是从右向左执行的,也就是说a为真的话,这个式子就可以看做b,否则可以看做c;c大于d么,不是,则变成了a>b?a:d,a大于b么,不是,则为d,d=4.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lc2573991237
2013-06-24
知道答主
回答量:5
采纳率:0%
帮助的人:7291
展开全部
答案是4.三目运算符就可求得
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我爱恬淡的生活
2012-11-15
知道答主
回答量:58
采纳率:0%
帮助的人:22.7万
展开全部
4
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式