c++3第三章 函数.ppt

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

第三章 函数 函数的定义与使用 内联函数 带默认形参值的函数 函数重载 C++系统函数 函数的声明 函数是面向对象程序设计中的基本抽象单元,是对功能的抽象 函数声明的语法形式 类型标识符 函数名(形式参数表) { 语句序列 } 函数的声明 形式参数表 type1 name1, type2 name2, ..., typen namen 函数的返回值 由 return 语句给出,例如: return 0 无返回值的函数(void类型),不必写return语句。 函数的调用 调用前先说明函数原型: 在调用函数的说明部分,或程序文件开头所有函数之前,按如下形式说明: 类型标识符 被调用函数名 (含类型说明的形参表) 调用形式: 函数名(实参列表) 嵌套调用 函数不允许嵌套声明,但可以嵌套调用。 递归调用 函数直接或间接调用自身。 例3-1 编写一个求x的n次方的函数 #include iostream.h using namespace std; double power (double x, int n); void main(void) { cout 5 to the power 2 is power(5,2) endl; } double power (double x, int n) { double val = 1.0; while (n--) val = val*x; return(val); } 函数调用的执行过程 嵌套调用 例 输入两个整数,求平方和。 #include iostream.h using namespace std; void main(void) { int a,b; int fun1(int x,int y); cinab; couta、b的平方和:fun1(a,b)endl; } int fun1(int x,int y) { int fun2(int m); return (fun2(x)+fun2(y)); } int fun2(int m) { return (m*m); } 嵌套调用 递归调用 函数直接或间接地调用自身,称为递归调用。 递归过程的两个阶段: 递推:将原问题不断分解为新的子问题,逐渐从未知向已知推进,最终达到已知的条件,即递归结束的条件, 这时递推阶段结束。 4!=4×3! → 3!=3×2! → 2!=2×1! → 1!=1×0! → 0!=1 未知 已知 回归:从已知的条件出发,按照递推的逆过程,逐一求值回归,最后达到递推的开始处,结束回归阶段,完成递归调用。 4!=4×3!=24←3!=3×2!=6←2!=2×1!=2←1!=1×0!=1←0!=1 未知 已知 例 求n! 分析:计算n!的公式如下: 这是一个递归形式的公式,应该用递归函数实现。 源程序: #include iostream.h using namespace std; long fac(int n) { long f; if (n0) coutn0,data error!endl; else if (n==0) f=1; else f=fac(n-1)*n; return(f); } 函数的参数传递机制 ——传递参数值 在函数被调用时才分配形参的存储单元。 实参可以是常量、变量或表达式。实参类型必须与形参相符。 函数的参数传递 指就是形参与实参结合(简称形实结合)的过程。 形实结合的方式有值调用和引用调用。 函数的参数传递机制 ——传递参数值 值调用是指当发生函数调用时,给形参分配内存空间,并用实参来初始化形参(直接将实参的值传递给形参)。 这一过程是参数值的单向传递过程,一旦形参获得了值便与实参脱离关系,以后无论形参发生了怎样的改变,都不会影响到实参。 函数的参数传递机制 ——参数值传递举例 例3 输入两整数,交换后输出 #includeiostream.h using namespace std; void Swap(int a, int b); int main( ) {

文档评论(0)

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

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

1亿VIP精品文档

相关文档