C语言程序设计 循环结构程序设计.docx

上传人:b****7 文档编号:23694281 上传时间:2023-05-20 格式:DOCX 页数:18 大小:20.49KB
下载 相关 举报
C语言程序设计 循环结构程序设计.docx_第1页
第1页 / 共18页
C语言程序设计 循环结构程序设计.docx_第2页
第2页 / 共18页
C语言程序设计 循环结构程序设计.docx_第3页
第3页 / 共18页
C语言程序设计 循环结构程序设计.docx_第4页
第4页 / 共18页
C语言程序设计 循环结构程序设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C语言程序设计 循环结构程序设计.docx

《C语言程序设计 循环结构程序设计.docx》由会员分享,可在线阅读,更多相关《C语言程序设计 循环结构程序设计.docx(18页珍藏版)》请在冰豆网上搜索。

C语言程序设计 循环结构程序设计.docx

C语言程序设计循环结构程序设计

一 选择题

1、 在C语言中,当while中语句中的条件为()时,结束该循环

A、 0B、 1C、 TrueD、 非0

2、 在C语言中,当do-while语句中的条件为()时,结束该循环

A、 0B、 1C、 TrueD、 非0

3、 若K为整型,以下while循环体中的语句执行()次

K=2;

While(k=0)

{printf(“%d”,k);

 k--;printf(“\n”);

}

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

4、 设i和x都是int类型,则以下for循环()

for(i=0,x=0;i<=9&&x!

=876;i++)scanf(“%d”,&x);

A、 最多执行10次B、 最多执行9次

C、 是无限循环D、 循环体一次也不执行

5、逻辑运算符两侧运算对象的数据类型()

A、 只能是0或1                B、 只能是0或非0正数

C、 只能是整型或字符型数据     D、 可以是任何类型的数据

6、C语言用()表示逻辑“真”值。

A)trueB)t或yC)非零整数值D)整数0

7、语句while(!

e);中的条件!

e等价于()。

A)e==0B)e!

=1C)e!

=0D)~e

8、以下for循环是()。

for(x=0,y=0;(y!

=123)&&(x<4);x++);

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

9、下面有关for循环的正确描述是()

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

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

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

D)for循环体语句中,可以包含多条语句,但要用花括号括起来

10、对于for(表达式1;;表达式3)可理解为()

A)for(表达式1;1;表达式3)

B)for(表达式1:

1;表达式3)

C)for(表达式1;表达式1;表达式3)

D)for(表达式1;表达式3;表达式3)

11、下面程序段的运行结果是()

x=y=0;

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

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

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

12、下面程序段的运行结果是()

intn=0;

while(n++<=2);printf(“%d”,n);

A)2B)3C)4D)有语法错

13、设有程序段

t=0

while(printf(“*”))

{t++;

if(t<3)bread;}

下面描述正确的是().

A)其中循环控制表达式与0等价

B)其中循环控制表达式与‘0’等价

C)其中循环控制表达式是不合法的

D)以上说法都不对

14、下面程序的功能是将从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输入m,n中的较大数,请选择填空。

#include

main()

{intm=0,n=o;

charc;

while(【】!

=’\n’)

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

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

printf(“%d\n”,m

【】)}

(1)A)c=getchar()B)getchar()C)c=getcharD)scanf(“%dc”,c)

(2)A)n:

mB)m:

nC)m:

mD)n:

n

15、下面程序的功能是将小写字母变成对应的大写字母后的第二个字母。

其中y变成A,z变成B。

请选择填空。

#include

main()

{charc;

while((c=getchar())!

=’\n’)

{if(c>=’a’&&c<=’z’)

{【】;fr(c>’Z”&&c<=”Z”+2)

【】;}

printf(“%c”,c)}}

(1)A)c+=2B)c-=32C)c=c+32+2D)c-=30

(2)A)c=’B’B)c=’a’C)c-=26D)c=c+26

16、下面程序的功能是将从键盘输入的一批正整数中求出最大者,输入0结束循环选择填空。

#include

main()

{inta,max=0;

scanf(“%d”,&a);

while(【】)

{if(max

scanf(“%d”,&a);}

printf(“%d”,max);}

A)a==0B)aC)!

a==1D)!

a

17、下面程序的运行结果是().

#include

main()

{intnum=0;

while(num<=2)

{num++;

printf(“%d\n”,num);}}

A)1B)12C)123D)1234

18、若运行以下程序时,从键盘输入2473表示回车),则下面程序的运行结果是().

#include

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

19、C语言中while和do-while循环的主要区别是().

A)do-while的循环体至少无条件执行一次

