循环结构程序设计练习题内含答案.docx

上传人:b****5 文档编号:6664640 上传时间:2023-01-08 格式:DOCX 页数:16 大小:25.71KB
下载 相关 举报
循环结构程序设计练习题内含答案.docx_第1页
第1页 / 共16页
循环结构程序设计练习题内含答案.docx_第2页
第2页 / 共16页
循环结构程序设计练习题内含答案.docx_第3页
第3页 / 共16页
循环结构程序设计练习题内含答案.docx_第4页
第4页 / 共16页
循环结构程序设计练习题内含答案.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

循环结构程序设计练习题内含答案.docx

《循环结构程序设计练习题内含答案.docx》由会员分享,可在线阅读,更多相关《循环结构程序设计练习题内含答案.docx(16页珍藏版)》请在冰豆网上搜索。

循环结构程序设计练习题内含答案.docx

循环结构程序设计练习题内含答案

第三单元循环结构练习题

选择题:

1、有以下程序执行后的输出结果是(D)。

main()

{inti,s=O;

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

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

A.自然数1〜9的累加和B•自然数1〜10的累加和

C.自然数1〜9中的奇数之和D.自然数1〜10中的偶数之和

2、以下关于for语句的说法不正确的是(A)0

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

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

C.for循环中,可以用break跳出循环体

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

3、若i和k都是int类型变量,有以下for语句

for(i=0,k=-1;k=1;k++)printf("*****\n");

下面关于语句执行情况的叙述中正确的是(d)o

A.循环体执行两次B.循环体执行一次C.循环体一次也不执行D.构成无

限循环

4、以下程序程序的执行后的输出结果是(c)o

main()

{inti,t[][3]={9,8,7,6,5,4,3,2,1};

for(i=0;i<3;i++)printf(“%d,t[2-i][i]);}

A.753B.357C.369D.751

5、以下程序运行后的输出结果是(A)o

voidfun(char*s)

{while(*s)

{if(*s%2==0)printf(“%c,*s);s++;}

}

main()

{chara[]={

“good”};fun(a);printf(

n);}

注意:

子母

a的ASQ码值为97

A.d

B.goC.god

D.good

6、已知int

t=0;while(t=1){...}

则以下叙述正确的是(B)

A)循环控制表达式的值为0

B)循环控制表达式的值为1

C)循环控制表达式不合法

D)以上说法都不对

7、设有以下程序段B

intx=0,s=0;

while(!

x!

=0)s+=++x;printf("%d",s);贝U

A)运行程序段后输出0

B)运行程序段后输出1

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

D)程序段执行无限次

8、设i,j,k均为int型变量,则执行完下面的for语句后,k的值为(C)。

for(i=0,j=10;i<=j;i++,j--)k=i+j;

A.6B.9C.10D.11

9、C语言中,break;语句可以用于循环语句和(B)语句中。

A.ifB.switchC.forD.while

10、for(i=0;i<=15;i++)printf("%d",i);循环结束后,i的值为(C)。

A.14B.15C.16D.17

11、有以下程序(B)

main()

{charb,c;inti;b='a';c='A';

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

{if(i%2)putchar(i+b);

elseputchar(i+c);

}printf("\n");}

程序运行后的输出结果是()

A.ABCDEFB.AbCdEfC.aBcDeFD.abcdef

12、与语句“while(!

x)”等价的语句是(A)。

A.while(x==0)B.while(x!

=0)C.while(x==1)D.while(x!

=1)

13、下述程序段中,while循环执行次数是(A)。

(分情况这题有问题)

;intk=0;

while(k=1)k++

A.无限次B.有语法错误,不能执行

C.一次也不执行D.执行一次

14、以下程序中,while循环的次数是(b)。

#include

voidmain()

{inti=0;

while(i<10){if(i<1)continue;if(i==5)break;i++;}}

A.1B.死循环,不能确定次数C.6D.10

15、下面程序段

intk=2;

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

则下面描述中正确的是。

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

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

16、以下程序段的循环次数是B。

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

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

17、下面程序的输出结果是B。

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)

J

}

A)k=3

B

k=4C

k=2D)k=0

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

Bmain()

{intx=9;

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

if(x%3==0){

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

20.inti=100;以下不是死循环的程序段是。

A

A)while

(1){i=i%100+1;if(i>100)break;}B)for(;;);

C)intk=0;do{++k;}while(k>=0);D)ints=36;while(s);--s;

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

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

while(a

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

22.下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个

数,选择A填空。

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)

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

A

while(k++<10)intk=1;

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

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

------B------(太麻烦不做了哎,还是

作罢!

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=%”,k,m);

}

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

25.下面for循环语句。

B

inti,k;

for(i=0,k=-1;k=1;i++,k++)printf(“***”);

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

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

26.语句while(!

E);括号中的表达式!

E等价于A。

A)E==0B)E!

=1C)E!

=0D)E==1

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

A

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--);

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

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

29.以下程序段。

A

x=-1;

do

{x=x*x;}

while(!

x);

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

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

空。

C

main()

