函数(一).pptVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
函数(一)

函数(一) 函数的概念 函数是基本的程序模块,相对独立,完成一定功能 可以调用,一般要返回 一般有参数传入,有返回值 C语言的所有指令流程都是在函数内或者通过函数实现的 函数定义 定义: type FunctionName (type var1, type var2, …) { body; } 平方函数: double square (double a) { return a*a; } 阶乘函数: int factorial( int i ){ int n, fac; if (i = 1) return 1; for(n = 1, fac = 1; n++; n = i ) fac *= n; return fac; } 函数值由return语句返回。void型函数没有返回值。 return语句同时结束函数调用。 函数调用 函数调用之前必须先声明(函数类型,参数类型),函数的定义可以在别的地方。 type func_name ( type1, type2, …); double square (double); int factorial(int); … a = sqrt(square(b)-4*a*c); n = fac(m)/fac(k); … 函数整体同变量名一样,是表达式的一个基本单元 形式参数,函数在声明和定义时的参数 参数名仅在函数定义中有效 实际参数,函数调用时传入函数的参数 函数调用过程 函数的代码(机器码)在别的地方,CPU执行函数调用时,保存当前CPU状态(各相关寄存器值),将参数拷贝一份放到特定内存中,跳转到函数代码处,执行函数代码。函数代码运行完毕,回到刚才调用函数时的代码处,恢复CPU原来工作状态,继续执行。 (反汇编调试窗口) 函数中又调用了别的函数,CPU的处理过程相同。专门用来拷贝参数和保存CPU状态的内存叫栈(stack)。 程序范例 返回一个数的符号 随机函数rand(), 每调用一次返回一个0到RAND_MAX(一般是32767)之间的一个随机数。随机数种子。 教材范例 递归调用 问题:求n! 函数调用自身 实际参数不同(递归),执行同一段代码 递归终止:设置递归终止出口。 往回逐次结束每次调用 递归形式的阶乘函数: int fac(int i){ if( n = 1) return 1; else return i*fac(i-1); } 递归程序编写诀窍:递归结束条件 + 递归规则 城市街道路线问题 Fibnacci数列 1,1,2,3,5,8,13,21,34,…… 回传参数值 问题:输入三个数,按从大到小的次序输出 C语言的函数调用将参数复制一份传递给函数,函数得到的是实际参数的复制品,不是原始的实际参数,为了改变原参数的值,必须将原参数的地址传递给函数,即引用(reference, 引用,指示,地址)传递。 引用变量,变量的别名,不可更改 引用调用: void swap(int a, int b){ int t; t=a; a=b; b=t; } C语言中通过直接传递指针(地址)实现 上机练习 算组合函数C(n,m)=n!/m!(n-m)!,用递归和不用递归 读入两个数,输出它们的最大公约数和最小公倍数 输出大于n的第一个Fibnacci数,用递归和不用递归 教材题3-15

文档评论(0)

dlhss + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档