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

2025-09-03
| 2份
| 32页
| 148人阅读
| 0人下载

内容正文:

编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第15卷,是知识点训练卷。按“C语言程序设计”考试纲要(四)循环程序设计的两点知识点要求编写,其两点要求是: 1.掌握for、while、do-while 循环及嵌套。 2.理解中止语句break,继续语句continue。 2026版吉林省《信息工程类(电子与信息类)考纲百套卷》第15卷 《C语言程序设计》 (四)循环程序设计-知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1.执行以下程序的输出结果为( ) main( ) {int i,j; for(i=5;i<=8;i++) {for(j=5;j<8;j++) printf("%c",'*'); printf("\t");} getch();} A.*** B.*** *** C.*** *** *** 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. 执行以下程序的输出结果是( ) main( ) {int i; for(i=1;i<5;i++) { if(i%2) printf("*"); else continue; printf("#");} printf("$ "); getch();} A. *#*#*#$ B. #*#*#*$ C. *#*#$ D. #*#*$ 答案:C 8. 执行以下程序的输出结果是( ) main( ) { int i,j; for(i=3;i>=1;i--) { for(j=1;j<=2;j++) printf("%d",i+j); printf(" "); } getch();} A. 45 34 23 B. 34 23 12 C. 56 45 34 D. 23 12 01 答案: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.要求以下程序的功能是计算:s=1+1/2+1/3+...+1/10,程序运行后输出结果错误,导致错误结果的程序运行是( ) main() { int n; float s; s=1.0; for(n=10;n>1;n--) s=s+1/n; printf("%6.4f ",s);} A. s=1.0; B. for(n=10;n>1;n--); C. s=s+1/n; D. printf("%6.4f ",s); 答案:C 二、判断题(本大题共10小题,每小题2分,共20分) 1.执行以下程序段后的输出结果为:0023。( ) int i=1; for(printf("%d",i);i<4;i++) printf("%d",i); 答案:错误 2.执行以下程序段后的输出结果为:-1,1-0,2-。( ) int a=-2,b=0; while(a++&&++b); printf("%d,%d-",a,b); 答案:错误 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.下列程序段中的do……while循环不会构成死循环。( ) int k=1; do {++k;}while(k<10000); 答案:正确 9.下列程序段中的内嵌for循环总共执行了29次,即输出了29个“*”。( ) for(int i = 1; i <= 5; i++) { for(int j = 1; j <= i * 2; j++) { printf(“*”);}} 答案:错误 10.执行以下程序段后,变量a的值为11。( ) nt i,a; for(i=0;i<=10;i++)a=i; 答案:错误 三、填空题(本大题共5小题,每题2分,共10分) 1. 下列程序的功能是使用辗转相除法求两个正整数的最大公约数,横线处应该填入的代码是 ______。 main( ) { int r,m,n; scanf("%d%d",&m,&n); if(m<n) { } r=m%n; while(r) {m=n;n=r;r=m%n;} printf("%d ",n); getch();} 答案:r=m,m=n,n=r; 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.下面程序的功能是输出以下形式的金字塔图案,则横线处应该填入的代码是 __________ 。 * *** ***** ******* main() { int i,j; for(i=1;i<=4;i++) { for(j=1;j<=4-i;j++) printf(" "); for(j=1;j<=____;j++) printf("*"); printf(" ");}} 答案:2*i-1 四、读程序写结果题(本大题共5小题,每题5分,共25分) 1.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> main( ) { int i,j,x=0; for(i=0;i<12;i++) {x++; for(j=0;j<=3;j++) {if(j%2==0) continue; x++;} x++;} printf("x=%d ",x); getch();} 答案:x=48 2.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> main( ) { int a=1,b=3,i=1; do { printf("%d,%d,",a,b); a=(b-a)*2+b; b=(a-b)*2+a; if (i++%2==0)printf(" "); } while (b<100); getch();} 答案: 1,3,7,15, 31,63, 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. 编写一个程序,求 之值,其中a是一个数字,n表示a的位数。 #include <stdio.h> #include <conio.h> main( ) {int a,n,i,ans=0,temp=0; printf("a,n="); scanf("%d,%d",&a,&n); for(i=0;i<n; i++) { temp=temp+a; //赋值后的tm为i个a组成数的值 ans=ans+temp; //赋值后的sn 为多项式前i项之和 a=a*10;} printf("a+aa+aaa+...=%d ",ans); getch();} 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. 尼科彻斯定理的内容是:任何一个整数的立方都可以写成一串连续奇数的和。请你编程程序验证该定理。 #include <stdio.h> #include <conio.h> #include<math.h> main( ) { int i,j,k= 0,L, n,m, sum,flag=1; printf("请输入一个数: "); scanf(" %d", &n); /*从键盘中任意输入一个数*/ m=n*n*n; /*计算该数的立方*/ i=m/2; /*立方值的一半*/ if(i%2==0) /*当i为偶数时i值加1*/ i=i+1; while (flag==1&&i>=1) /*当i大于等于1且flng=1时执行循环体语句*/ {sum =0; k=0; while (1) {sum +=(i-2*k); /*奇数累加求和*/ k++; if(sum==m) /*如果sum与m相等,则输出累加过程*/ {printf("%d*%d*%d=%d=", n, n, n,m); for(L=0;L<k-1;L++) printf("%d+",i-L* 2); printf("%d ", i-(k-1)*2); /*输出累加求和的最后一个数*/ flag=0; break;} if(sum >m) break;} i-=2; /*如果i等于下一个奇数,则继续上面的过程*/ }getch();} 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$ 编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第15卷,是知识点训练卷。按“C语言程序设计”考试纲要(四)循环程序设计的两点知识点要求编写,其两点要求是: 1.掌握for、while、do-while 循环及嵌套。 2.理解中止语句break,继续语句continue。 2026版吉林省《信息工程类(电子与信息类)考纲百套卷》第15卷 《C语言程序设计》 (四)循环程序设计-知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1.执行以下程序的输出结果为( ) main( ) {int i,j; for(i=5;i<=8;i++) {for(j=5;j<8;j++) printf("%c",'*'); printf("\t");} getch();} A.*** B.*** *** C.*** *** *** 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. 执行以下程序的输出结果是( ) main( ) {int i; for(i=1;i<5;i++) { if(i%2) printf("*"); else continue; printf("#");} printf("$ "); getch();} A. *#*#*#$ B. #*#*#*$ C. *#*#$ D. #*#*$ 8. 执行以下程序的输出结果是( ) main( ) { int i,j; for(i=3;i>=1;i--) { for(j=1;j<=2;j++) printf("%d",i+j); printf(" "); } getch();} A. 45 34 23 B. 34 23 12 C. 56 45 34 D. 23 12 01 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.要求以下程序的功能是计算:s=1+1/2+1/3+...+1/10,程序运行后输出结果错误,导致错误结果的程序运行是( ) main() { int n; float s; s=1.0; for(n=10;n>1;n--) s=s+1/n; printf("%6.4f ",s);} A. s=1.0; B. for(n=10;n>1;n--); C. s=s+1/n; D. printf("%6.4f ",s); 二、判断题(本大题共10小题,每小题2分,共20分) 1.执行以下程序段后的输出结果为:0023。( ) int i=1; for(printf("%d",i);i<4;i++) printf("%d",i); 2.执行以下程序段后的输出结果为:-1,1-0,2-。( ) int a=-2,b=0; while(a++&&++b); printf("%d,%d-",a,b); 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.下列程序段中的do……while循环不会构成死循环。( ) int k=1; do {++k;}while(k<10000); 9.下列程序段中的内嵌for循环总共执行了29次,即输出了29个“*”。( ) for(int i = 1; i <= 5; i++) { for(int j = 1; j <= i * 2; j++) { printf(“*”);}} 10.执行以下程序段后,变量a的值为11。( ) nt i,a; for(i=0;i<=10;i++)a=i; 三、填空题(本大题共5小题,每题2分,共10分) 1. 下列程序的功能是使用辗转相除法求两个正整数的最大公约数,横线处应该填入的代码是 ______。 main( ) { int r,m,n; scanf("%d%d",&m,&n); if(m<n) { } r=m%n; while(r) {m=n;n=r;r=m%n;} printf("%d ",n); getch();} 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.下面程序的功能是输出以下形式的金字塔图案,则横线处应该填入的代码是 __________ 。 * *** ***** ******* main() { int i,j; for(i=1;i<=4;i++) { for(j=1;j<=4-i;j++) printf(" "); for(j=1;j<=____;j++) printf("*"); printf(" ");}} 四、读程序写结果题(本大题共5小题,每题5分,共25分) 1.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> main( ) { int i,j,x=0; for(i=0;i<12;i++) {x++; for(j=0;j<=3;j++) {if(j%2==0) continue; x++;} x++;} printf("x=%d ",x); getch();} 2.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> main( ) { int a=1,b=3,i=1; do { printf("%d,%d,",a,b); a=(b-a)*2+b; b=(a-b)*2+a; if (i++%2==0)printf(" "); } while (b<100); getch();} 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. 编写一个程序,求 之值,其中a是一个数字,n表示a的位数。 4.编写一个程序,使用 for 循环输出九九乘法表。 5. 尼科彻斯定理的内容是:任何一个整数的立方都可以写成一串连续奇数的和。请你编程程序验证该定理。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$

资源预览图

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