C语言中遇到的问题(2)

在while(x)语句中的x与下面条件表达式等价的是___
A) x==0;
B) x==1;
C) x!=1;
D) x!=0;
我选A
正确答案:D
不知道原因是什么?

第1个回答  2014-11-04
while(x)表达式中,对x的判断标准是:

(1)如果x为0,则认为为假;
(2)如果为0之外的任何数,则认为是真。

因为在c语言中,没有bool型变量,所以对于真假类的的判断,都是以是不是"0"和"!0"来判断真假的。
所以答案的B C 都不行,而A正好和while中的判断逻辑相反,不对,答案选D。
第2个回答  推荐于2016-05-11
while的语法实际上是while(true){}
即条件表达式为真,才执行循环体。
int类型可以转换为bool类型,0表示false,其它表示true
所以表示true的话,就是x!=0
你选的x==0表示的是false本回答被提问者和网友采纳
第3个回答  2014-11-04
在c语言里,非零表示的是逻辑真,这里while()括号里的是逻辑判断语句,既然x为真执行函数体,那就只能是x!=0了。
第4个回答  2014-11-04
在C\C++里,数值只要不为0,则为true,否则为false。
相似回答