c语言函数 文档.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例如: 有 5 个人坐在一起,问第五个人多少岁?他说比第 4 个人大 2 岁。问第 4 个人岁数,他说比第 3 个人大 2 岁。问第三个人, 又说比第 2 人大两岁。问第 2 个人,说比第一个人大两岁。最 后问第一个人,他说是 10 岁。请问第五个人多大? 特点:问题的第 n 项的求解,依赖于 n-1 项的求解结果。 main() { int c,n; scanf(%d,&n); c=a(n); printf(%d,c); getch(); } int a(m) int m; { int z; if(m==1) z=10; else z=a(m-1)+2; return(z); } 举例:利用递归方法求 n ! 递归公式 n ! = 1 n=0,1 n*(n-1) ! n>1 从递归函数的程序编写角度看,有两个关键点: 1 、递归的出口: 即递归的结束条件,到何时不再递归调用下去。 2 、递归表达式:如 fact(n)=n*fact(n-1) § 7.6 数组作为函数参数 一、数组元素作为函数参数 数组元素作为实参的函数调用与变量作为实参的函 数调用参数的使用上完全相同。 二、用数组名作为函数参数 数组名作为函数参数时不进行值传送而进行地址传送 。 main() {int a; scanf(%d,&a); add(a); printf(%d ,a); getch(); } add(b) int b; {b=b+1;} main() {int a[10],i; for(i=0;i<10;i++) scanf(%d,&a[i]); add(a); for(i=0;i<10;i++) printf(%d ,a[i]); getch(); } add(b) int b[10]; {int i; for(i=0;i<10;i++) b[i]=b[i]+1; } 总结: 3 、形、实参数组类型应一致保证正确读取数据。 2 、形参数组通过获得实参数组首地址获得实参数组数据。 1 、数组名作为形、实参的函数调用 ---- 传址调用。 4 、形、实参数组长度应相同保证读取全部有效数据。 5 、数组名作为形、实参是传址调用。形参数组中各元素的 值发生变化会使实参数组元素的值同时发生变化。 main() {static char str[100]; gets(str); inverse(str); puts(str); getch(); } 例:写一个函数,使输入的一个字符串按反序存放,在主函数 中输入和输出字符串。 inverse(str) char str[ ]; {char t; int i; for(i=0;i<strlen(str)/2;i++) {t=str[i]; str[i]=str[strlen(str)-i-1]; str[strlen(str)-i-1]=t;} } § 7.7 局部变量和全局变量 (P86) 局部变量也称为内部变量。局部变量是在函数内作 定义说明的。 其作用域仅限于函数内 , 离开该函数后再 使用这种变量是非法的。 1 、 主函数中定义的变量也只能在主函数中使用,不能在 其它函数中使用。同时,主函数中也不能使用其它函数中 定义的变量。 一、局部变量 第七章 函数 § 7.1 概述 一、 C 程序的构成 从结构上:任何复杂结构的程序都可分为三种基本结构。 顺序结构、选择结构、循环结构的组合。 从组织形式:最简单的程序也要有三个层次构成 C 程序源文件 ----- C 函数 ----- C 语句 所有函数都是平行的, 即在定义函数时是互相独立的, 一个函数并不从属于另一个函数,即函数不能嵌套定义,只 可以互相调用 ,但不能调用 main 函数。 二、 C 函数的两种类型 1 、标准函数,即库函数 这是由系统提供的,用户不必自己定义这些函数, 可以直接使用。 2 、自定义函数 用户自己定义的函数,以解决用户的专门需要。 三、使用函数解决的几个问题 1 、提高程序设计效率 2 、实现程序的模块化,提高可读性,方便编写、修改。 3 、函数可供反复调用,避免一些程序段的重复书写。

文档评论(0)

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

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

1亿VIP精品文档

相关文档