{inta,max=0;

seanf(“%d,&a);

while(【】){if(max

printf(“%d,max);}

A)a==0B)aC)!

a==1D)!

a

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

A

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;

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

(自己算算吧不难!

)x=y=0;

while(x<15)y++,x+=++y;printf(“%d,%d,y,x);

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

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

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

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

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

Amain()

{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

读程题:

1.以下程序的输出结果是357。

main()

{inti,x[3][3]={1,2,3,4,5,6,7,8,9};

for(i=0;i<3;i++)printf("%d",x[i][2-i]);

}

2.以下程序的输出结果是0。

main()

{intn[2],i,j;

for(i=0;i<2;i++)n[i]=0;

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

for(j=0;j<2;j++)n[j]=n「i」+1;

printf(”%n”,n[1]);}

3.以下程序的输出结果是357。

main()

{inti,a[6]={2,3,4,5,6,7};

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

printf("%d",a[i]);

}

4.以下程序的输出结果是7800

456

20。

main()

{inti,j,a[3][4]={{0,1,2},{3,4,5,6},{7,8}};

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

{for(j=i;j<4;j++)

printf("%5d",a[2-i][j]);

printf("\n");}

}

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

main()

{chars[]="012xy\08s34f4w2";

inti,n=0;

for(i=0;s[i]!

=0;i++)

if(s[i]>='0'&&s[i]<=9)n++;

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

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

2070

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);}}

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

3-1——

main()

{inti,b,k=0;

for(i=1;i<=5;i++){b=i%2;while(b--)k++;}printf(“%d,%d,k,b);}

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

----1——

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(“%dn”,a);}

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

36

main()

{intk=1,n=263;

do{k*=n%10;n/=10;}while(n);printf(“%dn”,k);}

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

----31-1----

main()

{inti=5;

do{

switch(i%2){

case4:

i--;break;

case6:

i--;continue;

}

i--;i--;

printf(“%d,i);

}while(i>0);

}

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

------3,1,-1,3,1,-1,-----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);}}}

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

------a=16y=60------

main()

{inta=10,y=0;

do{

a+=2;y+=a;

if(y>50)break;

}while(a=14);printf(“a=%dy=%dn”,a,y);

}

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

——i=6,k=4------

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=%dn”,i,k);

}

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

1,-2

main()

{inty=2,a=1;

while(y--!

=-1)

do{

a*=y;

a++;

}while(y--);

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

}

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

——2,3

main()

{inti,k=0;

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

k++;

while(k

k++;

if(k%3==0)gotoloop;

}

}

loop:

printf(“%d,%dn”,i,k);

}

编程题:

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

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

3.求(即求1!

+2!

+3!

+…+19!

+20!

)。

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

5.编写程序,求s=1+2+3+……+n,直到累加和大于或等于5000为止,输出s及

n的值。

6.编写程序输出如下图形。

*****

(1)#include"stdio.h"

main()

{inta,b,num1,num2,temp;

printf("pleaseinputtwonumbers:

\n");

scanf("%d,%d",&num1,&num2);

if(num1

{temp=num1;

num1=num2;

num2=temp;

}

a=num1;

b=num2;

while(b!

=0)/*利用辗除法,直到b为0为止*/

{

temp=a%b;

a=b;

b=temp;}

printf("gongyueshu:

%d\n",a);

printf("gongbeishu:

%d\n",num1*num2/a);

}

(2)

#include

#include

#include

usingnamespacestd;

voidmain()

{

charc;

intletters=0,space=0,digit=0,others=0;cout

='\n')

{

if(c>='a'&&cv='z'||c>='A'&&c<='Z')letters++;

elseif(c=='')

elseif(c>='0'&&c<='9')

digit++;

else

others++;

其他"vvothersvvendl;

}

cout«"字母"vvlettersvv"空格"<

(2)#include"stdio.h"

main()

{charc;

intletters=0,space=0,digit=0,others=0;

printf("pleaseinputsomecharacters、"');

while((c=getchar())!

='\n')

{

if(c>='a'&&c<='z'||c>='A'&&c<='Z')

letters++;

elseif(c=='')

space++;

elseif(c>='0'&&c<='9')

digit++;

else

others++;

}

printf("allinall:

char=%dspace=%ddigit=%dothers=%d\n",letters,space,digit,others);

}

⑶#include"stdio.h"main()

{

inti,j;

longa,total=0;

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

{

a=1;

for(j=1;j

a*=j;

total+=a;

}

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

}

(4)#include

intmain()

{

intn=O,i=O,j=O,k=O;〃n表示这个三位数,i,j,k分别代表百位,十位,个位.

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

{

i=n/100;//i表示百位数

j=(n/10)%10;//j表示十位数

k=n%10;//k表示个位数

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

{

printf("%d",n);

}

}

}include

main()

{

inti,j,k;

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

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

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

if((i*100+j*10+k)==((i*i*i)+(j*j*j)+(k*k*k)))printf("%d%d%d",i,j,k);

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

当前位置:首页 > PPT模板 > 国外设计风格

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

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