任务13:while循环结构程序设计 《编程语言-C语言》45分钟专题训练

| 2份
| 21页
| 107人阅读
| 2人下载

内容正文:

湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。 《编程语言—C语言》 项目三: 循环结构程序设计 第13卷: while循环结构程序设计 时间:45分钟 总分:100分 班级___________ 姓名__________ 学号__________ 成绩________ 一、选择题(共23小题,每小题2分,共46分) 1.设有程序段:int k=10;while(k=0) k=k-1;则下列描述中正确的一项是( ) A.while循环执行10次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句执行一次 2.语句:while(!E);中的表达式“!E”与下列( )选项等价。 A.E==0 B.E!=1 C.E!=0 D.E==1 3.设有程序段:int x=0,s=0;while(!x!=0) s+=++x;printf("%d",s);,则输出结果为( ) A.0 B.1 C.死循环 D.while中的控制表达式非法 4.执行以下程序段的输出结果是( ) int a=1,b=2,c=3,t; while(a<b<c) {t=a;a=b;b=t;c--;}printf("%d,%d,%d",a,b,c); A.1,2,1 B.1,2,0 C.1,2,2 D.2,1,1 5.执行以下程序段的输出结果是( ) int x,y;x=y=8; while(x<15) y++,x+=++y;printf("%d,%d",y,x); A.10,16 B.10,17 C.18,10 D.10,18 6.执行以下程序段的输出结果是( ) int n=0;while(n++<=8);printf("%d",n); A.7 B.8 C.9 D.10 7.执行以下程序段的输出结果是( ) int num=0;while(num<=2){num++;printf("%d",num++);} A.12 B.1 C.13 D.135 8.执行以下程序段的输出结果是( ) int a=3;while(a--)printf("%d",a); A.210 B.321 C.32 D.21 9.执行以下程序段的输出结果是( ) int n=2,k=0;while(k++&&n++>2);printf("%d,%d",k,n); A.0,2 B.1,2 C.1,3 D.死循环 10.下列程序的功能是将从键盘输入的一对数,由从小到大排序输出。当输入一对相等数时结束循环,请选择填空( ) 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);}getch();} A.a!=b B.!a=b C.a==b D.a=b 11.执行以下程序段时输入:left?<回车>,输出结果是( ) main(){ char c;while((c=getchar( ))!='?') putchar(++c);getch();} A. mfgu B.mfuh C.nfug D.mfuf 12.执行以下程序段时输入:ABCdef ,则输出结果是( ) char ch; while((ch=getchar())!=' ') {if(ch>='A'&&ch<='Z') ch=ch+32; else if(ch>='a'&&ch<='z') ch=ch-32; printf("%c",ch);} printf(" "); A.ABCdef B.abcDEF C.abc D.DEF 13.执行以下程序段的输出结果是( ) int i=1;while(i++<8);printf("%d",i); A.7 B.8 C.9 D.10 14.执行以下程序段的输出结果是( ) int i=2; while(i-->0)printf("%d",i); printf("%d",i); A.101 B.10 C.1 D.10-1 15.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是( ) A.while((ch=getchar( ))!='N')printf("%c",ch); B.while(ch=getchar( )='N')printf("%c",ch); C.while(ch=getchar( )=='N')printf("%c",ch); D.while((ch=getchar( ))=='N')printf("%c",ch); 16.对于:while(!E){…s…},若要执行循环体s,则E的取值应该为( ) A.E等于1 B.E不等于0 C.E不等于1 D.E等于0 17.设有以下程序,则下列叙述中,正确的一项是( ) #include<stdio.h> main() {…… while(getchar( )!=’ ’); ……} A.此while语句将无限循环 B.getchar( )不可以出现在while语句的条件表达式中 C.当执行此while语句时,只有按回车键程序才能继续执行 D.当执行此while语句时,按任意键程序就能继续执行 18.若要实现:total=1+2+3+4+5求和,以下程序段中,不正确的一项是( ) A. int i=1,total=1;while(i<5){total+=i;i+=1;} B. int i=1,total=0;while(i<=5){total+=i;i+=1;} C. int i=0,total=0;while(i<5){ i+=1;total+=i;} D. int i=0,total=0;while(i<=5){total+=i;i+=1;} 19.执行以下程序段的输出结果是( ) int y=10; while(y--); printf("y=%d",y); A.y=0 B.y=-1 C.y=1 D.while构成无限循环 20.执行以下程序段后的输出结果是( ) int k=5; while(--k)printf("%d",k-=3); A.1 B.2 C.4 D.0 21.执行以下程序段后的输出结果是( ) int a=7;while(a--);printf("%d",a); A.-1 B.0 C.1 D.7 22.执行以下程序段后的输出结果是( ) int a=1,b=2; while(a<6) {b=b+a;a=a+2;b=b%10;}printf("%d,%d",a,b); A.5,11 B.7,1 C.7,11 D.6,1 23.执行以下程序段后的输出结果是( ) int a=-2,b=0;while(a++) ++b;printf("%d,%d",a,b); A.1,2 B.0,2 C.1,3 D.2,3 二、程序运行结果题(本题共7小题,每题3分,共21分) 24.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() { int a=2,s=0,n=1,count=1; while(count<=8) {n=n*a;s=s+n;++count;} printf("s=%d",s); getch();} 25.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> #include<math.h> main() {int a1=0,a2=0; char ch; while((ch=getchar( ))!='&') switch(ch) {case 'a': case 'h': default:a1++; case 'o':a2++;} printf("%d,%d ",a1,a2); getch();} 程序运行时输入:Hunan2025&<回车> 26.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int c; while((c=getchar( ))!=' ') switch(c-'2') {case 0:case 1:putchar(c+4 ); case 2:putchar(c+4);break; case 3:putchar(c+3); default:putchar(c+2);break;} getch();} 运行时输入:2025<回车> 27.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int m,n,k; scanf("%d%d",&m,&n); k=m; while(k%m!=0||k%n!=0) k++; printf("%d",k); getch();} 运行程序时输入:2 3<回车> 28.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int m,n,k,t; scanf("%d%d",&m,&n); if(m<n) {t=m;m=n;n=t;} k=m; while(k%n!=0) k+=m; printf("k=%d",k); getch();} 运行程序时输入:7 8<回车> 29.以下程序的运行结果是( ) #include <math.h> #include <stdio.h> #include<conio.h> main() {float x,y,z; scanf("%f%f",&x,&y); z=x/y; while(y==0) if(fabs(z)>1.0) {x=y;y=z;z=x/y;} printf("%.2f",y); getch();} 运行程序时输入:3.8 2.2<回车> 30.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int num,reverse=0,count=0,r; scanf("%d",&num); while(num!=0) {r=num%10; reverse=reverse*10+r; num=num/10; count++;} printf("count:%d,reverse:%d ",count,reverse); getch();} 运行程序时输入:1234 三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共9分) 31.下列程序的功能是:输入两个正整数m和n,求其最大公约数和最小公倍数。程序中有三处错误,请改正。 L1 #include <stdio.h> L2 #include<conio.h> L3 main() L4 { int p,r,n,m,temp; L5 printf("请输入两个正整数n,m:"); L6 scanf("%d%d",&n,&m); L7 if(n>m) L8 {temp=n;n=m;m=temp;} L9 p=n*m; L10 while(m==0) L11 {r=n%m;n=m;m=r;} L12 printf("最大公约数为:%d ",n); L13 printf("最大公倍数为:%d ",p); L14 getch();} 四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 32.下列程序的功能是使用下面的公式求π的近似值,直到最后一项的绝对值小于0.0001为止: #include <stdio.h> #include<conio.h> #include<math.h> main() { int sign=1;double pi=0.0,n=1.0,term=1.0; while(【1】) {pi=pi+term; n=n+2; sign=【2】; term=【3】;} pi=【4】; printf("pi=%.8f",pi); getch();} 33.下列程序的功能是使用迭代法求 。求平方根的迭代公式为 ,要求前后两次求出x的差的绝对值小于 。 #include <stdio.h> #include<conio.h> #include<math.h> main() { float a,x0,x1; printf("enter a positive number:"); scanf("%f",&a); x0=a/2; x1=【1】; while(【2】>=【3】) {x0=x1; x1=【4】;} printf("The square root of %.3f is %f ",a,x1); getch();} 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$ 湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。 《编程语言—C语言》 项目三: 循环结构程序设计 第13卷: while循环结构程序设计 时间:45分钟 总分:100分 班级___________ 姓名__________ 学号__________ 成绩________ 一、选择题(共23小题,每小题2分,共46分) 1.设有程序段:int k=10;while(k=0) k=k-1;则下列描述中正确的一项是( ) A.while循环执行10次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句执行一次 【答案】C 2.语句:while(!E);中的表达式“!E”与下列( )选项等价。 A.E==0 B.E!=1 C.E!=0 D.E==1 【答案】A 3.设有程序段:int x=0,s=0;while(!x!=0) s+=++x;printf("%d",s);,则输出结果为( ) A.0 B.1 C.死循环 D.while中的控制表达式非法 【答案】B 4.执行以下程序段的输出结果是( ) int a=1,b=2,c=3,t; while(a<b<c) {t=a;a=b;b=t;c--;}printf("%d,%d,%d",a,b,c); A.1,2,1 B.1,2,0 C.1,2,2 D.2,1,1 【答案】A 5.执行以下程序段的输出结果是( ) int x,y;x=y=8; while(x<15) y++,x+=++y;printf("%d,%d",y,x); A.10,16 B.10,17 C.18,10 D.10,18 【答案】D 6.执行以下程序段的输出结果是( ) int n=0;while(n++<=8);printf("%d",n); A.7 B.8 C.9 D.10 【答案】D 7.执行以下程序段的输出结果是( ) int num=0;while(num<=2){num++;printf("%d",num++);} A.12 B.1 C.13 D.135 【答案】C 8.执行以下程序段的输出结果是( ) int a=3;while(a--)printf("%d",a); A.210 B.321 C.32 D.21 【答案】A 9.执行以下程序段的输出结果是( ) int n=2,k=0;while(k++&&n++>2);printf("%d,%d",k,n); A.0,2 B.1,2 C.1,3 D.死循环 【答案】B 10.下列程序的功能是将从键盘输入的一对数,由从小到大排序输出。当输入一对相等数时结束循环,请选择填空( ) 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);}getch();} A.a!=b B.!a=b C.a==b D.a=b 【答案】A 11.执行以下程序段时输入:left?<回车>,输出结果是( ) main(){ char c;while((c=getchar( ))!='?') putchar(++c);getch();} A. mfgu B.mfuh C.nfug D.mfuf 【答案】A 12.执行以下程序段时输入:ABCdef ,则输出结果是( ) char ch; while((ch=getchar())!=' ') {if(ch>='A'&&ch<='Z') ch=ch+32; else if(ch>='a'&&ch<='z') ch=ch-32; printf("%c",ch);} printf(" "); A.ABCdef B.abcDEF C.abc D.DEF 【答案】B 13.执行以下程序段的输出结果是( ) int i=1;while(i++<8);printf("%d",i); A.7 B.8 C.9 D.10 【答案】C 14.执行以下程序段的输出结果是( ) int i=2; while(i-->0)printf("%d",i); printf("%d",i); A.101 B.10 C.1 D.10-1 【答案】D 15.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是( ) A.while((ch=getchar( ))!='N')printf("%c",ch); B.while(ch=getchar( )='N')printf("%c",ch); C.while(ch=getchar( )=='N')printf("%c",ch); D.while((ch=getchar( ))=='N')printf("%c",ch); 【答案】A 16.对于:while(!E){…s…},若要执行循环体s,则E的取值应该为( ) A.E等于1 B.E不等于0 C.E不等于1 D.E等于0 【答案】D 17.设有以下程序,则下列叙述中,正确的一项是( ) #include<stdio.h> main() {…… while(getchar( )!=’ ’); ……} A.此while语句将无限循环 B.getchar( )不可以出现在while语句的条件表达式中 C.当执行此while语句时,只有按回车键程序才能继续执行 D.当执行此while语句时,按任意键程序就能继续执行 【答案】C。执行whiel语句时,当按下回车键跳出while循环,才能继续执行下一条语句。 18.若要实现:total=1+2+3+4+5求和,以下程序段中,不正确的一项是( ) A. int i=1,total=1;while(i<5){total+=i;i+=1;} B. int i=1,total=0;while(i<=5){total+=i;i+=1;} C. int i=0,total=0;while(i<5){ i+=1;total+=i;} D. int i=0,total=0;while(i<=5){total+=i;i+=1;} 【答案】A 19.执行以下程序段的输出结果是( ) int y=10; while(y--); printf("y=%d",y); A.y=0 B.y=-1 C.y=1 D.while构成无限循环 【答案】B 20.执行以下程序段后的输出结果是( ) int k=5; while(--k)printf("%d",k-=3); A.1 B.2 C.4 D.0 【答案】A 21.执行以下程序段后的输出结果是( ) int a=7;while(a--);printf("%d",a); A.-1 B.0 C.1 D.7 【答案】A 22.执行以下程序段后的输出结果是( ) int a=1,b=2; while(a<6) {b=b+a;a=a+2;b=b%10;}printf("%d,%d",a,b); A.5,11 B.7,1 C.7,11 D.6,1 【答案】B 23.执行以下程序段后的输出结果是( ) int a=-2,b=0;while(a++) ++b;printf("%d,%d",a,b); A.1,2 B.0,2 C.1,3 D.2,3 【答案】A 二、程序运行结果题(本题共7小题,每题3分,共21分) 24.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() { int a=2,s=0,n=1,count=1; while(count<=8) {n=n*a;s=s+n;++count;} printf("s=%d",s); getch();} 【答案】s=510 25.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> #include<math.h> main() {int a1=0,a2=0; char ch; while((ch=getchar( ))!='&') switch(ch) {case 'a': case 'h': default:a1++; case 'o':a2++;} printf("%d,%d ",a1,a2); getch();} 程序运行时输入:Hunan2025&<回车> 【答案】9,9 26.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int c; while((c=getchar( ))!=' ') switch(c-'2') {case 0:case 1:putchar(c+4 ); case 2:putchar(c+4);break; case 3:putchar(c+3); default:putchar(c+2);break;} getch();} 运行时输入:2025<回车> 【答案】6626687 27.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int m,n,k; scanf("%d%d",&m,&n); k=m; while(k%m!=0||k%n!=0) k++; printf("%d",k); getch();} 运行程序时输入:2 3<回车> 【答案】6 28.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int m,n,k,t; scanf("%d%d",&m,&n); if(m<n) {t=m;m=n;n=t;} k=m; while(k%n!=0) k+=m; printf("k=%d",k); getch();} 运行程序时输入:7 8<回车> 【答案】k=56 29.以下程序的运行结果是( ) #include <math.h> #include <stdio.h> #include<conio.h> main() {float x,y,z; scanf("%f%f",&x,&y); z=x/y; while(y==0) if(fabs(z)>1.0) {x=y;y=z;z=x/y;} printf("%.2f",y); getch();} 运行程序时输入:3.8 2.2<回车> 【答案】2.20 30.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int num,reverse=0,count=0,r; scanf("%d",&num); while(num!=0) {r=num%10; reverse=reverse*10+r; num=num/10; count++;} printf("count:%d,reverse:%d ",count,reverse); getch();} 运行程序时输入:1234 【答案】count:4,reverse:4321 三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共9分) 31.下列程序的功能是:输入两个正整数m和n,求其最大公约数和最小公倍数。程序中有三处错误,请改正。 L1 #include <stdio.h> L2 #include<conio.h> L3 main() L4 { int p,r,n,m,temp; L5 printf("请输入两个正整数n,m:"); L6 scanf("%d%d",&n,&m); L7 if(n>m) L8 {temp=n;n=m;m=temp;} L9 p=n*m; L10 while(m==0) L11 {r=n%m;n=m;m=r;} L12 printf("最大公约数为:%d ",n); L13 printf("最大公倍数为:%d ",p); L14 getch();} 答案: L7 if(n<m) L10 while(m!=0) L13 printf("最大公倍数为:%d ",p/n); 四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 32.下列程序的功能是使用下面的公式求π的近似值,直到最后一项的绝对值小于0.0001为止: #include <stdio.h> #include<conio.h> #include<math.h> main() { int sign=1;double pi=0.0,n=1.0,term=1.0; while(【1】) {pi=pi+term; n=n+2; sign=【2】; term=【3】;} pi=【4】; printf("pi=%.8f",pi); getch();} 答案:①fabs(term)>=0.0001 ②-sign ③sign/n ④pi*4 33.下列程序的功能是使用迭代法求 。求平方根的迭代公式为 ,要求前后两次求出x的差的绝对值小于 。 #include <stdio.h> #include<conio.h> #include<math.h> main() { float a,x0,x1; printf("enter a positive number:"); scanf("%f",&a); x0=a/2; x1=【1】; while(【2】>=【3】) {x0=x1; x1=【4】;} printf("The square root of %.3f is %f ",a,x1); getch();} 答案:①(x0+a/x0)/2 ②fabs(x0-x1) ③1e-5 ④(x0+a/x0)/2 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

任务13:while循环结构程序设计  《编程语言-C语言》45分钟专题训练-第1页
1
任务13:while循环结构程序设计  《编程语言-C语言》45分钟专题训练-第2页
2
任务13:while循环结构程序设计  《编程语言-C语言》45分钟专题训练-第3页
3

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