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

上传人:scccc 文档编号:12053384 上传时间:2021-12-01 格式:DOC 页数:15 大小:494.50KB
返回 下载 相关 举报
湖北理工学院c语言程序设计-实验3答案.doc_第1页
第1页 / 共15页
湖北理工学院c语言程序设计-实验3答案.doc_第2页
第2页 / 共15页
湖北理工学院c语言程序设计-实验3答案.doc_第3页
第3页 / 共15页
湖北理工学院c语言程序设计-实验3答案.doc_第4页
第4页 / 共15页
湖北理工学院c语言程序设计-实验3答案.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《湖北理工学院c语言程序设计-实验3答案.doc》由会员分享,可在线阅读,更多相关《湖北理工学院c语言程序设计-实验3答案.doc(15页珍藏版)》请在三一文库上搜索。

1、实验三 循环结构程序设计实验课程名:C语言程序设计专业班级: 学号: 姓名: 实验时间: 实验地点: 指导教师: 一、实验目的和要求1. 熟悉掌握用for语句,while语句和do_while语句实现循环的方法。2. 掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。二、实验内容1、编写程序,随机输入15个整数,可以是正数、负数和零,计算它们的和、所有正数之和及所有负数之和,分类统计正数、负数以及零的个数,并分别打印出来。解答:(1)源代码:#include<stdio.h>int main()int a14,i,sum1=0,sum2=0,sum3=0,x=0

2、,y=0,z=0;printf("请输入十五个整数:");for(i=0;i<15;i+)scanf("%d",&ai);sum1=sum1+ai;if(ai>0)sum2=sum2+ai;x=x+1;if(ai=0)z=z+1;if(ai<0)sum3=sum3+ai;y=y+1;printf("所有数的和为%dn",sum1);printf("所有正数的和为%dn",sum2);printf("所有负数的和为%dn",sum3);printf("其中有%d

3、个正数n",x);推荐精选printf("其中有%d个0n",z);printf("其中有%d个负数n",y);return 0;(2)运行结果: (3)运行结果分析:运行成功。 2、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13, 。求出这个数列的前20项之和。解答:(1)源代码:#include<stdio.h>int main()float a=1,b=2,c,sum=0;int i;printf("2/1,3/2,5/3,8/5,13/8,21/13,前二十项的和为");for(i=1

4、;i<21;i+)sum=sum+b/a;c=a+b;a=b;b=c;推荐精选printf("%.2fn",sum);return 0;(2)运行结果: (3)运行结果分析:运行成功3、编写程序,求 1!+ 2!+ 3!+ +N!的值,N的值由键盘输入。解答:(1)源代码:#include<stdio.h>int main()int a,c,i,s,sum;s=1;sum=0;printf("1!+ 2!+ 3!+ +N!n");printf("请输入N的值n");scanf("%d",&

5、c);for(i=1;i<=c;i+)for(a=1;a<=i;a+)s=s*a;推荐精选sum=sum+s;s=1;printf("其结果为%dn",sum);return 0;(2)运行结果: (3)运行结果分析:运行成功。4、编程序按下列公式计算 e 的值(精度为 1e-6): e=1+1/1!+1/2!+1/3!+1/n! 解答:(1)源代码:#include<stdio.h>int main()int a,c,i;float sum,s;s=1;sum=0;for(c=1;1/s>=1e-6;c+)推荐精选s=s*c;s=1;for(

6、i=1;i<=c;i+)for(a=1;a<i;a+)s=s*a;sum=sum+1/s;s=1;printf("e=%fn",sum);return 0;(2)运行结果: (3)运行结果分析:运行成功 5、输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。解答:(1)源代码:#include<stdio.h>int main()推荐精选char s;int a=0,b=0,c=0,d=0;printf("请输入一行字符");while(s=getchar()!='n')if(s>='

7、;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!=' ')&&!

8、(s>='0'&&s<='9')d+;printf("其中字母有%d个n",a);printf("其中空格有%d个n",b);printf("其中数字有%d个n",c);printf("其中其他字符有%d个n",d);return 0;(2)运行结果: (3)运行结果分析:运行成功推荐精选6、编程求1000以内所有的水仙花数。谓水仙花数,是指一个3位数,其各位数字立方和等于该数字本身。例,153是水仙花数,因为153=13+53+33 。解答:(1)源代码

9、:#include<stdio.h>int main()int a,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");return 0;(2)运行结果: (3)运行结果分析:运行成功 推荐精选7、编程:素数是除了1和其本身以外,不能被其他自然数整除的自然数。从键盘输入一个数,判断该数是不是素数?解答:(1)源

10、代码:#include<stdio.h>int main()int a,b,x,i;x=1;printf("请输入一个自然数");scanf("%d",&a);if(a=1)printf("该数不是素数n");elsefor(i=2;i<a;i+)b=a%i;if(b=0)x=0;if(x=0)printf("该数不是素数n");if(x=1)printf("该数是素数n");return 0;(2)运行结果: 推荐精选(3)运行结果分析:运行成功8、编写程序输入某班C

11、语言考试的考试分数,该班人数未知,用-1作为结束标志,若输入大于100分,则提示重新输入,然后计算全班的最高分、最低分与平均分。解答:(1) 源代码:include<stdio.h>int main()int a,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+

12、;if(max>=a)max=max;elsemax=a;if(min<=a)min=min;elsemin=a;b=sum/i;printf("全班的最高分为%dn",max);printf("全班的最低分为%dn",min);printf("全班的平均分为%dn",b);return 0;(2)运行结果: (3)运行结果分析:运行成功9、有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?解答:推荐精选(1)源代码:#include<

13、stdio.h>int main()int x=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;return 0;(2)运行结果: (3)运行结果分析:运行成功10、公鸡五元一只,母鸡三元一只,小鸡一元三只,一百元要买一百只鸡,且须包含公鸡、母鸡和小鸡。请编写程序,输出所有可能的方案。解答:推荐精选(1)源代码:#include<stdio.h>int main()int x,y,z;for(x=1;x<=100;x

14、+)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,小鸡有%dn",x,y,z);return 0;(2)运行结果: (3)运行结果分析:运行成功11、编写程序,打印以下图形:* * * * * * * * * * * * *推荐精选* * * * * * * * * * * * * * * * * * *解答:(1)源代码:#include<stdio.h>int main()int i,j;for(i=1;

15、i<6;i+)for(j=1;j<i;j+)printf(" ");printf("* * * * * * *n");return 0;(2)运行结果: (3)运行结果分析:运行成功 12、编写程序,打印以下图形: *推荐精选* * * * * * * * * * * * * * * * * * * *解答:(1)源代码:#include<stdio.h>int main() int i,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"); return 0;(2)运行结果: 推荐精选(3)运行结果分析:运行成功三、结论四、教师评语 (注:可编辑下载,若有不当之处,请指正,谢谢!) 推荐精选

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1