循环结构习题.docx

上传人:b****8 文档编号:29322916 上传时间:2023-07-22 格式:DOCX 页数:15 大小:17.97KB
下载 相关 举报
循环结构习题.docx_第1页
第1页 / 共15页
循环结构习题.docx_第2页
第2页 / 共15页
循环结构习题.docx_第3页
第3页 / 共15页
循环结构习题.docx_第4页
第4页 / 共15页
循环结构习题.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

循环结构习题.docx

《循环结构习题.docx》由会员分享,可在线阅读,更多相关《循环结构习题.docx(15页珍藏版)》请在冰豆网上搜索。

循环结构习题.docx

循环结构习题

循环结构

一.选择题

1.下面程序段

intk=2;

while(k=0){printf(“%d”,k);k--;}

则下面描述中正确的是。

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

  C)循环题语句一次也不执行D)循环体语句执行一次

2.以下程序段的循环次数是。

  for(i=2;i==0;)printf(“%d”,i--);

  A)无限次B)0次C)1次D)2次

4.下面程序的输出结果是。

        main()

        {charc=’A’;

intk=0;

do{

    switch(c++){

          case‘A’:

k++;break;

          case‘B’:

k--;

          case‘C’:

k+=2;break;

          case‘D’:

k%=2;continue;

          case‘E’:

k*=10;break;

          default:

k/=3;

    }

    k++;

}while(c<’G’);

printf(“k=%d”,k);

}

  A)k=3B)k=4C)k=2D)k=0

5.下面程序的输出结果是。

        main()

        {intx=9;

           for(;x>0;x--){

if(x%3==0){

   printf(“%d”,--x);

   continue;

}

           }

        }

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

6.以下不是死循环的程序段是。

  A)inti=100;B)for(;;);

         while

(1){

i=i%100+1;

if(i>100)break;

         }

  C)intk=0;D)ints=36;

do{++k;}while(k>=0);while(s);--s;

7.下述程序段的运行结果是。

inta=1,b=2,c=3,t;

while(a

printf(“%d,%d,%d”,a,b,c);

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

8.下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择  填空。

main()

{intm=0,n=0;

   charc;

   while((【】)!

’\n’)

{

       if(c>=’A’&&c<=’Z’)m++;

       if(c>=’a’&&c<=’z’)n++;

   }

}

  A)c=getchar()B)getchar()C)c==getchar()D)scanf(“%c”,&c)

9.下述语句执行后,变量k的值是。

intk=1;

while(k++<10);

  A)10B)11C)9D)无限循环,值不定

10.下面程序的输出结果是。

main()

{intk=0,m=0,i,j;

 for(i=0;i<2;i++){

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

        k++;

    k-=j;

 }

 m=i+j;

 printf(“k=%d,m=%d”,k,m);

}

  A)k=0,m=3B)k=0,m=5C)k=1,m=3D)k=1,m=5

11.下面for循环语句。

        inti,k;

        for(i=0,k=-1;k=1;i++,k++)

           printf(“***”);

  A)判断循环结束的条件非法B)是无限循环

  C)只循环一次D)一次也不循环

12.语句while(!

E);括号中的表达式!

E等价于。

  A)E==0B)E!

=1C)E!

=0D)E==1

13.以下是死循环的程序段是。

  A)for(i=1;;){

          if(i++%2==0)continue;

          if(i++%3==0)break;

}

  B)i=32767;

do{if(i<0)break;}while(++i);

  C)for(i=1;;)if(++I<10)continue;

  D)i=1;while(i--);

14.执行语句for(i=1;i++<4;);后变量i的值是。

  A)3B)4C)5D)不定

15.以下程序段。

x=-1;

do

    {x=x*x;}

while(!

x);

  A)是死循环B)循环执行2次C)循环执行1次D)有语法错误

16.下面程序的功能是在输入的一批正数中求最大者,输入0结束循环,选择填空。

main()

{inta,max=0;

   scanf(“%d”,&a);

   while(【】){

      if(max

      scanf(“%d”,&a);

   }

   printf(“%d”,max);

}

  A)a==0B)aC)!

a==1D)!

a

17.以下不是死循环的语句是。

  A)for(y=9,x=1;x>++y;x=i++)i=x;

  B)for(;;x++=i);

  C)while

(1){x++;}

  D)for(i=10;;i--)sum+=i;

18.下面程序段的运行结果是。

x=y=0;

while(x<15)y++,x+=++y;

printf(“%d,%d”,y,x);

  A)20,7B)6,12C)20,8D)8,20

19.以下for循环的执行次数是。

for(x=0,y=0;(y=123)&&(x<4);x++);

  A)无限循环B)循环次数不定C)4次D)3次

20.若运行以下程序时,输入2473↙,则程序的运行结果是。

main()

{intc;

   while((c=getchar())!

=’\n’)

      switch(c-‘2’){

         case0:

         case1:

putchar(c+4);

         case2:

putchar(c+4);break;

         case3:

putchar(c+3);

         default:

putchar(c+2);break;

      }

   printf(“\n”);

}

  A)668977B)668966C)D)6688766

 

二.填空题

语言三个循环语句分别是语句,语句和语句。

