一个C语言的题目

以下程序的运行结果是(D)
main( )
{ int k=4,a=3,b=2,c=2;
printf(“\n%d\n”,k<a?k:c<b?c:a);
}
A、4 B、3
C、2 D、1
请问下为什么是D啊
请问下 这个?:是什么运算符啊 啥意思啊

首先题目c=1,才会选择D答案。
“?:”是三目运算,例如:a<b?a:b即如果a<b成立,取a值,否则取b值。
分析:k<a?k:c<b?c:a中其实用到了两个三目运算。即k<a?k:(c<b?c:a),如果k<a成立则取k值,否则取括号里面的值,即c<b?c:a,4<3不成立,取c<b?c:a,
1<2(这里的c值应该是1,题目写错了)成立,取c值,否则去a值。所以答案为D。
不知道这样解释清楚不?有问题Hi我
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-01-03
k<a?k:c<b?c:a相当于 (k<a)?((k):((c<b)?(c:a)))

?:自左往右

正确答案是B、3
第2个回答  2009-01-03
你的题目应该是:int k=4,a=3,b=2,c=1吧?
k<a?k:c<b?c:a中“?:”是三目运算,例如:a?b:c即如果a成立则b,否则c
k<a?k:c<b?c:a中是如果k<a成立则输出k,否则如果c<b成立则c否则a,在这个中输出是c的值1,你上面应该写错了吧?!
第3个回答  2009-01-03
三目运算符

呵呵,这么写程序的人就是犯贱

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网