文档库 最新最全的文档下载
当前位置:文档库 › 第五章:循环结构

第五章:循环结构

第五章:循环结构
第五章:循环结构

单循环:

1、输出1~1000;(1,2,3,4,5,…………998,999,1000)

2、求1+2+……+100之和。

3、求 1到 100之间的奇数之和、偶数之和。

4、求 Sn=a+aa+aaa+...+aa...a之值,其中 a是一个数字。例如 2+ 22 +222+2222(此

时n=4),n由键盘输入。

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

于该数本身。例如 153是一个水仙花数,因为 153=。

6、3025这个数具有一种独特的性质:将它平分为两段,即30和25,使之相加后求平方,

即(30+25),恰好等于3025本身。请求出具有这样性质的全部四位数。

7、任意十个数,打印出它们中的最大数、最小数。

8、一个数恰好等于它的平方数的右端,这个数称为同构数。如5的平方是25,5是25中的

右端的数,5就是同构数。找出1~1000之间的全部同构数。

9、打印出一个任意整数的所有因数。

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

提示:求 m,n的最大公约数:首先将m除以 n(m>n)得余数 R,再用余数 R 去除原来的除数(m=n,n=r,原除数变为被除数,余数变为除数),得新的余数,重复此过程直到余数为 0 时停止,此时的除数就是m 和 n的最大公约数。求 m和 n的最小公倍数: m和 n的积除以 m 和 n 的最大公约数。

11、有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13,……,求出这个数列的前20项之

和。

12、有一个四位正整数,组成这个四位数的四个数字各不相同,如果把它们的首尾互换,

第二位与第三位互换,组成一个新的四位数。原四位数为新四位数的4倍,请找出一个这样的四位数。

13、使用下面的格式打印出所有大小写字母的ASCII码,每行打印五个(要求使用一次循

环):

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

双重循环、多重循环

15、打印九九乘法表。

16、打印出下图所示图形(最宽行*的个数由用户输入):

17、打印出下图所示图形:

18、用三重循环打印出所有水仙花数(如153=)

19、公元钱五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁

一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

20、求满足后面式子的X、Y、Z的值:XYZ+YZZ=532。

21、一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6 的因子为1、2、

3,而6=1+2+3,因此6 是“完数”。编程序找出1000之内的所有完数。

22、求500以内的所有亲密数对。若正整数A的所有因子(包括1但不包括自身,下同)

之和为B,而B的因子之和为A,则称A和B为一对亲密数对。

23、求(即求1!+2!+3!+...+20!)。

24、两个乒乓球队进行比赛,各出3人。甲队为A,B,C等3人,乙队为X,Y,Z等3

人。已经抽签决定比赛名单。有人向队员打听比赛的名单,A说他不和X比,C说他不和X,Z比,请编程找出3对比赛选手的名单。

25、判断101-200之间有多少个素数,并输出所有素数。

循环练习:

26、用1到9组成3个3位数,且三者之比为1:2:3(稍有难度)。

27、一个四位数,前两位相同,后两位相同,并且该四位数是一个整数的平方,编程找出

这个四位数。

28、个位数为6且能被3整除的五位数共有多少?

29、求100到1000之间有多少个其数字之和为5的整数。

30、设N是一个四位数,它的9倍恰好是其反序数,求N。反序数就是将整数的数字倒过

来形成的整数。

31、问555555的约数中最大的三位数是多少?

32、打印如下图所示数字图形:

33、在下面式子中的二个□内填入一个同样的数字,使等式成立。

□3*6528=3□*8256

34、A、B两个自然数的和、差、积、商四个数加起来等于243,求A、B两数。

35、有三种明信片:第一种每套一张,售价2元;第二种每套一张,售价4元;第三种每套

9张,售价2元。现用100元钱要买100张明信片,要求每种明信片至少要买一套,问三种明信片应各买几套?请输出全部购买方案。(14,14,8 31,6,7)

36、输入十个裁判的打分,去掉一个最高分,去掉一个最低分,求最终平均分。

37、有人想将手中一张面值100元的人民币换成5元、1元、0.5元面值的零钱100张,以

上三种面值的零钱至少有一张,问共有几种换法。

38、用近似公式求自然对数的底e的值。

39、写一程序,要求用户在键盘上输入一个整数,并把每位数字转换为英文。例如:输入

