C实验及参考答案
Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】
上海电力学院
实验报告
课程名称高级程序设计c++(1)实验项目实验6 函数(2)
姓名学号班级专业信息安全
同组人姓名无指导教师姓名田秀霞实验日期2015年12月2日
一、实验目的
1、掌握重载函数的使用,函数的默认参数。
2. 掌握函数递归。
二、实验内容和步骤
编程序并上机调试运行。
1、编写重载函数Max1可以分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值
程序源代码(注意添加注释)
#include
using namespace std;
int Max1(int x,int y);
int Max1(int x,int y,int z);
double Max1(double x,double y);
double Max1(double x,double y,double z);
int main()
{
int x=2,y=3,z=4;
double m=,n=,p=;
cout< cout< cout< cout< return 0; } int Max1(int x,int y) { return x>=yx:y; } int Max1(int x,int y,int z) { int max; max=x>yx:y; max=z>maxz:max; return max; } double Max1(double x,double y) { return x>=yx:y; } double Max1(double x,double y,double z) { double max; max=x>yx:y; max=z>maxz:max; return max; } 运行结果(直接截取结果图) 2、编写函数,求x的y次方, 如果用户没有给出y的值,则默认输出x.(提示: 用默认参数值实现). 运行调试程序,熟悉调试窗口,熟悉单步调试和断点调试的过程. 程序源代码(注意添加注释) #include using namespace std; double powxy(double x,int y=1); int main() { double x; int y; char choose; cout<<"请输入x:"; cin>>x; cout<<"要输入y么('y'输入,'n'不输入):"; cin>>choose; if(choose=='y') { cout<<"请输入y:"; cin>>y; cout< } else cout< return 0; } double powxy(double x,int y) { double s=1; for(int i=1;i<=y;i++) s*=x; return s; } 运行结果(直接截取结果图) 3、求两个正整数m和n(由用户输入)之间的非素数之和(包括m和n).要求用函数实现, 程序源代码(注意添加注释) #include using namespace std; bool f(int i); int summn(int m,int n); int main() { int m,n; cout<<"请输入两个整数"< cin>>m>>n; if(m return 0; } int summn(int m,int n) { int i,s=0; for(i=n;i<=m;i++) { if(!f(i)) s=s+i; } return s; } bool f(int i) { int j; for(j=2;j if(i%j==0) return false; return true; } 运行结果(直接截取结果图) 4. 在主程序中提示输入整数n,编写函数用递归的方法求1+2+….+n的值。 程序源代码(注意添加注释) #include using namespace std; int sum1ton(int n); int main() { int n; cout<<"请输入n:"; cin>>n; cout<<"从到"< return 0; } int sum1ton(int n) { if(n==1) return 1; else return sum1ton(n-1)+n; } 运行结果(直接截取结果图) 5. 用递归的方法编写函数求n阶勒让德多项式的值,在主程序中实现输入、输出。递归公式为: 程序源代码(注意添加注释) #include using namespace std; double p(int n,double x); int main() { int n; double x; cout<<"请输入n:"; cin>>n; if (n<0) { cout<<"错误:n 必须为大于的整数,程序将结束!"; return ;打印1!+2!+3!+……+10!之和。要求用函数实现。 程序源代码(注意添加注释) #include using namespace std; long sumjc(int n); long jc(int n); int main() { 12 10()1 ((21)()(1)())/1n n n n p x x n n xp x n p x n n --=??==??--->? cout< return 0; } long sumjc(int n) { if(n==1) return jc(n); else return jc(n)+sumjc(n-1); } long jc(int n) { if(n==1||n==0) return 1; else return n*jc(n-1); } 运行结果(直接截取结果图) 三、实验中遇到的问题以及解决方法 四、实验结论与体会 1、结合上课内容,写出程序,并调试程序,要给出测试数据和实验结果。 2、添加适当注释,注意书写的层次结构。 3、整理上机步骤,总结经验和体会。