湖北理工学院c语言程序的设计实验3答案.docx

上传人:b****5 文档编号:10188449 上传时间:2023-02-09 格式:DOCX 页数:20 大小:434.27KB
下载 相关 举报
湖北理工学院c语言程序的设计实验3答案.docx_第1页
第1页 / 共20页
湖北理工学院c语言程序的设计实验3答案.docx_第2页
第2页 / 共20页
湖北理工学院c语言程序的设计实验3答案.docx_第3页
第3页 / 共20页
湖北理工学院c语言程序的设计实验3答案.docx_第4页
第4页 / 共20页
湖北理工学院c语言程序的设计实验3答案.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

湖北理工学院c语言程序的设计实验3答案.docx

《湖北理工学院c语言程序的设计实验3答案.docx》由会员分享,可在线阅读,更多相关《湖北理工学院c语言程序的设计实验3答案.docx(20页珍藏版)》请在冰豆网上搜索。

湖北理工学院c语言程序的设计实验3答案.docx

湖北理工学院c语言程序的设计实验3答案

实验三循环结构程序设计

实验课程名:

C语言程序设计

专业班级:

学号:

实验时间:

实验地点:

指导教师:

一、实验目的和要求

1.熟悉掌握用for语句,while语句和do_while语句实现循环的方法。

2.掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。

二、实验容

1、编写程序,随机输入15个整数,可以是正数、负数和零,计算它们的和、所有正数之和及所有负数之和,分类统计正数、负数以及零的个数,并分别打印出来。

解答:

(1)源代码:

#include

intmain()

