网站大量收购独家精品文档,联系QQ:2885784924

[教育]c语言教学 第七章 函数.ppt

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

第七章 函数 函数概述 函数概述 函数概述 函数的定义与调用 函数的定义与调用 函数的定义与调用 函数的定义与调用 函数的定义与调用 函数的定义与调用 函数的定义与调用 函数的定义与调用 函数的定义与调用 函数的定义与调用 函数的定义与调用 函数的定义与调用 函数的定义与调用 函数的定义与调用 函数的定义与调用 函数的定义与调用 函数的定义与调用 函数的定义与调用 一般形式: 函数类型 函数名(形参类型 [形参名],….. ); 或 函数类型 函数名( ); 作用:告诉编译系统函数类型、参数个数及类型,以便检验 函数定义与函数声明不同 函数声明位置:程序的数据说明部分(函数内或外) 下列情况下,可不作函数声明 若函数返值是char或int型,系统自动按int型处理 被调用函数定义出现在主调函数之前 有些系统(如VC)要求函数声明指出函数返值类型和形参类型,并且对void 和 int 型函数也要进行函数声明 函数的定义与调用 变量的作用域和生存期 变量的作用域和生存期 变量的作用域和生存期 变量的存储类型 变量的存储类型 变量的存储类型 变量的存储类型 变量的存储类型 变量的存储类型 变量的存储类型 变量的存储类型 变量的存储类型 函数的嵌套与递归调用 函数的嵌套与递归调用 函数的嵌套与递归调用 函数的嵌套与递归调用 函数的嵌套与递归调用 函数的嵌套与递归调用 函数的嵌套与递归调用 函数的嵌套与递归调用 例:Tower of Hanoi问题 问题描述:有A,B,C三个塔座,A上套有n个直径不同的圆盘,按直径从小到大叠放,形如宝塔,编号1,2,3……n。要求将n个 圆盘从A移到C,叠放顺序不变,移动过程中遵循下列原则: 每次只能移一个圆盘 圆盘可在三个塔座上任意移动 任何时刻,每个塔座上不能将大盘压到小盘上 函数的嵌套与递归调用 函数的嵌套与递归调用 函数的作用域 函数的作用域 函数的作用域 例:计算三个数中最大数与最小数的差。 #include stdio.h int dif (int x, int y, int z); int max (int x, int y, int z); int min (int x, int y, int z); void main ( ) { int a, b, c, d; scanf (%d%d%d, a, b, c); d = dif (a, b, c); printf (Max - Min = %d\n, d); } int dif (int x, int y, int z) { return (max(x, y, z) – min(x, y, z)); } int max (int x, int y, int z) { int r; r = x y ? x : y; return (r z ? r : z); } int min (int x, int y, int z) { int r; r = x y ? x : y; return (r z ? r : z); } main( ) 调用函数dif 输出 结束 dif函数 max函数 调用函数max 调用函数min min函数 定义:函数直接或间接的调用自身叫函数的递归调用 f ( ) 调f 调f2 调f1 f1( ) f2( ) int f (int x) { int y, z; …… z = f (y); ……. return (2*z); } int f1 (int x) { int y,z; …… z = f2 (y); ……. return (2*z); } int f2 (int t) { int a,c; …… c = f1 (a); ……. return (3+c); } 直接递归 间接递归 函数递归调用 2 递归使用说明 C编译系统对递归函数的自调用次数没有限制 每调用函数一次,在内存堆栈区分配空间,用于存放函数变量、 返回值等信息,所以递归次数过多,可能引起堆栈溢出 运行结果: 1 2 2 3 3 3 #include stdio.h void print (int w); void main ( ) { print ( 3 ); } void print (int w) //递归函

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档