资源描述:
《《C语言程序设计》实验报告(六).doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、《C语言程序设计》实验报告开课实验室:实训楼A-3042012年4月9日年级专业班2011级计算机科学与技术姓名范琳颖成绩课程名称C语言程序设计实验项目名称函数指导教师李峰一、实验目的1、熟练掌握函数的一般形式2、熟练掌握函数的分类3、熟练掌握函数的定义4、熟练掌握函数的声明和调用5、熟练掌握函数的递归调用二、实验内容1、求s=1+1/2!+....+1/n!输入1个正整数n,计算s的前n项的和(保留4位小数)。要求定义并调用函数fact(n)计算n的阶乘。2、输入2个正整数a和n,求a+aa+aaa+aa.a(n个a)之和。要求定义
2、并调用函数fun(a,n),它的功能是返回aa….a(n个a)。3、要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数。例如,countdigit(10090,0)的返回值是3。4、求完数:输入2个正整数m和n(1<=m,n<=1000),输出m到n之间的所有完数(完数就是因子和与它本身相等的数)。要求定义并调用函数factorsum(number),它的功能是返回number的因子和。例如,digitsum(12)的返回值是16(1+2+3+4+6)。5、求各位数
3、字的立方和等于它本身的数:输入2个正整数m和n(1<=m,n<=1000),输出m到n之间的所有满足各位数字的立方和等于它本身的数。要求定义并调用函数is(number)判断number的各位数字之立方和是否等于它本身。6、十进制转换二进制:输入1个正整数n,将其转换为二进制后输出。要求定义并调用函数dectobin(n),它的功能是输出n的二进制。例如,调用dectobin(10),输出1010。三、源程序清单1.#include"stdio.h"longfact(intn)//求n的阶乘{longj,x=1;for(j=1;j<=
4、n;j++)x=x*j;returnx;}main(){longn,i;doubles=0;scanf("%ld",&n);for(i=1;i<=n;i++)s=s+1.0/fact(i);printf("%.4lf",s);}2.#include"stdio.h"intfun(inta,intn)//求aa…a(n个a){inti,b=0;for(i=1;i<=n;i++)b=b*10+a;returnb;}main(){intj,s=0,a,n;scanf("%d%d",&a,&n);for(j=1;j<=n;j++)s=s+fu
5、n(a,j);printf("%d",s);}3.#include"stdio.h"intcountdigit(intnumber,intdigit)//统计整数number中数字digit的个数{intx=0,y;for(number;number!=0;){y=number%10;if(y==digit)x=x+1;number=number/10;}returnx;}main(){intnumber,digit,x;scanf("%d%d",&number,&digit);x=countdigit(number,digit);p
6、rintf("%d",x);}4.#include"stdio.h"intfactorsum(intnumber)//求number的因子和{inti,a=0,b=0;for(i=2;i<=number;i++){if(number%i==0){a=number/i;b=b+a;}}returnb;}main(){intm,n,j;printf("输入2个正整数m和n(1<=m,n<=1000)");scanf("%d%d",&m,&n);for(j=m;j<=n;j++){if(j==factorsum(j))printf("%
7、d",j);}}5.#include"stdio.h"intis(intnumber)//number的各位数字之立方和{ints=0,a;for(;number!=0;){a=number%10;number=number/10;s=s+a*a*a;}returns;}main(){intm,n,i;printf("输入2个正整数m和n(1<=m,n<=1000)");scanf("%d%d",&m,&n);for(i=m;i<=n;i++)if(i==is(i))printf("%d",i);}6.#include"s
8、tdio.h"voiddectobin(inta){if(a<2)printf("%d",a);else{dectobin(a/2);printf("%d",a%2);}}intmain(){inta;scanf("%d