循环结构测试_第1页
循环结构测试_第2页
循环结构测试_第3页
循环结构测试_第4页
循环结构测试_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第五部分:循环结构一、选择题(1)有以下程序段  int  n,t=1,s=0;  scanf("%d",&n);  do  s=s+t;   t=t-2;  while (t!=n);为使此程序段不陷入死循环,从键盘输入的数据应该是A)任意正奇数 B)任意负偶数 C)任意正偶数 D)任意负奇数(2)设变量已正确定义,则以下能正确计算f = n!的程序段是A) f=0;    &

2、#160;  B) f=1;for(i=1;i<=n;i+) f*=i;     for(i=1;i<n;i+) f*=i;C) f=1;       D) f=1;for(i=n;i>1;i+) f*=i;        for(i=n;i>=2;i-) f*=i;(3)有以下程序 main()  int  k=5,n=0

3、;   while(k>0)     switch(k)        default  :  break;         case  1  :  n+=k;         case  2  :    

4、0;    case  3  :  n+=k;           k-;      printf("%dn",n); 程序运行后的输出结果是A)0   B)4   C)6   D)7(4)有以下程序main()   int  a=1,b; 

5、0; for(b=1;b<=10;b+)         if(a>=8)   break;      if(a%2=1)    a+=5;  continue;      a-=3;      printf("%dn",b);程序运行后的输出结果是     

6、;         A)3B)4C)5D)6(5) 有以下程序main () int  s=0,a=1,n;scanf("%d",&n);do  s+=1;    a=a-2;  while(a!=n);printf("%dn",s); 若要使程序的输出值为2,则应该从键盘给n输入的值是A) -1        B) -3

7、0;       C) -5        D) 0(6) 若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a;for(b=1;b<=c;b+) s=s+1;则与上述程序段功能等价的赋值语句是A) s=a+b;      B) s=a+c;     C) s=s+c;     

8、0;  D) s=b+c;(7) 有以下程序main() int  k=4,n=4;for( ; n<k ;)  n+;if(n%3!=0)  continue;k-; printf("%d,%dn",k,n);程序运行后的输出结果是A) 1,1       B) 2,2       C) 3,3        D) 4,4(8) 要求以下程

9、序的功能是计算:  main () int  n;   float   s;s=1.0;for(n=10;n>1;n-)s=s+1/n;print("%6.4fn",s);程序运行后输出结果错误,导致错误结果的程序行是A) s=1.0;               B) for(n=10;n>1;n-)C) s=s+1/n;   

10、60;         D) printf("%6.4f/n",s);(9)有以下程序main()  int i; for(i=0;i<3;i+)  switch(i)   case 1: printf("%d",i);   case 2: printf("%d",i);  

11、0;default: printf("%d",i);  执行后输出结果是A) 011122   B) 012   C) 012020   D) 120(10)有以下程序main() int i=0,s=0;doif(i%2)i+;continue;i+;s +=i;while(i<7); printf("%dn",s);执行后输出结果是A) 16 B) 12 C) 28 

12、 D) 21(11) 以下程序的功能是:按顺序读入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:%fn”,n,ave);   上述程序运行后结果不正确,调试中发现有一条语句出现

13、在程序中的位置不正确。这条语句是A) sum=0.0;            B) sum+=score;C) ave=sun/4.0;      D) printf(“NO%d:%fn”,n,ave); (12) 有以下程序段int n=0,p;doscanf(“%d”,&p);n+;while(p!=12345 &&n<3);此处dowhile循环的结束条件是A) P的值不等于12345并且n

14、的值小于3B) P的值等于12345并且n的值大于等于3C) P的值不等于12345或者n的值小于3D) P的值等于12345或者n的值大于等于3(13) 以下程序中,while循环的循环次数是main() int  i=0;while(i<10)   if(i<1)   continue;if(I=5)  break;       i+;.A) 1         

15、0;              B) 10C) 6                            D) 死循环,不能确定次数(14) 以下程序的输出结果是main() int  a=

