1、湖北理工学院c语言程序设计实验3答案实验三循环结构程序设计实验课程名:C语言程序设计专业班级: 学号: 姓名: 实验时间: 实验地点: 指导教师: 、实验目的和要求1.熟悉掌握用for语句,while语句和do_while语句实现循环的方法。2.掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)二、实验内容1、编写程序,随机输入 15个整数,可以是正数、负数和零,计算它们的和、所有正数之和及所有负数之和,分类统计正数、负数以及零的个数,并分别打印出来。解答:(1)源代码:#i ncludeint mai n()int a14,i,su m仁 0,sum2=0,sum3=0,x
2、=0,y=0,z=0;prin tf( 请输入十五个整数:);for(i=0;i0)sum2=sum2+ai;x=x+1;if(ai=0)z=z+1;if(ai0)sum3=sum3+ai;y=y+1;printf( 所有数的和为 %dn,sum1);printf( 所有正数的和为%dn,sum2);printf( 所有负数的和为%dn,sum3);printf( 其中有d个正数n,x);printf(” 其中有 d( 0n,z);printf(” 其中有d个负数n,y);return 0;2 ) 运 行 结 果(3)运行结果分析:运行成功2、有一分数序列:2/1 , 3/2, 5/3, 8/
3、5, 13/8 , 21/13,。求出这个数列的前 20项之和。解答:(1)源代码:#i nclude int mai n()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;i21;i+)sum=sum+b/a;c=a+b;a=b;b=c;prin tf(%.2fn,sum);return 0;(2 ) 运 行 结 果(3)运行结果分析:运行成功3、编写程序,求 1! + 2 ! + 3! +N!的值,N的值由键盘输入。解答:(1)源代码:#i ncludeint
4、mai n()int a,c,i,s,sum;s=1;sum=0;printf(1 ! + 2 ! + 3 ! + +N! n);printf( 请输入N的值n);sca nf(%d,&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)源代码:#i ncludeint mai n()int a,c,i;float s
5、um,s;s=1;sum=0;for(c=1;1/s=1e-6;c+)Ls=s*c;s=1;for(i=1;i=c;i+)for(a=1;ai;a+) s=s*a;sum=sum+1/s; s=1;prin tf(e=%fn,sum); return 0;(2)运行结果:(3)运行结果分析:运行成功5、输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。解答:(1)源代码:#i ncludeint mai n()Lchar s;int a=O,b=O,c=O,d=O; printf( 请输入一行字符);while(s=getchar()!=n) if(s=a&s=A&s=0&s
6、=a&s=A&s=0&s=9)d+;printf(其中字母有 %d(n,a);printf( 其中空格有 d(n,b);printf(其中数字有 d(n,c);printf( 其中其他字符有 %个n,d);return 0;(2)运行结果:(3)运行结果分析:运行成功6、编程求1000以内所有的水仙花数。谓水仙花数,是指一个 3位数,其各位数字立方和等于该数字本身。例,153是水仙花数,因为153=13+53+33。解答:(1)源代码:#i ncludeint mai n()int a,b,c,d,i;printf(1000 以内的水仙花数为);for(i=100;i1000;i+)a=i%1
7、0;b=i/10%10;c=i/100;d=a*a*a+b*b*b+c*c*c; if(i=d)prin tf(%d ,i);prin tf(n); return 0;(2)运行结果:(3)运行结果分析:运行成功7、编程:素数是除了 1和其本身以外,不能被其他自然数整除的自然数。从键盘输入一个数,判 断该数是不是素数?解答:(1)源代码:#i ncludeint mai n() int a,b,x,i;x=1;printf( 请输入一个自然数);sca nf(%d,&a); if(a=1)printf( 该数不是素数n);else for(i=2;ia;i+)b=a%i;if(b=0)x=0;
8、if(x=0)printf( 该数不是素数n);if(x=1)printf( 该数是素数n); return 0;(2)运行结果:(3)运行结果分析:运行成功8、编写程序输入某班 C语言考试的考试分数, 该班人数未知,用-1作为结束标志,若输入大于100分,则提示重新输入,然后计算全班的最高分、最低分与平均分。解答:(1)源代码:in cludeint mai n()int a,b,i=O,max=O ,min=100,sum=0;printf( 请输入班上各个学生C语言的考试分数n);while(1)sca nf(%d,&a);if(a100)printf( 分数格式不对,请重新输入n);
9、con ti nue;if(a=-1)break;sum=sum+a;i+; if(max=a) max=max;elsemax=a;if(min=a)mi n=mi n;elsemi n=a;b=sum/i;printf( 全班的最高分为dn,max); printf( 全班的最低分为%dn,min); printf(” 全班的平均分为dn,b); return 0;(2)运行结果:9、有一对兔子,从出生后第 3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生 对兔子,假如兔子都不死,问每个月的兔子总数为多少?解答:(1)源代码:#i ncludeint mai n()int x=1
10、,y=1,i=1;for(i;i=20;i+)prin tf(%d %d ,x,y); if(i%4=0)prin tf(n);x=x+y;y=x+y;return 0;(2)运行结果:(3)运行结果分析:运行成功10、公鸡五元一只,母鸡三元一只,小鸡一元三只,一百元要买一百只鸡,且须包含公鸡、母鸡和 小鸡。请编写程序,输出所有可能的方案。解答:(1)源代码:#i ncludeint mai n()int x,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(
11、公鸡有%d母鸡有%d小鸡有dn,x,y,z);return 0;(2)运行结果:(3)运行结果分析:运行成功11、编写程序,打印以下图形:*解答:(1)源代码:#i ncludeint mai n()int i,j;for(i=1;i6;i+)for(j=1;ji;j+) printf();prin tf(* * * * * * *n); return 0;(2)运行结果:(3)运行结果分析:运行成功12、编写程序,打印以下图形:* * *解答:(1)源代码:#i ncludeint mai n()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+)prin tf(*);prin tf(n);for (i=0;i=2;i+)for (j=0;j=i+1;j+)printf();for (k=0;k=2*(2-i);k+)prin tf(*);prin tf(n);return 0;(2)运行结果:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1