您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 湖北理工学院c语言程序设计-实验3答案
实验三循环结构程序设计实验课程名:C语言程序设计专业班级:学号:姓名:实验时间:实验地点:指导教师:一、实验目的和要求1.熟悉掌握用for语句,while语句和do_while语句实现循环的方法。2.掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。二、实验内容1、编写程序,随机输入15个整数,可以是正数、负数和零,计算它们的和、所有正数之和及所有负数之和,分类统计正数、负数以及零的个数,并分别打印出来。解答:(1)源代码:#includestdio.hintmain(){inta[14],i,sum1=0,sum2=0,sum3=0,x=0,y=0,z=0;printf(请输入十五个整数:);for(i=0;i15;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)源代码:#includestdio.hintmain(){floata=1,b=2,c,sum=0;inti;printf(2/1,3/2,5/3,8/5,13/8,21/13,…前二十项的和为);for(i=1;i21;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)源代码:#includestdio.hintmain(){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)源代码:#includestdio.hintmain(){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;ai;a++){s=s*a;}sum=sum+1/s;s=1;}printf(e=%f\n,sum);return0;}(2)运行结果:(3)运行结果分析:运行成功5、输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。解答:(1)源代码:#includestdio.hintmain(){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)源代码:#includestdio.hintmain(){inta,b,c,d,i;printf(1000以内的水仙花数为);for(i=100;i1000;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)源代码:#includestdio.hintmain(){inta,b,x,i;x=1;printf(请输入一个自然数);scanf(%d,&a);if(a==1)printf(该数不是素数\n);else{for(i=2;ia;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)源代码:includestdio.hintmain(){inta,b,i=0,max=0,min=100,sum=0;printf(请输入班上各个学生C语言的考试分数\n);while(1){scanf(%d,&a);if(a100){printf(分数格式不对,请重新输入\n);continue;}if(a==-1)break;sum=sum+a;i++;if(max=a)max=max;elsemax=a;if(min=a)min=min;elsemin=a;}b=sum/i;printf(全班的最高分为%d\n,max);printf(全班的最低分为%d\n,min);printf(全班的平均分为%d\n,b);return0;}(2)运行结果:(3)运行结果分析:运行成功9、有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?解答:(1)源代码:#includestdio.hintmain(){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)源代码:#includestdio.hintmain(){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)源代码:#includestdio.hintmain(){inti,j;for(i=1;i6;i++){for(j=1;ji;j++)printf();printf(*******\n);}return0;}(2)运行结果:(3)运行结果分析:运行成功12、编写程序,打印以下图形:*************************解答:(1)源代码:#includestdio.hintmain(){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)运行结果分析:运行成功三、结论四、教师评语
本文标题:湖北理工学院c语言程序设计-实验3答案
链接地址:https://www.777doc.com/doc-4708836 .html