《c++程序设计基础3-函数.pptx》由会员分享,可在线阅读,更多相关《c++程序设计基础3-函数.pptx(350页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第1 1页页第第2 2页页第第3 3章章 函数函数 3.1 3.1 函数的定义与调用函数的定义与调用 3.2 3.2 函数参数的传递函数参数的传递 3.3 3.3 函数调用机制函数调用机制 3.4 3.4 函数指针函数指针 3.5 3.5 内联函数和重载函数内联函数和重载函数 3.6 3.6 变量存储特性与标识符作用域变量存储特性与标识符作用域 3.7 3.7 多文件结构程序多文件结构程序 3.8 3.8 命名空间命名空间 3.93.9 终止程序执行终止程序执行 小结小结第第3 3页页第第3 3章章 函数函数 函数(函数(FunctionFunction)是功能抽象的模块)是功能抽象的模块函
2、数函数参数参数返回值返回值输入流输入流输出流输出流第第4 4页页第第3 3章章 函数函数 函数(函数(FunctionFunction)是功能抽象的模块)是功能抽象的模块 函数作用函数作用 任务划分;代码重用任务划分;代码重用 函数是函数是C+C+程序的重要组件程序的重要组件 第第5 5页页 函数定义由两部分组成:函数首部和函数操作描述函数定义由两部分组成:函数首部和函数操作描述 函数调用是通过表达式或语句激活并执行函数代码的过程函数调用是通过表达式或语句激活并执行函数代码的过程 3.1 3.1 3.1 3.1 函数的定义和调用函数的定义和调用函数的定义和调用函数的定义和调用/求圆柱体体积求圆
3、柱体体积#includeusing namespace std;double volume(double radius,double height)return 3.14*radius*radius*height;int main()double vol,r,h;cin r h;vol=volume(r,h);cout Volume=vol endl;第第6 6页页 函数定义由两部分组成:函数首部和函数操作描述函数定义由两部分组成:函数首部和函数操作描述 函数调用是通过表达式或语句激活并执行函数代码的过程函数调用是通过表达式或语句激活并执行函数代码的过程 3.1 3.1 3.1 3.1 函数的
4、定义和调用函数的定义和调用函数的定义和调用函数的定义和调用/求圆柱体体积求圆柱体体积#includeusing namespace std;double volume(double radius,double height)return 3.14*radius*radius*height;int main()double vol,r,h;cin r h;vol=volume(r,h);cout Volume=vol endl;函数定义函数定义第第7 7页页 函数定义由两部分组成:函数首部和函数操作描述函数定义由两部分组成:函数首部和函数操作描述 函数调用是通过表达式或语句激活并执行函数代码的过
5、程函数调用是通过表达式或语句激活并执行函数代码的过程 3.1 3.1 3.1 3.1 函数的定义和调用函数的定义和调用函数的定义和调用函数的定义和调用/求圆柱体体积求圆柱体体积#includeusing namespace std;double volume(double radius,double height)return 3.14*radius*radius*height;int main()double vol,r,h;cin r h;vol=volume(r,h);cout Volume=vol endl;函数调用函数调用第第8 8页页函数定义形式函数定义形式 类型类型 函数名函数名
6、(形式参数表形式参数表)语句序列语句序列 3.1.1 3.1.1 函数定义函数定义 3.1.1 3.1.1 函数定义函数定义第第9 9页页函数定义形式函数定义形式 类型类型 函数名函数名(形式参数表形式参数表)语句序列语句序列 3.1.1 3.1.1 函数定义函数定义 函数头函数头函数接口,包括:函数接口,包括:3.1.1 3.1.1 函数定义函数定义第第1010页页函数定义形式函数定义形式 类型类型类型类型 函数名函数名(形式参数表形式参数表)语句序列语句序列 3.1.1 3.1.1 函数定义函数定义 函数头函数头函数接口,包括:函数接口,包括:函数返回值类型函数返回值类型函数返回值类型函数
7、返回值类型 函数体中由函数体中由 return 语句返回的值的类型。没有语句返回的值的类型。没有 返回值其类型为返回值其类型为void3.1.1 3.1.1 函数定义函数定义第第1111页页函数定义形式函数定义形式 类型类型 函数名函数名函数名函数名(形式参数表形式参数表)语句序列语句序列 3.1.1 3.1.1 函数定义函数定义 函数头函数头函数接口,包括:函数接口,包括:函数返回值类型函数返回值类型 函数体中由函数体中由 return 语句返回的值的类型。没有语句返回的值的类型。没有 返回值其类型为返回值其类型为void函数名函数名函数名函数名 用户定义标识符用户定义标识符3.1.1 3.
8、1.1 函数定义函数定义第第1212页页函数定义形式函数定义形式 类型类型 函数名函数名(形式参数表形式参数表形式参数表形式参数表)语句序列语句序列 3.1.1 3.1.1 函数定义函数定义 函数头函数头函数接口,包括:函数接口,包括:函数返回值类型函数返回值类型 函数体中由函数体中由 return 语句返回的值的类型。没有语句返回的值的类型。没有 返回值其类型为返回值其类型为void函数名函数名 用户定义标识符用户定义标识符形式参数表形式参数表形式参数表形式参数表 逗号分隔的参数说明表列,缺省形式参数时不逗号分隔的参数说明表列,缺省形式参数时不 能省略圆括号。一般形式为:能省略圆括号。一般形
9、式为:类型类型 参数参数1 ,类型,类型 参数参数2,类型,类型 参数参数n 3.1.1 3.1.1 函数定义函数定义第第1313页页函数定义形式函数定义形式 3.1.1 3.1.1 函数定义函数定义 函数头函数头函数接口函数接口类型类型 函数名函数名(形式参数表形式参数表)语句序列语句序列语句序列语句序列 函数体函数体函数体函数体函数的实现代码。函数的实现代码。3.1.1 3.1.1 函数定义函数定义第第1414页页例例3-1 3.1.1 3.1.1 函数定义函数定义 void printmessage()cout How do you do!endl;3.1.1 3.1.1 函数定义函数定
10、义第第1515页页例例3-13.1.1 3.1.1 函数定义函数定义 void printmessage()cout How do you do!endl;函数返回值类型函数返回值类型无返回值无返回值3.1.1 3.1.1 函数定义函数定义第第1616页页例例3-13.1.1 3.1.1 函数定义函数定义 void printmessage()cout How do you do!endl;函数名函数名3.1.1 3.1.1 函数定义函数定义第第1717页页例例3-13.1.1 3.1.1 函数定义函数定义 void printmessage()cout How do you do!endl;
11、形式参数表形式参数表无参数无参数3.1.1 3.1.1 函数定义函数定义第第1818页页例例3-13.1.1 3.1.1 函数定义函数定义 void printmessage()cout How do you do!y)return x;else return y;3.1.1 3.1.1 函数定义函数定义第第2020页页例例3-23.1.1 3.1.1 函数定义函数定义 double max(double x,double y)if(x y)return x;else return y;函数返回值类型函数返回值类型3.1.1 3.1.1 函数定义函数定义第第2121页页例例3-23.1.1 3
12、.1.1 函数定义函数定义 double max(double x,double y)if(x y)return x;else return y;函数名函数名3.1.1 3.1.1 函数定义函数定义第第2222页页例例3-23.1.1 3.1.1 函数定义函数定义 double max(double x,double y)if(x y)return x;else return y;形式参数表形式参数表3.1.1 3.1.1 函数定义函数定义第第2323页页例例3-23.1.1 3.1.1 函数定义函数定义 double max(double x,double y)if(x y)return x
13、;else return y;函数体函数体3.1.1 3.1.1 函数定义函数定义第第2424页页例例3-23.1.1 3.1.1 函数定义函数定义 double max(double x,double y)if(x y)return x;else return y;返回值返回值return return 语句形式:语句形式:returnreturn 表达式表达式 或或returnreturn(表达式表达式)作用:作用:返回函数值返回函数值 不再执行后续语句,程序控制返回调用点不再执行后续语句,程序控制返回调用点 一个函数体内可以有多个一个函数体内可以有多个return return 语句语句
14、 表达式表达式 返回值的类型与函数类型不相同时,返回值的类型与函数类型不相同时,自动强制转换成函数的类型自动强制转换成函数的类型3.1.1 3.1.1 函数定义函数定义第第2525页页例例3-23.1.1 3.1.1 函数定义函数定义 double max(double x,double y)if(x y)return x;else return y;TypeType FunctionName()/statements returnreturn expressionexpression;voidvoid FunctionName()/statements returnreturn;/可省略可省
15、略3.1.1 3.1.1 函数定义函数定义第第2626页页调用形式调用形式 函数名函数名(实际参数表实际参数表)3.1.2 3.1.2 函数调用函数调用3.1.2 3.1.2 函数调用函数调用第第2727页页调用形式调用形式 函数名函数名函数名函数名(实际参数表实际参数表)3.1.2 3.1.2 函数调用函数调用函数名函数名函数名函数名 函数的入口地址函数的入口地址3.1.2 3.1.2 函数调用函数调用第第2828页页调用形式调用形式 函数名函数名(实际参数表实际参数表实际参数表实际参数表)3.1.2 3.1.2 函数调用函数调用函数名函数名 函数的入口地址函数的入口地址实际参数表实际参数表
16、实际参数表实际参数表 与形式参数必须在个数、类型、位置一一对应与形式参数必须在个数、类型、位置一一对应3.1.2 3.1.2 函数调用函数调用第第2929页页调用形式调用形式 函数名函数名(实际参数表实际参数表)3.1.2 3.1.2 函数调用函数调用函数名函数名 函数的入口地址函数的入口地址实际参数表实际参数表 与形式参数必须在个数、类型、位置一一对应与形式参数必须在个数、类型、位置一一对应3.1.2 3.1.2 函数调用函数调用用表达式或语句形式调用用表达式或语句形式调用用表达式或语句形式调用用表达式或语句形式调用;若函数返回值类型为若函数返回值类型为若函数返回值类型为若函数返回值类型为v
17、oidvoid,则只能用语句调用,则只能用语句调用,则只能用语句调用,则只能用语句调用第第3030页页3.1.2 3.1.2 函数调用函数调用#includeusing namespace std;void printmessage()cout How do you do!endl;int main()printmessage();例例3-13.1.2 3.1.2 函数调用函数调用第第3131页页3.1.2 3.1.2 函数调用函数调用#includeusing namespace std;void printmessage()cout How do you do!endl;int main(
18、)printmessage();函数调用语句函数调用语句例例3-13.1.2 3.1.2 函数调用函数调用第第3232页页3.1.2 3.1.2 函数调用函数调用例例3-2#includeusing namespace std;double max(double x,double y)if(x y)return x;else return y;int main()double a,b;cin a b;double m=max(a,b);cout max(m,3.5)endl;3.1.2 3.1.2 函数调用函数调用第第3333页页3.1.2 3.1.2 函数调用函数调用例例3-2#includ
19、eusing namespace std;double max(double x,double y)if(x y)return x;else return y;int main()double a,b;cin a b;double m=max(a,b);cout max(m,3.5)endl;函数调用表达式函数调用表达式3.1.2 3.1.2 函数调用函数调用第第3434页页3.1.2 3.1.2 函数调用函数调用例例3-2#includeusing namespace std;double max(double x,double y)if(x y)return x;else return y
20、;int main()double a,b;cin a b;double m=max(a,b);cout max(m,a+3.5)endl;cout max(max(a,b)max(a,b),a+3.5a+3.5)endl;实际参数是表达式实际参数是表达式3.1.2 3.1.2 函数调用函数调用第第3535页页3.1.3 3.1.3 函数原型函数原型 函数原型的作用是告诉编译器有关函数的信息:函数原型的作用是告诉编译器有关函数的信息:函数的名字函数的名字函数返回的数据类型函数返回的数据类型函数要接受的参数个数、参数类型和参数的顺序函数要接受的参数个数、参数类型和参数的顺序 编译器根据函数原型检
21、查函数调用的正确性编译器根据函数原型检查函数调用的正确性 函数原型的形式:函数原型的形式:类型类型 函数名函数名(形式参数表形式参数表);3.1.3 3.1.3 函数原型函数原型第第3636页页3.1.3 3.1.3 函数原型函数原型 函数原型的作用是告诉编译器有关函数的信息:函数原型的作用是告诉编译器有关函数的信息:函数的名字函数的名字函数返回的数据类型函数返回的数据类型函数要接受的参数个数、参数类型和参数的顺序函数要接受的参数个数、参数类型和参数的顺序 编译器根据函数原型检查函数调用的正确性编译器根据函数原型检查函数调用的正确性 函数原型的形式:函数原型的形式:类型类型 函数名函数名(形式
22、参数表形式参数表);函数原型是函数原型是声明语句声明语句3.1.3 3.1.3 函数原型函数原型第第3737页页3.1.3 3.1.3 函数原型函数原型#include using namespace std;double max(double,double);/函数原型函数原型int main()double a,b,c,m1,m2;cout a b c;m1=max(a,b);/函数调用函数调用 m2=max(m1,c);cout Maximum=m2 y)return x;else return y;使用函数原型使用函数原型3.1.3 3.1.3 函数原型函数原型第第3838页页3.1.
23、3 3.1.3 函数原型函数原型#include using namespace std;double max(double,double);/函数原型函数原型int main()double a,b,c,m1,m2;cout a b c;m1=max(a,b);/函数调用函数调用 m2=max(m1,c);cout Maximum=m2 y)return x;else return y;函数原型的参数表函数原型的参数表不需要参数名不需要参数名使用函数原型使用函数原型3.1.3 3.1.3 函数原型函数原型第第3939页页3.1.3 3.1.3 函数原型函数原型#include using n
24、amespace std;double max(double,double);/函数原型函数原型int main()double a,b,c,m1,m2;cout a b c;m1=max(a,b);/函数调用函数调用 m2=max(m1,c);cout Maximum=m2 y)return x;else return y;函数调用出现在定义之前函数调用出现在定义之前函数原型声明是必须的函数原型声明是必须的使用函数原型使用函数原型3.1.3 3.1.3 函数原型函数原型第第4040页页3.1.3 3.1.3 函数原型函数原型函数定义在调用之前函数定义在调用之前#include using n
25、amespace std;double max(double x,double y)/函数定义函数定义 if(x y)return x;else return y;int main()double a,b,c,m1,m2;cout a b c;m1=max(a,b);/函数调用函数调用 m2=max(m1,c);cout Maximum=m2 endl;3.1.3 3.1.3 函数原型函数原型第第4141页页3.1.3 3.1.3 函数原型函数原型函数定义在调用之前函数定义在调用之前#include using namespace std;double max(double x,double
26、y)/函数定义函数定义 if(x y)return x;else return y;int main()double a,b,c,m1,m2;cout a b c;m1=max(a,b);/函数调用函数调用 m2=max(m1,c);cout Maximum=m2 endl;函数定义出现在调用之前函数定义出现在调用之前无必要作函数原型声明无必要作函数原型声明3.1.3 3.1.3 函数原型函数原型第第4242页页3.1.3 3.1.3 函数原型函数原型函数原型函数原型说明说明int abs(int n);n的绝对值的绝对值double cos(double x);x(弧度)的余弦(弧度)的余弦
27、double exp(double x);指数函数,指数函数,exdouble fabs(double x);x的绝对值的绝对值double fmod(double x,double y);x/y的浮点余数的浮点余数double log(double x);x的自然对数(以的自然对数(以e为底)为底)double log10(double x);x的对数(以的对数(以10为底)为底)double pow(double x,double y);求幂,求幂,xydouble sin(double x);x(弧度)的正弦(弧度)的正弦double sqrt(double x);x的平方根的平方根do
28、uble tan(double x);x(弧度)的正切(弧度)的正切 cmath中几个常用的数学函数中几个常用的数学函数 3.1.3 3.1.3 函数原型函数原型第第4343页页3.1.3 3.1.3 函数原型函数原型/例例3-3 用库函数求正弦和余弦值用库函数求正弦和余弦值#include#include using namespace std;int main()double PI=3.1415926535;double x,y;x=PI/2;y=sin(x);cout sin(x )=y endl;y=cos(x);cout cos(x )=y endl;3.1.3 3.1.3 函数原型
29、函数原型第第4444页页3.1.3 3.1.3 函数原型函数原型/例例3-3 用库函数求正弦和余弦值用库函数求正弦和余弦值#include#include using namespace std;int main()double PI=3.1415926535;double x,y;x=PI/2;y=sin(x);cout sin(x )=y endl;y=cos(x);cout cos(x )=y endl;包含头文件包含头文件3.1.3 3.1.3 函数原型函数原型第第4545页页3.1.3 3.1.3 函数原型函数原型/例例3-3 用库函数求正弦和余弦值用库函数求正弦和余弦值#inclu
30、de#include using namespace std;int main()double PI=3.1415926535;double x,y;x=PI/2;y=sin(x);cout sin(x )=y endl;y=cos(x);cout cos(x )=y endl;调用库函数调用库函数3.1.3 3.1.3 函数原型函数原型第第4646页页第第4747页页C+有三种参数传递机制:有三种参数传递机制:值传递值传递指针传递指针传递引用传递引用传递 3.23.23.23.2 函数参数的传递函数参数的传递函数参数的传递函数参数的传递 3.2 函数参数的传递第第4848页页3.2.13.2
31、.1 传值参数传值参数 调用函数时,实参表达式的值被复制到相应形参标识的对象中,调用函数时,实参表达式的值被复制到相应形参标识的对象中,并按形参类型强制转换并按形参类型强制转换 函数内对形参的访问、修改,都在形参的标识对象进行函数内对形参的访问、修改,都在形参的标识对象进行 函数返回时,形参对象被撤消,不影响实参的值函数返回时,形参对象被撤消,不影响实参的值 值传送的实参可以是常量、有确定值的变量或表达式值传送的实参可以是常量、有确定值的变量或表达式 函数返回值通过匿名对象传递函数返回值通过匿名对象传递 3.2.1 传值参数第第4949页页1 1 1 1值传递机制值传递机制值传递机制值传递机制
32、 /例例3-4 强制类型转换强制类型转换#includeusing namespace std;int main()double add1(double,double);/函数原型函数原型 double add2(int,int);/函数原型函数原型 double a,b,c;cin a b;c=add1(a,b);cout c1=c endl;c=add2(1/a,1/b);cout c2=c endl;double add1(double x,double y)return(x+y);double add2(int i,int j)return(i+j);3.2.1 传值参数第第5050页
33、页/例例3-4 强制类型转换强制类型转换#includeusing namespace std;int main()double add1(double,double);/函数原型函数原型 double add2(int,int);/函数原型函数原型 double a,b,c;cin a b;c=add1(a,b);cout c1=c endl;c=add2(1/a,1/b);cout c2=c endl;double add1(double x,double y)return(x+y);double add2(int i,int j)return(i+j);类型强制转换类型强制转换截取整数部
34、分传送给形参截取整数部分传送给形参1 1 1 1值传递机制值传递机制值传递机制值传递机制 3.2.1 传值参数第第5151页页#includeusing namespace std;int add(int,int);int main()int a,b,c;cin a b;c=add(a,b);cout c=c endl;int add(int i,int j)i+;j+;return(i+j);/例例3-5 值参传递值参传递1 1 1 1值传递机制值传递机制值传递机制值传递机制 3.2.1 传值参数第第5252页页#includeusing namespace std;int add(int,
35、int);int main()int a,b,c;cin a b;c=add(a,b);cout c=c endl;int add(int i,int j)i+;j+;return(i+j);abc int a,b,c;/例例3-5 值参传递值参传递1 1 1 1值传递机制值传递机制值传递机制值传递机制 3.2.1 传值参数第第5353页页#includeusing namespace std;int add(int,int);int main()int a,b,c;cin a b;c=add(a,b);cout c=c a b;/例例3-5 值参传递值参传递1 1 1 1值传递机制值传递机制
36、值传递机制值传递机制 3.2.1 传值参数第第5454页页#includeusing namespace std;int add(int,int);int main()int a,b,c;cin a b;c=add(a,b);cout c=c endl;int add(int i,int j)i+;j+;return(i+j);abc24 c=add(a,b);/例例3-5 值参传递值参传递1 1 1 1值传递机制值传递机制值传递机制值传递机制 3.2.1 传值参数第第5555页页#includeusing namespace std;int add(int,int);int main()in
37、t a,b,c;cin a b;c=add(a,b);cout c=c endl;int add(int i,int j)i+;j+;return(i+j);abcij2424 int add(int i,int j)/例例3-5 值参传递值参传递1 1 1 1值传递机制值传递机制值传递机制值传递机制 3.2.1 传值参数第第5656页页24ij#includeusing namespace std;int add(int,int);int main()int a,b,c;cin a b;c=add(a,b);cout c=c endl;int add(int i,int j)i+;j+;re
38、turn(i+j);abc24243 35 5 i+;j+;/例例3-5 值参传递值参传递1 1 1 1值传递机制值传递机制值传递机制值传递机制 3.2.1 传值参数第第5757页页#includeusing namespace std;int add(int,int);int main()int a,b,c;cin a b;c=add(a,b);cout c=c endl;int add(int i,int j)i+;j+;return(i+j);abcij24243 35 5obj return(i+j);/例例3-5 值参传递值参传递3+51 1 1 1值传递机制值传递机制值传递机制值传
39、递机制 3.2.1 传值参数第第5858页页abcij24243 35 5obj8/例例3-5 值参传递值参传递1 1 1 1值传递机制值传递机制值传递机制值传递机制 3.2.1 传值参数#includeusing namespace std;int add(int,int);int main()int a,b,c;cin a b;c=add(a,b);cout c=c endl;int add(int i,int j)i+;j+;return(i+j);return(i+j);第第5959页页#includeusing namespace std;int add(int,int);int m
40、ain()int a,b,c;cin a b;c=add(a,b);cout c=c endl;int add(int i,int j)i+;j+;return(i+j);abcij248243 35 5 c=add(a,b);/例例3-5 值参传递值参传递obj81 1 1 1值传递机制值传递机制值传递机制值传递机制 3.2.1 传值参数第第6060页页abc248/例例3-5 值参传递值参传递1 1 1 1值传递机制值传递机制值传递机制值传递机制 3.2.1 传值参数#includeusing namespace std;int add(int,int);int main()int a,b
41、,c;cin a b;c=add(a,b);cout c=c endl;int add(int i,int j)i+;j+;return(i+j);c=add(a,b);第第6161页页#includeusing namespace std;int add(int,int);int main()int a,b,c;cin a b;c=add(a,b);cout c=c endl;int add(int i,int j)i+;j+;return(i+j);abc248输出输出c=8 cout c=c endl;/例例3-5 值参传递值参传递1 1 1 1值传递机制值传递机制值传递机制值传递机制
42、3.2.1 传值参数第第6262页页例例3-6 计算圆筒的体积计算圆筒的体积分析:分别定义函数求不同几何体的体积 圆柱体的体积=r2hdouble CylinderVolume(double CylinderVolume(double r,r,double h)h);圆筒的体积=外圆柱体的体积 内圆柱体的体积 double DonutSize(DonutSize(double Outer,Outer,double Inner,Inner,double Height)Height);3.2.1 传值参数第第6363页页/通过参数半径通过参数半径 r 和高度和高度 h,返回圆柱体体积,返回圆柱体体
43、积double CylinderVolume(double r,double h)const double PI=3.1415;return PI*r*r*h;/通过参数外圆柱体半径通过参数外圆柱体半径 Outer,内圆柱体半径,内圆柱体半径 Inner/和圆柱体高度和圆柱体高度 Height 返回圆筒体积返回圆筒体积double DonutSize(double Outer,double Inner,double Height)double OuterSize=CylinderVolume(Outer,Height);double HoleSize=CylinderVolume(Inner,
44、Height);return OuterSize-HoleSize;3.2.1 传值参数例例3-6 计算圆筒的体积计算圆筒的体积第第6464页页/通过参数半径通过参数半径 r 和高度和高度 h,返回圆柱体体积,返回圆柱体体积double CylinderVolume(double r,double h)const double PI=3.1415;return PI*r*r*h;/通过参数外圆柱体半径通过参数外圆柱体半径 Outer,内圆柱体半径,内圆柱体半径 Inner/和圆柱体高度和圆柱体高度 Height 返回圆筒体积返回圆筒体积double DonutSize(double Outer
45、,double t Inner,double Height)double OuterSize=CylinderVolume(Outer,Height);double HoleSize=CylinderVolume(Inner,Height);return OuterSize-HoleSize;return CylinderVolume(Outer,Height)-CylinderVolume(Inner,Height);return CylinderVolume(Outer,Height)-CylinderVolume(Inner,Height);3.2.1 传值参数例例3-6 计算圆筒的体积
46、计算圆筒的体积第第6565页页#includeusing namespace std;double CylinderVolume(double r,double h);double DonutSize(double Outer,double Inner,double Height);int main()double OuterRadius,InnerRadius,Height;cout OuterRadius;cout InnerRadius;cout Height;cout size of the donut is:DonutSize(OuterRadius,InnerRadius,Heig
47、ht)endl;double CylinderVolume(double r,double h)const double PI=3.1415;return PI*r*r*h;double DonutSize(double Outer,double Inner,double Height)double OuterSize=CylinderVolume(Outer,Height);double HoleSize=CylinderVolume(Inner,Height);return OuterSize-HoleSize;3.2.1 传值参数例例3-6 计算圆筒的体积计算圆筒的体积第第6666页页#
48、includeusing namespace std;double CylinderVolume(double r,double h);double DonutSize(double Outer,double Inner,double Height);int main()double OuterRadius,InnerRadius,Height;cout OuterRadius;cout InnerRadius;cout Height;cout size of the donut is:DonutSize(OuterRadius,InnerRadius,Height)endl;double C
49、ylinderVolume(double r,double h)const double PI=3.1415;return PI*r*r*h;double DonutSize(double Outer,double Inner,double Height)double OuterSize=CylinderVolume(Outer,Height);double HoleSize=CylinderVolume(Inner,Height);return OuterSize-HoleSize;函数原型函数原型3.2.1 传值参数例例3-6 计算圆筒的体积计算圆筒的体积第第6767页页#includeu
50、sing namespace std;double CylinderVolume(double r,double h);double DonutSize(double Outer,double Inner,double Height);int main()double OuterRadius,InnerRadius,Height;cout OuterRadius;cout InnerRadius;cout Height;cout size of the donut is:DonutSize(OuterRadius,InnerRadius,Height)endl;double CylinderV