C语言循环习题.docx

上传人:b****3 文档编号:24728890 上传时间:2023-06-01 格式:DOCX 页数:15 大小:17.85KB
下载 相关 举报
C语言循环习题.docx_第1页
第1页 / 共15页
C语言循环习题.docx_第2页
第2页 / 共15页
C语言循环习题.docx_第3页
第3页 / 共15页
C语言循环习题.docx_第4页
第4页 / 共15页
C语言循环习题.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C语言循环习题.docx

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

C语言循环习题.docx

C语言循环习题

循环习题集锦

一.    选择题

1.for(i=0;i<10;i++);结束后,i的值是;

A9B10C11D12

2.下面程序的循环次数是:

#include<>

voidmain()

{

intk=0;

while(k<10)

{if(k<1)continue;

if(k==5)break;

k++;

}

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

}

A.5B6C4D死循环,不能确定循环次数

3.下面程序的输出结果是()

#include<>

voidmain()

{

ints,k;

for(s=1,k=2;k<5;k++)

s=s+k;

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

}

A1B9C10D15

4.要使下面程序输出10个整数,则在下画线处填入正确的数是:

#include<>

voidmain()

{

inti;

for(i=0;i<=;)

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

}(显示的是:

2,4,6,8,10,12,…,20)

A9B10C18D20

5.运行下面程序:

#include<>

voidmain()

{

inti=10,j=0;

do

{

j=j+i;/*第一:

10,第二:

19第三:

27第四:

34第五:

40*/

i--;

}while(i>5);

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

}

输出结果是:

A45B40C34D55

6.运行下面程序

#include<>

main()

{

intk=0,a=1;

while(k<10)

{

for(;;)

{if((k%10)==0)/*当循环开始的时候时,k=0,此时和10取3余的结果就等于0,就跳出了for循环开始下面的循环*/

break;

else

k--;

}

k=k+11;

a=a+k;

}

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

}

则输出的结果是()

A2132B2133C1112D1011

7.以下叙述正确的是:

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

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

C.用do---while语句构成的循环,在while后的表达式为非零时结束循环。

D.用do---while语句构成的循环,在while后的表达式为零时结束循环。

8.有如下程序:

#include<>

voidmain()

{

intx=3;

do{

printf(“x=%d\n”,x--);/*如果x的—在x的前面则结果就是显示的是2*/

}while(!

x);/*!

x表示不是上面的x*/

}

该程序的执行结果是:

A321B210C3D2

9.若k为整型变量,则下面while循环执行的次数为:

k=10;

while(k==0)

k=k-1;

A0B1C10D无限次

10.下面有关for循环的正确描述是

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

B.for循环是先执行循环体语句,后判断表达式

C.在for循环中,不能用break语句跳出循环体。

D.for循环的循环体语句汇总,可以包含多条语句,但必须用花括号括起来。

11.对for(表达式1;;表达式3)可理解为

Afor(表达式1;0;表达式3)

Bfor(表达式1;1;表达式3)

Cfor(表达式1;表达式1;表达式3)

Dfor(表达式1;表达式2;表达式3)

12.若i为整型变量,则以下循环执行的次数是()

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

A.无限次B0次C1次D2次

13.以下循环体的执行次数是;

main()

{

inti,j;

for(i=0,j=3;i<=j;i=i+2,j--)

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

}

A3B2C1D0

14.执行以下程序后,输出结果是:

main()

{

inty=10;

do

{y--;}while(--y);

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

}

A-1B1C8D0

15以下程序的输出结果是:

main()

{

inta,b;

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

{

if(b>=10)break;

if(b%3==1)

{b=b+3;continue;}

}

printf(“%d”,a);

}

A101B3C4D5

二、填空题

1.         循环的3个常见语句分别是

forwhiledo…while

2.         下面程序的运行结果为:

main()

{

inta=10,y=0;

do

{a+=2;y+=a;

if(y>50)break;

}while(a<14);

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

}

a=14y=26

3.从键盘输入12345-1回车,则下面程序运行的结果是:

main()

{intn,k=0;

do

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

k+=n;

}while(n!

=-1);

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

}

k=12344n=-1

4.下面程序的运行结果为:

main()

