1、理解函数模版及函数重载的执行机制。2编写教材第四章习题中4、5、7、8、9要求的程序,并完成上机调试的实验任务。三、实验准备1复习第四章的内容,重点是4.2、4.4、4.8、4.9节的内容及相关例题;2编写教材第四章习题中4、5、7、8、9要求的程序。四、实验任务任务一:第4题1内容:编写两个函数分别求n!和i的程序。Main()调用这两个函数,分别输出是s1,s2.。其中: S1=m!/(n!(m-n)!) s2=im-in(m,n为正整数且mn)2源程序: # include using namespace std;int a(int n);int sum(int n);void main
2、() int m, n,temp; coutmn; if(m temp=m;m=n;n=temp; int s1,s2; s1=a(m)/(a(n)*a(m-n); s2=sum(m)-sum(n);s1=s1endl;s2=s2int a(int n) int s1(1),i; for(i=1;i=n;i+) s1*=i; return s1;int sum(int n) int s2(0),i; s2+=i; return s2; 34运行结果:3实验中遇到的主要问题及解决方法任务三:第7题编写函数,分别求两个整数的最大公约数和最小公倍数,并在main()函数中任意输入两个整数,调用以上定
3、义的函数并输出结果# include m; a(n,m); b(n,m);void a(int n,int m) int b,d; for(b=1;b=n|b=m;b+) if(n%b=0&m%b=0) d=b; 最大公约数为:d=n|bb-) if(b%n=0&b%m=0)最小公倍数为:3运行结果:4. 实验中遇到的主要问题及解决方法任务四:第7小题设字符型数组str和s中分别存放长度相同,内容不同的字符串,编程实现将两个字符串中的内容交换,并输出交换前后的字符串。 char *str,*s;输入str字符串长度:cin输入s字符串长度: str=new charn+1; s=new cha
4、rm+1; if(str!=NULL&s!=NULL) cout输入一串字符:str;输入再一串字符:s;交换前str的字符:str交换前s的字符:s int i(0);char temp80; while(i=n) tempi=stri; stri=si; si=tempi; i+; 交换后str的字符:交换后s的字符: else cout动态内存分配失效,已停止运行3. 运行结果:任务五:第8小题 定义一个求绝对值函数的模板,调用它分别求整数,单浮点数和双浮点数的绝对值。template T ab(T a,T b=0) return (ab)?a:0-a; int a;输入一个整数:a;该数的绝对值:ab(a) float b;输入一个单浮点数:b;ab(b) double c;输入一个双浮点数:c;ab(c)0)?float ab(float a)return(adouble ab(double a)return(a5. 自行列出其他任务。五、教师评分(百分制)