c语言循环章节练习题(部分答案)

更新时间:2024-04-01 22:54:21 阅读: 评论:0

2024年4月1日发(作者:鲁煤)

循环章节练习题

一、选择题

1.设有程序段

int k=10;

while (k=0) k=k-1;

则下面描述中正确的是_______.

A. while循环执行10次。

B.循环是无限循环。

C.循环体语句一次也不执行。

D.循环体语句执行一次。

2.设有以下程序段:

int x=0,s=0;

while(!x!=0) s+=++x;

printf(“%d”,s);

则________。

A. 运行程序段后输出0。

B. 运行程序段后输出1。

C.程序段中的控制表达式是非法的。

D.程序段执行无限次。

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

x=y=0;

while(x<15) {y++;x+=++y;}

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

A.20,7 B. 6,12

C. 20,8 D. 8,20

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

#incldue

main()

{ int m=0,n=0;

char c;

while( (___1____)!=’n’)

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

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

printf(“%dn”,m

}

1)A.c=getchar() r()

C.c=getchar (“%c”,c);

2)A. n:m B. m:n C. m:m D. n:n

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

#include

main()

{ int a,max=0;

scanf(“%d”,&a);

while(_______)

{ if(max

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

printf(“%d”,max); }

A.a==0 B.a C.!a=1 D. !a

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

#include

main()

{ int num=0;

while(num<=2)

{ num++;

printf(“%dn”,num);}

}

A.1 B.1 C.1 D.1

2 2 2

3 3

4

6.若运行以下程序时,从键盘输入2473↙,则下面程序的运行结果是_______。

#include

main()

{ int c;

while((c=getchar()!=’n’))

switch(c-‘2’)

{ ca 0:

ca 1: putchar(c+4);

ca 2: putchar(c+4);break;

ca 3: putchar(c+3);

defauit: putchar(c+2); break;}

printf(“n”);

}

A.668977 B.668966 C.66778777 D.6688766

7.C语言中while 和do—while循环的主要区别是_______。

—while的循环体至少无条件执行一次

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

C. do—while允许从外部转到循环体内。

D. do—while的循环体不能是复合语句。

1

8.以下程序段________。

x=-1;

do

{ x=x*x;

while(!x);

A.是死循环。B.循环执行二次。

C.循环执行一次。C.有语法错误。

9.以下描述中正确的是_________。

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

B. do—while循环由do开始,用while 结束,在while

(表达式)后面不能写分号。

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

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

10.若有如下程序:int x=3;

do{printf(“%dn”,x-=2);}

while(!(--x));

则上面程序段_________。

A.输出的是1 B.输出的是1和-2

C.输出的是3和0 D.是死循环

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

#include

main()

{int a=1,q=2,n,sum;

n=sum=0;

do

{ ______1______;

while(num<100);

_____2____;

printf(“%dn”,n);}

1)++ +=a *=a D.a+=sum

2)A.n=n-2 B.n=n C.n++ D.n-=1

13.下面有关for循环的正确描述是_____。

循环只能用于循环次数已近确定的情况。

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

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

循环的循环体语句中,可以包含多条语句,但必须用花括号阔起来。

14.对于for(表达式1; ;表达式3)可理解为:

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

B. for(表达式1;1 ;表达式3)

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

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

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

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

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

16.下面程序段的运行结果为__________。

for(y=1;y<10;) y=((x=3*y,x+1),x-1)

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

A.x=27,y=27 B. x=12,y=13

C. x=15,y=14 D. x=y=27

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

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

printf(“(x%2)?(“* * %d”)(“# # %dn”),x”);

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

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

* * 5 # # 5

18.下列程序段不是死循环的是________。

i=100; (; ;); s=36;

while(1) k=0; while(s);

{ i=i%100+1; do{k++;} --s;

if(i>100)break;} while(k>=0);

19.下面程序的功能是计算1至50中是7的倍数的数值之和。请选择填空。

#include A. (int)(i/7)==i/7

main() B. (int)i/7==i/7

{ int i,sum=0; C. i%7=0

for(i=1;i<=50;i++) D. i%7==0

if(________)sum+=i;

printf(“%d”,sum);}

20.下面程序的运行结果为_______。

#include

main()

{ int i;

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

switch(i%5)

{ ca 0:printf(“*”);break;

ca 1:printf(“#”);break;

default: printf(“n”);

ca 2:printf(“&”);}}

A.#&&&* B.#& C.# D.#&

& & 空格

&* & *

&

*

21.下面程序的运行结果为________。

2

#include

main()

{ int i,b,k=0; A.3,-1

for(i=1;i<=5;i++) B.8,-1

{ b=i%2; C.3,0

while(b--﹥=0) k++; D.8,-2

}

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

21.下面程序段________。

for(t=1;t<=100;t++) A.当x<0时整个循环结束

{ scanf(“%d”,&x); 函数永远也不执行

if(x<0) continue; C.x>=0时什么也不输出

printf(“%3d”,t);}D.最多允许输出100个非负整数

22.下面程序段_______。

x=3;

do{ y=x--;

if(!y){printf(“x”);continue;}

printf(“#”);}

while(1<=x<=2);

A.将输出## B.将输出##* C.是死循环

D.含有不合法的表达式

23.下面程序的运行结果是_______。

#include

main()

{ int a,b;

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

{ if(b>=20) break;

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

b-=5;}

printf(“%dn”,a);}

A.7 B.8 C.9 D.10

24.下面程序的功能是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空。

int n=0,c;

c=getchar();

while(_____________)

{ if(____________)n++;c=getchar();}

25.有1025个西瓜,第一天卖了一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?填空。

#include

main()

{ int day=0,x1=1024,x2;

while(______)

{x2=________;x1=x2;day++;}

printf(“day=%dn”,day);}

26.下面程序段执行后,k的值是______。

k=1;n=263

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

27.鸡兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只。请填空。

for(x=1;x<=29;x++)

{ y=30-x;

if(____________)printf(“%d,%dn”,x,y);}

28.下面程序的功能是求出用数字0至9可以组成多少个没有重复的三位偶数。填空。

main()

{ int i,j,k,n=0;

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

for(k=0;k<=8;______)

if(k!=i)

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

if(_________)n++;

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

29.下面程序是打印100以内个位数是6且能被3整除的数。填空。

#include

main()

{ int i,j;

for(i=0;__________;i++)

{ j=i*10+6;

if(________)continue;

printf(“%d”,j);}}

30.下面程序的运行结果______________。

#include

main()

{ int y=2,a=1;

while(y--!=-1)

{ do {a*=y;a++;} while (y--); }

printf(“a=%d,y=%dn”,a,y);}

3

本文发布于:2024-04-01 22:54:21,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1241412.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:循环   程序   表达式   语句
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图