C语言问题,关于循环语句

下列C语言程序段中,不会构成死循环的是:A)intx=10;while(x);--x;B)intx=10;while(x=5);C)intx;for(x=0;x<10;x... 下列C语言程序段中,不会构成死循环的是:
A)int x=10;
while(x);--x;
B)int x=10;
while(x=5);
C)int x; for (x=0;x<10;x++)
x--;
D)int x=100;
do
{++x;
} while (x>=1000);

我不明白的是,while语句怎么没有循环体,也没有表达式,当然这个题我也不会做。。。
展开
 我来答
weiyinwu
2012-02-13 · TA获得超过1540个赞
知道小有建树答主
回答量:1057
采纳率:50%
帮助的人:1143万
展开全部
没有循环体?后面的“;”就是循环体,就一个语句,只不过没有“{}”而已。
A中while后面有个;号,后以--x没有执行会造成死循环。
B中while中的x=5一直是真所以会死循环。
C中每一次x++自加,在循环体中x--又减少了,所以条件x<10一直为真,会死循环。
D中do在前面,会先执行循环体中的一次,然后再判定条件,所以++x,中x到101时不满足条件退出了循环。
故选择D。
stubby2
2012-02-13 · TA获得超过228个赞
知道小有建树答主
回答量:226
采纳率:54%
帮助的人:93.2万
展开全部
D 不是死循环
while(条件满足)
{
循环部分。 如果循环为空 则用一句;表示
}
因此A while(x) ; 由于x始终不等于0 ,因为在循环部分没有对X 的值有任务操作。
B while(x =5) ; x = 5 的条件一直为真 因此这是个赋值操作,结果肯定是赋值成功
C 在for语句中 即对x++ 又对x-- 因此x的值始终是0 永远满足x<10的条件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leebin17
2012-02-13
知道答主
回答量:18
采纳率:0%
帮助的人:19.3万
展开全部
我觉得D都不会构成死循环
A: x初始化为10
while(x); 就是在执行死循环(当x为真就执行空语句)
B:x初始化为10
while(x=5);x=5是将x赋值为5,则此时为真。所以执行while的空语句。
所以死循环
C:for语句里面,x初始化成0,然后在循环体内,x的值一直在0和1之间跳动,
一直符合for语句的条件判断,所以一直死循环。
D:x初始化成100
do执行一次++x,然后x的值是101
但是不符合while条件判断所以退出了。
所以也不会构成死循环!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jsjxuwenlong
2012-02-14 · 超过17用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:44万
展开全部
循环体是一条语句,如果要想跟上多条的话就得用{}括起来构成复合语句,但是符合语句从语法上来说仍然是一条语句,所以循环体只能是一条语句是这么来的,c语言中的空语句就是一个";"这也是语句可以作为循环体,只不过没做任何事情!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7f4f28558
2012-02-13 · TA获得超过272个赞
知道小有建树答主
回答量:489
采纳率:0%
帮助的人:237万
展开全部
A)int x=10;
while(x);--x;
while(x); 就是 while(10); 在C里,数值转化为逻辑值,非0即是逻辑1,所以死循环
B)int x=10;
while(x=5);
同上,死循环
C)int x; for (x=0;x<10;x++)
x--;
执行一个循环 X值 没变, 死循环
D)int x=100;
do
{++x;
} while (x>=1000);

不是死循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式