两道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);
答案说这个程序段是死循环,为何? 展开
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);
答案说这个程序段是死循环,为何? 展开
展开全部
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)
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)
展开全部
题目一:理解一下for循环执行的方式,三个参数,第一个是定义值,第二个执行循环需要满足的条件,第三个是循环结束后执行的动作. 此题虽然是++b, 但是++b是在执行完循环之后进行的,所以首次循环判断条件a>b是10>5; 这样得出i=5就好理解了
题目二:这个要认真看下, 因为整个程序中没有对X值进行改变,X始终为3(可以在循环最后一行打出来看看),故为死循环. y = x--; 这一行是对Y赋值,x是不变的,呵呵
题目二:这个要认真看下, 因为整个程序中没有对X值进行改变,X始终为3(可以在循环最后一行打出来看看),故为死循环. y = x--; 这一行是对Y赋值,x是不变的,呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询