任务17:break语句和continue语句 《编程语言-C语言》45分钟专题训练

| 2份
| 27页
| 122人阅读
| 3人下载

内容正文:

湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。 《编程语言—C语言》 项目三: 循环结构程序设计 第17卷: break语句和continue语句 时间:45分钟 总分:100分 班级___________ 姓名__________ 学号__________ 成绩________ 一、选择题(共23小题,每小题2分,共46分) 1.执行以下程序段的输出结果是( ) int t=0; while(printf("*")) {t++;if(t<3) break;}printf("%d",t); A.* B.0 C.1 D.*1 2.执行以下程序段,下列说法中,正确的一项是( ) for(i=1;i<=50;i++) {scanf("%f",&x);if(x<0) continue;printf("%d ",i);} A.因为有continue语句,所以printf语句永远不会执行 B.当x<0时,for循环结束 C.当x>=0时,for循环结束 D.最多允许输出50个非负的整数 3.执行以下程序段的输出结果是( ) int num=0; while(1) {num++; if(num%3==0) break; printf("%d",num);} A.9 B.23 C.36 D.12 4.执行以下程序段的输出结果是( ) int num=0; while(num<=20) {num++; if(num%3==0) continue; if(num%4==0)break; printf("%d",num);} A.1 B.12 C.23 D.34 5.执行下列程序段的输出结果是( ) int a=0,i;; for(i=1;i<10;i++) {switch(i) {case 0:case 3:a+=1;break; case 1:case 2:a+=2; default:a+=3;} }printf("%d",a); A.29 B.30 C.19 D.28 6.执行以下程序段时输入:C919China,则输出结果是( ) char ch; while((ch=getchar())!=' ') {if(ch>='A'&&ch<='Z') ch=ch+32; else if(ch>='a'&&ch<='z') ch=ch-32; else break; printf("%c",ch);} printf(" "); A.C919China B.c919china C.c D.C 7.执行以下程序段的输出结果是( ) int i=1,j=0; while(i) switch(i) {case 1:i+=1;j++;break; case 2:i+=2;j++;break; case 3:i+=3;j++;break; case 4:i+=4;j++;break; default:i--;j++;break;} A.1 B.2 C.3 D.无限循环 8.下列程序段的输出结果是( ) int i,j,m=1; for(i=1;i<5;i++) {for(j=5;j>0;j--) {if(i*j>3) continue; m*=i*j;}} printf("m=%d",m); A.m=1 B.m=12 C.m=34 D.m=36 9.执行以下程序段的输出结果是( ) int i; for(i=1;i<=4;) {printf("%d",i); if(i==1) break;}i++; A.1 B.12 C.123 D.1234 10.执行以下程序段的输出结果是( ) int a=1,b=0; for( ;a<5;a++) {if(a%2==0) break;b+=a;}printf("%d",b); A.1 B.10 C.0 D.4 11.执行以下程序段的输出结果是( ) int a=1,b=0; for( ;a<6;a++) {b+=a;if(a%3==0) continue;}printf("%d",b); A.16 B.17 C.15 D.14 12.执行以下程序段的输出结果是( ) int y=9; for( ;y>0;y--) if(y%3==0) continue; printf("%d",--y); A.1 B.0 C.-1 D.2 13.执行以下程序段的输出结果是( ) int i; for(i=1;i<=10;i++) {if(i++%3==0) if(++i%5==0) continue; printf("%d",i);} A.2811 B.281 C.28 D.28111 14.执行以下程序段的输出结果是( ) int a=1,b=0; for( ;a<5;a++) {if(a%2==0) break; continue; b+=a;} printf("%d",b); A.0 B.1 C.10 D.4 15.下列有关break和continue的叙述中,正确的一项是( ) A.break语句只能用于switch语句体中 B.continue语句的作用是使程序的执行流程跳出包含它的所有循环 C.在循环体内使用break语句和continue语句的作用相同 D.break语句只能用在循环体内和switch语句体内 16.下列叙述中,正确的一项是( ) A.break语句不能用于提前结束for语句的本层循环 B.使用break语句可以使流程跳出switch语句体 C.continue语句使得整个循环终止 D.在for语句中,continue与break的效果是一样的,可以互换 17.执行以下程序段时输入:3<回车>,则输出结果是( ) int i,data; scanf("%d",&data); for(i=0;i<5;i++) {if(i<data) continue; printf("%d,",i);} printf(" "); A.3,4 B.3,4, C.0,1,2, D.1,2,3,4, 18.执行以下程序段的输出结果是( ) int i; for(i=1;i<=5;i++) {if(i%2)printf("1"); else continue; printf("2");}printf("3"); A.121212 B.1212121 C.12121212 D.1212123 19.在下面的程序段中,( ) int t,x; for(t=1;t<=100;t++) {scanf("%d",&x);if(x<0)continue;printf("%3d",t);} A.当x<0时,整个循环结束 B.x>=0时什么也不输出 C.printf( )函数永远也不执行 D.最多允许输出100个非负整数 20.执行以下程序段,则( ) main() {int x=3,y; do{y=x--;if(!y){printf("x");continue;}printf("#");}while(1<=x<=2); getch();} A.输出:## B.输出:##* C.死循环 D.有语法错误 21.执行下列程序段的输出结果是( ) int a,b; for(a=1,b=1;a<=100;a++) {if(b>=20) break; if(b%3==1) {b+=3;continue;} b-=5;} printf("%d ",a); A.7 B.8 C.9 D.10 22.执行以下程序段的输出结果是( ) int i,j,a=0; for(i=0;i<2;i++) {for(j=0;j<4;j++) {if(j%2) break;a++;}a++;} printf("%d ",a); A.4 B.5 C.6 D.7 23.执行以下程序段的输出结果是( ) main() {int k=0;char c='A'; do{switch(c++) {case 'A':k++;break; case 'B':k--; case 'C':k+=2;break; case 'D':k=k%2;continue; case 'E':k=k*10;break; default:k=k/3;} k++;}while(c<'G');printf("k=%d ",k);getch();} A.k=0 B.k=2 C.k=3 D.k=4 二、程序运行结果题(本题共7小题,每题3分,共21分) 24.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int i=1,j=0; while(i) {switch(i) {case 1:i+=1;j++;break; case 2:i+=2;j++;break; case 3:i+=3;j++;break; case 4:i+=4;j++;break; default:i--;j++;break;} printf("%d",i);break;} getch();} 25.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int i,j,m=1; for(i=1;i<3;i++) {for(j=3;j>0;j--) {if(i*j>3) break; m*=i*j;}} printf("m=%d",m); getch();} 26.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int y=9; for( ;y>0;y--) if(y%3==0) {printf("%d",--y); continue;} getch();} 27.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=1,b=0; do {switch(a) {case 1:b=1;break; case 2:b=2;break; default:b=0;} b=a+b;}while(!b); printf("a=%d,b=%d",a,b); getch();} 28.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int i,sum=0; for(i=1; ;i++) {if(i%2==0) continue; sum+=i; if(sum>20) break;} printf("%d,%d",i,sum); getch();} 29.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int x=8; for( ;x>0;x--) {if(x%3) {printf("%d,",x--); continue;} printf("%d,",--x);} getch();} 30.以下程序的运行结果是( ) #include <math.h> #include <stdio.h> #include<conio.h> main() {float x,y,z; scanf("%f%f",&x,&y); z=x/y; while(1) {if(fabs(z)>1.0) {x=y;y=z;z=x/y;} else break;} printf("%f",y); getch();} 运行程序时输入:3.6 2.4<回车> 三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共9分) 31.一辆卡车违反交通规则,撞人后逃跑,现场有3人目击该事件,但都没有记住车牌号,只记下车牌号的一些特征。甲说:牌照前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车牌号刚好是一个整数的平方。以下程序的功能是根据以上线索求出车牌号,题目中共有三处错误,请改正。 L1 #include <stdio.h> L2 #include<conio.h> L3 main() L4 { int i,j,k,temp,flag=0; L5 for(i=0;i<=9;i++) L6 {if(flag) L7 break; L8 for(j=0;j<=9;j++) L9 {if(flag) L10 break; L11 if(i==j) L12 {k=1000*i+100*i+10*j+j; L13 for(temp=31;temp<=99;temp++) L14 if(temp*temp=k) L15 {printf("车牌号为%d",k); L16 flag=1; L17 continue; L18 }}}} L19 getch();} 四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 32.一辆以固定速度行驶的汽车,司机上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。两个小时后,里程表上出现了一个新的对称数,该数仍为五位数。求该车的速度是多少?新的对称数是多少?请填空。 #include <stdio.h> #include<conio.h> main() { int a1,a2,a3,a4,a5; long int k,i; for(i=95860;;i++) {k=【1】; a1=【2】;k/=10; a2=(i%k)/(k/10);k/=10; a3=(i%k)/(k/10);k/=10; a4=(i%k)/(k/10);k/=10; a5=(i%k)/(k/10);k/=10; if(【3】) {printf("里程表上出现的新的对称数是:%d%d%d%d%d ",a1,a2,a3,a4,a5); printf("该车的速度为:%.2f ",(i-95859)/2.0);【4】;}} getch();} 33.以下程序的功能是求出给定范围start~end之间的所有素数。请填空。 #include <math.h> #include <stdio.h> #include<conio.h> main() { int start,end,i,k,m,flag=1,count=0; do {printf("Iuput SATART and END:"); scanf("%d%d",&start,&end); }while(【1】); for(m=start;【2】;m++) {k=sqrt((float)m); for(i=2;i<=k;i++) if(m%i==0) {flag=0;【3】;} if(【4】) {printf("%-4d",m); count++; if(count%10==0) printf(" "); } flag=1;} printf(" The total is %d ",count); getch();} 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$ 湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。 《编程语言—C语言》 项目三: 循环结构程序设计 第17卷: break语句和continue语句 时间:45分钟 总分:100分 班级___________ 姓名__________ 学号__________ 成绩________ 一、选择题(共23小题,每小题2分,共46分) 1.执行以下程序段的输出结果是( ) int t=0; while(printf("*")) {t++;if(t<3) break;}printf("%d",t); A.* B.0 C.1 D.*1 【答案】D 2.执行以下程序段,下列说法中,正确的一项是( ) for(i=1;i<=50;i++) {scanf("%f",&x);if(x<0) continue;printf("%d ",i);} A.因为有continue语句,所以printf语句永远不会执行 B.当x<0时,for循环结束 C.当x>=0时,for循环结束 D.最多允许输出50个非负的整数 【答案】D 3.执行以下程序段的输出结果是( ) int num=0; while(1) {num++; if(num%3==0) break; printf("%d",num);} A.9 B.23 C.36 D.12 【答案】D 4.执行以下程序段的输出结果是( ) int num=0; while(num<=20) {num++; if(num%3==0) continue; if(num%4==0)break; printf("%d",num);} A.1 B.12 C.23 D.34 【答案】B 5.执行下列程序段的输出结果是( ) int a=0,i;; for(i=1;i<10;i++) {switch(i) {case 0:case 3:a+=1;break; case 1:case 2:a+=2; default:a+=3;} }printf("%d",a); A.29 B.30 C.19 D.28 【答案】A 6.执行以下程序段时输入:C919China,则输出结果是( ) char ch; while((ch=getchar())!=' ') {if(ch>='A'&&ch<='Z') ch=ch+32; else if(ch>='a'&&ch<='z') ch=ch-32; else break; printf("%c",ch);} printf(" "); A.C919China B.c919china C.c D.C 【答案】C 7.执行以下程序段的输出结果是( ) int i=1,j=0; while(i) switch(i) {case 1:i+=1;j++;break; case 2:i+=2;j++;break; case 3:i+=3;j++;break; case 4:i+=4;j++;break; default:i--;j++;break;} A.1 B.2 C.3 D.无限循环 【答案】D。注意break的作用范围。 8.下列程序段的输出结果是( ) int i,j,m=1; for(i=1;i<5;i++) {for(j=5;j>0;j--) {if(i*j>3) continue; m*=i*j;}} printf("m=%d",m); A.m=1 B.m=12 C.m=34 D.m=36 【答案】D 9.执行以下程序段的输出结果是( ) int i; for(i=1;i<=4;) {printf("%d",i); if(i==1) break;}i++; A.1 B.12 C.123 D.1234 【答案】A 10.执行以下程序段的输出结果是( ) int a=1,b=0; for( ;a<5;a++) {if(a%2==0) break;b+=a;}printf("%d",b); A.1 B.10 C.0 D.4 【答案】A 11.执行以下程序段的输出结果是( ) int a=1,b=0; for( ;a<6;a++) {b+=a;if(a%3==0) continue;}printf("%d",b); A.16 B.17 C.15 D.14 【答案】C 12.执行以下程序段的输出结果是( ) int y=9; for( ;y>0;y--) if(y%3==0) continue; printf("%d",--y); A.1 B.0 C.-1 D.2 【答案】C 13.执行以下程序段的输出结果是( ) int i; for(i=1;i<=10;i++) {if(i++%3==0) if(++i%5==0) continue; printf("%d",i);} A.2811 B.281 C.28 D.28111 【答案】A 14.执行以下程序段的输出结果是( ) int a=1,b=0; for( ;a<5;a++) {if(a%2==0) break; continue; b+=a;} printf("%d",b); A.0 B.1 C.10 D.4 【答案】A 15.下列有关break和continue的叙述中,正确的一项是( ) A.break语句只能用于switch语句体中 B.continue语句的作用是使程序的执行流程跳出包含它的所有循环 C.在循环体内使用break语句和continue语句的作用相同 D.break语句只能用在循环体内和switch语句体内 【答案】D 16.下列叙述中,正确的一项是( ) A.break语句不能用于提前结束for语句的本层循环 B.使用break语句可以使流程跳出switch语句体 C.continue语句使得整个循环终止 D.在for语句中,continue与break的效果是一样的,可以互换 【答案】B 17.执行以下程序段时输入:3<回车>,则输出结果是( ) int i,data; scanf("%d",&data); for(i=0;i<5;i++) {if(i<data) continue; printf("%d,",i);} printf(" "); A.3,4 B.3,4, C.0,1,2, D.1,2,3,4, 【答案】B 18.执行以下程序段的输出结果是( ) int i; for(i=1;i<=5;i++) {if(i%2)printf("1"); else continue; printf("2");}printf("3"); A.121212 B.1212121 C.12121212 D.1212123 【答案】D 19.在下面的程序段中,( ) int t,x; for(t=1;t<=100;t++) {scanf("%d",&x);if(x<0)continue;printf("%3d",t);} A.当x<0时,整个循环结束 B.x>=0时什么也不输出 C.printf( )函数永远也不执行 D.最多允许输出100个非负整数 【答案】D 20.执行以下程序段,则( ) main() {int x=3,y; do{y=x--;if(!y){printf("x");continue;}printf("#");}while(1<=x<=2); getch();} A.输出:## B.输出:##* C.死循环 D.有语法错误 【答案】C 21.执行下列程序段的输出结果是( ) int a,b; for(a=1,b=1;a<=100;a++) {if(b>=20) break; if(b%3==1) {b+=3;continue;} b-=5;} printf("%d ",a); A.7 B.8 C.9 D.10 【答案】B 22.执行以下程序段的输出结果是( ) int i,j,a=0; for(i=0;i<2;i++) {for(j=0;j<4;j++) {if(j%2) break;a++;}a++;} printf("%d ",a); A.4 B.5 C.6 D.7 【答案】A 23.执行以下程序段的输出结果是( ) main() {int k=0;char c='A'; do{switch(c++) {case 'A':k++;break; case 'B':k--; case 'C':k+=2;break; case 'D':k=k%2;continue; case 'E':k=k*10;break; default:k=k/3;} k++;}while(c<'G');printf("k=%d ",k);getch();} A.k=0 B.k=2 C.k=3 D.k=4 【答案】D 二、程序运行结果题(本题共7小题,每题3分,共21分) 24.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int i=1,j=0; while(i) {switch(i) {case 1:i+=1;j++;break; case 2:i+=2;j++;break; case 3:i+=3;j++;break; case 4:i+=4;j++;break; default:i--;j++;break;} printf("%d",i);break;} getch();} 【答案】2 25.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int i,j,m=1; for(i=1;i<3;i++) {for(j=3;j>0;j--) {if(i*j>3) break; m*=i*j;}} printf("m=%d",m); getch();} 【答案】m=6 26.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int y=9; for( ;y>0;y--) if(y%3==0) {printf("%d",--y); continue;} getch();} 【答案】852 27.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=1,b=0; do {switch(a) {case 1:b=1;break; case 2:b=2;break; default:b=0;} b=a+b;}while(!b); printf("a=%d,b=%d",a,b); getch();} 【答案】a=1,b=2 28.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int i,sum=0; for(i=1; ;i++) {if(i%2==0) continue; sum+=i; if(sum>20) break;} printf("%d,%d",i,sum); getch();} 【答案】9,25 29.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int x=8; for( ;x>0;x--) {if(x%3) {printf("%d,",x--); continue;} printf("%d,",--x);} getch();} 【答案】8,5,4,2, 30.以下程序的运行结果是( ) #include <math.h> #include <stdio.h> #include<conio.h> main() {float x,y,z; scanf("%f%f",&x,&y); z=x/y; while(1) {if(fabs(z)>1.0) {x=y;y=z;z=x/y;} else break;} printf("%f",y); getch();} 运行程序时输入:3.6 2.4<回车> 【答案】1.600000 三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共9分) 31.一辆卡车违反交通规则,撞人后逃跑,现场有3人目击该事件,但都没有记住车牌号,只记下车牌号的一些特征。甲说:牌照前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车牌号刚好是一个整数的平方。以下程序的功能是根据以上线索求出车牌号,题目中共有三处错误,请改正。 L1 #include <stdio.h> L2 #include<conio.h> L3 main() L4 { int i,j,k,temp,flag=0; L5 for(i=0;i<=9;i++) L6 {if(flag) L7 break; L8 for(j=0;j<=9;j++) L9 {if(flag) L10 break; L11 if(i==j) L12 {k=1000*i+100*i+10*j+j; L13 for(temp=31;temp<=99;temp++) L14 if(temp*temp=k) L15 {printf("车牌号为%d",k); L16 flag=1; L17 continue; L18 }}}} L19 getch();} 答案: L11 if(i!=j) L14 if(temp*temp==k) L17 break; 四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 32.一辆以固定速度行驶的汽车,司机上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。两个小时后,里程表上出现了一个新的对称数,该数仍为五位数。求该车的速度是多少?新的对称数是多少?请填空。 #include <stdio.h> #include<conio.h> main() { int a1,a2,a3,a4,a5; long int k,i; for(i=95860;;i++) {k=【1】; a1=【2】;k/=10; a2=(i%k)/(k/10);k/=10; a3=(i%k)/(k/10);k/=10; a4=(i%k)/(k/10);k/=10; a5=(i%k)/(k/10);k/=10; if(【3】) {printf("里程表上出现的新的对称数是:%d%d%d%d%d ",a1,a2,a3,a4,a5); printf("该车的速度为:%.2f ",(i-95859)/2.0);【4】;}} getch();} 答案:①100000 ②(i%k)/(k/10) ③(a1==a5)&&(a2==a4) ④break 33.以下程序的功能是求出给定范围start~end之间的所有素数。请填空。 #include <math.h> #include <stdio.h> #include<conio.h> main() { int start,end,i,k,m,flag=1,count=0; do {printf("Iuput SATART and END:"); scanf("%d%d",&start,&end); }while(【1】); for(m=start;【2】;m++) {k=sqrt((float)m); for(i=2;i<=k;i++) if(m%i==0) {flag=0;【3】;} if(【4】) {printf("%-4d",m); count++; if(count%10==0) printf(" "); } flag=1;} printf(" The total is %d ",count); getch();} 答案:①!(start>0&&start<end) ②m<=end ③break ④flag 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

任务17:break语句和continue语句  《编程语言-C语言》45分钟专题训练-第1页
1
任务17:break语句和continue语句  《编程语言-C语言》45分钟专题训练-第2页
2
任务17:break语句和continue语句  《编程语言-C语言》45分钟专题训练-第3页
3

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。