null第七章 函数第七章 函数※ 函数的概念
※ 函数的定义和使用
※ 函数的嵌套和递归C++程序C++程序include
include
using namespace std;int main( )
{
return 0;
}srand(time(0));
cout<<“产生一个随机数: ”
< <函数名> (<参数
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
>)
<函数体>int mult ( int x, int y )
{
return x * y ;
}
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
举例格式举例 void f1( ) { … }
bool f2(int x) { … }
int f3( int& x, char* w) { … }
void f4(int a[ ], int n) { … }二、函数的使用二、函数的使用 函数本质上是一段程序,该段程序可以被其他函数使用(调用) ,以完成规定的功能。除了主函数之外,其他函数都不能独立运行,但是都可以被任何函数调用。主函数只能被操作系统调用,并最终返回操作系统。调用函数时,如何把加工对象带入被调函数,如何把被调函数处理的最终结果带回主调函数,统称为函数之间的数据传递,这是函数
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
与使用中的关键问题。nullC++中函数调用的一般形式为:
<函数名> (<实参表>)
调用一个函数时,其实参的个数、类型及排列次序必须与函数定义时的形参相一致,也就是说实参与形参必须一对一的匹配。当函数定义没有形参时,函数调用时的<实参表>也必须为空。1、函数声明1、函数声明若被调函数与主调函数不在同一编辑单位,则需在使用被调函数之前(通常在文件开头或主调函数体的开头)对其原型进行说明。被调函数和主调函数在同一编辑单位(文件)时,被调函数应在主调函数之前定义。若被调函数在主调函数之后定义,则必须在主调函数之前加上其原型说明语句。调用系统函数时,需在程序的开头用包含命令“#include<头文件名>”将说明系统函数的头文件包含在本程序中。2、函数调用的具体过程2、函数调用的具体过程 首先为所有形参分配内存,再将所有实参的值计算出来,依次赋给对应的形参。 然后进入函数体,首先执行数据定义语句,为函数体中的变量分配内存,再执行函数体中的可执行语句。 当执行返回语句时,计算返回值,释放本函数体中定义的变量等(静态型变量不释放),收回分配给形参的内存,返回主调函数继续执行。nullint func( int n )
{ int p=1, s=0;
for(int i=1; i<=n; i++)
p*=i, s+=p;
return s;
}int main( )
{ int k=3, m ;
m= func( 2*k+1 );
cout<y) return x;
else return y; }null参数调用:被调用的函数作为另一个函数的一个参数进行调用。c = mult (35.6, max (f1, f2));
//调用语句double mult( double x, double y )
//函数定义
{ return x*y; }3、函数的参数和返回值3、函数的参数和返回值形参的类型:所有有效的C++系统类型和用户自定义类型。整型、实型、字符型、布尔型
数组型、指针型、引用型
枚举型、结构型、联合型、类类型数组参数的函数举例数组参数的函数举例编一函数,将整型数组前n个数中最大数与第1个数进行交换。整型数组作为形式参数。默认参数默认参数C++可以给形参一个默认值,这样形参就不必一定要从实参取值了,称为默认参数。
int f6(int x, char op=´\n´) {…}
这种方法比较灵活,可以简化编程,提高运行效率。null实参与形参的结合是从左至右顺序进行的,因此指定默认值的参数必须放在形参列表中的最右端。
f6(10, ‘+’)f6(20)f6(20, ‘\n’)int f6(int x, char op=´\n´) {…}函数的(返回值)类型函数的(返回值)类型函数的类型:函数通过return语句能够返回除数组以外的所有C++有效类型。
无返回值的函数其类型为void。整型、实型、字符型、布尔型
指针型、引用型
枚举型、结构型、联合型、类类型三、函数的嵌套使用三、函数的嵌套使用在一个函数中可以调用另一个函数。
在一个函数中不能定义另一个函数。四、递归函数四、递归函数一个函数可以直接或间接调用自身。
直接递归——在一个函数的函数体中再次调用本函数。
间接递归——在一个函数的函数体中调用另一个函数,而另一个函数又反过来调用本函数。
大问题逐渐细化为小问题,得到最小问题的解后,可依次得到较大问题的解。null直接调用间接调用用递归方法求n!用递归方法求n! …… //函数声明
long fac (int n)
{
long f;
if (n==0||n==1) f=1;
//0!和1!的值为1
else f=fac(n-1)*n; //n>1时递归调用
return f; //将f的值作为函数值返回
}