c语言题目(请大家帮忙)!
解决时间 2021-07-18 22:49
- 提问者网友:富士山上尢
- 2021-07-18 12:52
main()
{
int k,j,s;
for(k=2;k<6;k++,k++)
{
s=1;
for(j=k;j<6;j++)
s+=j;
}
printf("%d\n",s);
}
上面的程序在VC++6.0中运行结果是 10 。
实在想不通,请诸位高手帮忙解析一下(电脑的运行步骤)。
由上面的程序引导出以下两个程序,以下两个又是怎样运行的呢?请帮忙解析一下!
main()
{
int k,j,s;
for(k=2;k<6;k++,k++)
for(j=k;j<6;j++)
s=1;
s+=j;
printf("%d\n",s);
}
运行结果是 1 。
main()
{
int k,j,s;
for(k=2;k<6;k++,k++)
for(j=k;j<6;j++)
s=1;
s+=j;
printf("%d\n",s);
}
运行结果是 7 。
最佳答案
- 五星知识达人网友:动情书生
- 2021-07-18 13:10
第一个,在里面的FOR循环之前,S总会被赋值为1,所以不管之前的计算结果怎样,只有最后一次才有效。最后一次的循环情况是K = 4;然后S加两次J,J分别为4和5。所以结果为1+4+5=10。
第2,3个一模一样,怎么可能运行结果不一样?
第2个,两个FOR循环,都只对s=1这个语句起作用,所以FOR完了,s还是1,J是6(所以才不满足j<6的条件退出),最后S=S+J;S等于7。
全部回答
- 1楼网友:枭雄戏美人
- 2021-07-18 14:31
for(k=2;k<6;k++,k++)
2自加,最大值能自加到6
s=1;
for(j=k;j<6;j++)
s+=j;
S最初值是1
S为总和,S1=1+J1.S2=S1+J2
J最大为6
说来说去就是S=1+2+3+4
当K=2时,s = 15;然后 执行k++ ,k++ ;k = 4, 之后执行for(j=k;j<6;j++) s+=j; s = 10,此次循环结束时,k = 6 ,循环结束, 所以结果为10,下面两个没看。。你自己分下下吧。。这种程序一行行代码看仔细就好了。。。
- 3楼网友:爱难随人意
- 2021-07-18 13:16
main()
{
int k,j,s; 定义k,j,s
for(k=2;k<6;k++,k++) k从2开始,每次使用k为J附值后,再进行2次+1,就是加2,直到k=6的时候结束,就是说这个循环要执行3次
{
s=1;
for(j=k;j<6;j++) 3次执行j分别被赋值2,4,6
s+=j; s=s+j
}
printf("%d\n",s); 第1次循环输出结果为3,第2次执行的时候s=1+4=5,第3次是s=1+6=7
}
我要举报
大家都在看
推荐资讯