16、0,i;for(i=;i<5;i+)  switch(i) case 0:case 3:a+=2;case 1:case 2:a+=3;default:a+=5;printf("%dn",a);A) 31   B) 13   C) 10   D) 20(15) 以下程序的输出结果是#include   <stdio.h>main() int  i=0,a=0;while(i<20)  for(;) if(i%10

17、)=0)  break;else        i-;i+=11;      a+=i;printh("%dn",a);A) 21              B) 32        C) 33     

18、60;     D) 11(16)  t为int类型,进人下面的循环之前,t的值为0while( t=l )    则以下叙述中正确的是A) 循环控制表达式的值为0  B) 循环控制表达式的值为1C) 循环控制表达式不合法   D) 以上说法都不对(17) 以下程序的输出结果是main()   int   num= 0;while(num<=2)  num+;  printf(“%dn”,num);A

19、) 1   B) 1    C)1    D) l 2      2         2     3      3   4(18) 以下程序的输出结果是main()   int    a, b;for(a=1, b=1; a<=100

20、; a+)   if(b>=10)  break;if (b%3= =1)   b+=3;      continue;   printf(“%dn”,a);A) 101   B) 6    C) 5    D) 4(19) 有以下程序段int  k=0while(k=1)k+;while  循环执行的次数是A) 无限次   

21、60;   B) 有语法错,不能执行C) 一次也不执行      D) 执行1次(20) 以下程序执行后sum的值是A)15              B)14    C) 不确定    D)0min() int  i ,  sum;  for(i=1;i<6;i

22、+) sum+=i;  printf(“%dn”,sum);(21) 有以下程序段int  x=3do   printf(“%d”,x-=2);   while (!(-x);其输出结果是A)中 1               B) 3  0    C) 1  -2    D) 死循环(22) 有如

23、下程序main0    int    i,sum;for(i=1;i<=3;sum+)   sum+=i;printf(“%dn”,sum);该程序的执行结果是A) 6               B) 3              

24、 C) 死循环         D) 0(23) 有如下程序 main0    int    x=23;do   printf(“%d”,x-);while(!x);该程序的执行结果是A) 321             B) 23       &#

25、160;    C) 不输出任何内容   D) 陷入死循环(24) 有如下程序main0     int    n=9;while(n>6)   n-;printf(“%d”,n);该程序段的输出结果是A) 987             B) 876       

26、;      C) 8765           D) 9876(25) 以下循环体的执行次数是A) 3          B) 2                C) 1   &

27、#160;         D) 0     main()     int i,j;           for(i=0,j=1;  i<=j+1; i+=2, j-)printf("%d n",i);     (26) 以下叙述正确的是A) do-while语句

28、构成的循环不能用其它语句构成的循环来代替。B) do-while语句构成的循环只能用break语句退出。C) 用do-while语句构成的循环,在while后的表达式为非零时结束循环。D) 用do-while语句构成的循环,在while后的表达式为零时结束循环。(27) 以下程序段的执行结果是A) a=12 y=12                      B) a=12 y=12&#

29、160;       a=14 y=16                         a=16 y=28        a=16 y=20        a

30、=18 y=24C) a=12 y=12                      D) a=12 y=12                       

31、60;                  a=14 y=26                               

32、;           a=14 y=44        int  a, y;        a=10; y=0;        do        a+=2; y+=a;   &

33、#160;      printf("a=%d y=%dn",a,y);          if(y>20) break;        while(a=14);(28) 以下程序的输出结果是A) 10 1 9 2   B) 9 8 7 6   C) 10 9 9 0   D) 10 10 9 1

