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

2025-09-03
| 2份
| 35页
| 79人阅读
| 0人下载

内容正文:

编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第12卷,是知识点训练卷。按“C语言程序设计”考试纲要(四)循环程序设计的两点知识点要求编写,其两点要求是: 1.掌握for、while、do-while 循环及嵌套。 2.理解中止语句break,继续语句continue。 2026版吉林省《信息工程类(电子与信息类)考纲百套卷》第12卷 《C语言程序设计》 (四)循环程序设计-知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1.执行以下程序的输出结果是( ) main( ) {int x, y; for(x=30, y=0; x>=10, y<10; x--,y++) x/=2, y+=2; printf("x=%d,y=%d ",x,y); getch();} A. x=1,y=12 B. x=-1,y=12 C. x=0,y=11 D. x=0,y=12 答案:D 2.以下代码段的输出结果是( ) 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. 执行以下程序的输出结果是( ) main( ) {int i; for(i=1;i<40;i++) {if(i++%5==0) if(++i%8==0) printf("%d ",i);} printf(" "); getch();} A. 5 B. 24 C. 32 D. 40 答案:C 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. 执行以下程序时从键盘输入:3.6 2.4<回车>,则输出结果是( ) #include <stdio.h> #include <conio.h> #include<math.h> main( ) {float x,y,z; scanf("%f%f",&x,&y); z=x/y; while(z) { if(fabs(z)>1.0) { x=y; y=z; z=x/y; } else break;} printf("%f ",y); getch();} A. 1.500000 B. 1.600000 C. 2.000000 D. 2.400000 答案:B 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.执行以下程序的输出结果是( ) main( ) {int k=4,n=0; for(;n<k;) {n++; if(n%3!=0) continue; k--;} printf("%d,%d ",k,n); getch();} A. 1,1 B. 2,2 C. 3,3 D. 4,4 答案: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.执行以下程序的输出结果是23。( ) main( ) {int x=23; do{printf("%d",x--);} while(!x); getch();} 答案:正确 2.执行以下程序的输出结果是:1。( ) main( ) {int x=0,s=1; while(!x!=0) s+=++x; printf("%d",s); getch();} 答案:错误 3. 对于for(表达式1;表达式3)可以理解为:for(表达式1;0;表达式3)。( ) 答案:错误 4.do - while 循环至少会执行一次循环体,无论循环条件是否为真。 答案:正确 5. 嵌套的 do - while 循环中,内层 do - while 循环结束后,会继续执行外层 do - while 循环的循环体剩余部分。 答案:正确 6. 执行以下程序后无输出,程序出现语法错误。( ) main( ) {int x=3; do printf("%3d",x-=2); while(!(--x)); getch();} 答案:错误 7. 以下 do - while 循环用于判断一个数是否为正数,若输入 -5,循环体会执行一次: int num; scanf("%d", &num); do { if (num > 0) { printf("是正数 "); } else { printf("不是正数 "); } } while (num > 0); 答案:正确 8.执行以下程序时,为了不让程序不陷入死循环,应该键盘输入任意正奇数。( ) main( ) {int n,t=1,s=0; scanf("%d",&n); do {s=s+t; t=t-2; printf("%d",t);} while(t!=n); getch();} 答案:错误(任意负奇数) 9.执行以下程序的输出结果是:10 9 9 0。( ) main( ) {int x=10,y=10,i; for(i=0;x>8;y=++i) printf("%d %d ",x--,y); getch();} 答案:错误 10.要使以下程序的输出结果为:2,则应该从键盘给n输入的值为-3。( ) main( ) {int s=0,a=1,n; scanf("%d",&n); do {s+=1; a=a-2; }while(a!=n); printf("%d ",s); getch();} 答案:正确 三、填空题(本大题共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.等比数列的第一项a=1,公比q=2,下面程序的功能是求满足前n项和小于100的最大n,横线处应填入的代码是______。 main( ) {int a,q,n,sum; a=1; q=2; n=sum=0; do{sum=sum+a; ++n; a*=q; }while(sum<100); ; printf("%d ",n); getch();} 答案:n=n-1 四、读程序写结果题(本大题共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> #include <conio.h> main( ) {int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if(j%2) continue; x++;} x++;} printf("x=%d ",x); getch();} 答案:x=8 3.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> main( ) {int i,n=0; for(i=2;i<5;i++) { do{if(i%3) continue; n++; }while(!i); n++;} printf("n=%d ",n); getch();} 答案:n=4 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> #include <conio.h> main( ) {int x=0,y=0,z=0; do{ switch(y++) {case 1:x++;break; case 2:x+=3;break; default:x%=2;continue;} z++; }while(y<5); printf("x=%d,y=%d,z=%d ",x,y,z); getch();} 答案:x=0,y=5,z=2 五、编程题(本大题共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. 两个足球队进行比赛,各出3人。甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编写程序找出3对赛手的名单。 #include <stdio.h> #include <conio.h> main( ) {char i,j,k; for(i='x';i<='z';i++) for(j='x';j<='z';j++) if(i!=j) for(k='x';k<='z';k++) if(i!=k&&j!=k) if(i!='x'&&k!='x'&&k!='z') printf("A--%c B--%c C--%c ",i,j,k); getch();} 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. 编写一个程序,判断一个数是否为素数。 #include <stdio.h> #include <conio.h> #include<math.h> main( ) {int num,j,tag=1,m; printf("请输入一个自然数: "); scanf("%d",&num); m=sqrt(num); for(j=2;j<=m;j++) if(num%j==0) {tag=0; break;} if(tag==1) printf("%d是素数! ",num); else printf("%d不是素数! ",num); getch();} 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; } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$ 编写说明:2026版吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》,依据吉林省高职分类(对口招生)考试各类专业综合卷考试科目及纲要(2021版),种信息工程类(电子与信息类)专业综合卷考试科目及纲要编写。本专辑共150份试卷两部分组成,第一部分是按考纲的考点要求编写的120份知识点训练卷,第二部分是针对6门课程的掌握要求,编写的30份常考题训练卷。 本试卷是吉林省高职分类考试《信息工程类(电子与信息类)考纲百套卷》的第12卷,是知识点训练卷。按“C语言程序设计”考试纲要(四)循环程序设计的两点知识点要求编写,其两点要求是: 1.掌握for、while、do-while 循环及嵌套。 2.理解中止语句break,继续语句continue。 2026版吉林省《信息工程类(电子与信息类)考纲百套卷》第12卷 《C语言程序设计》 (四)循环程序设计-知识点训练卷 考试时间60分钟 满分100分 班级 姓名 学号 成绩 一、选择题(本大题共10小题,每小题2分,共20分) 1.执行以下程序的输出结果是( ) main( ) {int x, y; for(x=30, y=0; x>=10, y<10; x--,y++) x/=2, y+=2; printf("x=%d,y=%d ",x,y); getch();} A. x=1,y=12 B. x=-1,y=12 C. x=0,y=11 D. x=0,y=12 2.以下代码段的输出结果是( ) 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. 执行以下程序的输出结果是( ) main( ) {int i; for(i=1;i<40;i++) {if(i++%5==0) if(++i%8==0) printf("%d ",i);} printf(" "); getch();} A. 5 B. 24 C. 32 D. 40 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. 执行以下程序时从键盘输入:3.6 2.4<回车>,则输出结果是( ) #include <stdio.h> #include <conio.h> #include<math.h> main( ) {float x,y,z; scanf("%f%f",&x,&y); z=x/y; while(z) { if(fabs(z)>1.0) { x=y; y=z; z=x/y; } else break;} printf("%f ",y); getch();} A. 1.500000 B. 1.600000 C. 2.000000 D. 2.400000 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.执行以下程序的输出结果是( ) main( ) {int k=4,n=0; for(;n<k;) {n++; if(n%3!=0) continue; k--;} printf("%d,%d ",k,n); getch();} A. 1,1 B. 2,2 C. 3,3 D. 4,4 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.执行以下程序的输出结果是23。( ) main( ) {int x=23; do{printf("%d",x--);} while(!x); getch();} 2.执行以下程序的输出结果是:1。( ) main( ) {int x=0,s=1; while(!x!=0) s+=++x; printf("%d",s); getch();} 3. 对于for(表达式1;表达式3)可以理解为:for(表达式1;0;表达式3)。( ) 4.do - while 循环至少会执行一次循环体,无论循环条件是否为真。 5. 嵌套的 do - while 循环中,内层 do - while 循环结束后,会继续执行外层 do - while 循环的循环体剩余部分。 6. 执行以下程序后无输出,程序出现语法错误。( ) main( ) {int x=3; do printf("%3d",x-=2); while(!(--x)); getch();} 7. 以下 do - while 循环用于判断一个数是否为正数,若输入 -5,循环体会执行一次: int num; scanf("%d", &num); do { if (num > 0) { printf("是正数 "); } else { printf("不是正数 "); } } while (num > 0); 8.执行以下程序时,为了不让程序不陷入死循环,应该键盘输入任意正奇数。( ) main( ) {int n,t=1,s=0; scanf("%d",&n); do {s=s+t; t=t-2; printf("%d",t);} while(t!=n); getch();} 9.执行以下程序的输出结果是:10 9 9 0。( ) main( ) {int x=10,y=10,i; for(i=0;x>8;y=++i) printf("%d %d ",x--,y); getch();} 10.要使以下程序的输出结果为:2,则应该从键盘给n输入的值为-3。( ) main( ) {int s=0,a=1,n; scanf("%d",&n); do {s+=1; a=a-2; }while(a!=n); printf("%d ",s); getch();} 三、填空题(本大题共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.等比数列的第一项a=1,公比q=2,下面程序的功能是求满足前n项和小于100的最大n,横线处应填入的代码是______。 main( ) {int a,q,n,sum; a=1; q=2; n=sum=0; do{sum=sum+a; ++n; a*=q; }while(sum<100); ; printf("%d ",n); getch();} 四、读程序写结果题(本大题共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> #include <conio.h> main( ) {int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if(j%2) continue; x++;} x++;} printf("x=%d ",x); getch();} 3.以下程序的运行结果是______。 #include <stdio.h> #include <conio.h> main( ) {int i,n=0; for(i=2;i<5;i++) { do{if(i%3) continue; n++; }while(!i); n++;} printf("n=%d ",n); getch();} 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> #include <conio.h> main( ) {int x=0,y=0,z=0; do{ switch(y++) {case 1:x++;break; case 2:x+=3;break; default:x%=2;continue;} z++; }while(y<5); printf("x=%d,y=%d,z=%d ",x,y,z); getch();} 五、编程题(本大题共5小题,每题5分,共25分) 1. 编写一个程序,使用 while 循环输出 1 到 20 之间所有能被 5 整除的数。 2. 两个足球队进行比赛,各出3人。甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编写程序找出3对赛手的名单。 3. 编写一个程序,使用嵌套 for 循环输出如下图案: * *** ***** ******* ********* 4. 编写一个程序,判断一个数是否为素数。 5. 编写一个程序,使用 do - while 循环计算用户输入的一系列正数的乘积,当输入负数时停止输入。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 学科网(北京)股份有限公司 $$

资源预览图

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