任务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
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$