{

inta[14],i,sum1=0,sum2=0,sum3=0,x=0,y=0,z=0;

printf("请输入十五个整数:

");

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

{

scanf("%d",&a[i]);

sum1=sum1+a[i];

if(a[i]>0)

{

sum2=sum2+a[i];

x=x+1;

}

if(a[i]==0)

z=z+1;

if(a[i]<0)

{

sum3=sum3+a[i];

y=y+1;

}

}

printf("所有数的和为%d\n",sum1);

printf("所有正数的和为%d\n",sum2);

printf("所有负数的和为%d\n",sum3);

printf("其中有%d个正数\n",x);

printf("其中有%d个0\n",z);

printf("其中有%d个负数\n",y);

return0;

}

(2)运行结果:

(3)运行结果分析:

运行成功。

2、有一分数序列:

2/1,3/2,5/3,8/5,13/8,21/13,…。

求出这个数列的前20项之和。

解答:

(1)源代码:

#include

intmain()

{

floata=1,b=2,c,sum=0;

inti;

printf("2/1,3/2,5/3,8/5,13/8,21/13,…前二十项的和为");

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

{

sum=sum+b/a;

c=a+b;

a=b;

b=c;

}

printf("%.2f\n",sum);

return0;

}

(2)运行结果:

(3)运行结果分析:

运行成功

 

3、编写程序,求1!

+2!

+3!

+…+N!

的值,N的值由键盘输入。

解答:

(1)源代码:

#include

intmain()

{

inta,c,i,s,sum;

s=1;

sum=0;

printf("1!

+2!

+3!

+…+N!

\n");

printf("请输入N的值\n");

scanf("%d",&c);

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

{

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

{

s=s*a;

}

sum=sum+s;

s=1;

}

printf("其结果为%d\n",sum);

return0;

}

(2)运行结果:

(3)运行结果分析:

运行成功。

 

4、编程序按下列公式计算e的值(精度为1e-6):

e=1+1/1!

+1/2!

+1/3!

+…+1/n!

解答:

(1)源代码:

#include

intmain()

{

inta,c,i;

floatsum,s;

s=1;

sum=0;

for(c=1;1/s>=1e-6;c++)

{

s=s*c;

}

s=1;

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

{

for(a=1;a

{

s=s*a;

}

sum=sum+1/s;

s=1;

}

printf("e=%f\n",sum);

return0;

}

(2)运行结果:

(3)运行结果分析:

运行成功

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

解答:

(1)源代码:

#include

intmain()

{

chars;

inta=0,b=0,c=0,d=0;

printf("请输入一行字符");

while((s=getchar())!

='\n')

{

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

a++;

if(s=='')

b++;

if(s>='0'&&s<='9')

c++;

if(!

(s>='a'&&s<='z')&&!

(s>='A'&&s<='Z')&&(s!

='')&&!

(s>='0'&&s<='9'))

d++;

}

printf("其中字母有%d个\n",a);

printf("其中空格有%d个\n",b);

printf("其中数字有%d个\n",c);

printf("其中其他字符有%d个\n",d);

return0;

}

(2)运行结果:

(3)运行结果分析:

运行成功

6、编程求1000以所有的水仙花数。

谓水仙花数,是指一个3位数,其各位数字立方和等于该数字本身。

例,153是水仙花数,因为153=13+53+33。

解答:

(1)源代码:

#include

intmain()

{

inta,b,c,d,i;

printf("1000以的水仙花数为");

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

{

a=i%10;

b=i/10%10;

c=i/100;

d=a*a*a+b*b*b+c*c*c;

if(i==d)

printf("%d",i);

}

printf("\n");

return0;

}

(2)运行结果:

(3)运行结果分析:

运行成功

7、编程:

素数是除了1和其本身以外,不能被其他自然数整除的自然数。

从键盘输入一个数,判断该数是不是素数?

解答:

(1)源代码:

#include

intmain()

{

inta,b,x,i;

x=1;

printf("请输入一个自然数");

scanf("%d",&a);

if(a==1)

printf("该数不是素数\n");

else

{

for(i=2;i

{

b=a%i;

if(b==0)

x=0;

}

if(x==0)

printf("该数不是素数\n");

if(x==1)

printf("该数是素数\n");

}

return0;

}

(2)运行结果:

(3)运行结果分析:

运行成功

 

8、编写程序输入某班C语言考试的考试分数,该班人数未知,用-1作为结束标志,若输入大于100分,则提示重新输入,然后计算全班的最高分、最低分与平均分。

 

解答:

(1)源代码:

include

intmain()

{

inta,b,i=0,max=0,min=100,sum=0;

printf("请输入班上各个学生C语言的考试分数\n");

while

(1)

{

scanf("%d",&a);

if(a>100)

{

printf("分数格式不对,请重新输入\n");

continue;

}

if(a==-1)

break;

sum=sum+a;

i++;

if(max>=a)

max=max;

else

max=a;

if(min<=a)

min=min;

else

min=a;

}

b=sum/i;

printf("全班的最高分为%d\n",max);

printf("全班的最低分为%d\n",min);

printf("全班的平均分为%d\n",b);

return0;

}

(2)运行结果:

(3)运行结果分析:

运行成功

 

9、有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

解答:

(1)源代码:

#include

intmain()

{

intx=1,y=1,i=1;

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

{

printf("%d%d",x,y);

if(i%4==0)

{

printf("\n");

}

x=x+y;

y=x+y;

}

return0;

}

(2)运行结果:

(3)运行结果分析:

运行成功

 

10、公鸡五元一只,母鸡三元一只,小鸡一元三只,一百元要买一百只鸡,且须包含公鸡、母鸡和小鸡。

请编写程序,输出所有可能的方案。

解答:

(1)源代码:

#include

intmain()

{

intx,y,z;

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

{

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

{

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

{

if((15*x+9*y+z==300)&&(x+y+z==100))

printf("公鸡有%d,母鸡有%d,小鸡有%d\n",x,y,z);

}

}

}

return0;

}

(2)运行结果:

(3)运行结果分析:

运行成功

11、编写程序,打印以下图形:

*******

*******

*******

*******

*******

解答:

(1)源代码:

#include

intmain()

{

inti,j;

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

{

for(j=1;j

printf("");

printf("*******\n");

}

return0;

}

(2)运行结果:

(3)运行结果分析:

运行成功

 

12、编写程序,打印以下图形:

*

***

*****

*******

*****

***

*

解答:

(1)源代码:

#include

intmain()

{

inti,j,k;

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

{

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

printf("");

for(k=0;k<=2*i;k++)

printf("*");

printf("\n");

}

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

{

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

printf("");

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

printf("*");

printf("\n");

}

return0;

}

(2)运行结果:

(3)运行结果分析:

运行成功

三、结论

四、教师评语

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

当前位置:首页 > 高等教育 > 工学

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

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