5.1.7 当运行以下程序时,从键盘输入“right? <回车>”,则下面程序的运行结果是sjhiu 。
#include
while((c=getchar())!=???) putchar(++c); }
5.1.8 下面程序的运行结果是 s=254 。
#include
{ int a,s,n,count;
a=2; s=0; n=1; count=1;
while(count<=7) { n=n*a; s=s+n; ++count; } printf(“s=%d”,s); }
5.1.9 执行下面程序段后,k的值是 36 。
k=1;n=263;
do{ k*=n; n/=10; } while(n); 5.1.10 下面程序的运行结果是 -10 。
#include
for(i=100; i>=0; i-=10); printf(“%d\\n”, i); }
5.1.11 下面程序使循环结束的条件式 i==0 。
#include
for(i=250;i;i-=5) printf(“%d\\n”,i); }
5.1.12 以下程序输出结果为 x=-1,y=21 。
#include
for(x=30,y=0;x>=10,y<20;x--,y++) x/=2, y+=2;
printf(“x=%d, y=%d\\n”,x,y);
5.1.13 下面程序的功能是计算1-3+5-7+...-99+100的值,请填空。
#include
{ int i, t=1, s=0;
for( i=1; i<=101; i+=2) { t=t*i ; s=s+t; t=-t/i ; } printf(“%d\\n”,s); }
5.1.14 下面程序的运行结果是****。
#include
for(i=j; i<2*j; i++) switch(i/j) { case 0:
case 1: printf(”*”); break; case 2: printf(“#”); } }
5.1.15 下面程序的输出结果是i=6, k=4 。
#include
void main() { int i, j,k=19; while(i=k-1) { k-=3;
if(k%5==0) { i++; continue; } else if(k<5) break; i++; }
printf(“i=%d, k=%d\\n”,i k); }
5.2 选择题
5.2.1 设有程序段:int k=10; while(k=0) k=k-1;,则下面描述正确的是( C)。
A) while循环执行10次 B) 循环时无限循环 C) 循环体语句一次也不执行 D) 循环体语句执行一次 5.2.2 有以下程序:
#include
void main() { while(putchar(getchar())!=???); }
当输入“china?”时,程序的执行结果是( D )。
A) china B) dijob C) dijiob? D) china? 5.2.3 语句while(!E);中的表达式!E等价于( A )。
A) E==0 B) E!=1 C) E!=0 D) E==1 5.2.4 下面程序段的运行结果是( A )。
a=1;b=2;c=2; while(a
{ 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 5.2.5 下面程序段的输出结果是( C )。
int n=0;
while(n++<=2); printf(“%d“,n);
A) 2 B) 3 C) 4 D) 有语法错误
5.2.6 下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一
对相等数时结束循环,请选择填空。 #include
scanf(“%d,%d”,&a,&b); while( B ) { if(a>b)
{ t=a; a=b; b=t; } printf(%d,%d\\n“,a,b); scanf(“%d,%d”,&a,&b); }
}
A) !a=b B) a!=b C) a==b D) a=b
5.2.7 下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小
写字母的个数n,并输出m、n中的较大者,请选择填空。 #include
{ int m=0,n=0; char c;
scanf(“%d,%d”,&a,&b); while( ( [1] C )!=?\\n ? ) { if(c>=?A?&&c<=?Z?) m++; if(c>=?a?&&c<=?z?) n++; } printf(“%d”,m } [1] A) c==getchar( ) B) getchar( ) C) c=getchar( ) D) scanf(“%c”,c) [2] A) n:m B) m:n C) m:m D) n:n 5.2.8 下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环, 请选择填空。 #include { int a,max=0; scanf(“%d”,&a); while( B ) { if(max printf(“%d”,max); } A) a==0 B) a C) !a==1 D) !a 5.2.9 下面程序段的输出结果是( C)。 #include while( num<=2 ) { num++; printf(“%d\\n”,num); } } A) 1 B) 1 C) 1 D) 1 2 2 2 3 3 4 5.2.10 若运行下程序,从键盘输入2473<回车>,则下面程序的结果是( A )。 #include 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) 668988 C) 66778777 D) 6688766 5.2.11 以下描述正确的是( C )。 A) while、do…while、for循环中的循环体语句都至少被执行一次。 B) do…while循环中,while(表达式)后面的分号可以省略。 C) while循环中,一般要有能使while后面表达式的值变为“假”的操作。 D) do…while循环中,根据情况可以省略while。 5.2.12 C语言的do…while循环中,循环由do开始,用while结束;而且在while 表达式后面的(B)不能丢,它表示do…while循环的结束。 A) \\n B) “;” C) “%” D) “。” 5.2.13 下面程序段的输出结果是( D )。 int x=3; do{ printf(“=”, x-=2); } while(!(--x)); A) 1 2 B) 3 2 C) 2 3 D) 1 -2 5.2.14 下面程序的功能是计算正整数2345的各位数字的平方和,请选择填空。 #include { int n=2345,sum=0; do { sum=sum+( [1] B ); n=( [2] C ) }while(n); printf(“sum=%d”,sum); } [1] A) n B) (n)*(n) C) n/10 D) (n/10)*(n/10) [2] A) n/1000 B) n/100 C) n/10 D) n 5.2.15 执行程序段:x=-1;do{x=x*x;} while(!x);的结果是( C )。 A) 死循环 B) 循环执行2次 C) 循环执行一次 D) 有语法错误 5.2.16 以下能正确计算1*2*3*4…*10的程序段是( C )。 A) do(i=1;s=1;s=s*i;i++) while(i<=10); B) do(i=1;s=0;s=s*i;i++) while(i<=10); C) i=1;s=1; do(s=s*i;i++) while(i<=10); D) i=1;s=0; do(s=s*i;i++) while(i<=10); 5.2.17 下面程序的功能是从键盘输入若干学号,然后输出学号中百位数字式3的 学号(输入0时结束循环),请选择填空。 #include { long int num; scanf(“%ld”,&num); do { if( [1] B) printf(“%ld”, num); scanf(“%ld”,&num); }whle( [2] C )) } [1] A) num0/10==3 B) num/100==3 C) num/10==3 D) num/10==3 [2] A) !num B) num<0==0 C) !num==0 D) !num!=0 5.2.18 对于for(表达式;;表达式3)可理解为( B )。 A) for(表达式;0;表达式3) B) for(表达式;1;表达式3) C) for(表达式;表达式1;表达式3) D) for(表达式;表达式3;表达式3) 5.2.19 以下不正确的描述是( B )。 A) break语句不能用于循环语句和switch语句外的任何其他语句 B) 在switch语句中使用break语句或continue语句的作用相同 C) 在循环语句中使用continue语句是为了结束本次循环,而不是终止整 个循环的执行。 D) 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环 5.2.20 若i为整型变量,循环语句for(i=2,i==0;) printf(“%d”,i--);的执行次数为(B)。 A) 无限次 B) 0次 C) 1次 D) 2次 5.2.21 以下叙述正确的是(C )。 A) for循环中设置if(条件)break,当条件成立时中止程序执行。