内容正文:
编写说明:吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。
本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第12卷,是知识点训练卷。按“C语言程序设计”考试纲要(四)循环程序设计的两点知识点要求编写,其两点要求是:
1.掌握for、while、do-while 循环及嵌套。
2.理解中止语句break,继续语句continue。
吉林省《信息工程类(电子与信息类)考纲百套卷》 第12卷
《C语言程序设计》
(四)循环程序设计-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、选择题(本大题共10小题,每小题2分,共20分)
1.以下 for 循环的执行次数是( )
for (int i = 10; i > 0; i -= 2) {
// 循环体
}
A. 5 次
B. 6 次
C. 10 次
D. 无限次
2.以下代码段的输出结果是( )
c
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >= i; j--) {
printf(" ");
}
for (int k = 1; k <= i; k++) {
printf("*");
}
printf("
");
}
A.
*
**
***
****
*****
B.
*****
****
***
**
*
C.
*
**
***
****
*****
D.
*****
****
***
**
*
3. 以下代码实现了计算从 1 到 n 中所有能被 3 或 5 整除的数的和,横线处应填入的代码是( )
int n, sum = 0;
scanf("%d", &n);
for(int i = 1; i <= n; i++) {
if(______) {
sum += i;
}
}
printf("%d
", sum);
A. i % 3 == 0 && i % 5 == 0
B. i % 3 == 0 || i % 5 == 0
C. i % 3 != 0 && i % 5 != 0
D. i % 3 != 0 || i % 5 != 0
4. 以下 do-while 循环的执行次数是( )
int i = 3;
do {
i--;
} while (i > 0);
A. 0 次
B. 1 次
C. 2 次
D. 3 次
5. 若要实现 1 到 100 的整数求和,以下 while 循环正确的是( )
A.
int sum = 0, i = 1;
while (i <= 100) {
sum += i;
i++;
}
B.
int sum = 0, i = 1;
while (i < 100) {
sum += i;
i++;
}
C.
int sum = 0, i = 0;
while (i <= 100) {
sum += i;
i++;
}
D.
int sum = 0, i = 0;
while (i < 100) {
sum += i;
i++;
}
6. 以下 do-while 循环中,循环体执行的次数是( )
int i = 10;
do {
i -= 3;
} while (i > 0);
A. 2 次
B. 3 次
C. 4 次
D. 5 次
7. 以下嵌套 while 循环用于输出一个等腰三角形,横线处应填的代码是( )
int i = 1, j, k;
while (i <= 5) {
j = 1;
while (j <= 5 - i) {
printf(" ");
j++;
}
k = 1;
while (k <= ______) {
printf("*");
k++;
}
printf("
");
i++;
}
A. 2 * i - 1
B. 2 * (5 - i) - 1
C. 2 * i + 1
D. 2 * (5 - i) + 1
8. 要使用 while 循环计算 1 + 3 + 5 + ... + 99 的和,以下代码正确的是( )
A.
int sum = 0, i = 1;
while (i < 100) {
sum += i;
i += 2;
}
B.
int sum = 0, i = 1;
while (i <= 100) {
sum += i;
i++;
}
C.
int sum = 0, i = 0;
while (i < 100) {
sum += i;
i += 2;
}
D.
int sum = 0, i = 0;
while (i <= 100) {
sum += i;
i++;
}
9.continue 语句在循环中的作用是( )
A. 终止整个循环
B. 终止当前所在的最内层循环或 switch 语句
C. 跳过当前循环的剩余部分,直接进入下一次循环
D. 跳出 switch 语句
10.以下代码的输出结果是( )
#include <stdio.h>
int main() {
for (int i = 1; i <= 5; i++) {
if (i % 2 == 0) continue;
printf("%d ", i);
}
return 0;
}
A. 1 2 3 4 5
B. 1 3 5
C. 2 4
D. 1 2 4
二、判断题(本大题共10小题,每小题2分,共20分)
1.在嵌套 for 循环中,内层循环会在外层循环的每次迭代中完整执行。( )
2.可以在 for 循环的迭代部分使用 break 语句。( )
3. 当 for 循环的迭代部分包含多个语句时,必须用花括号将这些语句括起来。( )
4.do - while 循环至少会执行一次循环体,无论循环条件是否为真。
5. 嵌套的 do - while 循环中,内层 do - while 循环结束后,会继续执行外层 do - while 循环的循环体剩余部分。
6. 在 do - while 循环中使用 continue 语句,会直接结束整个 do - while 循环。
7. 以下 do - while 循环用于判断一个数是否为正数,若输入 -5,循环体会执行一次:
int num;
scanf("%d", &num);
do {
if (num > 0) {
printf("是正数
");
} else {
printf("不是正数
");
}
} while (num > 0);
8.continue 语句在 switch 语句中也能使用。
9.在多层嵌套循环中,break 语句只能终止最内层的循环。
10.若 for 循环的条件表达式始终为真,使用 break 语句也无法终止该循环。
三、填空题(本大题共5小题,每题2分,共10分)
1. 以下嵌套 for 循环用于输出一个下三角矩阵的元素(矩阵元素初始化为 1 到 n * n),横线处应填的代码是 ______。
int n;
scanf("%d", &n);
int matrix[n][n];
int count = 1;
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
matrix[i][j] = count++;
}
}
for(int i = 0; i < n; i++) {
for(int j = 0; j <= ______; j++) {
printf("%d ", matrix[i][j]);
}
printf("
");
}
2. 以下代码用于计算 3 的 1 到 8 次幂的和,横线处应填的代码是 ______。
int sum = 0;
for(int i = 1; i <= 8; i++) {
int power = 1;
for(int j = 1; j <= i; j++) {
power *= ______;
}
sum += power;
}
3. 以下代码用于输出一个数字金字塔,横线处应填入的代码是______
int n;
scanf("%d", &n);
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n - i; j++) {
printf(" ");
}
for(int k = 1; k <= 2 * i - 1; k++) {
printf("%d", ______);
}
printf("
");
}
4. 以下 while 循环用于计算斐波那契数列的前 10 项,横线处应填的代码是 ______。
int a = 0, b = 1, c, i = 0;
while (i < 10) {
printf("%d ", a);
c = a + b;
a = b;
b = ______;
i++;
}
5.continue 关键字用于______当前循环体中剩余的语句,直接进入下一次循环的判断。
四、读程序写结果题(本大题共5小题,每题5分,共25分)
1.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 0;
while (i < 5) {
if (i == 2) {
i++;
continue;
}
printf("%d ", i);
i++;
}
return 0;
}
2.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 1;
do {
if (i == 4) {
break;
}
printf("%d ", i);
i++;
} while (i <= 5);
return 0;
}
3.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 2; i++) {
for (j = 1; j <= 3; j++) {
if (i == 1 && j == 2) {
continue;
}
printf("%d %d
", i, j);
}
}
return 0;
}
4.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 0;
while (i < 5) {
if (i % 2 == 0) {
i++;
continue;
}
printf("%d ", i);
i++;
}
return 0;
}
5.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 5; i++) {
if (i < 3) {
continue;
}
if (i == 4) {
break;
}
printf("%d ", i);
}
return 0;
}
五、编程题(本大题共5小题,每题5分,共25分)
1. 编写一个程序,使用 while 循环输出 1 到 20 之间所有能被 5 整除的数。
2. 编写一个程序,使用 do - while 循环计算一个整数的各位数字之和。
3. 编写一个程序,使用嵌套 for 循环输出如下图案:
*
***
*****
*******
*********
4. 编写一个程序,使用 for 循环输出 2 的 1 到 10 次幂。
#include <stdio.h>
int main() {
for (int i = 1; i <= 10; i++) {
int power = 1;
for (int j = 1; j <= i; j++) {
power *= 2;
}
printf("2 的 %d 次幂是: %d
", i, power);
}
return 0;
}
5. 编写一个程序,使用 do - while 循环计算用户输入的一系列正数的乘积,当输入负数时停止输入。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。
本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第12卷,是知识点训练卷。按“C语言程序设计”考试纲要(四)循环程序设计的两点知识点要求编写,其两点要求是:
1.掌握for、while、do-while 循环及嵌套。
2.理解中止语句break,继续语句continue。
吉林省《信息工程类(电子与信息类)考纲百套卷》 第12卷
《C语言程序设计》
(四)循环程序设计-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、选择题(本大题共10小题,每小题2分,共20分)
1.以下 for 循环的执行次数是( )
for (int i = 10; i > 0; i -= 2) {
// 循环体
}
A. 5 次
B. 6 次
C. 10 次
D. 无限次
答案:A
2.以下代码段的输出结果是( )
c
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >= i; j--) {
printf(" ");
}
for (int k = 1; k <= i; k++) {
printf("*");
}
printf("
");
}
A.
*
**
***
****
*****
B.
*****
****
***
**
*
C.
*
**
***
****
*****
D.
*****
****
***
**
*
答案:A
3. 以下代码实现了计算从 1 到 n 中所有能被 3 或 5 整除的数的和,横线处应填入的代码是( )
int n, sum = 0;
scanf("%d", &n);
for(int i = 1; i <= n; i++) {
if(______) {
sum += i;
}
}
printf("%d
", sum);
A. i % 3 == 0 && i % 5 == 0
B. i % 3 == 0 || i % 5 == 0
C. i % 3 != 0 && i % 5 != 0
D. i % 3 != 0 || i % 5 != 0
答案:B
4. 以下 do-while 循环的执行次数是( )
int i = 3;
do {
i--;
} while (i > 0);
A. 0 次
B. 1 次
C. 2 次
D. 3 次
答案:D
5. 若要实现 1 到 100 的整数求和,以下 while 循环正确的是( )
A.
int sum = 0, i = 1;
while (i <= 100) {
sum += i;
i++;
}
B.
int sum = 0, i = 1;
while (i < 100) {
sum += i;
i++;
}
C.
int sum = 0, i = 0;
while (i <= 100) {
sum += i;
i++;
}
D.
int sum = 0, i = 0;
while (i < 100) {
sum += i;
i++;
}
答案:A
6. 以下 do-while 循环中,循环体执行的次数是( )
int i = 10;
do {
i -= 3;
} while (i > 0);
A. 2 次
B. 3 次
C. 4 次
D. 5 次
答案:C
7. 以下嵌套 while 循环用于输出一个等腰三角形,横线处应填的代码是( )
int i = 1, j, k;
while (i <= 5) {
j = 1;
while (j <= 5 - i) {
printf(" ");
j++;
}
k = 1;
while (k <= ______) {
printf("*");
k++;
}
printf("
");
i++;
}
A. 2 * i - 1
B. 2 * (5 - i) - 1
C. 2 * i + 1
D. 2 * (5 - i) + 1
答案:A
8. 要使用 while 循环计算 1 + 3 + 5 + ... + 99 的和,以下代码正确的是( )
A.
int sum = 0, i = 1;
while (i < 100) {
sum += i;
i += 2;
}
B.
int sum = 0, i = 1;
while (i <= 100) {
sum += i;
i++;
}
C.
int sum = 0, i = 0;
while (i < 100) {
sum += i;
i += 2;
}
D.
int sum = 0, i = 0;
while (i <= 100) {
sum += i;
i++;
}
答案:A
9.continue 语句在循环中的作用是( )
A. 终止整个循环
B. 终止当前所在的最内层循环或 switch 语句
C. 跳过当前循环的剩余部分,直接进入下一次循环
D. 跳出 switch 语句
答案:C
10.以下代码的输出结果是( )
#include <stdio.h>
int main() {
for (int i = 1; i <= 5; i++) {
if (i % 2 == 0) continue;
printf("%d ", i);
}
return 0;
}
A. 1 2 3 4 5
B. 1 3 5
C. 2 4
D. 1 2 4
答案:B
二、判断题(本大题共10小题,每小题2分,共20分)
1.在嵌套 for 循环中,内层循环会在外层循环的每次迭代中完整执行。( )
答案:正确
2.可以在 for 循环的迭代部分使用 break 语句。( )
答案:错误
3. 当 for 循环的迭代部分包含多个语句时,必须用花括号将这些语句括起来。( )
答案:错误
4.do - while 循环至少会执行一次循环体,无论循环条件是否为真。
答案:正确
5. 嵌套的 do - while 循环中,内层 do - while 循环结束后,会继续执行外层 do - while 循环的循环体剩余部分。
答案:正确
6. 在 do - while 循环中使用 continue 语句,会直接结束整个 do - while 循环。
答案:错误
7. 以下 do - while 循环用于判断一个数是否为正数,若输入 -5,循环体会执行一次:
int num;
scanf("%d", &num);
do {
if (num > 0) {
printf("是正数
");
} else {
printf("不是正数
");
}
} while (num > 0);
答案:正确
8.continue 语句在 switch 语句中也能使用。
答案:错误
9.在多层嵌套循环中,break 语句只能终止最内层的循环。
答案:正确
10.若 for 循环的条件表达式始终为真,使用 break 语句也无法终止该循环。
答案:错误
三、填空题(本大题共5小题,每题2分,共10分)
1. 以下嵌套 for 循环用于输出一个下三角矩阵的元素(矩阵元素初始化为 1 到 n * n),横线处应填的代码是 ______。
int n;
scanf("%d", &n);
int matrix[n][n];
int count = 1;
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
matrix[i][j] = count++;
}
}
for(int i = 0; i < n; i++) {
for(int j = 0; j <= ______; j++) {
printf("%d ", matrix[i][j]);
}
printf("
");
}
答案:i
2. 以下代码用于计算 3 的 1 到 8 次幂的和,横线处应填的代码是 ______。
int sum = 0;
for(int i = 1; i <= 8; i++) {
int power = 1;
for(int j = 1; j <= i; j++) {
power *= ______;
}
sum += power;
}
答案:3
3. 以下代码用于输出一个数字金字塔,横线处应填入的代码是______
int n;
scanf("%d", &n);
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n - i; j++) {
printf(" ");
}
for(int k = 1; k <= 2 * i - 1; k++) {
printf("%d", ______);
}
printf("
");
}
答案:i
4. 以下 while 循环用于计算斐波那契数列的前 10 项,横线处应填的代码是 ______。
int a = 0, b = 1, c, i = 0;
while (i < 10) {
printf("%d ", a);
c = a + b;
a = b;
b = ______;
i++;
}
答案:c
5.continue 关键字用于______当前循环体中剩余的语句,直接进入下一次循环的判断。
答案:跳过
四、读程序写结果题(本大题共5小题,每题5分,共25分)
1.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 0;
while (i < 5) {
if (i == 2) {
i++;
continue;
}
printf("%d ", i);
i++;
}
return 0;
}
答案:0 1 3 4
2.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 1;
do {
if (i == 4) {
break;
}
printf("%d ", i);
i++;
} while (i <= 5);
return 0;
}
答案:1 2 3
3.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 2; i++) {
for (j = 1; j <= 3; j++) {
if (i == 1 && j == 2) {
continue;
}
printf("%d %d
", i, j);
}
}
return 0;
}
答案:
1 1
1 3
2 1
2 2
2 3
4.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 0;
while (i < 5) {
if (i % 2 == 0) {
i++;
continue;
}
printf("%d ", i);
i++;
}
return 0;
}
答案:1 3
5.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 5; i++) {
if (i < 3) {
continue;
}
if (i == 4) {
break;
}
printf("%d ", i);
}
return 0;
}
答案:3
五、编程题(本大题共5小题,每题5分,共25分)
1. 编写一个程序,使用 while 循环输出 1 到 20 之间所有能被 5 整除的数。
#include <stdio.h>
int main() {
int i = 1;
while (i <= 20) {
if (i % 5 == 0) {
printf("%d ", i);
}
i++;
}
printf("
");
return 0;
}
2. 编写一个程序,使用 do - while 循环计算一个整数的各位数字之和。
#include <stdio.h>
int main() {
int num, sum = 0;
printf("请输入一个整数: ");
scanf("%d", &num);
do {
sum += num % 10;
num /= 10;
} while (num != 0);
printf("各位数字之和为: %d
", sum);
return 0;
}
3. 编写一个程序,使用嵌套 for 循环输出如下图案:
*
***
*****
*******
*********
#include <stdio.h>
int main() {
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5 - i; j++) {
printf(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
printf("*");
}
printf("
");
}
return 0;
}
4. 编写一个程序,使用 for 循环输出 2 的 1 到 10 次幂。
#include <stdio.h>
int main() {
for (int i = 1; i <= 10; i++) {
int power = 1;
for (int j = 1; j <= i; j++) {
power *= 2;
}
printf("2 的 %d 次幂是: %d
", i, power);
}
return 0;
}
5. 编写一个程序,使用 do - while 循环计算用户输入的一系列正数的乘积,当输入负数时停止输入。
#include <stdio.h>
int main() {
int num;
long long product = 1;
do {
printf("请输入一个正数(输入负数停止): ");
scanf("%d", &num);
if (num > 0) {
product *= num;
}
} while (num >= 0);
printf("输入的正数的乘积是: %lld
", product);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$