内容正文:
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《编程语言基础——C语言》(第5版)《一课一练》第13练,内容是4.3 for循环、4.4 多重循环。
《编程语言基础——C语言》(第5版)一课一练 第13练
4.3 for循环、4.4 多重循环
一、单选题
1. 以下选项中,for语句的正确格式是( )
A. for(表达式1; 表达式2; 表达式3) { 语句; }
B. for(表达式1, 表达式2, 表达式3) { 语句; }
C. for { 语句; } (表达式1; 表达式2; 表达式3)
D. for[表达式1; 表达式2; 表达式3] { 语句; }
2. for(表达式1; 表达式2; 表达式3)语句的执行过程是( )
A. 先执行表达式3,判断表达式2,执行语句,执行表达式1
B. 先执行表达式1,判断表达式2,执行语句,执行表达式3
C. 先判断表达式2,执行表达式1,执行语句,执行表达式3
D. 先执行表达式1,执行语句,判断表达式2,执行表达式3
3. 以下关于for语句中表达式省略的说法,正确的是( )
A. for语句的三个表达式必须全部书写,缺一不可
B. 省略表达式2时,循环条件视为0,循环不会执行
C. for语句的三个表达式可以全部省略,即for(;;)构成无限循环
D. for语句可以省略表达式1和表达式3,但表达式2不能省略
4. 以下for语句中,正确使用逗号表达式同时初始化两个变量的是( )
A. for(i=1, j=10; i<=j; i++, j--)
B. for(i=1; j=10, i<=j; i++, j--)
C. for(i=1, j=10, i<=j, i++, j--)
D. for(i=1; j=10; i<=j; i++, j--)
5. 关于for循环与while循环的适用场景,以下说法正确的是( )
A. for循环用于循环次数不明确的情况,while用于次数明确的情况
B. for循环一般用于循环次数明确的情况,while用于次数难判定的情况
C. for循环和while循环的适用场景没有区别,可以任意替换
D. for循环的功能比while循环弱,因此在实际编程中较少使用
6. 关于循环嵌套的描述,以下说法正确的是( )
A. 不同类型的循环结构(如while和for)之间不能相互嵌套
B. 在循环嵌套中,内层循环的循环体可以包含外层循环的结构
C. while、do-while、for三种循环结构可以相互嵌套和自由组合
D. 循环嵌套中内层循环不能包含分支结构
7. 有以下程序段:
int i, j, s = 0;
for(i = 1; i <= 3; i++)
for(j = 1; j <= 2; j++)
s++;
printf("%d", s);
程序运行后输出结果是( )
A. 3
B. 2
C. 5
D. 6
二、程序运行结果题
8. 以下程序的运行结果是【··】。
#include <stdio.h>
main()
{
int i, s = 0;
for(i = 1; i <= 10; i += 2)
s = s + i;
printf("%d", s);
}
三、程序填空题
9. 以下程序的功能是:输入一个正整数n,计算1²+2²+...+n²的平方和。请填空。
#include <stdio.h>
main()
{
int n, i;
long sum = 0;
scanf("%d", &n);
for(i = 1; 【1】; i++)
sum = sum + i * i;
printf("平方和:%ld", sum);
}
四、阅读程序改错题
10. 阅读以下程序,该程序的功能是打印如下图案:
*
**
***
****
程序中有2处错误,请指出错误所在行号并修改正确,不许增删行,在原行上修改。
L1 #include <stdio.h>
L2 main()
L3 {
L4 int i, j;
L5 for(i = 1; i <= 4; i++);
L6 {
L7 for(j = 1; j <= i; j++)
L8 printf("*")
L9 printf("
");
L10 }
L11 }
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
【编写说明】依托三阶支架资源编写方案,《一课一练》明确基础层具象化支架定位,作为课堂同步配套资源,其内容与课堂教学深度绑定,并且精准匹配中职学生知识基础与学习特质,遵循“由浅入深、循序渐进”的认知规律,聚焦基础性与实效性核心,通过拆解知识点、简化认知难度,切实降低学习门槛,为后续知识巩固与能力提升筑牢根基,是优质课后作业首选。
本卷是《编程语言基础——C语言》(第5版)《一课一练》第13练,内容是4.3 for循环、4.4 多重循环。
《编程语言基础——C语言》(第5版)一课一练 第13练
4.3 for循环、4.4 多重循环
一、单选题
1. 以下选项中,for语句的正确格式是( )
A. for(表达式1; 表达式2; 表达式3) { 语句; }
B. for(表达式1, 表达式2, 表达式3) { 语句; }
C. for { 语句; } (表达式1; 表达式2; 表达式3)
D. for[表达式1; 表达式2; 表达式3] { 语句; }
【答案】A
【解析】for语句的标准格式为for(表达式1; 表达式2; 表达式3){语句;}。三个表达式之间用分号分隔,不能使用逗号替代分号。
2. for(表达式1; 表达式2; 表达式3)语句的执行过程是( )
A. 先执行表达式3,判断表达式2,执行语句,执行表达式1
B. 先执行表达式1,判断表达式2,执行语句,执行表达式3
C. 先判断表达式2,执行表达式1,执行语句,执行表达式3
D. 先执行表达式1,执行语句,判断表达式2,执行表达式3
【答案】B
【解析】for循环的标准执行顺序为:①执行表达式1(初始化,执行一次);②判断表达式2(循环条件);③若条件为真,执行循环体语句;④执行表达式3(循环变量调整);⑤返回②继续判断。
3. 以下关于for语句中表达式省略的说法,正确的是( )
A. for语句的三个表达式必须全部书写,缺一不可
B. 省略表达式2时,循环条件视为0,循环不会执行
C. for语句的三个表达式可以全部省略,即for(;;)构成无限循环
D. for语句可以省略表达式1和表达式3,但表达式2不能省略
【答案】C
【解析】for语句的三个表达式均可省略,但两个分号不能省略。for(;;)构成无限循环。表达式1省略时不执行初始化;表达式2省略时循环条件恒为真;表达式3省略时不在循环末尾自动调整。
4. 以下for语句中,正确使用逗号表达式同时初始化两个变量的是( )
A. for(i=1, j=10; i<=j; i++, j--)
B. for(i=1; j=10, i<=j; i++, j--)
C. for(i=1, j=10, i<=j, i++, j--)
D. for(i=1; j=10; i<=j; i++, j--)
【答案】A
【解析】for语句的表达式1和表达式3可以是逗号表达式。选项A中表达式1使用逗号表达式同时为i和j赋初值,格式正确。选项B和D将第二个变量初始化错误地放在表达式2位置,选项C完全用逗号替代了分号。
5. 关于for循环与while循环的适用场景,以下说法正确的是( )
A. for循环用于循环次数不明确的情况,while用于次数明确的情况
B. for循环一般用于循环次数明确的情况,while用于次数难判定的情况
C. for循环和while循环的适用场景没有区别,可以任意替换
D. for循环的功能比while循环弱,因此在实际编程中较少使用
【答案】B
【解析】for循环将初始化、条件判断和变量更新集中在一起,适合循环次数明确的情况;while和do-while循环则更灵活,适合循环次数难以预先判定的情况(如输入不定个数数据直到满足某条件为止)。
6. 关于循环嵌套的描述,以下说法正确的是( )
A. 不同类型的循环结构(如while和for)之间不能相互嵌套
B. 在循环嵌套中,内层循环的循环体可以包含外层循环的结构
C. while、do-while、for三种循环结构可以相互嵌套和自由组合
D. 循环嵌套中内层循环不能包含分支结构
【答案】C
【解析】while、do-while、for三种循环结构可以相互嵌套、自由组合。内层循环必须完全包含在外层循环的循环体内,不能交叉。此外,循环嵌套中内层循环可以包含分支结构(如if、switch等)。
7. 有以下程序段:
int i, j, s = 0;
for(i = 1; i <= 3; i++)
for(j = 1; j <= 2; j++)
s++;
printf("%d", s);
程序运行后输出结果是( )
A. 3
B. 2
C. 5
D. 6
【答案】D
【解析】外层循环i从1到3共执行3次;外层每执行一次,内层循环j从1到2执行2次,故循环体s++共计执行3×2=6次,s的最终值为6。
二、程序运行结果题
8. 以下程序的运行结果是【··】。
#include <stdio.h>
main()
{
int i, s = 0;
for(i = 1; i <= 10; i += 2)
s = s + i;
printf("%d", s);
}
【答案】25
【解析】循环变量i从1开始,每次递增2(i+=2),当i<=10时执行。因此i依次取1、3、5、7、9,累加到s中:1+3+5+7+9=25。当i=11时条件为假,循环结束。
三、程序填空题
9. 以下程序的功能是:输入一个正整数n,计算1²+2²+...+n²的平方和。请填空。
#include <stdio.h>
main()
{
int n, i;
long sum = 0;
scanf("%d", &n);
for(i = 1; 【1】; i++)
sum = sum + i * i;
printf("平方和:%ld", sum);
}
【答案】【1】i <= n
【解析】程序使用for循环计算1到n的平方和。循环条件应为i<=n,表示当i不超过n时继续累加i*i。for语句的表达式1(i=1)赋初值,表达式3(i++)每次递增。
四、阅读程序改错题
10. 阅读以下程序,该程序的功能是打印如下图案:
*
**
***
****
程序中有2处错误,请指出错误所在行号并修改正确,不许增删行,在原行上修改。
L1 #include <stdio.h>
L2 main()
L3 {
L4 int i, j;
L5 for(i = 1; i <= 4; i++);
L6 {
L7 for(j = 1; j <= i; j++)
L8 printf("*")
L9 printf("
");
L10 }
L11 }
【答案】【1】L5: for(i = 1; i <= 4; i++); → 修改为 for(i = 1; i <= 4; i++)(去除多余分号,分号形成了空循环体)
【2】L8: printf("*") → 修改为 printf("*");(末尾缺少分号,属于语法错误)
【解析】错误1:外层for(i=1;i<=4;i++); 末尾的分号形成了空循环体,导致循环执行4次空操作后才进入下面的花括号块(此时i已为5)。错误2:printf("*")语句末尾缺少分号,属于语法错误。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$