第四章 循环结构程序设计《编程语言基础-C语言》(高教版第五版)章节过关卷

2025-03-04
| 2份
| 20页
| 244人阅读
| 4人下载

资源信息

学段 中职
学科 职教专业课
课程 C语言程序设计
教材版本 C语言程序设计高教版(第五版)全一册
年级 高一
章节 第4章 循环结构程序设计
类型 作业-单元卷
知识点 循环结构
使用场景 同步教学-单元练习
学年 2025-2026
地区(省份) 全国
地区(市) -
地区(区县) -
文件格式 ZIP
文件大小 252 KB
发布时间 2025-03-04
更新时间 2025-03-04
作者 糖醋排骨009
品牌系列 学易金卷·阶段检测模拟卷
审核时间 2025-03-04
下载链接 https://m.zxxk.com/soft/50787456.html
价格 3.00储值(1储值=1元)
来源 学科网

内容正文:

《编程语言基础——C语言》高等教育出版社(第五版) 第四章 循环结构程序设计 章节过关卷 考试时间:90分钟 满分:100分 姓名 班级 学号 1、 单项选择题(本题共20小题,每题2分,共40分) 1.设有以下程序段,则( ) int x=0,s=0; while(!x=0) s+=++x; printf(“%d”,s); A.运行程序段后输出0 B.运行程序段后输出1 C.程序段无限次执行 D.程序段中的控制表达式非法 2.下面程序段的运行结果是( ) a=1;b=2;c=2; while(a<b<c) {t=a;a=b;b=t;c- -;} printf("%d,%d,%d",a,b,c); A.2,1,0 B.1,2,1 C.2,1,1 D.1,2,0 3.C语言中 while 和 do-while循环的主要区别是( ) A. do-while 的循环体至少无条件执行一次 B. while 的循环控制条件比do-while的循环控制条件严格 C. do-while 允许从外部转到循环体内 D. do-while 的循环体不能是复合语句 4.下面有关for循环的正确描述是( ) A.for 循环只能用于循环次数已经确定的情况 B.for 循环是先执行循环体语句,后判断表达式 C.在for循环中,不能用break语句跳出循环体 D.for循环的循环体语句中,可以包含多语句,但必须用花括号括起来 5.执行语句: for(i=1;i++<5;);语句后,i变量的值是( ) A. 7 B. 5 C.6 D.不确定值 6.设有以下程序段,则选项中描述正确的是( ) int k=100; while(k=0)k=k-1; A. while 循环执行100次 B.是一个死循环 C.循环体语句一次也没执行 D.循环体语句执行了1次 7.若有下面程序段,其中s,a,b,c均已定义为整型变量,且a=10,c=5,执行以下程序段后,s的值为( ) s=a; for(b=1; b<=c; b++) s=s+1; A.15 B.5 C.10 D.21 8.下面程序段中循环体执行的次数是( ) int i, j; for(i=0,j=1; i<=j+1; i+=2,j--)printf("%d",i); A.3 B.2 C.1 D.0 9.下面程序的运行后输出结果是( ) #include<stdio.h> #include<conio.h> main( ) {int n=10; while(n>6){n--; printf("%d",n); }getch(); } A. 987 B.876 C.8765 D.9876 10.下面程序段的输出结果是( ) #include<stdio.h> #include<conio.h> main( ) {int n=8; while(n--)printf("%d",--n);getch(); } A. 20 B. 0 C.420 D.6420 11.设 a、b是整型变量,执行下面语句后,b值是( ) a=1; b=10; do{b-=a; a++; }while(b--<0); A.9 B.-2 C.-1 D.8 12.在C语言中,能跳过循环体中未执行的语句,接着执行本循环下一次的迭代语句是( ) A.break B.return C.continue D.void 13.下面程序段的运行结果是( ) x=y=0; while(x<15) y++,x+=++y; print("%d,%d",x,y); A.20,8 B.8,20 C.12,6 D.7,20 14.以下描述正确的一项是( ) A.continue语句的作用是结束整个循环的执行 B.只能在循坏体内和switch语句体内使用break语句 C.在循环体内使用break语句或continue语句的作用相同 D.想要从多层循环嵌套中退出,只能使用goto语句 15.下列程序的运行结果是( ) #include<stdio.h> #include<conio.h> main( ) {int x=1,s=2; while(!x!=0) s+=--x; printf("%d",s);getch(); } A.1 B.0 C.2 D.-1 16.下列程序的运行结果是( ) #include<stdio.h> #include<conio.h> main( ) {int n=15; while(n>11) {n-=2; printf("%d",n);}getch(); } A.1311 B.11 C.311 D.1 17.对for(表达式1; ;表达式3)可以理解为( ) A. for(表达式1;0 ;表达式3) B. for(表达式1;1 ;表达式3) C. for(表达式1;表达式1 ;表达式3) D. for(表达式1;表达式3 ;表达式3) 18.下面程序段的运行结果是( ) int n=0; while(n++<=2);printf(“%d”,n); A.2 B.4 C.3 D.死循环 19.下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空。 #include <stdio.h> main( ) { int m=0,n=0;char c; while((【l】)!=‘ ’) { if(c>=‘A’&&c<=‘Z’) m++; if(c>=‘a’&&c<=‘z’) n++; }printf("%d ", m<n ?n:m); } A.c=getchar( ) B.c=putchar( ) C.getchar( ) D.scanf(“%c”,c) 20.下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空。 include <stdio.h> main( ) { int a,b,t; scanf("%d%d",&a,&b); while( 【 】 ) { if(a>b){ t=a;a=b;b=t;} printf("%d,%d ",a,b);scanf("%d%d",&a,&b); } } A. !a=b B.a!=b C.a==b D.a=b 二、程序运行结果题(本题共7小题,每题3分,共21分) 21.以下程序的运行结果是【 】。 #include <stdio.h> main( ) { int i=l; while(i<=15) if(++i%3!=2) continue; else printf("%d ",i);} 22.以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) { int i,k=25; while (i=k-1) {k-=3; if (k%4==0) {i++;continue;} else if(k<4) break; i++; } printf("i=%d,k=%d ",i,k);getch(); } 23.以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int a,y; a=20;y=0; do {a+=3;y+=a; if(y>50) break; } while(a=15); printf("a=%d y=%d ",a,y);getch(); } 24.以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int i=16; do { switch (i%2) { case 4:i--;break; case 6:i--;continue;} i-- ; i--; printf("%d ",i); } while(i>0);getch(); } 25.以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) { int i=1,s=1; do { s+=i++; if(s%7==0) continue; else ++i;} while(s<27); printf("%d",i); getch(); } 26.以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int y=8,a=2; while(y--!=-1) { do{ a*=y; a++;}while(y--);} printf("%d,%d",a,y);getch(); } 27.若从键盘输入88 23<回车>,以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int m,n; printf("Enter m,n:"); scanf("%d%d",&m,&n); while(m!=n) { while(m>n)m-=n; while(n>m) n-=m; } printf("m= %d ",m);getch(); } 三、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共21分) 28.假设等比数列的第一项a=l,公比q=2,下面程序的功能是求满足前n项和小于100的最大n,请填空。 #include <stdio.h> main( ) { int a=l,g=2,n=0,sum=0; do {【1】 ; ++n;a=a*g;}while(sum<100); 【2】 ; printf(“%d ”,n);} 29.下面程序的功能是计算1~10之间的奇数之和及偶数之和。请填空。 #include <stdio.h> main( ) { int a=0,b,c=0,i; for(i=0;i<=10;i+=2) { a+=i; 【1】; c+=b;} printf("The sum of even=%d ",a); printf("The sun of odd=%d ", 【2】 );} 30.下面程序的功能是计算100 1000之间有多少个数其各位数字之和是5。请填空。 #include <stdio.h> main( ) { int i,s,k,count=0; for(i=100;i<=1000;i++) { s=0;k=i; while (【1】) { s=s+k%10; k=【2】;} if(s!=5) 【3】; else count++; } printf("%d",count); } 四、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共18分) 31.从键盘输入一些正整数(输入负数结束),求最小值。程序中有两处错误,请改正。 L1 #include "stdio.h" L2 void main( ) L3 {int x,min; L4 scanf("%d",&x); L5 min=0; L6 while(x>0) L7 { L8 if(min<x) min=x; L9 scanf("%d", &x); L10 } L11 printf("min=%d",min); } 32.下面求两个正整数最大公约数的程序。程序中有两处错误,请改正。 L1 #include "stdio.h" L2 main() L3 { unsigned x, y, c; L4 printf("Input two value(x y):"); L5 scanf("%u%u",x, y); L6 for(c=x; c>0; c- -) L7 if(x%c==0&&y%c==0) L8 continue; L9 printf("%d", c); } 33.下面程序作用是:求由0、1、2、3、4、5、6可组成多少个没有重复数字的二位奇数,打印出这些数,每行打印5个。程序中有两处错误,请改正。 #include "stdio.h" L1 main( ) L2 { L3 int i,j,n=0; L4 for(i=1; i<=6; i++) L5 for(j=1; j<=5; j+=2) L6 {if(i=j)continue; L7 n++; L8 printf("%5d",i+j); L9 if(n%5==0)printf(" "); } 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$ 《编程语言基础——C语言》高等教育出版社(第五版) 第四章 循环结构程序设计 章节过关卷 考试时间:90分钟 满分:100分 姓名 班级 学号 1、 单项选择题(本题共20小题,每题2分,共40分) 1.设有以下程序段,则( ) int x=0,s=0; while(!x=0) s+=++x; printf(“%d”,s); A.运行程序段后输出0 B.运行程序段后输出1 C.程序段无限次执行 D.程序段中的控制表达式非法 答案:B 2.下面程序段的运行结果是( ) a=1;b=2;c=2; while(a<b<c) {t=a;a=b;b=t;c- -;} printf("%d,%d,%d",a,b,c); A.2,1,0 B.1,2,1 C.2,1,1 D.1,2,0 答案:D 3.C语言中 while 和 do-while循环的主要区别是( ) A. do-while 的循环体至少无条件执行一次 B. while 的循环控制条件比do-while的循环控制条件严格 C. do-while 允许从外部转到循环体内 D. do-while 的循环体不能是复合语句 答案:A 4.下面有关for循环的正确描述是( ) A.for 循环只能用于循环次数已经确定的情况 B.for 循环是先执行循环体语句,后判断表达式 C.在for循环中,不能用break语句跳出循环体 D.for循环的循环体语句中,可以包含多语句,但必须用花括号括起来 答案:D 5.执行语句: for(i=1;i++<5;);语句后,i变量的值是( ) A. 7 B. 5 C.6 D.不确定值 答案:C 6.设有以下程序段,则选项中描述正确的是( ) int k=100; while(k=0)k=k-1; A. while 循环执行100次 B.是一个死循环 C.循环体语句一次也没执行 D.循环体语句执行了1次 答案:C 7.若有下面程序段,其中s,a,b,c均已定义为整型变量,且a=10,c=5,执行以下程序段后,s的值为( ) s=a; for(b=1; b<=c; b++) s=s+1; A.15 B.5 C.10 D.21 答案:A 8.下面程序段中循环体执行的次数是( ) int i, j; for(i=0,j=1; i<=j+1; i+=2,j--)printf("%d",i); A.3 B.2 C.1 D.0 答案:B 9.下面程序的运行后输出结果是( ) #include<stdio.h> #include<conio.h> main( ) {int n=10; while(n>6){n--; printf("%d",n); }getch(); } A. 987 B.876 C.8765 D.9876 答案:D 10.下面程序段的输出结果是( ) #include<stdio.h> #include<conio.h> main( ) {int n=8; while(n--)printf("%d",--n);getch(); } A. 20 B. 0 C.420 D.6420 答案:D 11.设 a、b是整型变量,执行下面语句后,b值是( ) a=1; b=10; do{b-=a; a++; }while(b--<0); A.9 B.-2 C.-1 D.8 答案:D 12.在C语言中,能跳过循环体中未执行的语句,接着执行本循环下一次的迭代语句是( ) A.break B.return C.continue D.void 答案:C 13.下面程序段的运行结果是( ) x=y=0; while(x<15) y++,x+=++y; print("%d,%d",x,y); A.20,8 B.8,20 C.12,6 D.7,20 答案:A 14.以下描述正确的一项是( ) A.continue语句的作用是结束整个循环的执行 B.只能在循坏体内和switch语句体内使用break语句 C.在循环体内使用break语句或continue语句的作用相同 D.想要从多层循环嵌套中退出,只能使用goto语句 答案:B 15.下列程序的运行结果是( ) #include<stdio.h> #include<conio.h> main( ) {int x=1,s=2; while(!x!=0) s+=--x; printf("%d",s);getch(); } A.1 B.0 C.2 D.-1 答案:C 16.下列程序的运行结果是( ) #include<stdio.h> #include<conio.h> main( ) {int n=15; while(n>11) {n-=2; printf("%d",n);}getch(); } A.1311 B.11 C.311 D.1 答案:A 17.对for(表达式1; ;表达式3)可以理解为( ) A. for(表达式1;0 ;表达式3) B. for(表达式1;1 ;表达式3) C. for(表达式1;表达式1 ;表达式3) D. for(表达式1;表达式3 ;表达式3) 答案:B 18.下面程序段的运行结果是( ) int n=0; while(n++<=2);printf(“%d”,n); A.2 B.4 C.3 D.死循环 答案:B 19.下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空。 #include <stdio.h> main( ) { int m=0,n=0;char c; while((【l】)!=‘ ’) { if(c>=‘A’&&c<=‘Z’) m++; if(c>=‘a’&&c<=‘z’) n++; }printf("%d ", m<n ?n:m); } A.c=getchar( ) B.c=putchar( ) C.getchar( ) D.scanf(“%c”,c) 答案:A 20.下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空。 include <stdio.h> main( ) { int a,b,t; scanf("%d%d",&a,&b); while( 【 】 ) { if(a>b){ t=a;a=b;b=t;} printf("%d,%d ",a,b);scanf("%d%d",&a,&b); } } A. !a=b B.a!=b C.a==b D.a=b 答案:B 二、程序运行结果题(本题共7小题,每题3分,共21分) 21.以下程序的运行结果是【 】。 #include <stdio.h> main( ) { int i=l; while(i<=15) if(++i%3!=2) continue; else printf("%d ",i);} 答案:2 5 8 11 14 22.以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) { int i,k=25; while (i=k-1) {k-=3; if (k%4==0) {i++;continue;} else if(k<4) break; i++; } printf("i=%d,k=%d ",i,k);getch(); } 答案:i=3,k=1 23.以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int a,y; a=20;y=0; do {a+=3;y+=a; if(y>50) break; } while(a=15); printf("a=%d y=%d ",a,y);getch(); } 答案:a=18 y=59 24.以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int i=16; do { switch (i%2) { case 4:i--;break; case 6:i--;continue;} i-- ; i--; printf("%d ",i); } while(i>0);getch(); } 答案:14 12 10 8 6 4 2 0 25.以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) { int i=1,s=1; do { s+=i++; if(s%7==0) continue; else ++i;} while(s<27); printf("%d",i); getch(); } 答案:13 26.以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int y=8,a=2; while(y--!=-1) { do{ a*=y; a++;}while(y--);} printf("%d,%d",a,y);getch(); } 答案:1,-2 27.若从键盘输入88 23<回车>,以下程序的运行结果是【 】。 #include<stdio.h> #include<conio.h> main( ) {int m,n; printf("Enter m,n:"); scanf("%d%d",&m,&n); while(m!=n) { while(m>n)m-=n; while(n>m) n-=m; } printf("m= %d ",m);getch(); } 答案:m=1 三、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共21分) 28.假设等比数列的第一项a=l,公比q=2,下面程序的功能是求满足前n项和小于100的最大n,请填空。 #include <stdio.h> main( ) { int a=l,g=2,n=0,sum=0; do {【1】 ; ++n;a=a*g;}while(sum<100); 【2】 ; printf(“%d ”,n);} 答案: 【1】sum+=a或sum=sum+a 【2】n-=1或n=n-1或n- - 29.下面程序的功能是计算1~10之间的奇数之和及偶数之和。请填空。 #include <stdio.h> main( ) { int a=0,b,c=0,i; for(i=0;i<=10;i+=2) { a+=i; 【1】; c+=b;} printf("The sum of even=%d ",a); printf("The sun of odd=%d ", 【2】 );} 答案: 【1】b=i+1 【2】c-11 30.下面程序的功能是计算100 1000之间有多少个数其各位数字之和是5。请填空。 #include <stdio.h> main( ) { int i,s,k,count=0; for(i=100;i<=1000;i++) { s=0;k=i; while (【1】) { s=s+k%10; k=【2】;} if(s!=5) 【3】; else count++; } printf("%d",count); } 答案: 【1】k 【2】k/10 【3】continue 四、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共18分) 31.从键盘输入一些正整数(输入负数结束),求最小值。程序中有两处错误,请改正。 L1 #include "stdio.h" L2 void main( ) L3 {int x,min; L4 scanf("%d",&x); L5 min=0; L6 while(x>0) L7 { L8 if(min<x) min=x; L9 scanf("%d", &x); L10 } L11 printf("min=%d",min); } 答案: 【1】L5 min=x; 【2】L8 if(min>x) min=x; 32.下面求两个正整数最大公约数的程序。程序中有两处错误,请改正。 L1 #include "stdio.h" L2 main() L3 { unsigned x, y, c; L4 printf("Input two value(x y):"); L5 scanf("%u%u",x, y); L6 for(c=x; c>0; c- -) L7 if(x%c==0&&y%c==0) L8 continue; L9 printf("%d", c); } 答案: 【1】L5 scanf("%u%u",&x,&y); 【2】L8 break; 33.下面程序作用是:求由0、1、2、3、4、5、6可组成多少个没有重复数字的二位奇数,打印出这些数,每行打印5个。程序中有两处错误,请改正。 #include "stdio.h" L1 main( ) L2 { L3 int i,j,n=0; L4 for(i=1; i<=6; i++) L5 for(j=1; j<=5; j+=2) L6 {if(i=j)continue; L7 n++; L8 printf("%5d",i+j); L9 if(n%5==0)printf(" "); } 答案: 【1】L6 {if(i==j)continue; 【2】L8 printf("%5d",i*10+j); 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

第四章  循环结构程序设计《编程语言基础-C语言》(高教版第五版)章节过关卷
1
第四章  循环结构程序设计《编程语言基础-C语言》(高教版第五版)章节过关卷
2
第四章  循环结构程序设计《编程语言基础-C语言》(高教版第五版)章节过关卷
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。