C语言:下列()不是无限循环

求解析!A.for(;;x=0);B.while(x=1){x=1;}C.for(y=2,x=1;x>=++y;x++);D.for(y=0;x=1;++y);... 求解析!
A.for(;;x=0);
B.while(x=1){x=1;}
C.for(y=2,x=1;x>=++y;x++);
D.for(y=0;x=1;++y);
展开
 我来答
百度网友b0e28cae4
推荐于2017-12-15 · TA获得超过4016个赞
知道大有可为答主
回答量:1275
采纳率:85%
帮助的人:616万
展开全部
for 的语法为:
for(循环初始化语句(可省略) ; 判断循环终止条件语句(可省略) ; 每轮循环结束运行的语句(可省略))
{
每次循环执行的语句
}

while 的语法:
while(判断循环终止条件语句(不可省略))
{
每次循环执行的语句

}

下面我们来看题目:
A. for(; ; x=0)
这是 for 语句。省略了 “循环初始化语句” 和 "判断循环终止条件语句" ,
每次循环结束后执行语句为: x=0
因为省略了 "判断循环终止条件语句",因此是一个死循环。

B. while(x=1){x=1;}
这是 while 语句,“判断循环终止的语句”为:x=1。语句是一个赋值语句,而不是逻辑条件(x==1)语句。这个赋值语句的值,也就是变量 x 的值,恒等于 1。不为 0 的值,在 C 语言里面都是"真"的,因此这个循环会一直执行下去。

C.for(y=2,x=1;x>=++y;x++);
这是 for 语句。
“循环初始化语句” 为: y=2,x=1

"判断循环终止条件语句"为:x>=++y
”每次循环结束后执行语句“为: x++

我们看 "判断循环终止条件语句"为:x>=++y。
第一次循环的时候,x=1, ++y = y+1 = 3。因此逻辑判断语句 x>=++y 的值是“假”的。
这个循环一次也不会执行。它不是一个死循环。

D.for(y=0;x=1;++y);
这是 for 语句。
“循环初始化语句” 为: y=0
"判断循环终止条件语句"为:x=1
”每次循环结束后执行语句“为: ++y

我们可以看到,不论循环多少次,变量 x 的值都不会改变的,x 恒等于 1。
只有 y 的值每循环一次会加一。
因此 "判断循环终止条件语句"为:x=1 是恒成立的。这是死循环。
帛敬曦ob
2019-04-05 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:33%
帮助的人:1068万
展开全部
a)
for(k=-1;-10<k<0;k--)
这里有个错误,k=-1应该是小写k
不是无限循环,k<-10后-10<k<0不成立,退出
b)
for(i=1,j=10;i-j;i++,j--)
是无限循环,i-j=0时i-j为假才能退出,当i=5时,j=6,而下一循环i=6,j=5,i-j永不为0
c)
for(k=1;k=10;k++)
是无限循环,k=10是赋值表达式,永为真
d)
for(k=1;k>0;k++)
是无限循环,k从1开始递增,所以k>0永为真
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小小图图来了哦
2012-11-25 · TA获得超过162个赞
知道答主
回答量:23
采纳率:100%
帮助的人:16.9万
展开全部
应该选c,一开始就不满足x>=++y这个条件,所以一开始就跳出for循环语句了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灰色110
2012-11-25 · TA获得超过185个赞
知道小有建树答主
回答量:289
采纳率:100%
帮助的人:262万
展开全部
这里含简单就判断出C的条件不满足,所以是C
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式