第5章节 函数和递归.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章节 函数和递归

第5章 函数和递归 韩 格 2010年9月 提纲 函数 标准库函数 递归 函数重载 函数模板 作用域与生存期 引例 问题:求X的N次幂,即求XN的值。其中:X 和N均为正整数。 int main() { int x,n; long int result=1; cout请输入底数:endl; cinx; cout请输入指数:endl; cinn; for(int i=1; i=n; i++) { result=result*x; } cout计算结果为:resultendl; return 1; } 引例 使用函数能够有效解决代码多次复用的问题 int main() { int x,n; long int result=1; cout请输入底数:endl; cinx; cout请输入指数:endl; cinn; result = power(x,n); cout 计算结果为: result endl; return 1; } 5.1 函数 函数概述 函数是能完成特定功能的程序段。 一个C++程序是由若干个具有调用关系的函数组成。 每个C++程序有且只有一个函数 main(),它是程序执行的起点。其他函数必须通过调用来执行。 5.1 函数 函数的分类 系统函数(库函数):在头文件中由系统预先定义,在程序中直接调用,但需包含相应头文件。 自定义函数:编程人员在程序中定义和调用。 例如:系统文件 cmath中含有sin,cos,tan等库函数 5.1 函数 函数的定义和调用 函数定义的一般形式: 返回类型 函数名(形式参数表) { 语句序列 } 类型名:说明函数被调用后返回值的类型。如果一个函数没有返回值,类型名为void,缺省为int。 函数名:函数的标识名,按标示符规则命名。 形式参数表:用来接收调用时传递给函数的数据,形式为:类型名1 参数1,类型名2 参数2,…. 语句序列:完成函数特定功能的一组语句 5.1 函数 retuen语句 功能:1. 结束函数的执行。2. 将返回值带回到调用处。 格式一: return 表达式; 表达式的值作为函数的返回值,当表达式的类型与函数类型不同时,把表达式类型强制转换为函数类型。 格式二: return; 函数没有返回值时使用,此时函数的类型必须为void, 如果return;为函数体中最后一条语句,则可省略。 5.1 函数 函数的调用 函数调用过程:在一个函数(主调函数)执行期间,转去执行其他函数(被调函数),被调函数执行完毕再返回主调函数的过程。 函数调用形式:函数名(实参表) 函数名:已定义的函数名 实参表:由若干个实际参数组成,其作用是对形式参数进行初始化。形式为: 实参1,实参2,… 5.1 函数 参数传递机制 在调用一个函数时,必须提供与形式参数个数相同、类型一致的实际参数,实参和形参按位置对应以实现函数间的数据传递。 C++中的三种传递方式 值传递(值调用) 指针传递(指针调用) 引用传递(引用调用) 5.1 函数 程序5_1.cpp(值传递) void swap(int x, int y) { int temp; temp=x; x=y; y=temp; cout swap(int x, int y)函数内: x= x y= y endl; } int main() { int a=15, b=18; cout swap(int x, int y)函数调用前: a= a b= bendl; swap(a, b); cout swap(int x, int y)函数调用后: a= a b= b endl; return 1; } 5.1 函数 程序5_2.cpp(地址传递) void swap(int *x, int *y) { int temp; temp=*x; *x=*y; *y=temp; //改变形参指向的存储区的内容 coutswap()输出: *x=*x *y=*yendl; } int main() { int a=15, b=18; cout swap(int *x, *int y)函数调用前: a= a b= bendl; swap(a, b); cout swap(int *x, int *y)函数调用后: a= a b= b endl

您可能关注的文档

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档