34、60;     main(   )          int    x=10,y=10,I;           for(i=0;x>8;y=+i)              printf(&q

35、uot;%d,%d ",x-,y);     (29) 以下程序的输出结果是A) 2  0    B) 3  1    C) 3  2  1    D) 2  1  0      main(  )            int &

36、#160; n=4;             while(n-)printf("%d ",-n);      (30) 以下程序的输出结果是A) #*#*#    B) #     C) *   D) *#*#*   main(  )     int 

37、; i;      for(i=1;i<6;i+)         if(i%2)printf("#");continue;          printf("*");            printf("n");

38、0;  (31) 执行以下程序段时A) 循环体将执行一次                B) 循环体将执行两次C) 循环体将执行无限次              D) 系统将提示有语法错误          X=-1;&

39、#160;         do  x=x*x;       while(! x);(32) 执行以下程序后,输出的结果是A) -1            B) 1              C) 8 

40、0;            D) 0        main ()           int  y=10;            do  y - -;  while(- - y);

41、0;       printf("%dn",y - -);        (33) 在下列选项中,没有构成死循环的程序段是A) int  i=100                       B)  for(

42、 ; ;);      while(1)        i=i%100+1;         if(i>100)break;      C) int k=1000;                

43、;     D)  int    s=36;      do+k; while(k>=10000);               while(s);-s;(34) 执行语句:   for(i=l:i+<4:);后,变量i的值是A) 3     &#

44、160;       B) 4              C) 5              D) 不定(35) 以下程序的输出结果是A) x=4           B) x=8

45、            C) x=6            D) x=12        main()          int  i,j,x=0;      

46、     for(i=0;i<2;i+)           x+;            for(j=0;j<=3;j+)                 if(j%2)continue

47、;                  x+;                           x+;      &#

48、160;         printf("x=%dn",x);       (36) 运行以下程序后,如果从键盘上输入65  14<回车>,则输出结果为:A) m=3           B) m=2           

49、60;C) m=1     D) m=1        main()         int    m, n;          printf("Enter m,n;");   scanf("%d%d", &m,&n):&#

50、160;         while (m!=n)          while (m>n)m-=n;            while (n>m)n-=m;             &#

51、160;      printf("m=%dn",m);       (37) 设x和y均为int型变量,则执行下的循环后,y值为     for(y=1,x=1;y<=50;y+)     if(x>=10)break;        if (x%2=1)     

52、     x+=5;   continue;        x-=3;     A) 2    B) 4    C) 6              D) 8(38) 假定a和b为int型变量,则执行以下语句后b的值为a=1;

53、60;   b=10;do    b-=a;    a+;  while (b-<0) ;A) 9               B) -2                 C) -1  

54、0;            D) 8(39) 设j为int型变量,则下面for循环语句的执行结果是     for( j=10;j>3;j-)          if(j%3)j-;         -j;    -j;   

55、;      printf("%d  ",j);        A) 6   3         B) 7  4           C) 6  2       

56、;    D) 7  3(40) 若ij已定义为int类型,则以下程序段中内循环体的总的执行次数是     for (i=5;i;i-)        for(j=0;j<4;j+).A)20          B)25    C)24      

57、60;       D)30(41) 执行下面的程序后,a的值为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   &#

58、160;      B) 8          C) 9          D) 10(42) 以下程序段的输出结果是int x=3;    do      printf("%3d",x-=2);  while(!(-x);A) 1   &

59、#160;      B) 3 0        C) 1-2         D) 死循环(43) 定义如下变量: int n=10; 则下列循环的输出结果是while(n>7)   n-;   printf("%dn",n);        A) 10

60、0;        B) 9          C) 10         D) 9       9             8   

61、60;             9              8           8            

62、; 7                 8              77              6(44) 下面的程序A) 输出的是1

63、       B) 输出的是1和-2 C) 输出的是3和0   D) 是死循环main() int x=3;do printf("%dn",X-=2);while(!(-x);(45) 下面程序的输出是A) 741           B) 852            C) 9

64、63            D) 875421main() int y=9;for( ; y>0; y-) if(y%3=0) printf("%d", -y);continue;.(46) 若x是int型变量,且有下面的程序片段:for(x=3; x<6; x+) printf(x%2)?("*%d"):("#%dn"),x);上面程序片段的输出结果是A) *3    &#