2.至少执行一次循环体的循环语句是。

3.循环功能最强的循环语句是。

5.程序段

        for(a=1,i=-1;-1

          {a++;printf(“%2d”,a);};

          printf(“%2d”,i);

  的运行结果是。

 

三.判断题

1.在while循环中允许使用嵌套循环,但只能是嵌套while循环。

【】

2.在实际编程中,do-while循环完全可以用for循环替换。

【】

语句只能用于三个循环语句中。

【】

4.在不得已的情况下(例如提高程序运行效率),才使用goto语句。

【】

5.语句标号与C语言标识符的语法规定是完全一样的。

【】

循环的三个表达式可以任意省略,while,do-while也是如此。

【】

允许从外部转到循环体内。

【】

的循环控制条件比do-while的循环控制条件严格。

【】

循环中,根据情况可以省略while。

【】

循环的while后的分号可以省略。

【】

 

四.程序阅读题

1.写出下面程序运行的结果。

main()

{intx,i;

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

      x=i;

      if(++x%2==0)

         if(++x%3==0)

            if(++x%7==0)

               printf(“%d”,x);

   }

}

 

2.写出下面程序运行的结果。

main()

{inti,b,k=0;

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

       b=i%2;

       while(b--=0)k++;

   }

   printf(“%d,%d”,k,b);

}

 

3.写出下面程序运行的结果。

main()

{inta,b;

   for(a=1,b=1;a<=100;a++){

      if(b>=20)break;

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

      b-=5;

   }

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

}

 

4.写出下面程序运行的结果。

main()

{intk=1,n=263;

   do{k*=n%10;n/=10;}while(n);

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

}

 

5.写出下面程序运行的结果。

main()

{inti=5;

  do{

     switch(i%2){

        case4:

i--;break;

        case6:

i--;continue;

     }

     i--;i--;

     printf(“%d”,i);

  }while(i>0);

}

 

6.写出下面程序运行的结果。

main()

{inti,j;

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

      for(j=4;j>=0;j--){

        if((j+i)%2){

           j--;

           printf(“%d,”,j);

           continue;

        }

        --i;

        j--;

        printf(“%d,”,j);

      }

   }

}

 

7.写出下面程序运行的结果。

main()

{inta=10,y=0;

   do{

      a+=2;y+=a;

      if(y>50)break;

   }while(a=14);

   printf(“a=%dy=%d\n”,a,y);

}

8.写出下面程序运行的结果。

main()

{inti,j,k=19;

   while(i=k-1){

      k-=3;

      if(k%5==0){i++;continue;}

      elseif(k<5)break;

      i++;

   }

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

}

 

9.写出下面程序运行的结果。

main()

{inty=2,a=1;

   while(y--!

=-1)

      do{

         a*=y;

         a++;

      }while(y--);

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

}

 

10.写出下面程序运行的结果。

main()

{inti,k=0;

   for(i=1;;i++){

      k++;

      while(k

         k++;

         if(k%3==0)gotoloop;

      }

   }

loop:

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

}

 

六.程序填空题

1.下述程序用“碾转相除法”计算两个整数m和n的最大公约数。

该方法的基本思想是计算m和n相除的余数,如果余数为0则结束,此时的被除数就是最大公约数。

否则,将除数作为新的被除数,余数作为新的除数,继续计算m和n相除的余数,判断是否为0,等等,请填(3)空使程序完整。

main()

{intm,n,w;

   scanf(“%d,%d”,&m,&n);

   while(n){

      w=【1】;

      m=【2】;

       n=【3】;

   }

   printf(“%d”,m);

}

 

2.下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数,请填(3)空使程序完整。

main()

{intn,k=1,s=0,m;

  for(n=1;n<=100;n++){

      k=1;s=0;

      【1】;

      while(【2】){

          k*=m%10;

          s+=m%10;

          【3】;

      }

      if(k>s)printf(“%dd”,n);

  }

}

3.下面程序段的功能是计算1000!

的末尾有多少个零,请填

(1)空使程序完整。

main()

{

     inti,k;

     for(k=0,i=5;i<=1000;i+=5)

     {m=i;

        while(【1】){k++;m=m/5;}

     }

}

 

4.下面程序接受键盘上的输入,直到按↙键为止,这些字符被原样输出,但若有连续的一个以上的空格时只输出一个空格,请填(3)空使程序完整。

main()

{

    charcx,front=’\0’;

    while(【1】!

=’\n’){

       if(cx!

=’’)putchar(cx);

       if(cx==’’)

          if(【2】)

             putchar(【3】)

       front=cx;

}

 

5.下面程序按公式求和并输出结果,请填(3)空使程序完整。

main()

{

    【1】;

     intk;

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

        s+=k;

     for(k=1;k<=50;k++)

        s+=k*k;

     for(k=1;k<=10;k++)

        s+=【2】;

     printf(“sum=【3】”,s);

}

 

七.编程题

1.输入两个正整数m和n,求其最大公约数和最小公倍数。

2.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。

 

3.求(即求1!

+2!

+3!

+…+19!

+20!

)。

4.有一个分数数列:

求出这个数列前20项之和。

5.提高题:

打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1