C语言问题:条件运算符选择题

下列程序段执行后的输出结果是()intk=-4,a=3,b=2,c=l;printf("%d/n",k<a?k:c<b?c:a);A.1B.2C.3D.4求算法的思路,不... 下列程序段执行后的输出结果是( )

int k=-4,a=3,b=2,c=l;
printf("%d/n",k<a?k:c<b?c:a);

A.1 B.2
C.3 D.4

求算法的思路,不是只要最后答案
不用解释条件运算符的含义。要是解题过程,答案是怎么算出来的
展开
 我来答
蓉雪球
推荐于2017-10-13 · TA获得超过8998个赞
知道大有可为答主
回答量:2846
采纳率:79%
帮助的人:714万
展开全部
?:这个是三目运算符。
这个是条件表达式,表示如果a为真,则表达式值为b,如果a为假,则表达式值为c

条件表达式具体说明如下
条件语句:
if(a>b) max=a;
else max=b;
可用条件表达式写为
max=(a>b)?a:b;
执行该语句的语义是:如a>b为真,则把a赋予max,否则把b 赋予max。
使用条件表达式时,还应注意以下几点:
1) 条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符。
因此
max=(a>b)?a:b
可以去掉括号而写为
max=a>b?a:b
2) 条件运算符?和:是一对运算符,不能分开单独使用。
3) 条件运算符的结合方向是自右至左。
例如:
a>b?a:c>d?c:d
应理解为
a>b?a:(c>d?c:d)
这也就是条件表达式嵌套的情形,即其中的表达式3又是一个条件表达式。

k<a?k:(c<b?c:a)
-4<3正确就是K=4
这个没有答案
K=-4
更多追问追答
追问
“-4<3正确就是K=4 ”    这句话是什么意思,听不明白
追答
-4<3这个是成立的,就做?后的K。
伟少love静静
2013-08-18 · TA获得超过205个赞
知道小有建树答主
回答量:529
采纳率:0%
帮助的人:317万
展开全部
条件运算符是惟一有3个操作数的运算符,所以有时又称为三元运算符。对于条件表达式b?x:y,先计算条件b,然后进行判断。如果b的值为true,计算
x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。一个条件表达式从不会既计算x,又计算y。条件运算符是向右结合的,也就是说,从右向左
分组计算。例如,a?b:c?d:e将按a?b:(c?d:e)执行。
你这个没有答案啊,应该是k=4吧,结果为A
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fanwenlin11
2013-08-19
知道答主
回答量:9
采纳率:0%
帮助的人:13.5万
展开全部
你可以换成如下方式理解:
if (k<a)
结果为k
else if(c<b)
结果为c
else
结果为a。

这样就很明白了吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
茅坑玩蛆
2013-08-18 · TA获得超过252个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:44.6万
展开全部
k<a?k:(c<b?c)
所以,-4...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式