一、实验目的
(1)学习递归程序设计,掌握递归函数的定义和使用;
(2)熟悉Visual C++ 6.0 IDE或VC++ 2010调试函数的方法。
二、实验平台或环境
VC++ 6.0或VC++ 2010
三、实验内容和要求
(1)实验内容
实验七 函数(3)
(2)提交形式
电子报告
四、实验步骤和结果
1.
\#include <iostream>
\#include <cmath>
using namespace std;
\#define A(x,i,j) pow(1-x,i)/(j*i)
int f(int n){
if(n==1)return 1;
else if(n==2)return 2;
else return f(n-1)+f(n-2);
}
int main(void){
inti,j,n=1;
doublea,s=0,x;
cout<<"输入一个绝对值小于 1 的数:";
do
cin>>x;
while(fabs(x)>=1);
a=1-x;
do{
s+=a;
n++;
i=f(n);
j=f(n-1);
a=A(x,i,j);
}while(fabs(a)>1e-5);
cout<<"s="<<s<<endl;
return 0;
}
2.
\#include <iostream>
\#include <cmath>
using namespace std;
double f(doublex,int n){
if(n==1)return sqrt(x);
else return sqrt(x+f(x,n-1));
}
int main(){
int n=5;
doublex=100;
cout<<f(x,n)<<endl;
return 0;
}
3.
\#include <iostream>
using namespace std;
void f(int n){
if(n/8)f(n/8);
cout<<n%8;
}
int main(){
int n;
cout<<"输入一个十进制正整数:";
cin>>n;
f(n);
cout<<endl;
return 0;
}
4.
\#include <iostream>
using namespace std;
void f(int n){
cout<<n%10;
if(n/10)f(n/10);
}
int main(){
int n;
cout<<"输入一个正整数:";
cin>>n;
f(n);
cout<<endl;
return 0;
}
五、实验小结
1.掌握了定义、声明及调用函数以及运用函数返回值的方法;
2.掌握了函数实参与形参的对应关系,以及“值传递”的方式;
3.掌握了函数的嵌套调用和递归调用的方法;
4.掌握了全局变量和局部变量动态变量、静态变量的概念和使用方法。
5. 再次温故了一次课本,查漏补缺,温故知新,加强了记忆,熟练掌握了基本原理和技巧。