C语言 循环结构

当执行以下程序段时
x=-1;
do { x=x*x;} while( !x);
A) 循环体将执行一次
B) 循环体将执行两次
C) 循环体将执行无限次
D) 系统将提示有语法错误
A
while( 0);在回到上面 不应该循环无限次吗
while( 0),就算下面有语句也不执行了??

循环体将执行一次。do-while 循环的执行是先执行一次循环体,然后再判断while的条件,如果 条件=1,则继续执行循环体,如果 条件=0,则结束循环。在这道题中,第一次执行完循环体后,x=1,则 !x=0,此时,正如您所说的,while(0),则结束循环。所以循环体将执行一次,选择A。

while(0)时,是结束循环,接下去将执行 do-while 后面的语句,而不是不执行。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-29
1次,
先执行x=x*x。
x=1.
while(0)就结束循环了。
就那么一次。

参考资料:ogin_u

本回答被网友采纳
第2个回答  2010-12-29
就执行一次:X=-1
X= -1*-1=1
!X=!1=0
while(0)
结束
第3个回答  2010-12-29
一次,while(1)才无限循环,0就代表不满足条件啊,不再返回执行了
第4个回答  2010-12-29
while(!0)才会无限循环的,所以你上面只会循环一次
第5个回答  2010-12-29
都是条件为真才继续循环的嘛,只要条件不成立循环就结束了
第6个回答  2010-12-29
你记错了,do{}while(0),不会回去继续循环的
相似回答