1024时,输出One Zero Two Four。

40、韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1到5报,最末一个士

兵报的数为1;按从1到6报,最后一个士兵报的数为5,按从1到7报,最末一个士兵报的数为4;最后在按从1到11报,最末一个士兵报的数为10.你知道韩信至少有多少兵吗?

41、一个正整数有可能可以被表示为n(n>=2) 个连续正整数之和,如:

15=1+2+3+4+5

15=4+5+6

15=7+8

请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。

未找到序列数,输出NONE

42、父亲对儿子说:“做对一道题给8分,做错一道题扣5分。”做完26题后,儿子得0

分,问儿子做对了几题?

43、在爱尔兰守神节那天,举行每年一度的庆祝游戏,指挥者若将乐队排成10人、9人、8

人、7人、6人、5人、4人、3人和2人时,最后的一排总是缺少一个人,那些人想这个位置大概是给数月前死去的乐队成员凯西还留着位置。指挥者见到总缺一人恼火了,叫大家排成一列纵队前进。假定人数不超过7000人,那么乐队究竟有多少人?

44、输入任一自然数,求其反序数及其位数,并输出。

45、输出下面的图形:

46、输出下面的数字图形(拉丁方阵):

47、编程输出1-10000以内所有的回文数,并统计个数。

48、今年父亲30岁,儿子6岁,问多少年以后父亲的年龄正好是儿子的2倍?

49、(1)编程计算1-2+3-4……+9999-10000的结果。

(2)编程计算1+4+9+16+25+……+10000的结果。

50、任何一个自然数m的立方均可写成m个连续奇数之和。例如:

1^3=1

2^3=3+5

3^3=7+9+11

4^3=13+15+17+19

编程实现:输入一自然数n,求组成n^3的n个连续奇数。

51、马克思在《数学手稿》中提出如下问题:有30个人(包括男人、女人和小孩)在一家

饭店吃饭共花50先令,其中每个男人花3先令,每个女人花2先令,每个小孩花1先令,问男人、女人、小孩各有多少人?

52、打印蛇形数字图形:

53、打印下面的“回形”数字图形:

54、打印字母金字塔:

55、

第3题:

main()

{

long int s=0,i=1,n,x,y;

printf("n=");

scanf("%ld",&n);

printf("x=");

scanf("%ld",&x);

y=x;

while(i<=n)

{

s=s+x;

if(i==n)

printf("%ld",x);

else

printf("%ld+",x);

x=x*10+y;

i++;

}

printf("=%ld",s);

getch();

}

第7题:

int main(void)

