C语言程序问题

11、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式是______。
A、a<>0
B、!a
C、a=0
D、a

你的回答: A (×) 参考答案:D
我想问为什么D表示不等于0呢?谢谢!

在C语言中,if语句后面应该是一个逻辑值,有真或假两种可能。
它可以是一个表达式,比如5>3为真,等等;也可以仅仅是一个值,比如定义了一个bool型变量flag,若flag的值为true, if (flag)就相当于 if (true),因此判断条件成立,执行if语句。
特别的,C语言把假定义为0,而一切非0值都认为是真。所以若a不为0,if (a) 就是 if (true)。
明白?
说一下其他几个为什么错:a<>0是pascal的语法,!a刚好反了(a不为0时,!a即为0),a=0是一个赋值表达式,表示先把0赋给a,然后a的值就是整个表达式的值。也即,if (a=0)相当于: a=0; if (a)……
它表示的也是a等于0.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-11
A.C语言中没<>这种表达式。
B.!a相当于a==0
C.a=0是将0赋给a,不能进行条件判断。
D.a相当于a!=0

If 的括号内表达式为真时才成立,就是逻辑值要为“1”才成立。
第2个回答  2012-03-11
if()中的语句,即是括号内为真才执行,a的逻辑假是a==0,,逻辑真是a!=0。则表示a!=0,在if()内,是a。。。即if(a),表示的是a不等于0.
第3个回答  2012-03-11
if(a)与if(a!=0)等价
第4个回答  2012-03-11
a为初始化,没有定义
相似回答