实验5循环结构参考答案.docx

上传人:b****1 文档编号:2395489 上传时间:2022-10-29 格式:DOCX 页数:14 大小:17.58KB
下载 相关 举报
实验5循环结构参考答案.docx_第1页
第1页 / 共14页
实验5循环结构参考答案.docx_第2页
第2页 / 共14页
实验5循环结构参考答案.docx_第3页
第3页 / 共14页
实验5循环结构参考答案.docx_第4页
第4页 / 共14页
实验5循环结构参考答案.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

实验5循环结构参考答案.docx

《实验5循环结构参考答案.docx》由会员分享,可在线阅读,更多相关《实验5循环结构参考答案.docx(14页珍藏版)》请在冰豆网上搜索。

实验5循环结构参考答案.docx

实验5循环结构参考答案

C语言程序设计实验教学(5)

【实验目的】通过程序设计实现,掌握while结构、do-while结构和for结构各种类型的循环结构,完成各种循环程序的设计和实现。

【实验要求】同一个题目尝试使用多种循环控制结构来实现,并分析其设计和实现的差别和难易程度。

【实验课时】6.0

【实验内容】

一、以下程序使用while结构实现。

1、完成课堂实例的实现。

计算s=1+2+…+100。

(累加型)

main()

{inti=1,sum=0;

while(i<=100)

{sum+=i;i++;}

printf("1+2+3+...+100=%d\n",sum);

}

main()

{inti,sum=0;

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

sum+=i;

printf("1+2+3+...+100=%d\n",sum);

}

请输入数n,计算n!

(连乘型)

main()

{inti=1,n;longfac=1;

scanf("%d",&n);

while(i<=n)

{fac*=i;i++;}

printf("%d!

=%ld\n",n,fac);

}

main()

{inti,n;longfac=1;

scanf("%d",&n);

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

fac*=i;

printf("%d!

=%ld\n",n,fac);

}

输出所有的水仙花数。

(范围型)

main()

{intn=100,a,b,c;

while(n<=999)

{a=n/100;

b=n/10%10;

c=n%10;

if(a*a*a+b*b*b+c*c*c==n)

printf("%6d",n);

n++;}

printf("\n");

}

main()

{intn,a,b,c;

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

{a=n/100;

b=n/10%10;

c=n%10;

if(a*a*a+b*b*b+c*c*c==n)

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

printf("\n");

}

判断n是否为素数。

(反向思维型)

main()

{intn,i=2;

scanf("%d",&n);

while(i<=n-1)

{if(n%i==0)break;

i++;}

if(i>=n)

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

else

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

}

main()

{intn,i;

scanf("%d",&n);

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

{if(n%i==0)break;}

if(i>=n)

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

else

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

}

输入n个数,计算其中偶数的个数。

main()

{intn,i=1,num,count=0;

scanf("%d",&n);

while(i<=n)

{scanf("%d",&num);

if(num%2==0)count++;

i++;}

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

}

main()

{intn,i,num,count=0;

scanf("%d",&n);

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

{scanf("%d",&num);

if(num%2==0)count++;}

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

}

输出以下图形

(1):

输出以下图形

(2):

输出以下图形(3):

图形

(1)图形

(2)图形(3)

main()

{inti,j;

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

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

printf("");

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

printf("*");

printf("\n");

}

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

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

printf("");

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

printf("*");

printf("\n");

}

}

main()

{inti,j;

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

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

printf("");

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

printf("%d",j);

printf("\n");

}

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

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

printf("");

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

printf("%d",j);

printf("\n");

}

}

main()

{inti,j;

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

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

printf("");

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

printf("%d",j);

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

printf("%d",j);

printf("\n");

}

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

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

printf("");

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

printf("%d",j);

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

printf("%d",j);

printf("\n");

}

}

输入一批字符,计算大写字母的个数,输入‘#’结束。

(个数未知型)

#include"stdio.h"

main()

{charch;intcount=0;

ch=getche();

while(ch!

='#')

{if(ch>='A'&&ch<='Z')

count++;

ch=getche();

}

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

}

2、计算s1=1*3*5*…*(2*n-1)。

main()

{inti=1,n;longs=1;

scanf("%d",&n);

while(i<=n)

{s=s*(2*i-1);i++;}

printf("s1=1*3*5*...*%d=%ld\n",2*n-1,s);

}

main()

{inti,n;longs=1;

scanf("%d",&n);

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

s=s*(2*i-1);

printf("s1=1*3*5*...*%d=%ld\n",2*n-1,s);

}

3、计算所有水仙花数的和。

main()

{inti=100,s=0;inta,b,c;

while(i<=999)

{a=i/100;

b=i/10%10;

c=i%10;

if(a*a*a+b*b*b+c*c*c==i)s+=i;

i++;

}

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

}

main()

{inti,s=0;inta,b,c;

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

{a=i/100;

b=i/10%10;

c=i%10;

if(a*a*a+b*b*b+c*c*c==i)s+=i;

}

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

}

4、求100~200间的全部素数。

main()

{intn=101,k=0,i;

while(n<200)

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

if(n%i==0)break;

if(i>=n){printf("%6d",n);k+=1;}

if(k%10==0)printf("\n");

n=n+2;}

printf("\n");

}

main()

{intn,k=0,i;

for(n=101;n<200;n=n+2)

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

if(n%i==0)break;

if(i>=n){printf("%6d",n);k+=1;}

if(k%10==0)printf("\n");}

printf("\n");

}

5、一张纸厚度为0.3毫米,现有一张无限大的纸,并进行若干次对折,请问对折几次后,高度超过珠峰8848米?

main()

{intcount=0;

longh=3;/*long不能换int,因为数值较大*/

while(h<=88480000)

{count++;

h=h*2;};

printf("Theresultis:

%d\n",count);

}

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

main()

{intm,n,t,p,r;

printf("pleaseinputtwonumbers:

\n");

scanf("%d,%d",&n,&m);

if(n

{t=n;n=m;m=t;}

p=n*m;

while(m!

=0)

{r=n%m;n=m;m=r;}

printf("gysis:

%d\n",n);

printf("gbsis:

%d\n",p/n);

}

main()

{intm,n,t,p,i;

printf("pleaseinputtwonumbers:

\n");

scanf("%d,%d",&n,&m);

if(n

{t=n;n=m;m=t;}

p=n*m;

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

{if(n%i==0&&m%i==0)break;}

printf("gysis:

%d\n",i);

printf("gbsis:

%d\n",p/i);

}

7、求(即求1!

+2!

+3!

+……+20!

main()

{inti;doublet=1,s=0;

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

{t=t*i;s=s+t;}

printf("1!

+2!

+...+20!

=%lf\n",s);

}

8、请编程序打印出以下数列:

1、1、2、3、5、8、13、…的前40项。

每行输出4个数。

(斐波那契数列)

方法一:

main()

{inti;

longf1=1,f2=1,f;

printf("%12ld%12ld",f1,f2);

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

{f=f1+f2;

printf("%12ld",f);

if(i%4==0)printf("\n");

f1=f2;f2=f;

}

printf("\n");

}

方法二:

main()

{inti;

longf1=1,f2=1;

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

{printf("%12ld%12ld",f1,f2);

f1=f1+f2;

f2=f2+f1;

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

}

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

当前位置:首页 > 求职职场 > 面试

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

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