西安交大C++作业答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西安交通大学实验报告

课程计算机程序设计实验名称_按址操作-指针第 1 页共 11 页

系别__ ________ 实验日期 2013年 11月 7 日

专业班级___ ________组别实验报告日期 2013 年11月 9日

姓名___ ____学号_ ___ 报告退发 ( 订正、重做 )

同组人_________________________________ 教师审批签字

一.对比分析

优点:记录每道题自己的想法,每题都总结方法,指出自己的错误,非常好。而且作业排版截图不错,程序易懂简洁美观。

二.实验目的

(1)学习指针作为函数参数,作为函数返回值的方法;

(2)掌握函数的递归调用方法,熟练掌握函数调用的方法;

(3)学习函数重载和递归函数,并且学会使用;

(4)更加熟练的掌握动态存储分配,学会使用动态存储分配。

三.实验内容

(-)实验题目一: (必做题)使用递归算法编写如下程序:对于任意给定的实数 X 和整数k( k>0) ,计算X k。

1.程序源代码

#include

using namespace std;

double digui(double X,int k)

{

double Y;

int i=1;

if(k==1) return X;

else Y=X*digui(X,k-1);

return Y;

}

void main()

{

double x;

int n;

cout<<"请输入任意实数X:";

cin>>x;

while(1)

{

cout<<"请输入要求的幂次k:";

cin>>n;

if(n>0) break;

cout<<"输入不合法,";

}

cout<<"X^k的计算结果为:"<

}

2.实验结果

(二)实验题目二:使用递归算法编写求斐波那契数列的第 n 项的函数(int fabonaci(int n)。另编写求出前n项数列的平方和的函数(int sum_f(int *pi,int n)),即计算:

result = 0 2 +12 + 12 + 22 + 32 + 52 + 82 + 132 + ……

编出主函数进行验证(必须用动态存储分配),并按下面格式输出:

result = 0^2+1^2 + 1^2 + 2^2 + 3^2 + 5^2 + 8^2 + 13^2 + ……

1.程序源代码

#include

using namespace std;

int fabonaci(int n)

{

int an;

if(n==1) return 0;

if(n==2) return 1;

else an=fabonaci(n-1)+fabonaci(n-2);

return an;

}

int sum_f(int *pi,int n)

{

int sum=0;

for(int i=0;i

{

sum=sum+(*(pi+i))*(*(pi+i));

}

return sum;

}

int main()

{

int n;

cout<<"请输入斐波那契数列的项数n(n>0):";

cin>>n;

int *pi=new int[n];

cout<<"斐波那契数列前"<

cout<<"result=";

for(int i=0;i

for(int i=0;i

{

cout<

}

cout<<'\b'<<"="<

delete []pi;

return 0;

}

2.实验结果

(三)实验题目三:重载求三个数中最大值的函数。三个数的类型可能是整型,实型(float),双精度型和字符型。

1.程序源代码

#include

using namespace std;

int max(int x,int y,int z)

{

return y>x?(y>z?y:z):(x>z?x:z);

}

float max(float x,float y,float z)

{

return y>x?(y>z?y:z):(x>z?x:z);

}

double max(double x,double y,double z)

{

return y>x?(y>z?y:z):(x>z?x:z);

}

char max(char x,char y,char z)

{

return y>x?(y>z?y:z):(x>z?x:z);

}

void main()

{

cout<<"int{2,5,8}最大值为:"<

cout<<"float{1.2,2.3,3.4} 最大值为:"<

cout<<"double{2.1,3.2,5.1}最大值为:"<

cout<<"char{x,y,z}最大值为:"<

}

2.实验结果

(四)实验题目四:(必做题)编写一个函数,用于去掉字符串前面的空格,其原型为: char *myltrim(char *string);

相关文档
最新文档