循环结构习题.docx

上传人:b****9 文档编号:25345798 上传时间:2023-06-07 格式:DOCX 页数:15 大小:18.30KB
下载 相关 举报
循环结构习题.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

循环结构习题

循环结构

一.选择题

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次

        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;

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〕66778777D〕6688766

 

二.填空题

语句,语句和语句。

 

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

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

          printf(“%2d〞,i);

  的运行结果是。

 

三.判断题

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

【】

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

【】

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

【】

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

【】

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

【】

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

【】

7.do-while允许从外部转到循环体内。

【】

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

【】

9.do-while循环中,根据情况可以省略while。

【】

10.do-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