答案第五章 循环结构程序设计

更新时间:2023-09-01 17:31:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

二级,C语言,计算机,复习试题

第五章 循环结构程序设计

一、选择题

1.while循环语句中,while后一对圆括号中表达式的值决定了循环体是否进行,因此,进入while循环后,一定有能使此表达式的值变为 A 的操作,否则,循环将会无限制地进行下去。(0级)

A)0 B)1 C)成立 D)2

2.在do-while循环中,循环由do开始,用while结束;必须注意的是:在while表达式后面的 C 不能丢,它表示do-while语句的结束。(0级)

A)0 B)1 C); D),

3.for语句中的表达式可以部分或全部省略,但两个式均省略后,因缺少条件判断,循环会无限制地执行下去,形成死循环。(0级)

A)0 B)1 C); D), 4.程序段如下 int k=-20;

while(k=0) k=k+1;

则以下说法中正确的是 C 。(1级)

A)while循环执行20次 B)循环是无限循环 C)循环体语句一次也不执行 D)循环体语句执行一次 5.程序段如下 int k=1;

while(!k==0) {k=k+1;printf("%d\n",k);} 说法正确的是 B 。(1级)

A)while循环执行2次 B)循环是无限循环

C)循环体语句一次也不执行 D)循环体语句执行一次 6.以下for循环是(1级) for(a=0,b=0;(b!=123)&&(a<=4);a++)

A)无限循环 B)循环次数不定 C)执行4次 D)执行5次 7.在下列程序中,while循环的循环次数是(1级) main( ) { int i=0; while(i<10)

{if(i<1) continue; if(i= =5) break; i++; } ...... }

A)1 B)10 C)6 D)死循环、不能确定次数

8.程序段如下

int k=0; while(k++<=2) printf("%d\n",k); 则执行结果是 A 。(1级)

二级,C语言,计算机,复习试题

A)1 B)2 C)0 D)无结果

2 3 1 3 4 2 9.程序段如下 int k=0;

while(k++<=2); printf("last=%d\n",k); 则执行结果是last= C 。(1级)

A)2 B)3 C)4 D)无结果

10.执行下面的程序后,a的值为。(1级) main() {int a,b;

for(a=1,b=1;a<=100;a++) {if(b>=20)break;

if(b%3==1) {b+=3; continue; } b-=5; } }

A)7 B)8 C)9 11.以下程序的输出结果。(1级) main() {

int x=3; do

{printf("%3d",x-=2); }while(--x); }

A)1 B)30 3 C)1 -2 12.定义如下变量: int n=10;

则下列循环的输出结果是 B 。(1级)

while(n>7) {n--;

printf("%d\n",n); }

A)10 B)9 C)10 9 8 9 8 7 8 7 13.以下程序的输出结果(1级) main() {int n=0;

D)10

D)死循环D)9

8 7 6

二级,C语言,计算机,复习试题

while(n++<=1)

printf("%d\t",n); printf("%d\n",n); }

A)1 2 3 B)0 1 2 C)1 1 2 D)1 2 2

14.以下程序的输出结果是(1级) main() {int i;

for(i=1;i<=5;i++) {if(i%2)printf("#"); else continue; printf("*"); }

printf("$\n"); }

A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$

15.以下程序的输出结果是(1级) main() {int a=0,i;

for(i=1;i<5;i++) {swich(i) {case 0:

case 3:a+=2; case 1:

case2:a+=3; default:a+=5; } }

printf("%d\n",a); }

A)31 B)15 C)10 D)20

16.以下程序的输出结果是(1级) #include <stdio.h> main()

{int i=0,a=0; while(i<20)

{for(;;) {if((i%10)= =0) break;else i--;} i+=11; a+=i; }

printf("%d\n",a); }

A)21 B)32 C)33 D)11

17.当输入为"quert?"时,下面程序的执行结果是。(1级) #include<stdio.h>

二级,C语言,计算机,复习试题

main() {char c; c=getchar();

while((c=getchar())!='?') putchar(++c); }

A)Quert B)vfsu C)quert? D)rvfsu?

18.当输入为"quert?"时,下面程序的执行结果是。(1级) #include <stdio.h> main()

{while(putchar(getchar())!='?');}

A)quert B)Rvfsu C)quert? D)rvfsu?

