第五章 循环结构

一、选择题

1、 以下程序段的输出结果是

A) 9    B) 1 C) 11   D) 10

 int k,j,s;

 for (k=2;k<6;k++,k++)

 { s=1;

 for (j=k;j<6;j++) s+=j;

 }

printf(%d\n,s);

2、以下程序段的输出结果是

A)12 B)15    C)20    D)25

int i,j,m=0;

for (I=1;I<=5;I+=4)

for (j=3;j<=19;j+=4)m++;

printf(%d\n,m);

3、 以下程序段的输出结果是

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

      9     8      9     8

      8     7      8     7

               7     6

int n=10 ;

 while (n>7)

{ n--;

  printf(%d\n,n);

}

4、以下程序段的输出结果是

A) 1   B)3 0  C) 1 2  D)死循环

int x=3;

 do

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

while (!(--x));

5、 以下程序的输出结果是

A) 15  B)14  C)不确定  D)0

main()

{ int  i,sum;

   for (i=1;i<6;i++) sum+=sum;

   printf(%d\n,sum);

}

6、 以下程序的输出结果是

A)741 B)852 C)963   D)875421

main()

{ int y=10;

 for ( ;y>0;y--)

if (y%3==0)

 { printf(%d,--y); continue}

}

7、若x int 型变量,以下程序段的输出结果是

A) **3     B)##3      C)##3    D)**3##4

      ##4       **4        **4##5   **5

          **5       ##5

 for (x=3;x<6;x++)

 printf((x%2)?(**%d):(##%d\n),x);

8、 以下程序的输出结果是

A) *#*#*#$   B)#*#*#*$

C) *#*#$     D)#*#*$

main()

{ int i;

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

{ if (i%2) printf(*);

else  continue;

printf(#);

}

printf($\n);

}

9、 以下叙述正确的是

A)do-while语句构成的循环不能用其他语句构成的循环代替.

B)do-while语句构成的循环只能用break语句退出

C)do-while语句构成循环时,只有在while后的表达式为非零时结束循环

   D)do-while语句构成循环时,只有在while后的表达式为零时结束循环

10、 以下程序的输出结果是

A)39 81 B)42 84     C)26 68     D)28 70

main()

{ int x,i;

  for (i=1;i<=100;i++)

  { x=i;

if (++x%2==0)

  if (++x%3==0)

     if (++x%7==0)

    printf(%d,x);

}

printf(\n);

         }

.填空题

1、当执行以下程序段后,i的值是___j的值是___k的值是___

int a, b,c,d,i,j,k;

a=10; b=c=d=5;i=j=k=0;

for ( ;a>b;++b)i++;

while (a>++c)j++;

do k++; while (a>d++);

2、 以下程序段的输出结果是____.

         int k,n,m;

      n=10;m=1;k=1;

      while (k<=n) m*=2;

      printf(%d\n,m);

3、 以下程序段的输出结果是____.

       main()

       { int x=2;

         while (x--);

        printf(%d\n,x);

       }

4、 以下程序段的输出结果是____.

      int i=0,sum=1;

      do {sum+=i++;} while (i<5);

      printf(%d\n,sum);

5、有以下程序段:

     s=1.0;

     for(k=1;k<=n;k++) s=s+1.0/(k*(k+1));

     printf(%f\n,s);

请填空,使下面的程序段的功能完全与之等同。

s=0.0;

_______;

k=0;

do

{ s=s+d;

   ________;

 d=1.0/(k*(k+1));

 }

while (________);

printf(%f\n,s);

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

    main()

    {   float x,amax,amin;

          scanf(%f,&x);

          amax=x;amin=x;

          while (________)

             { if (x>amax)  amax=x;

           if (_______)  amin=x;

          scanf(%f,&x);

        }

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

       }


三.编程题

1、编写程序,求1-3+5-7+-99+101的值。

2、 编写程序,求e 的值。e»1+1/1!+1/2!+1/3!+..+1/n!

(1) 用循环,计算前50项。

(2)  用循环,要求直至最后一项的值小于10-4

3、 编写程序,输入从公元1000年至2000年所有闰年的年号。每输出3个年号换一行。判断公元年是否为闰年的条件是:

(1)公元年数如能被4整除,而不能被100整除,则是闰年;

(2)公元年数能被400整除也是闰年。

4、 编写程序,打印以下图:

                          *

                         ***

                     *****

                       *******

                      *********

                       *******

                        *****

                         ***

                          *

 

公告通知
教学日历
疑难留言
同学你好!对本课程有哪些建议?