《C语言程序设计》(四)循环程序设计-知识点训练卷 吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》第15卷

2025-02-24
| 2份
| 36页
| 86人阅读
| 0人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 -
年级 -
章节 -
类型 题集-专项训练
知识点 循环结构
使用场景 中职复习
学年 2025-2026
地区(省份) 吉林省
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 173 KB
发布时间 2025-02-24
更新时间 2025-02-24
作者 胥豆豆老师
品牌系列 学易金卷·考纲百套卷
审核时间 2025-02-24
下载链接 https://m.zxxk.com/soft/50622469.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

编写说明:吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(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 循环输入一个字符串,然后统计其中字母、数字和其他字符的个数。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$

资源预览图

《C语言程序设计》(四)循环程序设计-知识点训练卷 吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》第15卷
1
《C语言程序设计》(四)循环程序设计-知识点训练卷 吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》第15卷
2
《C语言程序设计》(四)循环程序设计-知识点训练卷 吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》第15卷
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。