第20卷 while语句 重庆市高等职业教育分类考试-计算机类《C语言程序设计知识考点双析卷》

2025-10-29
| 2份
| 18页
| 126人阅读
| 1人下载

内容正文:

编写说明:重庆市高等职业教育分类考试专业综合理论测试-计算机类《C语言程序设计》考点双析卷专辑,依据省教育厅《重庆市高等职业教育分类考试专业综合理论测试计算机类考试说明》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于重庆市高等职业教育分类考试第一轮高考复习教学。 本专辑第20卷精准对标重庆市考纲,考试内容及范围【C语言程序设计知识】: (四)循环结构程序设计:while语句 重庆市高等职业教育分类考试 计算机类 《C语言程序设计》考点双析卷 第20卷 while语句 学生练习卷 时间:45分钟 总分:100分 班级_______ 姓名_______ 学号_______ 成绩_______ 一、单项选择题(本大题共30小题,每题3分,共90分) 1.若要实现: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 2.设有以下程序,则下列叙述中,正确的一项是(   ) #include<stdio.h> main() {…… while(getchar( )!=’ ’); ……} A.此while语句将无限循环 B.getchar( )不可以出现在while语句的条件表达式中 C.当执行此while语句时,只有按回车键程序才能继续执行 D.当执行此while语句时,按任意键程序就能继续执行 【答案】C 【详解】执行whiel语句时,当按下回车键跳出while循环,才能继续执行下一条语句。 3.对于:while(!E){…s…},若要执行循环体s,则E的取值应该为(   ) A.E等于1 B.E不等于0 C.E不等于1 D.E等于0 【答案】D 4.要求通过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 5.执行以下程序段的输出结果是(   )     int i=2;     while(i-->0)printf("%d",i);     printf("%d",i); A.101 B.10 C.1 D.10-1 【答案】D 6.执行以下程序段的输出结果是(   )     int i=1;while(i++<8);printf("%d",i); A.7 B.8 C.9 D.10 【答案】C 7.执行以下程序段时输入: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 8.执行以下程序段时输入:left?<回车>,输出结果是(   ) main(){ char c;while((c=getchar( ))!='?') putchar(++c);getch();} A.mfgu B.mfuh C.nfug D.mfuf 【答案】A 9.下列程序的功能是将从键盘输入的一对数,由从小到大排序输出。当输入一对相等数时结束循环,请选择填空(   ) 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 10.执行以下程序段的输出结果是(   ) int a=3;while(a--)printf("%d",a); A.210 B.321 C.32 D.21 【答案】A 11.执行以下程序段的输出结果是(   ) int num=0;while(num<=2){num++;printf("%d",num++);} A.12 B.1 C.13 D.135 【答案】C 12.执行以下程序段的输出结果是(   ) int n=0;while(n++<=8);printf("%d",n); A.7 B.8 C.9 D.10 【答案】D 13.执行以下程序段的输出结果是(   ) 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 14.执行以下程序段的输出结果是(   ) 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 15.设有程序段:int x=0,s=0;while(!x!=0) s+=++x;printf("%d",s);,则输出结果为(   ) A.0 B.1 C.死循环 D.while中的控制表达式非法 【答案】B 16.下列程序的功能是:从键盘输入一组字符,将其中的小写字母变成对应的大写字母后的第二个字母,其中,y变成A,z变成B。请选择填空。(   ) main() {char c; while((c=getchar( ))!=' ') {if(c>='a'&&c<='z') {c=【      】; if(c>'Z'&&c<='Z'+2)c=c-26;}printf("%c",c);}getch();} A.c-30 B.c-32 C.c+32 D.c+30 【答案】A 17.下列程序的功能是:从键盘输入2个数,由小到大排序输出。当输入的2个数是相等数时,结束循环。请选择填空。(   ) 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) 【答案】B 18.下列程序的功能是:计算100~1000中有多少个各位数字之和是5的数。请填空。(   ) main() {int i,s,k,count=0; for(i=100;i<=1000;i++) {s=0;k=i; while(k!=0) {s=s+k%10; k=【       】;} if(s!=5) continue; else count++;} printf("%d",count);getch();} A.k/10 B.k%10 C.k%10/10 D.k/10%10 【答案】A 19.下列程序的功能是:求 的值。请选择填空。(   ) main() {int i=2;float sum=1; while(i<=50) {sum=sum+1.0/i;i=【      】;} printf("sum=%f",sum); getch();} A.i++ B.i+2 C.i*i D.i-- 【答案】B 20.设以下变量均已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是(   ) A.n=0;char ch;while((ch=getchar( ))!=' ') n++; B.n=0;while(getchar( )!=' ') n++; C.for(n=0;getchar( )!= ' ';n++); D.n=0;for(ch=getchar( )!= ' ';n++); 【答案】D 【详解】省略表达式1可省,但不可省略其分号。 21.以下选项中,不构成无限循环的语句或语句组是(   ) A.n=0;do{++n;}while(n<=0); B.n=0;while(1){n++;} C.n=10;while(n);{n--;} D.for(n=0,i=1; ;i++) n+=i; 【答案】A 22.在C语言中,循环语句while和do…while的主要区别是(   ) A.do…while的循环体不能是复合语句 B.do…while的循环语句不允许嵌套 C.while的循环控制条件更严格 D.do…while的循环体至少无条件执行一次 【答案】D 23.下列不属于无限循环的语句是(   ) A.for(y=0,x=l;x>++y;x=++i) i=x; B.for(;;x++=i); C.while (1) { x++;} D.for(i=10 ;;i--) sum+=i; 【答案】A 24.设有程序段:int k=10;while(k=0) k=k-1;则下列描述中正确的一项是(   ) A.while循环执行10次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句执行一次 【答案】C 25.执行以下程序段的输出结果是(   ) 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 26.执行以下程序段后的输出结果是(   ) 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 27.执行以下程序段后的输出结果是(   ) 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 28.执行以下程序段后的输出结果是(   ) int a=7;while(a--);printf("%d",a); A.-1 B.0 C.1 D.7 【答案】A 29.执行以下程序段后的输出结果是(   ) int k=5; while(--k)printf("%d",k-=3); A.1 B.2 C.4 D.0 【答案】A 30.执行以下程序段的输出结果是(   ) int y=10; while(y--); printf("y=%d",y); A.y=0 B.y=-1 C.y=1 D.while构成无限循环 【答案】B 二、程序设计题(本大题共1小题,每题10分,共10分) 31.代码实现计算两个正整数的最大公约数 要求: 输入两个正整数 a 和 b。 使用 while 循环和辗转相除法(欧几里得算法)计算它们的最大公约数。 输出结果。 【答案】#include <stdio.h> int main() {       int a, b, temp;       scanf("%d %d", &a, &b);       while (b != 0) {           temp = b;           b = a % b;           a = temp;       }       printf("最大公约数:%d", a);       return 0;   } 试卷第6页,共6页 试卷第5页,共6页 学科网(北京)股份有限公司 $ 编写说明:重庆市高等职业教育分类考试专业综合理论测试-计算机类《C语言程序设计》考点双析卷专辑,依据省教育厅《重庆市高等职业教育分类考试专业综合理论测试计算机类考试说明》编写。“考点双析卷”即围绕一个考点,一份是老师的讲解卷一份是学生的练习卷,助力师生构建“讲练结合”的学习闭环,特别适用于重庆市高等职业教育分类考试第一轮高考复习教学。 本专辑第20卷精准对标重庆市考纲,考试内容及范围【C语言程序设计知识】: (四)循环结构程序设计:while语句 重庆市高等职业教育分类考试 计算机类 《C语言程序设计》考点双析卷 第20卷 while语句 学生练习卷 时间:45分钟 总分:100分 班级_______ 姓名_______ 学号_______ 成绩_______ 一、单项选择题(本大题共30小题,每题3分,共90分) 1.若要实现: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;} 2.设有以下程序,则下列叙述中,正确的一项是(   ) #include<stdio.h> main() {…… while(getchar( )!=’ ’); ……} A.此while语句将无限循环 B.getchar( )不可以出现在while语句的条件表达式中 C.当执行此while语句时,只有按回车键程序才能继续执行 D.当执行此while语句时,按任意键程序就能继续执行 3.对于:while(!E){…s…},若要执行循环体s,则E的取值应该为(   ) A.E等于1 B.E不等于0 C.E不等于1 D.E等于0 4.要求通过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); 5.执行以下程序段的输出结果是(   )     int i=2;     while(i-->0)printf("%d",i);     printf("%d",i); A.101 B.10 C.1 D.10-1 6.执行以下程序段的输出结果是(   )     int i=1;while(i++<8);printf("%d",i); A.7 B.8 C.9 D.10 7.执行以下程序段时输入: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 8.执行以下程序段时输入:left?<回车>,输出结果是(   ) main(){ char c;while((c=getchar( ))!='?') putchar(++c);getch();} A.mfgu B.mfuh C.nfug D.mfuf 9.下列程序的功能是将从键盘输入的一对数,由从小到大排序输出。当输入一对相等数时结束循环,请选择填空(   ) 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 10.执行以下程序段的输出结果是(   ) int a=3;while(a--)printf("%d",a); A.210 B.321 C.32 D.21 11.执行以下程序段的输出结果是(   ) int num=0;while(num<=2){num++;printf("%d",num++);} A.12 B.1 C.13 D.135 12.执行以下程序段的输出结果是(   ) int n=0;while(n++<=8);printf("%d",n); A.7 B.8 C.9 D.10 13.执行以下程序段的输出结果是(   ) 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 14.执行以下程序段的输出结果是(   ) 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 15.设有程序段:int x=0,s=0;while(!x!=0) s+=++x;printf("%d",s);,则输出结果为(   ) A.0 B.1 C.死循环 D.while中的控制表达式非法 16.下列程序的功能是:从键盘输入一组字符,将其中的小写字母变成对应的大写字母后的第二个字母,其中,y变成A,z变成B。请选择填空。(   ) main() {char c; while((c=getchar( ))!=' ') {if(c>='a'&&c<='z') {c=【      】; if(c>'Z'&&c<='Z'+2)c=c-26;}printf("%c",c);}getch();} A.c-30 B.c-32 C.c+32 D.c+30 17.下列程序的功能是:从键盘输入2个数,由小到大排序输出。当输入的2个数是相等数时,结束循环。请选择填空。(   ) 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) 18.下列程序的功能是:计算100~1000中有多少个各位数字之和是5的数。请填空。(   ) main() {int i,s,k,count=0; for(i=100;i<=1000;i++) {s=0;k=i; while(k!=0) {s=s+k%10; k=【       】;} if(s!=5) continue; else count++;} printf("%d",count);getch();} A.k/10 B.k%10 C.k%10/10 D.k/10%10 19.下列程序的功能是:求 的值。请选择填空。(   ) main() {int i=2;float sum=1; while(i<=50) {sum=sum+1.0/i;i=【      】;} printf("sum=%f",sum); getch();} A.i++ B.i+2 C.i*i D.i-- 20.设以下变量均已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是(   ) A.n=0;char ch;while((ch=getchar( ))!=' ') n++; B.n=0;while(getchar( )!=' ') n++; C.for(n=0;getchar( )!= ' ';n++); D.n=0;for(ch=getchar( )!= ' ';n++); 21.以下选项中,不构成无限循环的语句或语句组是(   ) A.n=0;do{++n;}while(n<=0); B.n=0;while(1){n++;} C.n=10;while(n);{n--;} D.for(n=0,i=1; ;i++) n+=i; 22.在C语言中,循环语句while和do…while的主要区别是(   ) A.do…while的循环体不能是复合语句 B.do…while的循环语句不允许嵌套 C.while的循环控制条件更严格 D.do…while的循环体至少无条件执行一次 23.下列不属于无限循环的语句是(   ) A.for(y=0,x=l;x>++y;x=++i) i=x; B.for(;;x++=i); C.while (1) { x++;} D.for(i=10 ;;i--) sum+=i; 24.设有程序段:int k=10;while(k=0) k=k-1;则下列描述中正确的一项是(   ) A.while循环执行10次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句执行一次 25.执行以下程序段的输出结果是(   ) int n=2,k=0;while(k++&&n++>2);printf("%d,%d",k,n); A.0,2 B.1,2 C.1,3 D.死循环 26.执行以下程序段后的输出结果是(   ) 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 27.执行以下程序段后的输出结果是(   ) 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 28.执行以下程序段后的输出结果是(   ) int a=7;while(a--);printf("%d",a); A.-1 B.0 C.1 D.7 29.执行以下程序段后的输出结果是(   ) int k=5; while(--k)printf("%d",k-=3); A.1 B.2 C.4 D.0 30.执行以下程序段的输出结果是(   ) int y=10; while(y--); printf("y=%d",y); A.y=0 B.y=-1 C.y=1 D.while构成无限循环 二、程序设计题(本大题共1小题,每题10分,共10分) 31.代码实现计算两个正整数的最大公约数 要求: 输入两个正整数 a 和 b。 使用 while 循环和辗转相除法(欧几里得算法)计算它们的最大公约数。 输出结果。 试卷第6页,共6页 试卷第5页,共6页 学科网(北京)股份有限公司 $

资源预览图

第20卷 while语句 重庆市高等职业教育分类考试-计算机类《C语言程序设计知识考点双析卷》
1
第20卷 while语句 重庆市高等职业教育分类考试-计算机类《C语言程序设计知识考点双析卷》
2
第20卷 while语句 重庆市高等职业教育分类考试-计算机类《C语言程序设计知识考点双析卷》
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。