{

int min=0,max=0,i=1,x=0; printf("No. %d:",i);

scanf("%d",&x);

min=max=x;

i++;

while(i<=10)

{

printf("No. %d:",i); scanf("%d",&x);

if(min

min=x;

if(max>x)

max=x;

i++;

}

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

printf("min=%d",min);

getch();

return 0;

}

第10题

方法一:

main()

{

int m,n,x,y,r,s;

printf("m=");

scanf("%d",&m);

x=m;

printf("n=");

scanf("%d",&n);

y=n;

r=m%n;

while(r!=0)

{

m=n;

n=r;

r=m%n;

}

printf("yue shu=%d\n",n);

s=x*y/n;

printf("bei shu=%d\n",s);

getch();

}

方法二:

main()

{

int m,n,i,xiao,da,x;

scanf("%d",&m);

scanf("%d",&n);

if(m

{xiao=m;da=n;}

else

{xiao=n;da=m;}

for(i=xiao;i>=1;i--)

{

if(n%i==0&&m%i==0)

{

printf("zui da gong yue shu:%d\n",i);

break;

}

}

for(i=da;i<=m*n;i+=da)

{

if(i%m==0&&i%n==0)

{

printf("zui xiao gong bei shu:%d\n",i);

break;

}

}

getch();

}

第13题:

main()

{

char i;

int j;

for(i='A',j=1;i<='z';i++,j++)

{

if(i>'Z'&&i<'a')

continue;

if(i=='a')

{

printf("\n\n");

j=1;

}

if(j%5==0)

printf("'%c'=%3d\n",i,i);

else

printf("'%c'=%3d ",i,i);

}

getch();

}

第14题

main()

{

int letters,spaces,digits,others;

char c;

letters=spaces=digits=others=0;

while((c=getchar())!='\n')

{

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

letters++;

else if(c==' ')

spaces++;

else if(c>='0'&&c<='9')

digits++;

else

others++;

}

printf("letters=%d,spaces=%d,ditits=%d,others=%d",letters,spaces,digits,others);

getch();

}

第16题

main()

{

int i,j,n;

printf("n=");

scanf("%d",&n);

for(j=-n+1;j<=n-1;j++) {

for(i=1;i<=n-abs(j);i++) {

printf("*");

}

printf("\n");

}

getch();

}

第17题:

(图一)

main()

{

int i,j,k,n;

scanf("%d",&n);

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

{

for(k=1;k<=abs(j)/2;k++)

printf(" ");

for(i=1;i<=n-abs(j);i++)

printf("*");

printf("\n");

}

getch();

}

(图二)

main()

{

int i,j,k,n;

scanf("%d",&n);

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

{

for(k=1;k<=abs(j)/2;k++)

printf(" ");

for(i=1;i<=n-abs(j);i++)

{

if(i==1||i==n-abs(j))

printf("*");

else

printf(" ");

}

printf("\n");

}

getch();

}

第18题:

main()

{

int i,j,k,n;

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

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

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

if(i*i*i+j*j*j+k*k*k==i*100+j*10+k&&i*100+j*10+k>99)

printf("%d%d%d\n",i,j,k) ;

getch();

}

第19题:

main()

{

int i,j,k;

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

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

{

k=100-i-j;

if(i*5+j*3+k/3==100&&k%3==0)

printf("%d,%d,%d\n",i,j,k);

}

getch();

}

第24题:

main()

{

char i,j,k;/*i是a的对手,j是b的对手,k是c的对手*/

for(i='x';i<='z';i++)

for(j='x';j<='z';j++)

{

if(i!=j)

for(k='x';k<='z';k++)

{

if(i!=k&&j!=k)

{

if(i!='x'&&k!='x'&&k!='z')

printf("order is a->%c\tb->%c\tc->%c\n",i,j,k);

}

}

}

getch();

}

第26题:

main()

{

int i,j,k,x1,x2,x3,t1,t2,t3,s1,s2,s3;

for(x1=123;x1<333;x1++)

{

i=x1%10;

j=x1/10%10;

k=x1/100;

if((i-j)*(j-k)*(i-k)!=0&&i!=0&&j!=0&&k!=0)

{

x2=2*x1;

x3=3*x1;

t1=x2%10;

if(t1==i||t1==j||t1==k||t1==0)

continue;

t2=x2/10%10;

if(t2==i||t2==j||t2==k||t2==0)

continue;

t3=x2/100;

if(t3==i||t3==j||t3==k||t3==0)

continue;

s1=x3%10;

if(s1==i||s1==j||s1==k||s1==t1||s1==t2||s1==t3||s1==0)

continue;

s2=x3/10%10;

if(s2==i||s2==j||s2==k||s2==t1||s2==t2||s2==t3||s2==0)

continue;

s3=x3/100;

if(x3==i||x3==j||x3==k||s3==t1||s3==t2||s3==t3||s2==0)

continue;

if((t1-t2)*(t1-t3)*(t2-t3)!=0&&(s1-s2)*(s1-s3)*(s2-s3)!=0)

printf("%d,%d,%d\n",x1,x2,x3);

}

}

getch();

}

方法二:

int a[9];

ok(int t,int *z)

{

int *p1,*p2;

for(p1=z;p1

{

*p1=t%10;

t/=10;

for(p2=a;p2

{

if(*p1==0||*p2==*p1)

return 0;

}

}

return 1;

}

void main()

{

int m,count=0;

for(m=123;m<=333;m++)

{

if(ok(m,a)&&ok(2*m,a+3)&&ok(3*m,a+6))

{

printf("No.%d: %d %d %d\n",++count,m,2*m,3*m);

}

}

getch();

}

第32题:

#include "math.h"

int main(void)

{

int i,j,count=0;

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

{

for(j=1;j<=9-abs(i);j++)

{

printf("%-2d ",++count);

}

if(i>=0)

count=count-j*2+3;

printf("\n");

}

getch();

}

int main(void)

{

int i,j=1,count=0;

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

{

printf("%*c",abs(i*2)+1,' ');

for(j=1;j<=9-abs(i);j++)

{

printf("%3d ",++count);

}

if(i>=0)

count=count-j*2+3;

printf("\n");

}

getch();

return 0;

}

第39题:

方法一:(缺点:只能固定N的值小于5位数)main()

{

/* i:n的位数j:循环变量d:取出N中的每一位数(从高位开始)*/ int n,i,j,d,s;

printf("n=");

scanf("%d",&n);

if(n>=10000)

{i=5;s=10000;}

else if(n>=1000)

{i=4;s=1000;}

else if(n>=100)

{i=3;s=100;}

else if(n>=10)

{i=2;s=10;}

else

{i=1;s=1;}

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

{

d=n/s;

n=n%s;

s=s/10;

switch(d)

{

case 0:

printf("ZERO ");

break;

case 1:

printf("One ");

break;

case 2:

printf("two ");

break;

case 3:

printf("three ");

break;

case 4:

printf("four ");

break;

case 5:

printf("five ");

break;

case 6:

printf("six ");

break;

case 7:

printf("seven ");

break;

case 8:

printf("eight ");

break;

case 9:

printf("nine");

break;

}

}

getch();

}

方法二:(任意位数)

int main(void)

{

long int n,g,s=0,w1=0,w2=0,s2,i;

scanf("%ld",&n);

while(n!=0)

{

g=n%10;

n=n/10;

s=s*10+g;

w1++;

}

s2=s;

while(s2!=0)

{

s2=s2/10;

w2++;

}

while(s!=0)

{

g=s%10;

s=s/10;

switch(g)

{

case 1:

printf("One ");

break;

case 2:

printf("Two ");

break;

case 3:

printf("Three ");

break;

case 4:

printf("Four ");

break;

case 5:

printf("Five ");

break;

case 6:

printf("Six ");

break;

case 7:

printf("Seven ");

break;

case 8:

printf("Eight ");

break;

case 9:

printf("Nine ");

break;

case 0:

printf("Zero ");

break;

default:

printf("WRONG");

break;

}

}

for(i=1;i<=(w1-w2);i++)

{

printf("Zero ");

}

getch();

return 0;

}

第41题:

int main(void)

{

int i,j,k,n,s=0,flag=0;

printf("n=");

scanf("%d",&n);

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

{ s=0;

for(j=i;j

{

s+=j;

if(s==n)

{

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

printf("%d ",k);

printf("\n");

flag=1;

break;

}

if(s>n)

break;

}

}

if(flag==0)

printf("NONE");

getch();

}

第44题

int main(void)

{

long int n,fan=0,wei=0,x;

scanf("%ld",&n);

do{

x=n%10;

fan=fan*10+x;

n=n/10;

wei++;

}while(n!=0);

printf("fan=%ld,wei shu=%ld",fan,wei);

getch();

}

第45题:

(图一)

main()

{

int i,j,n;

scanf("%d",&n);

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

{

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

printf(" ");

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

{

printf("%c",i+’A’-1);

}

printf("\n");

}

getch();

}

(第三个图)

main(void)

{

int i,j,n;

scanf("%d",&n);

printf("\n");

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

{

printf(" ");

for(j=n-i;j>=1;j--)

printf(" ");

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

printf("*");

for(j=(n-i)*2;j>=1;j--)

printf(" ");

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

printf("*");

printf("\n");

}

getch();

}

第46题

int main(void)

{

int i,j,n;

printf("\n n=");

scanf("%d",&n);

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

{

for(j=i;j

{

printf(" %d",j%n==0?n:j%n);

}

printf("\n");

}

getch();

}

第47题:

main()

{

long int i,n,yu,s,sum=0;

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

{

n=i;

s=0;

while(n!=0)

{

yu=n%10;

n=n/10;

s=s*10+yu;

}

if(i==s)

{

printf("%ld ",s);

sum++;

}

}

printf("\nsum=%ld",sum);

getch();

}

第50题:

int main(void)

{

int m,mid,fst,i;

scanf("%d",&m);

mid=m*m;

if(m%2==1)

fst=mid-(m/2)*2;

else

fst=mid-m+1;

printf("%d^3=",m);

for(i=0;i

printf("%d ",fst+i*2); getch();

return 0;

}

第52题:

int main(void)

{

int i,j,n,x;

printf("\n n=");

scanf("%d",&n);

x=-n+1;

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

{

if(i%2==0)

{

x+=n;

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

{

printf("%3d",--x);

}

}

else

{

x+=n;

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

{

printf("%3d",x++);

}

}

printf("\n");

}

getch();

return 0;

}

方法二:

main()

{

int i,j,n,x,hang;

n=1;

scanf("%d",&hang);

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

{

x=n+i*hang;

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

{

第五章 循环结构程序设计编程题(参考答案)

第五章循环结构程序设计 1.用for循环语句编程输出1~20之间的所有整数,两数之间以空格分隔。 #include void main() { int i; for(i=1;i<=20;i++) printf("%d ",i); printf("\n"); } 2.用for循环语句编程输出20~1之间的所有整数,两数之间以空格分隔。 #include void main() { int i; for(i=20;i>=1;i--) printf("%d ",i); printf("\n"); } 3.用for循环语句编程输出A~Z之间的所有字符,两字母之间以空格分隔,要求一行输出8个字符。 #include void main() { char c; for(c='A';c<='A'+25;c++) { putchar(c);

printf(" "); } } 4.输出100~200之间所有能被3和7整除的数(每行输出4个数)。#include void main() { int i,j=0; for(i=100;i<=200;i++) { if(i%21==0) { j++; printf("%12d",i); if(j%4==0) printf("\n"); } } } 5.输出1至1000之间所有满足用3除余2、用5除余3、用7除余2的数(要求每行只输出5个数)。 #include void main()

int i,j=0; for(i=1;i<=1000;i++) { if((i%3==2)&&(i%5==3)&&(i%7==2)) { j++; printf("%12d",i); if(j%5==0) printf("\n"); } } } 6.先读入一个正整数n,然后计算并显示前n个偶数的和。例如n为5,则求2+4+6+8+10的值,即sum=30。 #include void main() { int i,n,sum=0; printf("Please enter an integer n:"); scanf("%d",&n); for(i=1;i<=n;i++) sum+=(2*i); printf("sum=%d\n",sum);

第5章 循环结构程序设计作业参考答案

第5章循环结构程序设计作业参考答案 班级学号姓名 【第140页】 5-1、请画出课本里5.6中给出的3个程序段的传统流程图。 (1)程序1: #include int main() { int i,j,n=0; for (i=1;i<=4;i++) for (j=1;j<=5;j++,n++) { if(n%5==0)printf("\n"); //控制在输出5个数据后换行 printf("%d\t",i*j); } printf("\n"); return 0; } (2)程序2: #include int main() { int i,j,n=0; for (i=1;i<=4;i++) for (j=1;j<=5;j++,n++) { if(n%5==0)printf("\n"); //控制在输出5个数据后换行 if (i==3 && j==1) break; //遇到第3行第1列,终止内循环 printf("%d\t",i*j); } printf("\n"); return 0; } (3)程序3: #include int main() { int i,j,n=0; for (i=1;i<=4;i++)

for (j=1;j<=5;j++,n++) { if(n%5==0)printf("\n"); //控制在输出5个数据后换行 if (i==3 && j==1) continue; //遇到第3行第1列,提前结束执行本次内循环体 printf("%d\t",i*j); } printf("\n"); return 0; } (1)程序1流程图(2)程序2流程图(3)程序3流程图 5-3、输入两个正整数m和n,求其最大公约数和最小公倍数。 #include int main()

第五章循环结构

第五章循环结构 一、选择题 1.C语言中while和do_while循环的主要区别是( )。 A.do_while的循环体至少无条件执行一次 B.while的循环控制条件比do_while的循环控制条件严格 C.do_while允许从外部转到循环体内 D.do_while的循环体不能是复合语句 2.以下描述中正确的是( )。 A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句 B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号 C.在do-while循环体中,是先执行一次循环,再进行判断 D.do-while循环中,根据情况可以省略while 3.语句while (!E); 括号中的表达式!E等价于( ) 。 A.E==0 B.E!=1 C.E!=0 D.E==1 4.以下程序的功能是计算:s= 1+1/2+1/3+……+1/10 main() { int n; float s s=1.0; for(n=10;n>1;n--) s=s+1/n; printf("%6.4f\n",s); } 程序运行后输出结果错误,导致错误结果的程序行是( )。 A.s=1.0; B.for(n=10;n>1;n--) C.s=s+1/n; D.printf("%6.4f\n",s); 5.下面程序段的运行结果是( )。 a=1;b=2;c=2; while(a

第5章循环结构程序设计

第5章循环结构程序设计 通过本章实验作业应达目标 1.熟悉while、for、do_while、break、continue语句的作用与使用规范,能使用while语句、for 语句、do_while语句实现循环结构; 2.掌握循环结构和选择结构之间嵌套、多重循环间嵌套的设计方法。 3.进行算法设计训练,能综合所学控制结构语句解决一般问题。 本章必须上交作业 程序5_1.c、5_2.c、5_3.c、5_5.c、5_6.c、5_7.c、5_8.c、5_11.c上传至http://121.251.227.27:8080/c 1.循环设计 循环是在循环条件为真时重复执行一组循环体语句的控制结构,是计算机解题的一个基本结构。循环控制有两种基本方法:计数法和标志法。 (1)计数器控制的循环 事先准确地知道循环次数,因此设计一个循环控制变量,由变量值来控制循环次数。每循环一次,循环变量的值会递增(增值通常为1或-1),当其值达到终值时结束循环。 (2)标志控制的循环 事先不知道准确的循环次数,由某一目标值标记循环的结束。如,例3-23中以变量sum的值达到标记值1000作为循环的结束,例3-24中就是以键盘输入一个负数为标记结束循环。 2.基本算法 程序设计的首要工作是算法设计,离开了算法也就没有了程序。算法,是指完成某一项工作而采取的方法和步骤,具体到程序设计,是对解题过程的准确而完整的描述,并用一种程序设计语言的来实现。 循环主要用来解决程序设计中两类基本的算法:穷举和迭代。 1. 穷举算法 穷举的基本思想是对问题的所有可能状态一一测试,直到找到解或将全部可能状态都测试过为止。穷举是一种重复型算法,其核心是设计循环,在循环体中依次测试。 例1 输入两个正整数x和y,求其最大公约数。 #include void main() { int x,y,i,flag; flag=1; /*flag是标志变量,当其值为0时表示已找到公约数*/ printf("Please input two numbers:"); scanf("%d%d",&x,&y); for(i=x

第5章 循环结构 习题

第三章循环结构 3.1 选择题 1.以下程序的输出结果是( )。 main() { int n=4; while (n--) printf(〞%d〞,--n); } A.20 B.31 C.321 D.210 2.以下程序的输出结果是( )。 main() {int x=10,y=10,i; for(i=0;x>8;y=++i) printf("%d%d",x--,y); } A.10192 B.9876 C.10990 D.101091 3.当执行以下程序段时。 x=-1; do {x=x*x;} while (!x); A.循环体将执行一次 B.循环体将执行两次 C.循环体将执行无数多次 D.系统将提示有语法错误4.执行以下程序后输出的结果是()。 main() { int y=10; do{y--;}while(--y); printf("%d\n",y--);} A.-1 B.1 C.8 D.0 5.下面程序的输出结果是()。 main() { int x=3,y=6,a=0; while (x++!=(y-=1)) {a+=1; if (y

A.x=4,y=4,a=1 B.x=5,y=5,a=1 C.x=5,y=4,a=3 D.x=5,y=4,a=1 6.若i,j已定义为int类型,则以下程序段中内循环的总的执行次数是()。 for (i=5;i;i--) for (j=0;j<4;j++) {…} A.20 B.24 C.25 D.30 7.请读程序: #include main() {int x=1,y=0,a=0,b=0; switch(x) {case 1:switch(y) {case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; } printf("a=%d,b=%d\n",a,b); } 上面程序的输出结果是()。 A.a=2,b=1 B.a=1,b=1 C.a=1,b=0 D.a=2,b=2 8.若有以下程序段,w和k都是整型变量 w=k; LB: if(w==0) goto LE; w--; printf(〞*〞); goto LB; LE: 则不能与上面程序段等价的循环语句是()。 A. for(w=k;w!=0;w--) print(〞*〞); B. w=k; while(w--!=0) printf(〞*〞); w++; C. w=k; do {w--;printf(〞*〞);} while (w!=0); D.for (w=k;w;--w) printf(〞*〞); 9.下面程序的输出是()。

第五章 循环结构

第五章循环结构 5.1 选择题 1.以下程序的输出结果是( )。 main() { int n=4; while (n--) printf(〞%d〞,--n); } A.20 B.31 C.321 D.210 2.以下程序的输出结果是( )。 main() {int x=10,y=10,i; for(i=0;x>8;y=++i) printf("%d%d",x--,y); } A.10192 B.9876 C.10990 D.101091 3.当执行以下程序段时。 x=-1; do {x=x*x;} while (!x); A.循环体将执行一次 B.循环体将执行两次 C.循环体将执行无数多次 D.系统将提示有语法错误4.执行以下程序后输出的结果是()。 main() { int y=10; do{y--;}while(--y); printf("%d\n",y--);} A.-1 B.1 C.8 D.0 5.下面程序的输出结果是()。 main() { int x=3,y=6,a=0; while (x++!=(y-=1)) {a+=1; if (y

A.x=4,y=4,a=1 B.x=5,y=5,a=1 C.x=5,y=4,a=3 D.x=5,y=4,a=1 6.若i,j已定义为int类型,则以下程序段中内循环的总的执行次数是()。 for (i=5;i;i--) for (j=0;j<4;j++) {…} A.20 B.24 C.25 D.30 7.请读程序: #include main() {int x=1,y=0,a=0,b=0; switch(x) {case 1:switch(y) {case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; } printf("a=%d,b=%d\n",a,b); } 上面程序的输出结果是()。 A.a=2,b=1 B.a=1,b=1 C.a=1,b=0 D.a=2,b=2 8.若有以下程序段,w和k都是整型变量 w=k; LB: if(w==0) goto LE; w--; printf(〞*〞); goto LB; LE: 则不能与上面程序段等价的循环语句是()。 A. for(w=k;w!=0;w--) print(〞*〞); B. w=k; while(w--!=0) printf(〞*〞); w++; C. w=k; do {w--;printf(〞*〞);} while (w!=0); D.for (w=k;w;--w) printf(〞*〞); 9.下面程序的输出是()。

第5章 循环结构

第五章循环结构 一、单项选择题(本大题共20小题,每小题1分,共20分) 1.执行下面程序段后,输出字符B的个数是() x=0; while(x<=5) {printf("B"); x+=2;} A.0个B.3个C.5个D.6个 2.在下述程序中,for循环执行的次数是() main( ) {int i =0,j=10,k=2,s=0; for(; ;) {i+=k; if(i>j) {printf("%d\n",s); break;} s+=i; } } A.4 B.5 C.6 D.7 3.执行下面程序段后,输出字符A的个数是() for(i=0;i<=5;i+=2) printf(“A”); A.0个B.3个C.5个D.6个 4.执行while(表达式)循环的条件是() A.当表达式的值为0时B.仅当表达式的值为1时 C.当表达式的值非0时D.当表达式的值不为1时 5.下列程序段输出的结果是() for(i=1;i<3;i+ +) for(j=1;j<3;j+ +) printf("%d",i+j); A.2 3 3 4 B.2 3 4 C.2 3 D.2 3 4 3 4 6.对do语句while(表达式);结构的循环,下列说法正确的是()A.当表达式的值为非零时不执行循环体

B.循环体至少被执行一次 C.当表达式的值为零时循环体一次也不执行 D.循环体仅被执行一次 7.只能在循环语句中用于结束本轮循环的语句是() A.break; B.continue; C.goto D.if 10.下列程序段的输出结果是() i=1; while(i<3) {j=1; while(j<=i) {printf(“%d”,i+j); j++;} i++; printf(“\n”); } A. 2 3 3 4 B. 2 3 4 C. 2 3 D. 2 3 4 3 4 8.下列程序段的输出结果是() a=100; do a=a+l; while(a>120); printf(“%d”,a); A.100 B.101 C.120 D.121 9.关于break和continue语句,下列说法正确的是() A.在循环体中可以用break语句结束本次循环 B.在循环体中可以用continue语句结束本次循环 C.break语句仅能使用在switch结构中 D.可以使用continue语句跳出switch结构 10.对于for(表达式l;表达式2;表达式3)语句;控制循环结束的表达式是() A.表达式1 B.表达式2 C.表达式3 D.表达式l和表达式3 11.下列语句中不能 ..实现循环结构的语句是() A.if语句 B.while语句 C.do—while语句 D.for语句 12.以下程序的输出结果是() main()

相关文档
相关文档 最新文档