1、第3章 函数f函数调用f函数f1函数调用f2函数f2函数调用f1函数直接调用间接调用#include using namespace std;long power(int n);void main()int n;long y;cout n;y=power(n);cout n !=y 1)f=n*power(n-1);else f=1;return f;第3章 函数第3章 函数ABC#include using namespace std;void Move(char x,char y);void Hanoi(int n,char one,char two,char three);void ma
2、in()int n;cout n;cout n 个盘子的移动过程为:endl;Hanoi(n,A,B,C);/函数Move()将一个盘子从x针移到y针void Move(char x,char y)cout x y endl;第3章 函数/函数Hanoi()将n-1个盘子从one针借助two针移到three针void Hanoi(int n,char one,char two,char three)if(n=1)Move(one,three);else Hanoi(n-1,one,three,two);Move(one,three);Hanoi(n-1,two,one,three);第3章 函
3、数 返 回运行演示运行演示第3章 函数#include using namespace std;inline int Add(int a,int b)int x;x=a+b;return x;第3章 函数 返 回void main()int a,b,c;a=10;b=20;c=Add(a,b);cout a +b =c endl;c=Add(a,50);cout a +50 =c endl;c=Add(50,50);cout 50+50 =c endl;第3章 函数#include using namespace std;int max(int x,int y);double max(doub
4、le x,double y);void main()int a=10,b=20,c;double x=200.3,y=400.6,z;c=max(a,b);z=max(x,y);cout c z endl;第3章 函数 返 回int max(int x,int y)cout int function y)return x;else return y;double max(double x,double y)cout float function y)return x;else return y;第3章 函数#include using namespace std;double power(do
5、uble x=10.0,int n=2);void main()cout power(3,5)endl;cout power(3)endl;cout power()endl;double power(double x,int n)int i;double s=1.0;for(i=1;i=n;i+)s*=x;return s;第3章 函数第3章 函数#include using namespace std;int add(int x=5,int y=6);float add(int x=5,float y=10.0);void main()int a;float b;a=add(10,20);b
6、=add(10);cout a=a endl;cout b=b endl;int add(int x,int y)return x+y;float add(int x,float y)return x+y;返 回第3章 函数void f1(int a)int b,c;void main()int m,n;int i,a;for(i=0;i10;i+)int b;第3章 函数int a,b;void f1()int x,y;void main()#include using namespace std;int i=1;/全局变量,文件作用域 void main()cout全局变量 i=iendl
7、;/输出1 int i=5;/函数局部变量,块作用域 int i;/块局部变量,块作用域 i=7;cout块局部变量 i=iendl;/输出7 cout全局变量 i=:iendl;/输出1,:使用全局变量 cout函数局部变量 i=iendl;/输出5 cout全局变量 i=:iendl;/输出1,:使用全局变量 第3章 函数 第3章 函数#include using namespace std;int fact(int n);void main()int i;for(i=1;i=4;i+)cout i !=fact(i)endl;int fact(int n)static int f=1;/
8、仅在第一次调用函数时执行一次f*=n;return f;第3章 函数 第3章 函数#include using namespace std;void other(void);int i=1;/i 为全局变量,具有静态生存期。void main(void)static int a;/a为静态局部变量,具有全局寿命,局部可见。int b=-10;/b,c为动态局部变量,具有局部生存期。int c=0;cout-MAIN-n;cout i:i a:a b:b c:cendl;c=c+8;other();cout-MAIN-n;cout i:i a:a b:b c:cendl;i=i+10;other();第3章 函数void other(void)/a,b为静态局部变量,具有全局寿命,局部可见,/只第一次进入函数时被初始化。static int a=2;static int b;int c=10;/C为动态局部变量,每次进入函数时都初始化。a=a+2;i=i+32;c=c+5;cout-OTHER-n;cout i:i a:a b:b c:cendl;b=a;第3章 函数 using namespace std;第3章 函数第3章 函数第3章 函数第3章 函数using namespace std;第3章 函数 返 回