两道C语言题目

1:指出程序结束之时,j、i、k的值分别是main(){inta=10,b=5,c=5,d=5,i=0,j=0,k=0;for(;a>b;++b)i++;while(a>... 1:指出程序结束之时,j、i、k的值分别是

main( )
{ int a=10,b=5,c=5,d=5,i=0,j=0,k=0;
for (;a>b;++b) i++;
while (a>++c) j++;
do k++; while (a>d++);
}

答案是i=5,j=4,k=6;
第一个for循环,我认为因为++b,所以a>6,i=1,所以最后b=10,不构成循环了,i为上次循环答案4;为什么不是4?

2:下列程序段

x=3;
do{ y = x--;
if ( !y ) { printf(”x”); continue; }
printf(”#”);
} while(1<=x<=2);

答案说这个程序段是死循环,为何?
展开
 我来答
无法无天
2015-05-07 · 知道合伙人软件行家
无法无天
知道合伙人软件行家
采纳数:658 获赞数:1756
网络工程师

向TA提问 私信TA
展开全部
1.
for先执行第一个赋值语句,因为第一个赋值语句为空,不理,之后就判断
10>5,进入循环i++,再执行第三个赋值语句++b=6,之后再开始判断,再i++,再++b如此循环
当10>10时跳出循环,此时i=5

2.
while(1<=x<=2)这个是死循环

这样的表达式为逻辑判断,一步步的做出返回
先(1<=x)返回0或1
然后再判断(1<=x)<=2,返回0或1

所以返回值永远是1,所以是死循环

如果要写成判断,改为while(x>=1 &&x<=2)
梦_越
2015-05-07 · 超过63用户采纳过TA的回答
知道小有建树答主
回答量:107
采纳率:0%
帮助的人:59.5万
展开全部
题目一:理解一下for循环执行的方式,三个参数,第一个是定义值,第二个执行循环需要满足的条件,第三个是循环结束后执行的动作. 此题虽然是++b, 但是++b是在执行完循环之后进行的,所以首次循环判断条件a>b是10>5; 这样得出i=5就好理解了
题目二:这个要认真看下, 因为整个程序中没有对X值进行改变,X始终为3(可以在循环最后一行打出来看看),故为死循环. y = x--; 这一行是对Y赋值,x是不变的,呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式