文档库 最新最全的文档下载
当前位置:文档库 › C实验及参考答案

C实验及参考答案

C实验及参考答案
C实验及参考答案

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、整理上机步骤,总结经验和体会。

相关文档