B)while的循环控制条件比的循环控制条件严格

C)do-while允许从外部转到循环体内

D)do-while的循环体不能是复合语句

20、以下能正确计算1*2*3*……*10的程序是().

A)do{i=1;s=1;B)do{i=1;s=0;

s=s*i;s=s*i;

i++;i++;

}while(i<=10);}while(i<=10);

C)i=1;s=1;D)i=1;s=0;

do{s=s*i;do{s=s*i;

i++;i++;

}while(i<=10);}while(i<=10);

21、以下程序段().

x=-1;do{x=x*x;}while(!

x);

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

22、以下描述正确的是().

A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句。

B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号。

C)在do-while循环体中,一定要有能使while后面表达式的值变成零(“假”)的操作。

D)do-while循环中,根据情况可以省略while

23、若有如下语句

intx=3;do{printf(“%d\n”,x-=2);}while(!

(--x));

则上面程序段().

A)输出的是1B)输出的是1和-2C)输出的是3和0D)是死循环

24、下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。

#include

main()

{intn,sum=0;n=2345;

do{sum=sum+【】;

n=【】;

}while(n);

printf(“sum=%d”,sum);}

【1】A)n%10B)(n%10)*(n%10)C)n/10D)(n/10)*(n/10)

【2】A)n/1000B)n/100C)n/10D)n%10

25、下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环。

请选择填空。

#include

main()

{longintnum;

Scanf(“%ld”,&num);

do{if(【】)printf(“%ld”,num);

scanf(“%ld”,&num);

}while(【】);}

【1】A)num%100/10==3B)num/100%10==3C)num%10/10==3D)num/10%10==3

【2】A)!

numB)num>0==0C)!

num==0D)!

num!

=0

26、等比数列的第一项a=1,公比q=2,下面程序的功能是求满足前n项和小于100的最大n,请选择题空。

#include

main()

{inta,q,n,sum;

a=1;q=2;n=sum=0;

do{【】;++n;a*=q;

}while(sum<100);

【】;

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

【1】A)sum++B)sum+=aC)sum*=aD)a+=sum

【2】A)n=n-2B)n=nC)n++D)n-=1

27、下面程序的功能是把316表示为两个加数分别能被13和11整除。

请选择填空。

#include

main()

{inti=0,j,k;

do{i++;k=316-13*i;}while(【】);

j=k/11;

printf(“316=13*%d+11*%d”,i,j);}

A)k/11B)k%11C)k/11==0D)k/11==0

28、下面程序的运行结果是().

#include

main()

{inty=10;

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

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

A)-1B)1C)8D)0

29、若运行以下程序时,从键盘输入ADescriptor,

则下面程序的运行结果是(D).

#include

main()

{charc;

intv0=0,v1=0,v2=0;

do{

switch(c=getchar())

{case’a’:

case’A’:

case’e’:

case’E’

case’i’:

case’I’:

case’o’:

case’O’:

case’u’:

case’U’:

v+=1;

default:

v0+=1;v2+=1;}

}while(c!

=’n\’);

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

A)v0=7,v1=4,v2=7B)v0=8,v1=4,v2=8C)v0=11,v1=4,v2=11D)v0=12,v1=4,v2=12

30、下面程序运行结果是().

#include

main()

{inta=1,b=10;

do{b-=a;a++;}while(b--<0);

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

A)a=3,b=11B)a=2,b=8C)a=1,b=-1D)a=4,b=9

二、填空题

1、 C语言三个循环语句分别是【】语句,【】语句和【】语句

2、 至少执行一次循环体的循环语句是【】

3、 循环功能最强的循环语句是【】

三、看程序写结果

1、 main()

{intk=1,n=263;

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

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

}

2、 main()

