资源描述:
《实验(7)-函数-参考答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言程序设计实验教学(7)【实验目的】函数是C程序的基本组成部分,学习函数的设计和调用是很重要的。实验目的是掌握函数的定义、变量的作用域和函数的调用。【实验要求】实际应用程序通常是由多个函数构成的,要求将常见的功能模块用函数形式实现,并学会在主函数或其他函数中调用定义的函数。要学会函数声明。【实验课时】6.0【实验内容】1.编写函数fun(n),n为三位自然数,判断n是否为水仙花数,是返回1,否返回0。编写main函数,输入一个数num,调用fun(num)函数,并输出函数的返回值。#include"stdio.h"intfun(intn){inta,b,c;a=n%10;b=n/1
2、0%10;c=n/100;if(a*a*a+b*b*b+c*c*c==n)return(1);elsereturn(0);}main(){intnum;scanf("%d",&num);while(num<100
3、
4、num>=1000){printf("pleaseenterthenumagain!(num>=100&&num<1000)");scanf("%d",&num);}if(fun(num)==1)printf("yes");elseprintf("no");}2.编写函数ss(n),判断n是否为素数,是返回1,否返回0。编写main函数,输入一个数num,调用s
5、s(num)函数,并输出函数的返回值。#include"stdio.h"intss(intn){inti;10for(i=2;i=n)return(1);elsereturn(0);}main(){intnum;scanf("%d",&num);if(ss(num)==1)printf("yes");elseprintf("no");}1.编写一个函数fun(n),计算n!,并编写main函数测试,在main函数中输入num,调用fun(num),输出计算的结果。#include"stdio.h"longfun(intn)
6、{longs=1;inti;for(i=1;i<=n;i++)s=s*i;return(s);}main(){intnum;scanf("%d",&num);if(num>=0)printf("%d!=%ld",num,fun(num));elseprintf("inputdataerror!");}2.使用递归函数实现计算n!,并在main函数中调用。#include"stdio.h"longfun(intn){longf;if(n==1
7、
8、n==0)f=1;elsef=n*fun(n-1);returnf;}10main(){intnum;scanf("%d",&num);
9、if(num>=0)printf("%d!=%ld",num,fun(num));elseprintf("inputdataerror!");}1.某数列为K(n)的定义为:用递归的方法求该数列的第6项k(6)。1n=1k(n)=k(n-1)×2n为偶数k(n-1)×3n为奇数intk(intn){intc;if(n==1)c=1;elseif(n%2==0)c=k(n-1)*2;elsec=k(n-1)*3;returnc;}main(){intm;scanf("%d",&m);if(m>=1)printf("k(%d)=%d",m,k(m));elseprintf("i
10、nputdataerror!");}2.计算s=(1!)+(1!+2!)+…+(1!+…+n!)。n由用户输入,小于10。(设计:函数h1()计算阶乘;函数h2()计算每个数据项的累加运算。用函数的嵌套来做)longh1(intn){longt=1;inti;for(i=1;i<=n;i++)t=t*i;returnt;}longh2(intm){longs=0;inti;10for(i=1;i<=m;i++)s=s+h1(i);returns;}main(){intk,j;longsum=0;scanf("%d",&k);for(j=1;j<=k;j++)sum=sum+h2(j
11、);printf("(1!)+(1!+2!)+...+(1!+2!+...+%d!)=%ld",k,sum);}1.设计一个函数fc,其功能为统计数组中偶数的个数。编写main函数,用数组名num做为函数传递的参数调用fc函数,实现对数组num的统计,并输出统计结果。#include"stdio.h"intfc(inta[],intn){inti,c=0;for(i=0;i