《while及do-while循环语句练习.docx》由会员分享,可在线阅读,更多相关《while及do-while循环语句练习.docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、while语句5. 8下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环, 请选择填空_c#include void main()int a,b,t;scanf( d%d,&a,&b);while( 1) if(ab)t=a;a=b;b=t;printf( %d,%dn ,a,b);scanf( d%d,&a,&b);A)!a= b B) a! = b C) a = = b D) a = b5. 9下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n ,并输出 m,n中的较大者,请选择填空 #includevoid main()(int
2、 m=0zn=0;char c;while( 1 )!=n)if(c=, A &c=za &c(=z ) n + +;)printf( dn,mn? 2);1 A) c=putchar() B) getcharQ |c)c=getchar() D) scanf( c,c)2】A) n:mB) m:nC) m:mD) n:n5.10 下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A, z变成B。请选择填空 #includemain()(char c;while(c=getchar()!=/ n)if(c=r a &c#Z &c二Z +2)printf( c,c);)1 A)
3、 c+=2 B) c-=322 A) c=B B) c=AC)c=c+32+2)c-=26D) c-=30D)c=c+265.11 下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空 #includemain()(int azmax=O;scanf( d” ,&a);while( 1)(if(maxa)max=a;scanf( %dH ,&a);)printf( d,max);)1 A)a =O BaC)!a= = lD)!a5.12 下面程序的运行结果是#include void main()(int num=0;while(num=2)(num + +;printf
4、 (dn,num);)A) 1 B) 1 C) 1 D) 12 223 35.13若运行以下程序时,从键盘输入2473 (表示回车),则下面程序的运行结果是#include void main()int c;while(c=getchar ()! = n) switch (c - 2) case 0:case 1: putchar(c+4);case 2: putchar(c+4);break;case 3: putchar(c+3);case 4: putchar(c+2);break;) printf(nn);)A) 668977 B) 668966 C) 66778777 D) 6688
5、766do-while 语句5.14 C语言中while和do-while循环的主要区别是。A) do-while的循环体至少无条件执行一次B) while的循环控制条件比do-while的循环控制条件严格 C) do-while允许从外部转到循环体内D) do-while的循环体不能是复合语句5.15 以下能正确计算1X2X3X.X10的程序段是.A) do i=l;s=l;s=s*i;1 + +; while (i = 10);B) do i=l;s=0;s=s*i;i+;while (i = 10);C) i = l;s=l;do s=s*i; i+;while (i = 10);D)
6、i = l;s=0;do s=s*i;i + +;5.16 以下程字段ox=-l;do(x=x*x;while(!x);A)是死循环B)循环执行二次C)循环执行一次D)有语法错误5.17 以下描述中正确的是A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C)在do-while循环体中,一定要有能使while后面表达式的值变为零(假)的操作D) do-while循环中,根据情况可以省略while5.18 若有如下语句int x=3;do(printf (%dn,
7、x-=2);while(!(x);则上面程序段A)输出的是1B)输出的是1和-2C)输出的是3和0D)是死循环5.19 下面程序的功能是计算正整数2345的各位数字平方和,请选择填空.#include void main()(int n,sum = 0;n=2345;do(sum=sum+ 1;n= 2;while(n);printf (Hsum = %d/sum);)1 A) n%10 B) (n%10)*(n%10)C)n/10 D) (n/10)*(n/10)2 A) n%1000 B) n/100C)n/10D)n%105. 20下面程序是从键盘输入学号.然后输出学号中百位数字是3的学
8、号输入0时结束循环。请选择填空。#include void main()(long int num;scanf(%ld,&num); do if( LU )printf(学号百分位为3的学号为d,num); scanf ( %d , &num);while( 2);1 A) num%100/10= = 3 B) num/100%10=3 C) num%10/10= = 3 D) num/10%10= = 32 A)!numB)num0=0 C)!num =0D)!num!=05. 22下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除。请选择填空。#include v
9、oid main()(int i=O,j,k;do(i + +;k=316-13*i;while ( 1);j=k/ll;printf (316=13*%d + ll*%d/ JJ);)1 A) k/11 B) k%ll C) k/ll=0 D) k/ll=05.23 下面程序的运行结果是#include void main()(int y=10;do(y-;while(y); printf (dn”,y-);)A)-l B) 1 C) 8D)05.24 若运行以下程序时,从键盘输入ADescriptor(表示回车),则下面程序的运行结果是#include void main() char c
10、;int v0=0,vl=0,v2=0;doswitch (c =getchar () casea:case A:casee:case E:case T :case T: caseo:case O:caseu:case ,U:vl + = l;default: v0+ = l;v2 + = l;)while (c!=n);printf (v0= %d,vl=%d, v2 = %dn,/ vOzvlzv2); )A) v0=7,vl=4,v2=7B) v0=8,vl=4zv2=8C) 70=111=42=11D) v0=12zvl=4zv2=125. 25下面程序的运行结果是o#include void main() int a = lzb=10;dob-=a; a + +;while (b0);printf (a=%d/b=%dn,/a ,b);A)a=3 , b=llB)a=2 , b=8C)a = l , b=-lD) a=4 , b=9