内容正文:
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《C语言》(第五版)《一课一练》第14练,内容是4.3 for循环语句。
《C语言》(第五版)一课一练 第14练
4.3 for循环语句
一、单选题
1. 以下关于for循环的叙述,正确的是( )
A. for循环的表达式1不可以包含多个操作
B. for循环的表达式2省略后循环不会执行
C. for循环的三个表达式都可以省略
D. for循环的三个表达式都不能省略
2. 执行语句 for(i=1; i<=5; i++); 后,变量i的值是( )
A. i的值为6
B. i的值为4
C. i的值为5
D. i的值不确定
3. 设 int i, s=0; 执行 for(i=1; i<=4; i++) s += i*i; 后s的值是( )
A. s的值为10
B. s的值为16
C. s的值为20
D. s的值为30
4. 以下for循环执行次数是
for(i=0; i<10; i+=3) printf("*");( )
A. 循环执行3次
B. 循环执行4次
C. 循环执行10次
D. 循环执行5次
5. 设 int i; 执行 for(i=10; i>0; i-=3) printf("%d ", i); 后的输出是( )
A. 输出10 7 4 1
B. 输出10 7 4
C. 输出9 6 3
D. 输出7 4 1 -2
6. 设 int i, s=0; 执行以下代码后s的值是
for(i=1; i<=5; i++)
if(i%2) s += i;( )
A. s的值为15
B. s的值为6
C. s的值为9
D. s的值为4
7. 设 int i, j, s=0; 执行以下代码后s的值是
for(i=1; i<=3; i++)
for(j=1; j<=3; j++)
s++;( )
A. s的值为6
B. s的值为3
C. s的值为12
D. s的值为9
二、简答题
8. 以下程序的运行结果是【 】。
#include <stdio.h>
int main()
{
int i, s = 0;
for (i = 1; i <= 20; i++)
{
if (i % 3 == 0)
s += i;
}
printf("%d
", s);
return 0;
}
三、案例分析题
9. 以下程序的功能是:计算1到100中所有能被7整除的整数之和。请填空。
#include <stdio.h>
int main()
{
int i, s = 0;
for (【1】; i <= 100; 【2】)
{
if (【3】)
s += i;
}
printf("%d
", s);
return 0;
}
四、综合应用题
10. 编写一个C程序:输出所有的水仙花数。水仙花数是一个三位数,其各位数字的立方和等于该数本身。例如153=1*1*1+5*5*5+3*3*3。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《C语言》(第五版)《一课一练》第14练,内容是4.3 for循环语句。
《C语言》(第五版)一课一练 第14练
4.3 for循环语句
一、单选题
1. 以下关于for循环的叙述,正确的是( )
A. for循环的表达式1不可以包含多个操作
B. for循环的表达式2省略后循环不会执行
C. for循环的三个表达式都可以省略
D. for循环的三个表达式都不能省略
【答案】C
【解析】for循环的三个表达式都可以省略,但分号不能省略,C选项正确。表达式1可以是逗号表达式包含多个操作,A选项错误。表达式2省略后表示循环条件永远为真,形成无限循环,B选项错误。D选项与C选项矛盾,D选项错误。
2. 执行语句 for(i=1; i<=5; i++); 后,变量i的值是( )
A. i的值为6
B. i的值为4
C. i的值为5
D. i的值不确定
【答案】A
【解析】for循环i从1开始,每次加1,当i<=5时继续循环。i为1、2、3、4、5时条件满足,i变为6时6<=5为假退出。注意for后面有分号表示循环体为空语句。所以i的最终值为6。
3. 设 int i, s=0; 执行 for(i=1; i<=4; i++) s += i*i; 后s的值是( )
A. s的值为10
B. s的值为16
C. s的值为20
D. s的值为30
【答案】D
【解析】循环从i=1到i=4,每次将i的平方累加到s中。s的值为1+4+9+16=30。这是求1到4的平方和。所以s的最终值为30。
4. 以下for循环执行次数是
for(i=0; i<10; i+=3) printf("*");( )
A. 循环执行3次
B. 循环执行4次
C. 循环执行10次
D. 循环执行5次
【答案】B
【解析】i从0开始,每次加3。i的取值依次为0、3、6、9,均满足i<10。i变为12时12<10为假退出循环。循环执行了4次,输出4个星号。
5. 设 int i; 执行 for(i=10; i>0; i-=3) printf("%d ", i); 后的输出是( )
A. 输出10 7 4 1
B. 输出10 7 4
C. 输出9 6 3
D. 输出7 4 1 -2
【答案】A
【解析】i从10开始,每次减3。i依次为10、7、4、1,均满足i>0。i变为-2时条件不满足退出循环。所以输出10 7 4 1。
6. 设 int i, s=0; 执行以下代码后s的值是
for(i=1; i<=5; i++)
if(i%2) s += i;( )
A. s的值为15
B. s的值为6
C. s的值为9
D. s的值为4
【答案】C
【解析】循环从i=1到i=5,当i为奇数时累加到s。i%2为1时表示i为奇数,1、3、5为奇数,累加结果为9。i为偶数时不执行累加操作。所以s的值为9。
7. 设 int i, j, s=0; 执行以下代码后s的值是
for(i=1; i<=3; i++)
for(j=1; j<=3; j++)
s++;( )
A. s的值为6
B. s的值为3
C. s的值为12
D. s的值为9
【答案】D
【解析】外层循环i从1到3执行3次,内层循环j从1到3执行3次。每次内层循环s自增1,内层循环执行3次s增加3。外层循环执行3次,s总共增加3*3=9。所以s的值为9。
二、简答题
8. 以下程序的运行结果是【 】。
#include <stdio.h>
int main()
{
int i, s = 0;
for (i = 1; i <= 20; i++)
{
if (i % 3 == 0)
s += i;
}
printf("%d
", s);
return 0;
}
【答案】63
【解析】循环从i=1到i=20,当i是3的倍数时累加到s。3的倍数有3、6、9、12、15、18,累加结果为63。程序的功能是求1到20中所有3的倍数之和。
三、案例分析题
9. 以下程序的功能是:计算1到100中所有能被7整除的整数之和。请填空。
#include <stdio.h>
int main()
{
int i, s = 0;
for (【1】; i <= 100; 【2】)
{
if (【3】)
s += i;
}
printf("%d
", s);
return 0;
}
【答案】【1】i = 1
【2】i++
【3】i % 7 == 0
【解析】for循环需要初始化循环变量i为1,填i=1。循环变量每次加1,填i++。判断i能否被7整除用i%7==0,填i%7==0。循环从1遍历到100,将所有能被7整除的数累加到s中。
四、综合应用题
10. 编写一个C程序:输出所有的水仙花数。水仙花数是一个三位数,其各位数字的立方和等于该数本身。例如153=1*1*1+5*5*5+3*3*3。
【答案】#include <stdio.h>
int main()
{
int i, a, b, c;
for (i = 100; i <= 999; i++)
{
a = i / 100;
b = i / 10 % 10;
c = i % 10;
if (a*a*a + b*b*b + c*c*c == i)
printf("%d ", i);
}
return 0;
}
【解析】水仙花数是一个三位数,其各位数字的立方和等于该数本身。程序遍历100到999的所有三位数,分别求出百位a、十位b、个位c,判断a*a*a+b*b*b+c*c*c是否等于i。若相等则输出该数。水仙花数有153、370、371、407。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$