C语言,题目有图,基础比较差,希望过程详细一些!!!

如题所述

初学者遇到循环可以设置断点,单步运行,查看变量变化:

for循环,i初始值为5,i+=4即i=i+4步进4,循环体内i=i+3又步进3,所以每次循环i增加7,s值是在i步进前运算的s+i,直到i<17这个条件不成立退出循环。

第一次开始时:i是5,s是2019;

第二次开始时:i是12,s是2024,满足i<17,继续;

第三次开始时:i是19,s是2036,不满足i<17,退出。

所以最终i是19,s是2036。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-03-08

关键知识点,for循环的运算顺序:

for循环我们可以表示为:

for(表达式1;表达式2;表达式3)

{

语句;

}

程序运行时:

    求解表达式1。

    求解表达式2。若其值为真,则执行 for 语句中指定的内嵌语句,然后执行第3步;若表达式2值为假,则结束循环,转到第5步。

    求解表达式3。

    转回上面第2步继续执行。

    循环结束,执行 for 语句下面的语句。

对照题目:

首先i = 5,i < 17满足,执行for循环内嵌语句:

s = s+i -->s = 2019+5 = 2024;

i = i+3 -->i = 5 + 3 = 8;

然后运行for语句表达式3:

i+=4-->i = i+4 --> i = 8+4 = 12;

12 < 17满足要求,继续运行:

s = s+i -->s = 2024 + 12 = 2036;

i = i+3 -->i = 12 + 3 = 15;

接着运行for语句中表达式3:

i+=4-->i = i+4 --> i= 15 + 4 = 19;

19 < 17为假,for循环结束;

所以for循环结束后:s = 2036,i = 19;

既打印为:19, 2036

本回答被提问者采纳
第2个回答  2021-03-08
s=2019;
for(i=5;i<17;i+=4)
{
s=s+i;
i=i+3;
}
这种的话只能模拟走一下流程了,
第一次循环
s=s+i;//即s=2019+5=2024;
i=i+3;//即i=5+3=8;
之后会执行for的i+=4;即i=8+4=12
i<17成立,继续下次循环

第二次循环
s=s+i即s=2024+12=2036;
i=i+3;//即i=12+3=15;
i+=4即i=15+4=19;
因为i<17不成立,循环退出,
所以最终结果就是19,2036
相似回答