{inti,j,p,s;

 s=0;

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

 {p=1;

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

p=p*j;

s=s+p;}

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

3、 main()

{inti=1,s=3;

 do{s+=i++;

 if(s%7==0)continue;

  else ++i;

  }while(s<15);

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

4、 main()

{ints=0,k;

for(k=7;k>=4;k--)

{switch(k)

{case1:

case4:

case7:

s++;break;

case2:

case3:

case6:

break;

case0:

case5:

 s+=2; break;}}

printf(“s=%d”,s);}

5、#include

main()

{inti;

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

switch(i%2)

{case0:

i++;printf(“#”);break;

case1:

i+=2;printf(“*”);

default:

printf(“\n”);}}

6、#include

main()

{inti,j=4;

for(i=j;i<=2*j;i++)

switch(i%j)

{case0:

case1:

printf(“*”);break;

case2:

printf(“#”);}}

7、#include

main()

{inti,t,sum=0;

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

{sum+=t;++i;

if(i%3==0)t=-i;}

printf(“sum=%d”,sum);}

8、#include

main()

{inta,b,m,n;

m=n=1;

scanf(“%d%d”,&a,&b);

do{if(a>0){m=2*n;b++;}

else{n=m+n;a+=2;b++;}

}while(a==b);

printf(“m=%dn=%d”,m,n);}

9、#include

main()

{inta,b,i;

a=1;b=3;i=1;

do{printf(“%d,%d,”,a,b);

a=(b-a)*2+b;

b=(a-b)*2+a;

if(i++%2==0)printf(“\n”);

}while(b<100);}

10、#include

main()

{inti,x,y;

i=x=y=0;

do{++i;

if(i%2!

=0){x=x+i;i++;}

y=y+i++;

}while(i<=7);

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

11、#include

main()

{inti,j,k;

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

{for(j=1;j<=20-2*i;j++)

printf("");

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

printf("");

for(K=1;k<=i;k++)

printf("%4d",i);

printf("\n");}}

12、#include

main()

{inti,j,k;

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

{for(j=1;j<=20-3*i;j++)

printf("");

for(k=1;k<=2*i-1;k++)

printf("%3s","*");

printf("\n");}

for(i=3;i>0;i--)

{for(j=1;j<=20-3*i;j++)

printf("");

for(k=1;k<=2*i-1;k++)

printf("%3s","*");

printf("\n");}}

四、编程题

1、 用while语句计算s=1+2+3+4+……+100

2、 求s=1+2+3+4+…….,直到s的值不小于28888,求此n的值为多少?

3、 判断m是否为素数

4、 求Fibonacci数列前40个数。

这个数列有如下特点:

第1、2两个数为1,1.从第3个数开始,该数是其前面两个数之和。

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

例如,153是一个水仙花数,因为153=13+53+33

6、设计一个函数,输出整数n的所有素数因子。

7、编程计算1!

+2!

+3!

+···+n!

 

参考答案

一、 选择题

题号

1

2

3

4

5

6

7

8

9

10

答案

A

A

B

A

A

C

A

C

D

B

题号

11

12

13

14

15

16

17

18

19

20

答案

D

C

B

CA

DC

B

C

A

A

C

题号

21

22

23

24

25

26

27

28

29

30

答案

C

C

B

BC

BC

BD

B

B

D

B

二、填空题

1、while  do-while   for

2、do-while

3、for

三、看程序写结果

1、362、s=333、i=84、s=45、*,#6、****#7、sum=19

8、m=4,n=29、1,3,7,15,31,6310、x=1,y=20

11、1

22

333

4444

55555

666666

12、*

***

*****

*******

*****

***

*

四、编程题

1、#include

  main()

  {inti,s;

s=0;

i=1;

while(i<=100)

{s=s+i;

 i++;}

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

2、#include

  main()

  {inti,s=0;

for(i=1;;i++)

s=s+i;

if(s>=28888)break;}

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

3、#include“stdio.h”

main()

{intm,n;

scanf(“%d”,&m);

for(n=2;n<=m-1;n++)

if(m%n==0)break;

if(n>m-1)printf(“\n%disaprimenumber!

\n”,m);

elseprintf(“\n%disnotaprimenumber!

\n”,m);

}

4、 main()

{longintf1,f2;

inti;

f1=1;f2=1;

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

{printf(“%12ld%12ld”,f1,f2);

if(i%2==0)printf(“\n”);

f1=f1+f2;

f2=f2+f1;}}

5、main()

  {intn,i,j,k;

for(n=100;n<1000;n++)

{i=n/100;

j=n/10-i*10;

 k=n%10;

 if(n==i*i*i+j*j*j+k*k*k)

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

6、#include

intprime(intn)

{inti,flag=1;

for(i=2;i<=n/2;i++)

if(n%i==0)

{flag=0;

returnflag;}

returnflag;}

voidfactor(intn)

{inti;

i=2;

while(i<=n)

{if((n%i==0)&&prime(i))

{printf("%d",i);

n=n/i;

continue;}

i++;}}

main()

{intnum;

printf("Enternum:

");

scanf("%d",&num);

printf("primefactoris:

\n");

factor(num);}

7、#include

main()

{longs=0,t=1;

inti,n;

printf("Enterintegern:

");

scanf("%d",&n);

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

{t*=i;

s+=t;}

printf("s=%ld\n",s);}

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

当前位置:首页 > 工作范文 > 演讲主持

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

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