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
求算法的思路,不是只要最后答案
不用解释条件运算符的含义。要是解题过程,答案是怎么算出来的 展开
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
求算法的思路,不是只要最后答案
不用解释条件运算符的含义。要是解题过程,答案是怎么算出来的 展开
4个回答
展开全部
?:这个是三目运算符。
这个是条件表达式,表示如果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
这个是条件表达式,表示如果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。
展开全部
条件运算符是惟一有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
x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。一个条件表达式从不会既计算x,又计算y。条件运算符是向右结合的,也就是说,从右向左
分组计算。例如,a?b:c?d:e将按a?b:(c?d:e)执行。
你这个没有答案啊,应该是k=4吧,结果为A
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以换成如下方式理解:
if (k<a)
结果为k
else if(c<b)
结果为c
else
结果为a。
这样就很明白了吧。
if (k<a)
结果为k
else if(c<b)
结果为c
else
结果为a。
这样就很明白了吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
k<a?k:(c<b?c)
所以,-4...
所以,-4...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询