19.当输入为"quert?"时,下面程序的执行结果是。(2级) #include<stdio.h> main() {char c; c=getchar(); while(c!='?') {

putchar(c); c=getchar(); } }

A)quert B)Rvfsu C)quert? D)rvfsu?

20.在C语言的循环语句for,while,do-while中,用于直接中断最内层循环的语句是 (0级)

A)swich B)continue C)break D)if

21.若i,j已定义为int型,则以下程序段中循环体的总的执行次数是 (1级)

for(i=5;i;i--)

for(j=0;j<4;j++)

{ }

A)20 B)24 C)25 D)30

22.以下程序的功能是:按顺序读入10名学生的4门课程的成绩,计算出每位学生的平均分并输出,程序如下:

main() {int n,k;

float score,sum,ave; sum=0.0;

for(n=1;n<=10;n++) {for(k=1;k<=4;k++)

{scanf("%f",&score);sum+=score};} ave=sum/4.0;

printf("NO%d:%f\n",n,ave); }

二级,C语言,计算机,复习试题

}

上述程序有一条语句出现在程序的位置不正确。这条语句是 C 。(2级)

A)sum=0.0; B)sum+=score;

C)ave=sum/4.0; D)printf("NO%d:%f\n",n,ave); 23. 有如下程序段, 其执行结果为。(02~03第一学期试题) for ( n = 10; n > 7; n-- )

printf ( “ %d\n” , n ) ;

A)10 B) 9 C)10 D)9

9 8 9 8 8 7 8 7

7 6

24. 循环语句中的for语句,其一般形式如下: for(表达式1;表达式2;表达式3) 语句

其中表示循环条件的是 B 。(01~02第二学期试题)

A)表达式1 B)表达式2 C)表达式3 D)语句 25.定义如下变量: int n=10;

则下列循环的输出结果是 B 。(01~02第二学期试题) while (n>7){ n--;printf(“%d”,n); }

A) 10 B) 9 C) 10 D) 9

9 8 9 8 8 7 8 7

7 6 26. 下面程序段的运行结果是:。(03试题) 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

27. 以下程序的运行结果是:(03试题) main( ) { int a=2, i ;

for(i=0;i<3;i++) printf(“%4d”,f(a) ) ; } f( int a)

{ int b=0,c=3;

b++; c++; return(a+b+c); }

A)7 10 13 B)7 7 7 C)7 9 11 D)7 8 9

28. 下面程序的运行结果是:。(往届试题) main( )

{ int y=10;

do { y--; } while(--y) ; printf(“%d\n”,y--); }

A)-1 B)1 C)8 D)0

29. 下面有关for循环的正确描述是。(04~05第二学期试题)

A)for循环只能用于循环次数已经确定的情况

二级,C语言,计算机,复习试题

B)for循环是先执行循环体语句,后判断表达式 C)在for循环中,不能用break语句跳出循环体

D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 30. 以下能正确计算1×2×3×…×10的程序段是。(04~05第二学期试题)

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); 31. 以下程序段。(04~05第二学期试题) x=-1; do { x=x * x;} while(!x);

A)是死循环 B)循环执行二次

C)循环执行一次 D)有语法错误 32. 下面程序的运行结果是:(往届试题) #include <stdio.h> main( )

{ int y=10;

do { y--; } while(--y) ; printf(“%d\n”,y--); }

A)-1 B)1 C)8 D)0 33. 定义如下变量和数组: int I;

int x[3][3]={1,2,3,4,5,6,7,8,9};

则下面执行语句的结果为: C 。(往届试题) for(I=0;I<3;I++)

printf(“%3d”,x[I][2-I]);

A)1 5 9 B)1 4 7 C)3 5 7 D)3 6 9 34. 以下程序的运行结果是: (往届试题)

main( ) { int n=4; while(n--)

printf (“%2d”,--n);}

A)2 0 B)3 1 C)3 2 1 D)2 1 0

35. 设有以下程序段,则执行该程序后为:。(往届试题) int x = 0, s = 0 ;

while ( !x != 0 ) s += ++ x ; printf ( “ %d ”, s ) ;

A)运行程序段后输出0 B)运行程序段后输出1

C)程序段中的控制表达式是非法的

二级,C语言,计算机,复习试题

D)程序段执行无限次