{inti,j,s=0;

for(i=1,j=5;i

s+=i*10+j;

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

}

39

5.下面程序的运行结果是

main()

{

inti=10,s=0;

for(;--i;)

if(i%3==0)

s+=i;

s++;

printf(“\ns=%d”,s);

}

s=19

6.下面程序的运行结果是

main()

{inta=2,n=5,s;

s=a;

for(;--n;)

s=s*10+a;

printf(“%d”,s);

}

22222

7.下面的程序运行时,循环体语句“a++”运行的次数为:

main()

{

inti,j,a=0;

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

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

a++;

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

}

10

8.下面的程序运行后,a的值为:

main()

{inti,j,a=0;

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

for(j=4,j>=0;j--)a++;

}

7

9.下面程序的运行结果为:

inti=1,s=3;

do{

s+=i++;

if(s%7==0)continue;

else++i;

}while(s<15);

printf(“%d”,i);

8

10.当运行以下程序时,从键盘输入China#回车,则下面程序的运行结果是:

#include“”

main()

{

intv1=0,v2=0;

charc;

while((c=getchar())!

=’#’)

{switch(c)

{case‘a’:

case‘h’:

default:

v1++;

case‘o’:

v2++;

}

}

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

}

5,5

三、改错题

1.             for(i-0,i<5,i++)j++;

 for(i-0;i<5;i++)j++;

2.             while(j<10);{j++;i=j;}

while(j<10);/*不要分号*/{j++;i=j;}

3.             do{j++;a=j;}while(j<10)

do{j++;a=j;}while(j<10);/*必须要有分号*/

4.用下面程序来实现5!

ints=1,i=1;

while(i<=5)

{s*=i;

i++;}

/*在做循环时,循环体必须用大括号括起来*/

5.下面程序段实现求半径r=1到r=10的圆面积,直到面积大于100为止。

for(r=1;r<=10;r++)/*for不能大写*/

{

s=*r*r;

if(s>100)continue;/*当完成循环任务时,应该用break来终止循环*/

printf(“%f\n”,s);

}

四、编程题

1.             求1-2+3-4+…+99-100。

#include<>

#include<>

voidmain()

{

inti,sum,m;

m=1;

sum=0;

for(i=1;fabs(m)<=99;i++)

{

m=i*pow(-1,i-1);

sum=sum+m;

}

printf("sum=%d\n",sum);

}

2.任意输入10个数,分别计算输出其中的正数和负数之和。

#include<>

voidmain()

{

intm,n,k,i;

k=0;

n=0;

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

{

printf("请输入第%d个数字:

",i);

scanf("%d",&m);

if(m>0)

k=k+m;

else

n=n+m;

}

printf("负数和n=%d\n正数和k=%d\n",n,k);

}

3.计算1---100以内的所有含6的数的和。

#include<>

voidmain()

{

intm=0,n=0,i,j;

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

{

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

if(i==6||j==6)

{

n=n+i*10+j;

printf("%6d",i*10+j);

}

}

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

printf("%d\n",6+16+26+36+46+56+66+76+86+96+60+61+62+63+64+65+67+68+69);

}

4.输出所有的3位水仙花数。

所谓水仙花数是指所有位的数字的立方之和等于该数,例如:

153=13+33+53

#include<>

voidmain()

{

intm,n,k,i,j,p=0;

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

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

for(k=0;k<=9;k++)

{

m=i*100+j*10+k;

n=i*i*i+j*j*j+k*k*k;

if(m==n)

printf("所有3位数中第%d水仙花数为%d\nf",++p,m);

}

}

5.编写程序输出下面图形。

1

23

456

7890

#include<>

voidmain()

{

inti,j,t=0;

for(i=0;i<4;i++)//控制整个数组的行数

{

for(j=0;j<=i;j++)//使整个数字从1开始循环

{

t=t+1;//用t表示要输出的数字

if(t==10)printf("0");

elseprintf("%d",t);//将10转换为0

}

printf("\n");//控制换行

}

}

6. 编写程序输出下面图形

*

***

*****

*******

*****

***

*

#include<>

voidmain()

{

inti,j,m,n;

for(i=0;i<3;i++)//显示总共有几行符号

{

for(m=2;m>=i;m--)

printf("");//输入相应的空格数,使每一行的符号相应的减少

for(n=6;n>5-i*2;n--)

printf("*");//输入相应的*个数

printf("\n");

}

for(j=0;j<4;j++)//显示总共有几行符号

{

for(m=1;m<=j;m++)

printf("");//输入相应的空格数,使每一行的符号相应的减少

for(n=0;n<7-j*2;n++)

printf("*");//输入相应的*个数

printf("\n");

}

}

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

当前位置:首页 > IT计算机 > 互联网

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

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