第六章循环控制 6.1选择题 【题6.1】设有程序段 int k=10: while(k=0)k=k-1 则下面描述中正确的是 A) while循环执行10次 B)循环是无限循环 C)循环体语句一次也不执行 D)循环体语句执行一次 【题6.2】设有以下程序段 int x=0.s=0 printf(“%d”,s) 则 A)运行程序段后输出0 B)运行程序段后输出1 C)程序段中的控制表达式是非法的D)程序段执行无限次 【题6.3】语句 while(!E);中的表达式!E等价于 A)E=0B)E!=1C)E!=0D)E=1 【题6.4】下面程序段的运行结果是 while(a<b<c)I t=a; a=b; b=t: c- printf(“%d,%d,%d”,a,b,c) A)1,2,0B)2,1,0C)1,2,1D)2,1,1 【题6.5】下面程序段的运行结果是 while(x<15)y++, x+=++y printf “%d,%d”,y,x) A)20,7B)6,12C)20,8D)8,20 【题6.6】下面程序段的运行结果是 int n while(n+<=2); printf(“%d”,n); D)有语法错 【题6.7】设有程序段 while( printf(“*”)
第六章 循环控制 6.1 选择题 【题 6.1】设有程序段 int k=10; while(k=0) k=k-1; 则下面描述中正确的是 。 A)while 循环执行 10 次 B)循环是无限循环 C)循环体语句一次也不执行 D)循环体语句执行一次 【题 6.2】设有以下程序段 int x=0,s=0; while(!x!=0) s+=++x; printf(“%d”,s); 则 。 A)运行程序段后输出 0 B)运行程序段后输出 1 C)程序段中的控制表达式是非法的 D)程序段执行无限次 【题 6.3】语句 while(!E);中的表达式!E 等价于 。 A)E==0 B)E!=1 C)E!=0 D)E==1 【题 6.4】下面程序段的运行结果是 。 a=1; b=2; c=2; while(a<b<c) { t=a; a=b; b=t; c--; } printf(“%d,%d,%d”,a,b,c); A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1 【题 6.5】下面程序段的运行结果是 。 x=y=0; while(x<15) y++,x+=++y; printf(“%d,%d”,y,x); A)20,7 B)6,12 C)20,8 D)8,20 【题 6.6】下面程序段的运行结果是 。 int n=0; while(n++<=2); printf(“%d”,n); A)2 B)3 C)4 D)有语法错 【题 6.7】设有程序段 t=0; while(printf(“*”))
t++ if(t<3)break 则下面描述正确的是 A)其中循环控制表达式与0等价B)其中循环控制表达式与“0’等价 C)其中循环控制表达式是不合法的D)以上说法都不对 【题6.8】下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等 数时结束循环,请选择填空。 include <stdio. h> mainO int a,b,t: scanf(“%d while(【1】) if(a>b) printf(“%d,%d”Ⅶn”,a,b) scanf(“%d%”,&a,&b) 【1】A) B) al=b C) a==b 【题6.9】下面程序的功能是将从键盘输入的一组字符中统计出大写字母的个数m和小写字 母的个数n,并输出皿、n中的较大者,请选择填空 #include <stdio. h> maln int m=0. n=0 char c while((【1】)!=“\n’) f(c>=‘A’&&c<=‘Z’)m++; if(c>=‘a’&c<=‘z’)n+; printf(“%dn”,m<n?【2】) 【1】A)c= getchar B) getchar(C) scanf(“%c”,c) 【2】A)n:m B)m:n C)m: m D)n:n 【题6.10】下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A, z变成B。请选择填空
{ t++; if(t<3) break; } 则下面描述正确的是 。 A)其中循环控制表达式与 0 等价 B)其中循环控制表达式与‘0’等价 C)其中循环控制表达式是不合法的 D)以上说法都不对 【题 6.8】下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等 数时结束循环,请选择填空。 #include <stdio.h> main() { int a,b,t; scanf(“%d %d”,&a,&b); while(【1】) { if(a>b) { t=a; a=b; b=t; } printf(“%d,%d”\n”,a,b); scanf(“%d %d”,&a,&b); } } 【1】 A)!a=b B)a!=b C)a==b D)a=b 【题 6.9】下面程序的功能是将从键盘输入的一组字符中统计出大写字母的个数 m 和小写字 母的个数 n,并输出 m、n 中的较大者,请选择填空。 #include <stdio.h> main() { int m=0,n=0; char c; while((【1】)!=‘\n’) { if(c>=‘A’&&c<=‘Z’) m++; if(c>=‘a’&&c<=‘z’) n++; } printf(“%d\n”,m<n? 【2】); } 【1】 A)c=getchar() B)getchar() C)scanf(“%c”,c) 【2】 A)n:m B)m:n C)m:m D)n:n 【题 6.10】下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中 y 变成 A, z 变成 B。请选择填空
#include <stdio. h> char c while((c= getchar0)!=“n’) f(c>=‘a'&&c<=‘z’) 【1】 if(c>"'Z 【2】 printf(“%c”,c) 【1】A)c+=2B)c-=32C)c=c+32+2D)c-=30 【2】A)c=‘B’B)c=‘A’C)c-=26 【题6.11】下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选 择填空 #include <stdio. h maino int a. max=O scanf(“%d”,&a) while(【1】) scanf(“%d”,&a) printf(“%d”,max); 【1】A)a=0B) C)!a==1D)!a 【题6.12】下面程序的运行结果是 #include <stdio. h> maino int numo while(num<=2) nutt printf(“%dn”,num)
#include <stdio.h> main() { char c; while((c=getchar())!=‘\n’) { if(c>=‘a’&&c<=‘z’) { 【1】; if(c>‘Z’) 【2】; } printf(“%c”,c); } } 【1】 A)c+=2 B)c-=32 C)c=c+32+2 D)c-=30 【2】 A)c=‘B’ B)c=‘A’ C)c-=26 D)c=c+26 【题 6.11】下面程序的功能是在输入的一批正整数中求出最大者,输入 0 结束循环,请选 择填空。 #include <stdio.h> main() { int a,max=0; scanf(“%d”,&a); while(【1】) { if(max<a) max=a; scanf(“%d”,&a); } printf(“%d”,max); } 【1】 A)a==0 B)a C)!a==1 D)!a 【题 6.12】下面程序的运行结果是 。 #include <stdio.h> main() { int num=0; while(num<=2) { num++; printf(“%d\n”,num); }
A)1 2 【题6.13】若运行以下程序时,从键盘输入2473<回车>,则下面程序的运行结果是 #include <stdio. h> mal int c while((c=getchar O)!='\n') case o case 1: putchar(c+4) case 2: putchar(c+4);break case 3: putchar(c+3) default: putchar(c+2); break printf(“n”) A)668977 B)668966 C)66778777 D)6688766 【题6.14】C语言中 while和do- while循环的主要区别是 A) do-while的循环体至少无条件执行一次 B) while的循环控制条件比do- while的循环控制条件严格 C)do- while允许从外部转到循环体内 D) do-while的循环体不能是复合语句 【题6.15】以下能正确计算1×2×3×…×10的程序段是」 a) doli=1: s=1 B)do{i=1;s=0; fwhile(i<=10) )while(i<=1( C)i=1;s=1 D)i=1;s=0; dois I while(i<=10) ) while(i<=10) 【题6.16】以下程序
} A)1 B)1 C)1 D)1 2 2 2 3 3 4 【题 6.13】若运行以下程序时,从键盘输入 2473<回车>,则下面程序的运行结果是 。 #include <stdio.h> 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); default: putchar(c+2); break; } printf(“\n”); } A)668977 B)668966 C)66778777 D)6688766 【题 6.14】C 语言中 while 和 do-while 循环的主要区别是 。 A) do-while 的循环体至少无条件执行一次 B) while 的循环控制条件比 do-while 的循环控制条件严格 C) do-while 允许从外部转到循环体内 D) do-while 的循环体不能是复合语句 【题 6.15】以下能正确计算 1×2×3×…×10 的程序段是 。 A)do{i=1; s=1; B)do{i=1; s=0; s=s*i; s=s*i; i++; i++; }while(i<=10); }while(i<=10); C)i=1; s=1; D)i=1; s=0; do{s=s*i; do{s=s*i; i++; i++; }while(i<=10); }while(i<=10); 【题 6.16】以下程序段 。 x=-1; do { x=x*x; }
while(!x A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 【题6.17】以下描述中正确的是 A)由于do- while循环中循环体语句只能是一条可执行语句,所以循环体内 不能使用复合语句 B)do- while循环由do开始,用 while结束,在 while(表达式)后面不能 写分号 C)在do- while循环体中,一定要有能使 while后面表达式的值变为零(“假”) 的操作 D)do- while循环中,根据情况可以省略whie 【题6.18】若有如下语句 nt x=3: do{ printf(“%d\n”),x-=2;} while(!(-x) 则上面程序段 A)输出的是1B)输出的是1和-2C)输出的是3和0D)是死循环 【题6.19】下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。 #include <stdio. h> int n. sumO n=2345 2wV→→ printf(“sum=%d”,sum) 【1】A)n%10B)(n%10)*(n%10)C)n/10D)(n/10)*(n/10) 【2】A)n/1000B)n/100 C)n/10D)n%10 【题6.20】下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时 结束循环。请选择填空。 #include <stdio. h> main long int num scanf(“%ld”,&num); if(【1】) printf(“%ld”,num) scanf(“%ld”,&num)
while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 【题 6.17】以下描述中正确的是 。 A) 由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内 不能使用复合语句 B) do-while 循环由 do 开始,用 while 结束,在 while(表达式)后面不能 写分号 C) 在 do-while 循环体中,一定要有能使 while 后面表达式的值变为零(“假”) 的操作 D) do-while 循环中,根据情况可以省略 while 【题 6.18】若有如下语句 int x=3; do{ printf(“%d\n”),x-=2; }while(!(--x)); 则上面程序段 。 A)输出的是 1 B)输出的是 1 和-2 C)输出的是 3 和 0 D)是死循环 【题 6.19】下面程序的功能是计算正整数 2345 的各位数字平方和,请选择填空。 #include <stdio.h> main() { int n,sum=0; n=2345; do{ sum=sum+【1】; n=【2】; }while(n); printf(“sum=%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/100 C)n/10 D)n%10 【题 6.20】下面程序是从键盘输入学号,然后输出学号中百位数字是 3 的学号,输入 0 时 结束循环。请选择填空。 #include <stdio.h> main() { long int num; scanf(“%ld”,&num); do{ if(【1】) printf(“%ld”,num); scanf(“%ld”,&num);