65、160;      B) #3            C) #3            D) *3#4#4                *4   &

66、#160;             *4#5               *5*5                #5(47) 请读程序片段:#include<stdio.h>m

67、ain() int a, b;for(a=1;b=1;a<=100;a+) if(b>=20) break;if(b%3=1)b+=3;continue;b-=5;printf("%dn",a);上面程序的输出结果是A) 7             B) 8             C) 9   

68、           D) 10(48) 请读程序:#include<stdio.h>main() int mun=0;while(num<=2) num+; printf("%dn",num);上面程序的输出结果是A) 1     B) 1    C) 1    D) 1 2     &#

69、160;             2                   2     3              &#

70、160;    3 4(49) 请读程序:#include<math.h>#include<stdio.h>main() float x,y,z;scan("%f%f",&x,&y);z=x/y;while(1) if(fabs(z)>1.0) x=y; y=z; z=x/y;else breakprintf("%fn",y);若运行时从键盘上输入3.6 2.4<CR>(<CR>表示回车),则输出的结果是A) 1.500000  

71、60;   B) 1.600000       C) 2.000000       D) 2.400000(50) 执行下面程序片段的结果是int x=23;do printf("%2d",x-);while(!x);A) 打印出321     B) 打印出23      C) 不打印任何内容    D) 陷入死循环(

72、51) 语句while(!E);中的条件!E等价于。A)E = = 0     B)E!=1     C)E!=0      D)E(52)C语言中。A)不能使用do-while语句构成的循环  B)do-while语句构成的循环必须用break语句才能退出C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环(53)以下程序的输出结果是。# inclu

73、de <stdio.h>main() int  i;    for ( i=1;i<=5;i + + )   if ( i%2 )  printf("*");    else  continue;  printf("#"); printf("$n");  A) *#*#*#$    B) #*#*#*$   C) *#*#$

74、60;   D) #*#*$二、填空题:(1)以下程序的功能是计算:s=1+12+123+1234+12345。请填空。     main()  int  t=0,s=0,i;   for( i=1; i<=5; i+)   t=i+ 【1】  ;  s=s+t;     printf("s=%dn",s); (2)以下程序的功能是输出如下形式的方阵:   &#

75、160;        13  14  15  16   9  10  11  12   5   6   7   8   1   2   3   4请填空。 main()  int  i,j,x;   for(j=4;

76、j 【2】  ; j-)      for(i=1; i<=4; i+)   x=(j-1)*4 +  【3】  ;     printf("%4d",x);       printf("n");    (3) 以下程序运行后的输出结果是 【4】  。 main() int  i,m=0, n=0, k=0;for (i=9; i&

77、lt;=11; i+)switch(i/10) case  0 :  m+; n+; break;case 10:   n+;break;default:   k+;n+; printf("%d %d %dn",m,n,k); (4) 以下程序运行后的输出结果是   5   。main()  int x=15;while(x>10 && x<50)  x+;if(x/3)x+;break;else continue;printf

78、(“%dn”,x);(5) 以下函数的功能是计算s=1+ + + ,请填空。double fun(int n)  double s=0.0,fac=1.0;  int  i;for(i=1,i<=n;i+) fac=fac    6    ;s=s+fac;return s;(6) 以下程序的输出结果是【7】 。  main()   int  s,i;    for(s=0,i=1;i<3;i+,s+=i);  &

79、#160; printf("%dn",s);(7)以下程序运行后的输出结果是 【8】 。main()   int   i=10,  j=0;do j=j+i;  i-;while(i>2);printf(“%dn”,j);(8) 设有以下程序:main()   int   n1,n2;scanf(“%d”,&n2);while(n2!=0)   n1=n2%10;n2=n2/10;printf(“%d”,n1);程序运行后,如果从键盘上输入1

80、298;则输出结果为 【9】 。(9) 下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空。       #include <stdio.h>       main()         int a, b, c, i;          a=c=0;          for(i=0;i<10;i+=2)&#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论