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

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

内容正文:

湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。 《编程语言—C语言》 项目三: 循环结构程序设计 第14卷: do…while循环结构程序设计 时间:45分钟 总分:100分 班级___________ 姓名__________ 学号__________ 成绩________ 一、选择题(共23小题,每小题2分,共46分) 1.在C语言中,while和do-while循环的主要区别是( ) A.do-while的循环体至少无条件执行一次 B.while的循环控制条件比do-while的循环控制条件严格 C.do-while允许从外部转到循环体内部 D.while循环体不能是复合语句 【答案】A 2.下列有关do-while循环的叙述中,正确的一项是( ) A.C语言中不能使用do-while语句构成的循环 B.do-while语句构成的循环必须用break语句才能退出循环 C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环 【答案】D 3.执行程序段: int x=-1;do{x=x*x;}while(!x);,则( ) A.是死循环 B.执行循环体一次 C.执行循环体两次 D.循环体一次也不执行 【答案】B 4.下列有关while和do-while循环的叙述中,正确的一项是( ) A.while、do-while循环中的循环体语句都至少被执行一次 B.do-while循环中,while(表达式)后面的分号可以省略 C.while循环体中,一定要有能使while后面表达式的值为“假”的操作 D.do-while循环中,根据用户需求,可以省略while 【答案】C 5.执行以下程序段后的输出结果是( ) int x=3;do{printf("%d",x-=2);}while(--x); A.1 B.3 C.30 D.1-2 【答案】A 6.下列选项中,能够正确计算:1×2×3×4×……×10的程序段是( ) A.do{i=1;s=1;s*=i;i++;}while(i<=10); B.do{i=1;s=0;s*=i;i++;}while(i<=10); C.i=1;s=1;dp{s=s*i;i++;}while(i<=10); D.i=1;s=0;dp{s=s*i;i++;}while(i<=10); 【答案】C。注意,累乘置1,累加置0。 7.执行以下程序段的输出结果是( ) int a=1,b=10;do{b-=a;a++;}while(b--<0);printf("%d,%d ",a,b); A.3,11 B.2,8 C.1,-1 D.4,9 【答案】B 8.执行以下程序段的输出结果是( ) int y=10;do{y--;}while(y);printf("%d ",y ); A.0 B.1 C.9 D.-1 【答案】A 9.执行以下程序段后的输出结果是( ) int a=1,b=10; do{b=b-a;a++;}while(b--<0);printf("%d",b); A.9 B.8 C.-1 D.0 【答案】B 10.执行下列程序段后的输出结果是( ) int x=12,y=3; do{x/=y--;}while(x>y);printf("%d",x); A.1 B.2 C.3 D.程序运行有误 【答案】D。循环到了第三次之后,y=0,除法有误,分母不能为0。 11.下列程序段中,do…while语句的循环结束条件是( ) int n=0,p; do{scanf("%d",&p);n++;}while(p!=12345&&n<3); A.p的值不等于12345且n的值小于3 B.p的值等于12345且n的值大于或等于3 C.p的值不等于12345或者n的值小于3 D.p的值等于12345或者n的值大于或等于3 【答案】D 12.以下程序段的输出结果是( ) int n=1,p=10; do{n++;}while(n<p);printf("%d",n); A.10 B.8 C.9 D.11 【答案】A 13.执行以下程序段的输出结果是( ) int s=0,a=4,n=1; do{s++;a--;}while(a==n); printf("%d,%d",s,a); A.4,0 B.1,3 C.3,1 D.4,-1 【答案】B 14.以下程序段能够正确计算: 的程序段是( ) A.i=1;s=0;do{s=s*i;i++;}while(i<=50); B.i=1;s=1;do{s=s*i;i++;}while(i<50); C.i=1;s=1;do{i++; s=s*i;}while(i<=50); D.i=1;s=1;do{i++; s=s*i;}while(i<50); 【答案】D 15.以下程序段的输出结果是( ) int i=1,s=1;do{s=s+i;i++;}while(i<=12);printf("%d",s); A.79 B.67 C.78 D.80 【答案】A 16.以下程序段中,循环次数不超过10次的是( ) A. int i=10; do {i=i+1;}while(i<0); B. int i=5; do {i+=1;}while(i>0); C. int i=1; do {i=i+2;}while(i!=10); D. int i=6; do {i=i-2;}while(i!=1); 【答案】A 17.以下程序段能够实现5!的程序段是( ) A. int fac=1,k=0;do{k++;fac*=k;}while(k<5); B. int fac=0,k=1;do{fac*=k; k++;}while(k<5); C. int fac=1,k=1;do{k++;fac*=k;}while(k<=5); D. int fac=1,k=0;do{fac*=k; k++;}while(k<5); 【答案】A 18.执行以下程序段的输出结果是( ) int i=0; do printf("%d,",i); while(i++); printf("%d",i); A.0,1 B.0,0 C.1,1 D.有语法错误 【答案】A 19.执行以下程序段的输出结果是( ) int a=-2,b=0; do{++b;}while(a++); printf("%d,%d",a,b); A.2,3 B.0,2 C.1,2 D.1,3 【答案】D 20.执行以下程序段的输出结果是( ) int x=23; do{printf("%d",x--);}while(!x); A.321 B.21 C.23 D.32 【答案】C 21.执行以下程序段的输出结果是( ) int i=0,sum=1; do{sum+=i++;}while(i<6); printf("%d",sum); A.22 B.18 C.20 D.16 【答案】D 22.执行以下程序段的输出结果是( ) int sum=0,x=5; do{sum+=x;}while(!--x); printf("%d",sum); A.0 B.5 C.14 D.15 【答案】B 23.执行以下程序段时输入:abcdefg0,输出结果是( ) char c; do{c=getchar( );putchar(c+2);}while(c!='0'); A.cdefghi2 B.cdefghi C.cdefghi1 D.有语法错 【答案】A 二、程序运行结果题(本题共7小题,每题3分,共21分) 24.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {char c; int chl=0,ch2=0; do{switch(c=getchar( )) {case 'a':chl+=1; case 't':case 'T':ch2+=1; default:chl+=1;ch2+=1;}} while(c!=' '); printf("chl=%d,ch2=%d ",chl,ch2); getch();} 运行时输入:2025Test<回车> 【答案】chl=9,ch2=11 25.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int s=0,a=1,n; scanf("%d",&n); do {s=s+1; a=a-2; }while(a!=n); printf("%d",s); getch();} 运行程序时输入:-3<回车> 【答案】2 26.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=1,b=175; do {a*=b%10; b/=10;}while(b); printf("%d",a); getch();} 【答案】35 27.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=1,b=0; do {switch(a) {case 1:b+=1; case 2:b+=2; default:b+=3;} b=a+b;}while(!b); printf("a=%d,b=%d",a,b); getch();} 【答案】a=1,b=7 28.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int i=5; do {if(i%3==1) if(i%5==2) {printf("*%d",i);} i++;}while(i<20); printf(" ");; getch();} 【答案】*7 29.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int x=0,y=6; do {while(--y) x++;}while(y--); printf("%d,%d ",x,y); getch();} 【答案】5,-1 30.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a,b,m=1,n=1; scanf("%d%d",&a,&b); do {if(a>0) { m=2*n;b++;} else { n=m+n;a+=2;b++;}} while(a==b); printf ("m=%d n=%d",m,n); getch();} 运行程序时输入:-2 0<回车> 【答案】m=1 n=2 三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共9分) 31.下列程序的功能是计算100~999范围内的水仙花数。程序中有三处错误,请改正。 L1 #include <stdio.h> L2 #include<conio.h> L3 main() L4 { L5 int i=100; L6 int a,b,c; L7 do L8 { L9 a=i/100; L10 b=i/10%10; L11 c=i/10; L12 if(a*a*a+b*b*b+c*c*c=i) L13 { L14 printf("水仙花数:%d ",i); L15 } L16 i+1; L17 }while(i<=999); L18 getch();} 答案: L11 c=i%10; L12 if(a*a*a+b*b*b+c*c*c==i) L16 i++; 四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 32.角谷猜想在西方常被称为西拉古斯猜想,其内容是:任给一个自然数,若为偶数则除以2,若为奇数则乘以3再加1,这样得到一个新的自然数之后再按照前面的法则继续演算,若干次以后得到的结果必然是1。请填空。 #include <stdio.h> #include<conio.h> main() { int n,count=0; printf("请输入一个自然数:"); scanf("%d",&n); do {if(n%2) {n=【1】; printf("[%d]:%d*3+1=%d ",++count,【2】 ,n);} else {n/=2; printf("[%d]:%d/2=%d ",++count,【3】 ,n);} }while(【4】); getch();} 答案:①n*3+1 ②(n-1)/3 ③2*n ④n!=1 33.下列程序的功能是:每个苹果0.8元,第一天买2个苹果;从第二天开始,每天买前一天的2倍,直至购买的苹果个数达到不超过100的最大值,那么每天平均花费多少钱?请填空。 #include <stdio.h> #include<conio.h> main() { int day=0,buy=2; float sum=0.0,ave; do {sum+=【1】; day++; buy=【2】; }while(【3】); ave=【4】; printf("%f",ave); getch();} 答案:①0.8*buy ②buy*2 ③buy<=100 ④sum/day 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$ 湖南省职教高考《编程语言—C语言》45分钟专题训练专辑,共43份试卷。试卷命题与高考紧密相关,精选具有代表性和典型性的高考常考题。旨在帮助学生系统地复习和巩固计算机类理论知识,熟悉高考题型和命题规律,提高解题能力和应试技巧,为高考取得优异成绩打下坚实的基础,本训练卷适用于即将参加计算机类高考的学生。与本专辑配套的还有湖南省职教高考《计算机应用基础》《计算机组装与维护》《计算机网络技术》45分钟专题训练专辑,欢迎同学和老师们下载使用。 《编程语言—C语言》 项目三: 循环结构程序设计 第14卷: do…while循环结构程序设计 时间:45分钟 总分:100分 班级___________ 姓名__________ 学号__________ 成绩________ 一、选择题(共23小题,每小题2分,共46分) 1.在C语言中,while和do-while循环的主要区别是( ) A.do-while的循环体至少无条件执行一次 B.while的循环控制条件比do-while的循环控制条件严格 C.do-while允许从外部转到循环体内部 D.while循环体不能是复合语句 2.下列有关do-while循环的叙述中,正确的一项是( ) A.C语言中不能使用do-while语句构成的循环 B.do-while语句构成的循环必须用break语句才能退出循环 C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环 3.执行程序段: int x=-1;do{x=x*x;}while(!x);,则( ) A.是死循环 B.执行循环体一次 C.执行循环体两次 D.循环体一次也不执行 4.下列有关while和do-while循环的叙述中,正确的一项是( ) A.while、do-while循环中的循环体语句都至少被执行一次 B.do-while循环中,while(表达式)后面的分号可以省略 C.while循环体中,一定要有能使while后面表达式的值为“假”的操作 D.do-while循环中,根据用户需求,可以省略while 5.执行以下程序段后的输出结果是( ) int x=3;do{printf("%d",x-=2);}while(--x); A.1 B.3 C.30 D.1-2 6.下列选项中,能够正确计算:1×2×3×4×……×10的程序段是( ) A.do{i=1;s=1;s*=i;i++;}while(i<=10); B.do{i=1;s=0;s*=i;i++;}while(i<=10); C.i=1;s=1;dp{s=s*i;i++;}while(i<=10); D.i=1;s=0;dp{s=s*i;i++;}while(i<=10); 7.执行以下程序段的输出结果是( ) int a=1,b=10;do{b-=a;a++;}while(b--<0);printf("%d,%d ",a,b); A.3,11 B.2,8 C.1,-1 D.4,9 8.执行以下程序段的输出结果是( ) int y=10;do{y--;}while(y);printf("%d ",y ); A.0 B.1 C.9 D.-1 9.执行以下程序段后的输出结果是( ) int a=1,b=10; do{b=b-a;a++;}while(b--<0);printf("%d",b); A.9 B.8 C.-1 D.0 10.执行下列程序段后的输出结果是( ) int x=12,y=3; do{x/=y--;}while(x>y);printf("%d",x); A.1 B.2 C.3 D.程序运行有误 11.下列程序段中,do…while语句的循环结束条件是( ) int n=0,p; do{scanf("%d",&p);n++;}while(p!=12345&&n<3); A.p的值不等于12345且n的值小于3 B.p的值等于12345且n的值大于或等于3 C.p的值不等于12345或者n的值小于3 D.p的值等于12345或者n的值大于或等于3 12.以下程序段的输出结果是( ) int n=1,p=10; do{n++;}while(n<p);printf("%d",n); A.10 B.8 C.9 D.11 13.执行以下程序段的输出结果是( ) int s=0,a=4,n=1; do{s++;a--;}while(a==n); printf("%d,%d",s,a); A.4,0 B.1,3 C.3,1 D.4,-1 14.以下程序段能够正确计算: 的程序段是( ) A.i=1;s=0;do{s=s*i;i++;}while(i<=50); B.i=1;s=1;do{s=s*i;i++;}while(i<50); C.i=1;s=1;do{i++; s=s*i;}while(i<=50); D.i=1;s=1;do{i++; s=s*i;}while(i<50); 15.以下程序段的输出结果是( ) int i=1,s=1;do{s=s+i;i++;}while(i<=12);printf("%d",s); A.79 B.67 C.78 D.80 16.以下程序段中,循环次数不超过10次的是( ) A. int i=10; do {i=i+1;}while(i<0); B. int i=5; do {i+=1;}while(i>0); C. int i=1; do {i=i+2;}while(i!=10); D. int i=6; do {i=i-2;}while(i!=1); 17.以下程序段能够实现5!的程序段是( ) A. int fac=1,k=0;do{k++;fac*=k;}while(k<5); B. int fac=0,k=1;do{fac*=k; k++;}while(k<5); C. int fac=1,k=1;do{k++;fac*=k;}while(k<=5); D. int fac=1,k=0;do{fac*=k; k++;}while(k<5); 18.执行以下程序段的输出结果是( ) int i=0; do printf("%d,",i); while(i++); printf("%d",i); A.0,1 B.0,0 C.1,1 D.有语法错误 19.执行以下程序段的输出结果是( ) int a=-2,b=0; do{++b;}while(a++); printf("%d,%d",a,b); A.2,3 B.0,2 C.1,2 D.1,3 20.执行以下程序段的输出结果是( ) int x=23; do{printf("%d",x--);}while(!x); A.321 B.21 C.23 D.32 21.执行以下程序段的输出结果是( ) int i=0,sum=1; do{sum+=i++;}while(i<6); printf("%d",sum); A.22 B.18 C.20 D.16 22.执行以下程序段的输出结果是( ) int sum=0,x=5; do{sum+=x;}while(!--x); printf("%d",sum); A.0 B.5 C.14 D.15 23.执行以下程序段时输入:abcdefg0,输出结果是( ) char c; do{c=getchar( );putchar(c+2);}while(c!='0'); A.cdefghi2 B.cdefghi C.cdefghi1 D.有语法错 二、程序运行结果题(本题共7小题,每题3分,共21分) 24.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {char c; int chl=0,ch2=0; do{switch(c=getchar( )) {case 'a':chl+=1; case 't':case 'T':ch2+=1; default:chl+=1;ch2+=1;}} while(c!=' '); printf("chl=%d,ch2=%d ",chl,ch2); getch();} 运行时输入:2025Test<回车> 25.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int s=0,a=1,n; scanf("%d",&n); do {s=s+1; a=a-2; }while(a!=n); printf("%d",s); getch();} 运行程序时输入:-3<回车> 26.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=1,b=175; do {a*=b%10; b/=10;}while(b); printf("%d",a); getch();} 27.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a=1,b=0; do {switch(a) {case 1:b+=1; case 2:b+=2; default:b+=3;} b=a+b;}while(!b); printf("a=%d,b=%d",a,b); getch();} 28.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int i=5; do {if(i%3==1) if(i%5==2) {printf("*%d",i);} i++;}while(i<20); printf(" ");; getch();} 29.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int x=0,y=6; do {while(--y) x++;}while(y--); printf("%d,%d ",x,y); getch();} 30.以下程序的运行结果是( ) #include <stdio.h> #include<conio.h> main() {int a,b,m=1,n=1; scanf("%d%d",&a,&b); do {if(a>0) { m=2*n;b++;} else { n=m+n;a+=2;b++;}} while(a==b); printf ("m=%d n=%d",m,n); getch();} 运行程序时输入:-2 0<回车> 三、阅读程序,修改程序中的错误,不得增行或删行,也不得更改程序结构。请指出错误代码所在的行号,并给出该行修改后的程序代码。(每处3分,共9分) 31.下列程序的功能是计算100~999范围内的水仙花数。程序中有三处错误,请改正。 L1 #include <stdio.h> L2 #include<conio.h> L3 main() L4 { L5 int i=100; L6 int a,b,c; L7 do L8 { L9 a=i/100; L10 b=i/10%10; L11 c=i/10; L12 if(a*a*a+b*b*b+c*c*c=i) L13 { L14 printf("水仙花数:%d ",i); L15 } L16 i+1; L17 }while(i<=999); L18 getch();} 四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共24分) 32.角谷猜想在西方常被称为西拉古斯猜想,其内容是:任给一个自然数,若为偶数则除以2,若为奇数则乘以3再加1,这样得到一个新的自然数之后再按照前面的法则继续演算,若干次以后得到的结果必然是1。请填空。 #include <stdio.h> #include<conio.h> main() { int n,count=0; printf("请输入一个自然数:"); scanf("%d",&n); do {if(n%2) {n=【1】; printf("[%d]:%d*3+1=%d ",++count,【2】 ,n);} else {n/=2; printf("[%d]:%d/2=%d ",++count,【3】 ,n);} }while(【4】); getch();} 33.下列程序的功能是:每个苹果0.8元,第一天买2个苹果;从第二天开始,每天买前一天的2倍,直至购买的苹果个数达到不超过100的最大值,那么每天平均花费多少钱?请填空。 #include <stdio.h> #include<conio.h> main() { int day=0,buy=2; float sum=0.0,ave; do {sum+=【1】; day++; buy=【2】; }while(【3】); ave=【4】; printf("%f",ave); getch();} 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

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

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