内容正文:
编写说明:吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。
本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第14卷,是知识点训练卷。按“C语言程序设计”考试纲要(四)循环程序设计的两点知识点要求编写,其两点要求是:
1.掌握for、while、do-while 循环及嵌套。
2.理解中止语句break,继续语句continue。
吉林省《信息工程类(电子与信息类)考纲百套卷》 第14卷
《C语言程序设计》
(四)循环程序设计-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、选择题(本大题共10小题,每小题2分,共20分)
1.若要实现 1 到 100 的整数求和,以下 for 循环正确的是( )
A.
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
B.
int sum = 0;
for (int i = 1; i < 100; i++) {
sum += i;
}
C.
int sum = 0;
for (int i = 0; i <= 100; i++) {
sum += i;
}
D.
int sum = 0;
for (int i = 0; i < 100; i++) {
sum += i;
}
答案:A
2.以下代码段的输出结果是( )
for (int i = 0; i < 5; i++) {
if (i == 3) {
break;
}
printf("%d ", i);
}
A. 0 1 2 3
B. 0 1 2
C. 0 1 2 3 4
D. 无输出
答案:B
3.以下 for 循环的条件判断部分为 i < 10,若要使循环体执行 5 次,初始化部分和迭代部分可以是( )
A. 初始化 i = 5,迭代 i++
B. 初始化 i = 0,迭代 i += 2
C. 初始化 i = 1,迭代 i *= 2
D. 以上都可以
答案:B
4. 以下代码段的输出结果是( )
int i = 0;
do {
if (i % 2 == 0) {
printf("%d ", i);
}
i++;
} while (i < 5);
A. 0 2 4
B. 0 1 2 3 4
C. 1 3
D. 无输出
答案:A
5. 以下代码段的输出结果是( )
int i = 5;
while (i > 0) {
if (i == 3) {
i--;
continue;
}
printf("%d ", i);
i--;
}
A. 5 4 3 2 1
B. 5 4 2 1
C. 5 4
D. 无输出
答案:B
6. 以下代码段的输出结果是( )
int i = 0;
while (i < 5) {
if (i % 2 == 1) {
i++;
continue;
}
printf("%d ", i);
i++;
}
A. 0 2 4
B. 1 3
C. 0 1 2 3 4
D. 无输出
答案:A
7. 以下 do-while 循环用于将一个整数逆序输出,横线处应填的代码是( )
int num, digit;
scanf("%d", &num);
do {
digit = num % 10;
printf("%d", digit);
num /= 10;
} while (______);
A. num > 0
B. num >= 0
C. num != 0
D. num < 0
答案:C
8. 下面嵌套 while 循环中,外层循环执行次数和内层循环总执行次数分别是( )
int i = 0, j;
while (i < 4) {
j = 0;
while (j < i) {
// 内层循环体
j++;
}
i++;
}
A. 4 次和 6 次
B. 3 次和 3 次
C. 4 次和 10 次
D. 3 次和 6 次
答案:A
9. 以下 while 循环代码的输出结果是( )
int x = 10;
while (x > 7) {
if (x % 2 == 0) {
x -= 2;
continue;
}
printf("%d ", x);
x--;
}
A. 10
B. 10 9
C. 9
D. 无输出
答案:C
10.以下关于 break 和 continue 的区别,说法正确的是( )
A. break 和 continue 都用于终止整个循环
B. break 用于跳过当前循环的剩余部分,continue 用于终止当前所在的最内层循环或 switch 语句
C. break 用于终止当前所在的最内层循环或 switch 语句,continue 用于跳过当前循环的剩余部分
D. break 和 continue 在循环中的作用是一样的
答案:C
二、判断题(本大题共10小题,每小题2分,共20分)
1.continue 语句在 for 循环中会跳过本次循环的剩余部分,直接进入下一次循环。( )
答案:正确
2.若 for 循环的初始化部分、条件判断部分和迭代部分都省略,循环体将不会执行。( )
答案:错误
3. 在嵌套 for 循环中,使用 break 语句只能跳出当前所在的内层循环,不能跳出外层循环。( )
答案:正确
4. 以下代码中,while 循环是无限循环:
int i = 1;
while (i = 1) {
// 循环体
i++;
}
答案:正确
5. 可以在 while 循环的循环体中修改循环条件所依赖的变量,从而控制循环的执行次数。
答案:正确
6. 在嵌套的 while 循环中,内层 while 循环执行结束后,外层 while 循环的循环条件会不会重新判断。
答案:错误
7. 在嵌套的 while 循环中,内层循环的执行次数只与内层循环的条件有关,与外层循环无关。
答案:错误
8.在 for 循环中,break 语句执行后,循环会立即终止,程序将继续执行循环后面的语句。
答案:正确
9.在 do - while 循环中,continue 语句会终止整个循环。
答案:错误
10.若 for 循环的条件表达式始终为真,使用 break 语句也无法终止该循环。
答案:错误
三、填空题(本大题共5小题,每题2分,共10分)
1. 以下代码用于输出一个由数字组成的直角三角形,横线处应填的代码是 ______。
for(int i = 1; i <= 5; i++) {
for(int j = 1; j <= ______; j++) {
printf("%d ", j);
}
printf("
");
}
答案:i
2. 若要使用 for 循环输出 10 个连续的字符 @,初始化部分应填 ______,条件判断部分应填 ______,迭代部分应填 ______。
for(______; ______; ______) {
printf("@");
}
答案:int i = 0;i < 10;i++
3. 以下嵌套 while 循环用于输出一个直角三角形图案,横线处应填的代码是 ______。
int i = 1, j;
while (i <= 5) {
j = 1;
while (j <= ______) {
printf("*");
j++;
}
printf("
");
i++;
}
答案:i
4. 以下嵌套 while 循环中,内层循环体执行的总次数是 ______。
int i = 0, j;
while (i < 4) {
j = 0;
while (j < i + 1) {
// 内层循环体
j++;
}
i++;
}
答案:10
5.在 switch 语句中,若要防止代码 “穿透”,需要在每个 case 分支末尾添加 ____________ 语句。
答案:break
四、读程序写结果题(本大题共5小题,每题5分,共25分)
1.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 2; i++) {
for (j = 1; j <= 2; j++) {
if (i == j) {
continue;
}
printf("%d %d
", i, j);
}
}
return 0;
}
答案:
1 2
2 1
2.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 0;
while (1) {
if (i == 3) {
i++;
continue;
}
if (i == 5) {
break;
}
printf("%d ", i);
i++;
}
return 0;
}
答案:0 1 2 4
3.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i;
for (i = 0; i < 5; i++) {
if (i % 3 == 0) {
printf("%d ", i);
continue;
}
if (i == 4) {
break;
}
}
return 0;
}
答案:0 3
4.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 1;
do {
if (i % 3 == 0) {
i++;
continue;
}
if (i == 5) {
break;
}
printf("%d ", i);
i++;
} while (1);
return 0;
}
答案:1 2 4
5.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 0;
while (i < 6) {
if (i % 3 == 0) {
if (i == 3) {
i++;
continue;
}
i += 2;
if (i == 4) {
break;
}
continue;
}
printf("%d ", i);
i++;
}
return 0;
}
答案:1 2
五、编程题(本大题共5小题,每题5分,共25分)
1. 编写一个程序,使用嵌套 for 循环输出如下图案:
*
**
***
****
*****
#include <stdio.h>
int main() {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i; j++) {
printf("*");
}
printf("
");
}
return 0;
}
2. 编写一个程序,使用 for 循环计算 5 的阶乘。
#include <stdio.h>
int main() {
int factorial = 1;
for (int i = 1; i <= 5; i++) {
factorial *= i;
}
printf("5 的阶乘为: %d
", factorial);
return 0;
}
3. 编写一个程序,使用 while 循环计算斐波那契数列的前 10 项。
#include <stdio.h>
int main() {
int a = 0, b = 1, c;
int count = 0;
while (count < 10) {
printf("%d ", a);
c = a + b;
a = b;
b = c;
count++;
}
printf("
");
return 0;
}
4. 编写一个程序,使用 do - while 循环找出用户输入的一组整数中的最大值。
#include <stdio.h>
int main() {
int num, max;
int first = 1;
do {
printf("请输入一个整数(输入 0 结束): ");
scanf("%d", &num);
if (first) {
max = num;
first = 0;
} else if (num != 0 && num > max) {
max = num;
}
} while (num != 0);
if (!first) {
printf("输入的整数中的最大值为: %d
", max);
} else {
printf("没有输入有效整数。
");
}
return 0;
}
5. 编写一个程序,使用 for 循环找出 1 到 50 之间所有能同时被 3 和 5 整除的数,并输出这些数的和。
#include <stdio.h>
int main() {
int sum = 0;
for (int i = 1; i <= 50; i++) {
if (i % 3 == 0 && i % 5 == 0) {
sum += i;
}
}
printf("1 到 50 之间能同时被 3 和 5 整除的数的和是: %d
", sum);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。
本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第14卷,是知识点训练卷。按“C语言程序设计”考试纲要(四)循环程序设计的两点知识点要求编写,其两点要求是:
1.掌握for、while、do-while 循环及嵌套。
2.理解中止语句break,继续语句continue。
吉林省《信息工程类(电子与信息类)考纲百套卷》 第14卷
《C语言程序设计》
(四)循环程序设计-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、选择题(本大题共10小题,每小题2分,共20分)
1.若要实现 1 到 100 的整数求和,以下 for 循环正确的是( )
A.
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
B.
int sum = 0;
for (int i = 1; i < 100; i++) {
sum += i;
}
C.
int sum = 0;
for (int i = 0; i <= 100; i++) {
sum += i;
}
D.
int sum = 0;
for (int i = 0; i < 100; i++) {
sum += i;
}
2.以下代码段的输出结果是( )
for (int i = 0; i < 5; i++) {
if (i == 3) {
break;
}
printf("%d ", i);
}
A. 0 1 2 3
B. 0 1 2
C. 0 1 2 3 4
D. 无输出
3.以下 for 循环的条件判断部分为 i < 10,若要使循环体执行 5 次,初始化部分和迭代部分可以是( )
A. 初始化 i = 5,迭代 i++
B. 初始化 i = 0,迭代 i += 2
C. 初始化 i = 1,迭代 i *= 2
D. 以上都可以
4. 以下代码段的输出结果是( )
int i = 0;
do {
if (i % 2 == 0) {
printf("%d ", i);
}
i++;
} while (i < 5);
A. 0 2 4
B. 0 1 2 3 4
C. 1 3
D. 无输出
5. 以下代码段的输出结果是( )
int i = 5;
while (i > 0) {
if (i == 3) {
i--;
continue;
}
printf("%d ", i);
i--;
}
A. 5 4 3 2 1
B. 5 4 2 1
C. 5 4
D. 无输出
6. 以下代码段的输出结果是( )
int i = 0;
while (i < 5) {
if (i % 2 == 1) {
i++;
continue;
}
printf("%d ", i);
i++;
}
A. 0 2 4
B. 1 3
C. 0 1 2 3 4
D. 无输出
7. 以下 do-while 循环用于将一个整数逆序输出,横线处应填的代码是( )
int num, digit;
scanf("%d", &num);
do {
digit = num % 10;
printf("%d", digit);
num /= 10;
} while (______);
A. num > 0
B. num >= 0
C. num != 0
D. num < 0
8. 下面嵌套 while 循环中,外层循环执行次数和内层循环总执行次数分别是( )
int i = 0, j;
while (i < 4) {
j = 0;
while (j < i) {
// 内层循环体
j++;
}
i++;
}
A. 4 次和 6 次
B. 3 次和 3 次
C. 4 次和 10 次
D. 3 次和 6 次
9. 以下 while 循环代码的输出结果是( )
int x = 10;
while (x > 7) {
if (x % 2 == 0) {
x -= 2;
continue;
}
printf("%d ", x);
x--;
}
A. 10
B. 10 9
C. 9
D. 无输出
10.以下关于 break 和 continue 的区别,说法正确的是( )
A. break 和 continue 都用于终止整个循环
B. break 用于跳过当前循环的剩余部分,continue 用于终止当前所在的最内层循环或 switch 语句
C. break 用于终止当前所在的最内层循环或 switch 语句,continue 用于跳过当前循环的剩余部分
D. break 和 continue 在循环中的作用是一样的
二、判断题(本大题共10小题,每小题2分,共20分)
1.continue 语句在 for 循环中会跳过本次循环的剩余部分,直接进入下一次循环。( )
2.若 for 循环的初始化部分、条件判断部分和迭代部分都省略,循环体将不会执行。( )
3. 在嵌套 for 循环中,使用 break 语句只能跳出当前所在的内层循环,不能跳出外层循环。( )
4. 以下代码中,while 循环是无限循环:
int i = 1;
while (i = 1) {
// 循环体
i++;
}
5. 可以在 while 循环的循环体中修改循环条件所依赖的变量,从而控制循环的执行次数。
6. 在嵌套的 while 循环中,内层 while 循环执行结束后,外层 while 循环的循环条件会不会重新判断。
7. 在嵌套的 while 循环中,内层循环的执行次数只与内层循环的条件有关,与外层循环无关。
8.在 for 循环中,break 语句执行后,循环会立即终止,程序将继续执行循环后面的语句。
9.在 do - while 循环中,continue 语句会终止整个循环。
10.若 for 循环的条件表达式始终为真,使用 break 语句也无法终止该循环。
三、填空题(本大题共5小题,每题2分,共10分)
1. 以下代码用于输出一个由数字组成的直角三角形,横线处应填的代码是 ______。
for(int i = 1; i <= 5; i++) {
for(int j = 1; j <= ______; j++) {
printf("%d ", j);
}
printf("
");
}
2. 若要使用 for 循环输出 10 个连续的字符 @,初始化部分应填 ______,条件判断部分应填 ______,迭代部分应填 ______。
for(______; ______; ______) {
printf("@");
}
3. 以下嵌套 while 循环用于输出一个直角三角形图案,横线处应填的代码是 ______。
int i = 1, j;
while (i <= 5) {
j = 1;
while (j <= ______) {
printf("*");
j++;
}
printf("
");
i++;
}
4. 以下嵌套 while 循环中,内层循环体执行的总次数是 ______。
int i = 0, j;
while (i < 4) {
j = 0;
while (j < i + 1) {
// 内层循环体
j++;
}
i++;
}
5.在 switch 语句中,若要防止代码 “穿透”,需要在每个 case 分支末尾添加 ____________ 语句。
四、读程序写结果题(本大题共5小题,每题5分,共25分)
1.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 2; i++) {
for (j = 1; j <= 2; j++) {
if (i == j) {
continue;
}
printf("%d %d
", i, j);
}
}
return 0;
}
2.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 0;
while (1) {
if (i == 3) {
i++;
continue;
}
if (i == 5) {
break;
}
printf("%d ", i);
i++;
}
return 0;
}
3.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i;
for (i = 0; i < 5; i++) {
if (i % 3 == 0) {
printf("%d ", i);
continue;
}
if (i == 4) {
break;
}
}
return 0;
}
4.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 1;
do {
if (i % 3 == 0) {
i++;
continue;
}
if (i == 5) {
break;
}
printf("%d ", i);
i++;
} while (1);
return 0;
}
5.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 0;
while (i < 6) {
if (i % 3 == 0) {
if (i == 3) {
i++;
continue;
}
i += 2;
if (i == 4) {
break;
}
continue;
}
printf("%d ", i);
i++;
}
return 0;
}
五、编程题(本大题共5小题,每题5分,共25分)
1. 编写一个程序,使用嵌套 for 循环输出如下图案:
*
**
***
****
*****
2. 编写一个程序,使用 for 循环计算 5 的阶乘。
3. 编写一个程序,使用 while 循环计算斐波那契数列的前 10 项。
4. 编写一个程序,使用 do - while 循环找出用户输入的一组整数中的最大值。
5. 编写一个程序,使用 for 循环找出 1 到 50 之间所有能同时被 3 和 5 整除的数,并输出这些数的和。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$