求高手帮我分析一个C程序设计的题目

题目是:
若有条件表达式(exp)?a++:b--,那么以下表达式中语其中(exp)完全等价于的是
A.(exp==0) B.(exp!=0) C.(exp==1) D.(exp!=1)
答案是B 请问为什么啊?谢谢高手啦

(exp)?a++:b--
是三元操作符号
但括号里的表达式(问号之前)为真(true或者1或者不等于0)则执行a++,否则执行b--

题目中以exp为判断,即exp为true(-1,1,2,3...都可以)执行a++,为false(0)执行b--
A (exp==0)当exp为0的时候执行 a++
B (exp!=0)当exp不等于0的时候执行 a++
C(exp==1) 当exp等于1的时候执行 a++
D (exp!=1)当exp 不等于1的时候执行 a++
可见只有B符合要求。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-24
当exp不为0时
第2个回答  2011-10-24
在C语言中 不等于0 的逻辑为真
相当于if(exp),等价于if(exp!=0),因为关系表达式的返回值也是一个数值的
谢谢采纳
第3个回答  2011-10-24
首先来分析条件表达式
(exp)?a++:b++的意思是在a和b中选取真值,哪个值为真就把那个值付给exp。这样一来,exp就会为真,那么就是exp!=0了
相似回答