项目九

  • 格式:doc
  • 大小:62.50 KB
  • 文档页数:3

项目九: 函数(2)

一、上机目的

(1) 进一步掌握函数声明、定义和使用的方法。

(2) 进一步掌握形式参数与实际参数之间的对应关系。

(3) 掌握函数递归调用的方法。

(4) 掌握全局变量、局部变量、静态变量的使用方法。

二、仪器设备

硬件:计算机1台;

软件:VC++6.0

三、原理

通过编写相应的C++程序,进一步熟悉函数的使用,并能将其用于解决相关的实际问题。

四、上机内容、方法和步骤

第1题:

分析并写出下列程序的执行结果,然后将程序输入计算机执行,比较分析结果与执行结果是否一致。为什么?

#include

using namespace std;

int a = 300, b = 400, c = 500;

void funa( int c)

{

static int a = 5;

a+=c;

cout<

return;

}

void funb(int a)

{

a= b;

cout<

return;

} void func()

{

int c=0;

cout<

::c-=100;

return;

}

int main()

{

funa(a);

funb(b);

funa(b);

func();

cout<

return 0;

}

第2题:

编写一递归函数,将一个正整数n以相反的顺序输出。

【提示】

算法描述如下:

如果 要输出的整数只有一位

则 输出该整数

否则 输出整数的个位数字

反向输出除个位以外的全部数字

结束

【测试数据】注意输入的整数不能太大,否则可能超出int的范围。

输入的数 1234 1 100

1234321

反向输出 4321 1 001 1234321

第3题:

利用递归函数,求解斐波那契数列的第n项。

【提示】

1 (n=1) fib(n)= 1 (n=2) fib(n-1)+fib(n-2) (n>=3)

【测试数据】注意输入的整数不能太大,否则可能超出int的范围。

输入的数n 1 2 5 10 15 fib(n) 1 1 5 55 615

【进阶】求利用递归的求斐波拉契数列的第n项时,递归调用该函数多少次。