内容正文:
编写说明:吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。
本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第15卷,是知识点训练卷。按“C语言程序设计”考试纲要(四)循环程序设计的两点知识点要求编写,其两点要求是:
1.掌握for、while、do-while 循环及嵌套。
2.理解中止语句break,继续语句continue。
吉林省《信息工程类(电子与信息类)考纲百套卷》 第15卷
《C语言程序设计》
(四)循环程序设计-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、选择题(本大题共10小题,每小题2分,共20分)
1.以下 for 循环中,循环体执行次数为 0 的是( )
A.
for (int i = 1; i > 10; i++) {
// 循环体
}
B.
for (int i = 10; i > 0; i++) {
// 循环体
}
C.
for (int i = 0; i < 10; i--) {
// 循环体
}
D. 以上都是
答案:D
2.以下嵌套 for 循环用于输出一个直角三角形,横线处应填( )
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= ____; j++) {
printf("*");
}
printf("
");
}
A. i
B. 5 - i
C. 5
D. i + 1
答案:A
3.以下嵌套 for 循环用于输出一个菱形,横线处应填( )
int n = 5;
for (int i = 1; i <= n; i++) {
for (int j = n; j > i; j--) {
printf(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
printf("*");
}
printf("
");
}
for (int i = n - 1; i >= 1; i--) {
for (int j = n; j > i; j--) {
printf(" ");
}
for (int k = 1; k <= ____; k++) {
printf("*");
}
printf("
");
}
A. 2 * (n - i) + 1
B. 2 * (n - i) - 1
C. 2 * i + 1
D. 2 * i - 1
答案:D
4.以下代码段的输出结果是( )
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i; j++) {
if (j == 3) {
break;
}
printf("%d ", j);
}
printf("
");
}
A.
1
1 2
1 2
1 2
1 2
B.
1
1 2
1 2 3
1 2 3
1 2 3
C.
1
1 2
1 2 3 4
1 2 3 4 5
D.
1 2 3 4 5
答案:A
5. 以下 do-while 循环用于判断一个整数是否为质数,横线处应填的代码是( )
int num, i = 2;
scanf("%d", &num);
do {
if (num % i == 0) {
break;
}
i++;
} while (______);
if (i == num) {
printf("%d 是质数
", num);
} else {
printf("%d 不是质数
", num);
}
A. i < num
B. i <= num
C. i < num / 2
D. i <= num / 2
答案:A
6. 以下嵌套 while 循环用于计算 1 到 5 的阶乘之和,横线处应填的代码是( )
int i = 1, j, fact, sum = 0;
while (i <= 5) {
j = 1;
fact = 1;
while (j <= i) {
fact *= j;
j++;
}
sum += ______;
i++;
}
printf("%d
", sum);
A. i
B. j
C. fact
D. sum
答案:C
7. 以下嵌套 while 循环中,内层循环体执行的总次数是( )
int i = 0, j;
while (i < 4) {
j = i;
while (j < 4) {
// 内层循环体
j++;
}
i++;
}
A. 4 次
B. 6 次
C. 10 次
D. 16 次
答案:C
8. 以下 while 循环代码的输出结果是( )
int a = 0;
while (a < 5) {
if (a == 3) {
a++;
continue;
}
printf("%d ", a++);
}
A. 0 1 2 4
B. 0 1 2 3 4
C. 0 1 2
D. 1 2 4
答案:A
9. 以下 do - while 循环用于判断用户输入的密码是否正确(正确密码为 1234),横线处应填的代码是( )
int password;
do {
printf("请输入密码: ");
scanf("%d", &password);
} while (______);
printf("密码正确,登录成功!
");
A.password < 1234
B. password == 1234
C. password > 1234
D. password != 1234
答案:D
10.在 do - while 循环中使用 continue 语句时,需要注意( )
A. 不能使用 continue 语句
B. 必须手动更新循环变量,否则可能导致无限循环
C. continue 语句会终止整个 do - while 循环
D. continue 语句只能在 do - while 循环的开头使用
答案:B
二、判断题(本大题共10小题,每小题2分,共20分)
1.break 语句在 for 循环中会跳出整个 for 循环。( )
答案:正确
2.for 循环的条件判断部分必须是关系表达式。( )
答案:错误
3. 可以通过修改 for 循环的迭代部分来改变循环的步长。( )
答案:正确
4. 以下 do - while 循环的功能是计算 1 到 10 的整数和:
int sum = 0, i = 1;
do {
sum += i;
i++;
} while (i <= 10);
答案:正确
5. 在 while 循环中使用 break 语句,会跳过本次循环的剩余部分,直接进入下一次循环。
答案:错误
6. 以下 while 循环会进入死循环:
int a = 5;
while (a < 10) {
// 循环体为空
}
答案:正确
7. 以下 while 循环代码中,循环体不会执行:
int flag = 0;
while (flag) {
// 循环体
printf("执行循环体
");
}
答案:正确
8.break 语句在 switch 语句中的作用是防止代码 “穿透” 到下一个 case 语句。
答案:正确
9.continue 语句可以跳过当前循环的所有语句,包括循环变量的更新语句。
答案:错误
10.若 for 循环的条件表达式始终为真,使用 break 语句也无法终止该循环。
答案:错误
三、填空题(本大题共5小题,每题2分,共10分)
1. 有如下嵌套 for 循环,内层循环体执行的总次数是 ______。
for(int i = 1; i <= 5; i++) {
for(int j = 1; j <= i * 2; j++) {
// 内层循环体
}
}
答案:30
2. 以下嵌套 for 循环用于输出一个倒直角三角形,横线处应填的代码是 ______。
int n;
scanf("%d", &n);
for(int i = n; i >= 1; i--) {
for(int j = 1; j <= ______; j++) {
printf("*");
}
printf("
");
}
答案:i
3. 以下 do - while 循环用于输出一个整数的各位数字,横线处应填的代码是 ______。
int num;
scanf("%d", &num);
do {
printf("%d ", num % 10);
num /= 10;
} while (______);
答案:num != 0
4. 以下 while 循环用于将一个字符串逆序输出,横线处应填的代码是 ______。
char str[100];
int i = 0;
scanf("%s", str);
while (str[i] != '\0') {
i++;
}
i--;
while (______) {
printf("%c", str[i]);
i--;
}
答案:i >= 0
5.在 switch 语句中,若要防止代码 “穿透”,需要在每个 case 分支末尾添加 ____________ 语句。
答案:break
四、读程序写结果题(本大题共5小题,每题5分,共25分)
1.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 1;
while (i <= 5) {
if (i % 2 == 0) {
break;
}
printf("%d ", i);
i++;
}
return 0;
}
答案:1
2.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 5; i++) {
if (i > 3) {
continue;
}
printf("%d ", i);
}
return 0;
}
答案:1 2 3
3.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 1;
do {
if (i == 3) {
i++;
continue;
}
printf("%d ", i);
i++;
} while (i <= 4);
return 0;
}
答案:1 2 4
4.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 2; i++) {
for (j = 1; j <= 2; j++) {
if (i == j) {
printf("%d %d
", i, j);
continue;
}
if (i + j == 3) {
break;
}
}
}
return 0;
}
答案:
1 1
2 2
5.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 3; i++) {
for (j = 1; j <= 4; j++) {
if (j == 3) {
if (i == 2) {
continue;
}
break;
}
printf("%d %d
", i, j);
}
}
return 0;
}
答案:
1 1
1 2
2 1
2 2
2 4
3 1
3 2
五、编程题(本大题共5小题,每题5分,共25分)
1. 编写一个程序,使用 for 循环找出 100 到 200 之间所有的素数(质数)。
#include <stdio.h>
#include <stdbool.h>
int main() {
for (int i = 100; i <= 200; i++) {
bool isPrime = true;
for (int j = 2; j * j <= i; j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
if (isPrime && i > 1) {
printf("%d ", i);
}
}
printf("
");
return 0;
}
2. 编写一个程序,使用 while 循环输入一组整数,直到输入的数为负数为止,并计算这些非负数的平均值。
#include <stdio.h>
int main() {
int num, sum = 0, count = 0;
while (1) {
printf("请输入一个整数(输入负数结束): ");
scanf("%d", &num);
if (num < 0) {
break;
}
sum += num;
count++;
}
if (count > 0) {
float average = (float)sum / count;
printf("这些非负数的平均值为: %.2f
", average);
} else {
printf("没有输入非负数。
");
}
return 0;
}
3. 编写一个程序,使用 do - while 循环输入一个正整数,然后输出该数的二进制表示。
#include <stdio.h>
int main() {
int num, binary[32], index = 0;
do {
printf("请输入一个正整数: ");
scanf("%d", &num);
} while (num <= 0);
while (num > 0) {
binary[index++] = num % 2;
num /= 2;
}
for (int i = index - 1; i >= 0; i--) {
printf("%d", binary[i]);
}
printf("
");
return 0;
}
4.编写一个程序,使用 for 循环输出九九乘法表。
#include <stdio.h>
int main() {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
printf("%d * %d = %d\t", j, i, i * j);
}
printf("
");
}
return 0;
}
5. 编写一个程序,使用 while 循环输入一个字符串,然后统计其中字母、数字和其他字符的个数。
#include <stdio.h>
#include <ctype.h>
int main() {
char ch;
int letters = 0, digits = 0, others = 0;
printf("请输入一个字符串(按 Ctrl+D 结束输入):
");
while ((ch = getchar()) != EOF) {
if (isalpha(ch)) {
letters++;
} else if (isdigit(ch)) {
digits++;
} else {
others++;
}
}
printf("字母的个数: %d
", letters);
printf("数字的个数: %d
", digits);
printf("其他字符的个数: %d
", others);
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$
编写说明:吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。
本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第15卷,是知识点训练卷。按“C语言程序设计”考试纲要(四)循环程序设计的两点知识点要求编写,其两点要求是:
1.掌握for、while、do-while 循环及嵌套。
2.理解中止语句break,继续语句continue。
吉林省《信息工程类(电子与信息类)考纲百套卷》 第15卷
《C语言程序设计》
(四)循环程序设计-知识点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、选择题(本大题共10小题,每小题2分,共20分)
1.以下 for 循环中,循环体执行次数为 0 的是( )
A.
for (int i = 1; i > 10; i++) {
// 循环体
}
B.
for (int i = 10; i > 0; i++) {
// 循环体
}
C.
for (int i = 0; i < 10; i--) {
// 循环体
}
D. 以上都是
2.以下嵌套 for 循环用于输出一个直角三角形,横线处应填( )
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= ____; j++) {
printf("*");
}
printf("
");
}
A. i
B. 5 - i
C. 5
D. i + 1
3.以下嵌套 for 循环用于输出一个菱形,横线处应填( )
int n = 5;
for (int i = 1; i <= n; i++) {
for (int j = n; j > i; j--) {
printf(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
printf("*");
}
printf("
");
}
for (int i = n - 1; i >= 1; i--) {
for (int j = n; j > i; j--) {
printf(" ");
}
for (int k = 1; k <= ____; k++) {
printf("*");
}
printf("
");
}
A. 2 * (n - i) + 1
B. 2 * (n - i) - 1
C. 2 * i + 1
D. 2 * i - 1
4.以下代码段的输出结果是( )
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= i; j++) {
if (j == 3) {
break;
}
printf("%d ", j);
}
printf("
");
}
A.
1
1 2
1 2
1 2
1 2
B.
1
1 2
1 2 3
1 2 3
1 2 3
C.
1
1 2
1 2 3 4
1 2 3 4 5
D.
1 2 3 4 5
5. 以下 do-while 循环用于判断一个整数是否为质数,横线处应填的代码是( )
int num, i = 2;
scanf("%d", &num);
do {
if (num % i == 0) {
break;
}
i++;
} while (______);
if (i == num) {
printf("%d 是质数
", num);
} else {
printf("%d 不是质数
", num);
}
A. i < num
B. i <= num
C. i < num / 2
D. i <= num / 2
6. 以下嵌套 while 循环用于计算 1 到 5 的阶乘之和,横线处应填的代码是( )
int i = 1, j, fact, sum = 0;
while (i <= 5) {
j = 1;
fact = 1;
while (j <= i) {
fact *= j;
j++;
}
sum += ______;
i++;
}
printf("%d
", sum);
A. i
B. j
C. fact
D. sum
7. 以下嵌套 while 循环中,内层循环体执行的总次数是( )
int i = 0, j;
while (i < 4) {
j = i;
while (j < 4) {
// 内层循环体
j++;
}
i++;
}
A. 4 次
B. 6 次
C. 10 次
D. 16 次
8. 以下 while 循环代码的输出结果是( )
int a = 0;
while (a < 5) {
if (a == 3) {
a++;
continue;
}
printf("%d ", a++);
}
A. 0 1 2 4
B. 0 1 2 3 4
C. 0 1 2
D. 1 2 4
9. 以下 do - while 循环用于判断用户输入的密码是否正确(正确密码为 1234),横线处应填的代码是( )
int password;
do {
printf("请输入密码: ");
scanf("%d", &password);
} while (______);
printf("密码正确,登录成功!
");
A.password < 1234
B. password == 1234
C. password > 1234
D. password != 1234
10.在 do - while 循环中使用 continue 语句时,需要注意( )
A. 不能使用 continue 语句
B. 必须手动更新循环变量,否则可能导致无限循环
C. continue 语句会终止整个 do - while 循环
D. continue 语句只能在 do - while 循环的开头使用
二、判断题(本大题共10小题,每小题2分,共20分)
1.break 语句在 for 循环中会跳出整个 for 循环。( )
2.for 循环的条件判断部分必须是关系表达式。( )
3. 可以通过修改 for 循环的迭代部分来改变循环的步长。( )
4. 以下 do - while 循环的功能是计算 1 到 10 的整数和:
int sum = 0, i = 1;
do {
sum += i;
i++;
} while (i <= 10);
5. 在 while 循环中使用 break 语句,会跳过本次循环的剩余部分,直接进入下一次循环。
6. 以下 while 循环会进入死循环:
int a = 5;
while (a < 10) {
// 循环体为空
}
7. 以下 while 循环代码中,循环体不会执行:
int flag = 0;
while (flag) {
// 循环体
printf("执行循环体
");
}
8.break 语句在 switch 语句中的作用是防止代码 “穿透” 到下一个 case 语句。
9.continue 语句可以跳过当前循环的所有语句,包括循环变量的更新语句。
10.若 for 循环的条件表达式始终为真,使用 break 语句也无法终止该循环。
三、填空题(本大题共5小题,每题2分,共10分)
1. 有如下嵌套 for 循环,内层循环体执行的总次数是 ______。
for(int i = 1; i <= 5; i++) {
for(int j = 1; j <= i * 2; j++) {
// 内层循环体
}
}
2. 以下嵌套 for 循环用于输出一个倒直角三角形,横线处应填的代码是 ______。
int n;
scanf("%d", &n);
for(int i = n; i >= 1; i--) {
for(int j = 1; j <= ______; j++) {
printf("*");
}
printf("
");
}
3. 以下 do - while 循环用于输出一个整数的各位数字,横线处应填的代码是 ______。
int num;
scanf("%d", &num);
do {
printf("%d ", num % 10);
num /= 10;
} while (______);
4. 以下 while 循环用于将一个字符串逆序输出,横线处应填的代码是 ______。
char str[100];
int i = 0;
scanf("%s", str);
while (str[i] != '\0') {
i++;
}
i--;
while (______) {
printf("%c", str[i]);
i--;
}
5.在 switch 语句中,若要防止代码 “穿透”,需要在每个 case 分支末尾添加 ____________ 语句。
四、读程序写结果题(本大题共5小题,每题5分,共25分)
1.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 1;
while (i <= 5) {
if (i % 2 == 0) {
break;
}
printf("%d ", i);
i++;
}
return 0;
}
2.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 5; i++) {
if (i > 3) {
continue;
}
printf("%d ", i);
}
return 0;
}
3.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i = 1;
do {
if (i == 3) {
i++;
continue;
}
printf("%d ", i);
i++;
} while (i <= 4);
return 0;
}
4.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 2; i++) {
for (j = 1; j <= 2; j++) {
if (i == j) {
printf("%d %d
", i, j);
continue;
}
if (i + j == 3) {
break;
}
}
}
return 0;
}
5.以下程序的运行结果是______。
#include <stdio.h>
int main() {
int i, j;
for (i = 1; i <= 3; i++) {
for (j = 1; j <= 4; j++) {
if (j == 3) {
if (i == 2) {
continue;
}
break;
}
printf("%d %d
", i, j);
}
}
return 0;
}
五、编程题(本大题共5小题,每题5分,共25分)
1. 编写一个程序,使用 for 循环找出 100 到 200 之间所有的素数(质数)。
2. 编写一个程序,使用 while 循环输入一组整数,直到输入的数为负数为止,并计算这些非负数的平均值。
3. 编写一个程序,使用 do - while 循环输入一个正整数,然后输出该数的二进制表示。
4.编写一个程序,使用 for 循环输出九九乘法表。
5. 编写一个程序,使用 while 循环输入一个字符串,然后统计其中字母、数字和其他字符的个数。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$