36. 下面程序的运行结果是:。(往届试题) #include <stdio.h> main( ) { int I ;

for ( I = 1; I <=5; I++) switch ( I%5 )

{ case 0: printf ( “ * ” ); break; case 1: printf ( “ # ” ); break; default : printf (“\n”);

case 2: printf ( “ &” ); break; } }

A)#&&* B)#& C)# D)#&

& &

&* & *

& *

二、填空题

1.while语句的特点是do-while环体再判断(2) 。(0级)

2.将for(表达式1;表达式2;表达式3)语句改写为while语句是表达式1;while(表达式2){ ……表达式3;} 。(0级)

3.break语句的功能是。(0级) 4.break语句只能用于语句和语句中。(0级)

5.continue语句的作用是即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。(0级)

6.在循环中,continue语句与break语句的区别是:continue语句只是环 ,break语句是 终止循环(2) 。(0级)

7.循环的嵌套是指。(0级) 8.要使以下程序段输出10个整数,请填入一个整数: ;printf("%d\n",i+=2));

9.语句标号由标识符表示,由组成。第一个字符必须是字母或下划线。(0级) 三、程序填空题

1.以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。

main()

{float x,amax,amin; scanf("%f",&x); amax=x; amin=x;

while(x>0)

{if(x>amax) amax=x;

if (x<amin) amin=x;

二级,C语言,计算机,复习试题

scanf("%f",&x); }

printf("\namax=%f\namin=%f\n",amax,amin); }

2.下面程序可求出1~1000的自然数中所有的完数(因子和等于该数本身的数)请填空。(03试题)

main( )

{ int m, n, s;

for(m=2;m<1000;m++) { for(n=1;n<=m/2;n++) if() s+=n;

if() printf(“%d\n”, m); } }

3.以下程序的功能是根据e 1 填空:(04~05第二学期试题) main( )

{int i=1; double e,new; e=1.0; new=1.0; {new/=(double) i; e+=new; printf(“e=%e\n”,e);

}

四、读程序写结果题

1.下面程序的输出结果是(1级) main() {int n=0;

while(n++<=1); printf("%d,",n); printf("%d\n",n); }

2.下面程序的输出结果是。(1级) main() {int s,i;

for(s=0,i=1;i<3;i++,s+=i); printf("%d\n",s); }

3.下面程序的输出结果是。(1级) main()

{int i=10,j=0; do

{j=j+i;i--;

111

...求e的近似值,精度要求为10 6。请1!2!3!

二级,C语言,计算机,复习试题

while(i>2);

printf("%d\n",j); }

4.设有以下程序 main() {int n1,n2;

scanf("%d",&n2); while(n2!=0) {n1=n2%10; n2=n2/10;

printf("%d",n1); } }

程序运行后,如果从键盘上输入1298,则输出结果为 8921 。(1级)

5.下面程序的输出结果是。(1级) main() {int s=0,k;

for(k=5;k>=0;k--) {swich(k) {case 1:

case 5:s++;break; case 3:

case 4:break; case 0:

case 2:s+=2;break; } }

printf("s=%d\n",s); }

6.下面程序运行结果是:(03试题) main( ) { int x, i ;

for( i=1,x=1; i<=50; i++ ) { if(x>=10) break;

if(x%2==1) { x+=5;continue;} x - = 3;}

printf(“%d\n”, i ); }

7.

#include<stdio.h> main( )

(04~05第二学期试题)

二级,C语言,计算机,复习试题

{ int i,j;

for(i=4;i>=1;i--) { printf(“*”); for(j=1;j<=4-i;j++) printf(“*”); printf(“\n”); }

8.main( ) { int i;

for(i=1;i<=5;i++) switch(i%5)

{ case 0: printf(“*”) ; break; case 1: printf(“#”) ; break; default: printf(“\n”); case 2: printf(“&”); } }

***** * * * *

9.下面程序的运行结果是:____***** _____。(往届试题) # include <stdio.h> main( ) { int i, j ;

for ( i = 0 ; i<= 3; i++ )

{ for ( j = 0; j<=5 ; j++ )

{ if ( i==0|| j==0|| i==3|| j==5) printf(“*”); else printf( “ ” ) ;} printf(“\n”); } }

(往届试题)

本文来源:https://www.bwwdw.com/article/06wi.html

Top