内容正文:
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《C语言》(第五版)《一课一练》第17练,内容是第4章 循环结构程序设计综合。
《C语言》(第五版)一课一练 第17练
第4章 循环结构程序设计综合
一、单选题
1. 以下关于循环结构的叙述,正确的是( )
A. for循环不能省略循环条件
B. while循环的循环体可能一次也不执行
C. do-while循环可能一次也不执行循环体
D. 三种循环结构不能相互替代
【答案】B
【解析】while循环先判断条件再执行,当条件一开始就为假时循环体一次也不执行,B选项正确。for循环的三个表达式都可以省略,A选项错误。do-while至少执行一次循环体,C选项错误。while、do-while和for三种循环可以相互替代,D选项错误。
2. 以下for循环执行后s的值是
int i, s = 0;
for (i = 1; i <= 10; i++) s += i;( )
A. s的值为55
B. s的值为45
C. s的值为10
D. s的值为50
【答案】A
【解析】循环从i=1到i=10,将每个i累加到s。s的值为1+2+3+...+10=55。这是求1到10累加和的基本循环。
3. 设 int i=5, s=0; 以下代码执行后s的值是
do { s += i; i--; } while (i > 0);( )
A. s的值为10
B. s的值为5
C. s的值为15
D. s的值为14
【答案】C
【解析】do-while循环先执行循环体再判断条件。i从5递减到1,每次将i累加到s。s=5+4+3+2+1=15。当i变为0时0>0为假退出循环。这是do-while实现的倒序累加。
4. 设 int s=0; 执行以下代码后s的值是
for(int i=1; i<=3; i++)
for(int j=1; j<=i; j++)
s++;( )
A. s的值为9
B. s的值为3
C. s的值为12
D. s的值为6
【答案】D
【解析】外层循环i从1到3,内层循环j从1到i。i=1时内层1次,i=2时内层2次,i=3时内层3次,共1+2+3=6次。s自增6次最终值为6。
5. 以下代码的输出结果是
int i;
for (i = 1; i <= 6; i++)
{
if (i % 3 == 0) continue;
printf("%d ", i);
}( )
A. 输出1 2 3 4 5
B. 输出3 6
C. 输出1 2 4 5
D. 输出2 4 6
【答案】C
【解析】循环从i=1到i=6,当i是3的倍数时continue跳过输出。i为3和6时跳过,i为1、2、4、5时输出。所以输出1 2 4 5。continue跳过当前迭代的剩余语句但不终止循环。
6. 设 int s=0; 执行以下代码后s的值是
for (int i = 2; i <= 10; i++)
{
int j;
for (j = 2; j < i; j++)
if (i % j == 0) break;
if (j == i) s++;
}( )
A. s的值为4
B. s的值为3
C. s的值为5
D. s的值为6
【答案】A
【解析】外层循环遍历2到10的每个数。内层循环检查每个数是否有因子,如果找到因子则break。如果内层循环正常结束j等于i,说明没有找到因子,该数为素数。2到10中的素数有2、3、5、7共4个。所以s的值为4。
7. 以下代码的输出结果是
int i = 1, s = 0;
while (i <= 20)
{
if (i % 2 == 0)
{ i++; continue; }
s += i;
i++;
if (s > 30) break;
}
printf("%d", s);( )
A. 输出25
B. 输出30
C. 输出16
D. 输出36
【答案】D
【解析】循环累加1到20中的奇数。i为偶数时i加1后continue跳过。i为奇数时累加到s然后i加1。s累加1、3、5、7、9、11后为36,此时s>30执行break。所以输出36。
二、简答题
8. 以下程序的运行结果是【 】。
#include <stdio.h>
int main()
{
int i = 1, s = 0;
while (i <= 3)
{
for (int j = 1; j <= i; j++)
s += j;
i++;
}
printf("%d
", s);
return 0;
}
【答案】10
【解析】外层while循环i从1到3,内层for循环j从1到i累加j。i=1时s+=1得1,i=2时s+=1+2得4,i=3时s+=1+2+3得10。s的最终值为10。
三、案例分析题
9. 以下程序的功能是:输出1到100之间所有的素数。请填空。
#include <stdio.h>
int main()
{
int i, j;
for (i = 2; 【1】; i++)
{
for (j = 2; j < i; j++)
if (【2】) break;
if (【3】) printf("%d ", i);
}
return 0;
}
【答案】【1】i <= 100
【2】i % j == 0
【3】j == i
【解析】外层循环遍历2到100的每个数,填i<=100。内层循环检查i是否有因子,判断i能否被j整除,填i%j==0。如果内层循环正常结束则j等于i,说明没有找到因子,该数为素数,填j==i。程序输出1到100之间的所有素数。
四、综合应用题
10. 编写一个C程序:输出斐波那契数列的前20项。斐波那契数列的规律为:前两项都为1,从第三项起每项等于前两项之和。即1, 1, 2, 3, 5, 8, ...
【答案】#include <stdio.h>
int main()
{
int f1 = 1, f2 = 1, f3, i;
printf("%d %d ", f1, f2);
for (i = 3; i <= 20; i++)
{
f3 = f1 + f2;
printf("%d ", f3);
f1 = f2;
f2 = f3;
}
printf("
");
return 0;
}
【解析】斐波那契数列前两项为1,从第三项起每项等于前两项之和。用f1和f2保存前两项,f3=f1+f2计算新项。每次计算后更新f1和f2的值向前推移。循环从第3项到第20项,共输出18个新项,加上前2项共20项。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《C语言》(第五版)《一课一练》第17练,内容是第4章 循环结构程序设计综合。
《C语言》(第五版)一课一练 第17练
第4章 循环结构程序设计综合
一、单选题
1. 以下关于循环结构的叙述,正确的是( )
A. for循环不能省略循环条件
B. while循环的循环体可能一次也不执行
C. do-while循环可能一次也不执行循环体
D. 三种循环结构不能相互替代
2. 以下for循环执行后s的值是
int i, s = 0;
for (i = 1; i <= 10; i++) s += i;( )
A. s的值为55
B. s的值为45
C. s的值为10
D. s的值为50
3. 设 int i=5, s=0; 以下代码执行后s的值是
do { s += i; i--; } while (i > 0);( )
A. s的值为10
B. s的值为5
C. s的值为15
D. s的值为14
4. 设 int s=0; 执行以下代码后s的值是
for(int i=1; i<=3; i++)
for(int j=1; j<=i; j++)
s++;( )
A. s的值为9
B. s的值为3
C. s的值为12
D. s的值为6
5. 以下代码的输出结果是
int i;
for (i = 1; i <= 6; i++)
{
if (i % 3 == 0) continue;
printf("%d ", i);
}( )
A. 输出1 2 3 4 5
B. 输出3 6
C. 输出1 2 4 5
D. 输出2 4 6
6. 设 int s=0; 执行以下代码后s的值是
for (int i = 2; i <= 10; i++)
{
int j;
for (j = 2; j < i; j++)
if (i % j == 0) break;
if (j == i) s++;
}( )
A. s的值为4
B. s的值为3
C. s的值为5
D. s的值为6
7. 以下代码的输出结果是
int i = 1, s = 0;
while (i <= 20)
{
if (i % 2 == 0)
{ i++; continue; }
s += i;
i++;
if (s > 30) break;
}
printf("%d", s);( )
A. 输出25
B. 输出30
C. 输出16
D. 输出36
二、简答题
8. 以下程序的运行结果是【 】。
#include <stdio.h>
int main()
{
int i = 1, s = 0;
while (i <= 3)
{
for (int j = 1; j <= i; j++)
s += j;
i++;
}
printf("%d
", s);
return 0;
}
三、案例分析题
9. 以下程序的功能是:输出1到100之间所有的素数。请填空。
#include <stdio.h>
int main()
{
int i, j;
for (i = 2; 【1】; i++)
{
for (j = 2; j < i; j++)
if (【2】) break;
if (【3】) printf("%d ", i);
}
return 0;
}
四、综合应用题
10. 编写一个C程序:输出斐波那契数列的前20项。斐波那契数列的规律为:前两项都为1,从第三项起每项等于前两项之和。即1, 1, 2, 3, 5, 8, ...
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$