- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
函数小结函数的定义函数的声明函数的调用函数的嵌套调用函数的递归调用函数就是将能实现一定功能的一段代码写到一起,可被拿来重复使用。这样能大大减少重复输入程序代码的工作量。函数输入
信息输出
信息◆函数的定义:定义函数的具体实现的功能。形式:◆函数的声明:在使用函数前,告知系统该函数的存在:◆函数的调用:具体使用函数时的语句:函数返回值类型函数名(形参1,形参2…){…花扩体中是函数实现其功能的具体代码…}函数返回值类型函数名(形参1,形参2…)函数返回值类型函数名(实参1,实参2…)函数的定义:例intMaxInt(intx,inty){intz;z=xy?x:y;return(z);}类型标志符:此处为int,表明该函数的返回值类型是int型的。函数名:为MaxInt。以后就使用这个名字调用该函数。形参列表:有2个形参,分别是int型变量x和int型变量y。它们用于保存调用该函数时传递进来的输入信息。函数体:实现该函数的功能。对由调用者传递进来保存在形参中的数据进行有关处理后,将结果通过return语句返回给调用者。函数体内,除形参外还有其它变量,故有变量类型说明。函数调用的一般形式为:函数名(实参列表);如果是无参函数,则没有实参列表,但是括号不能省略;如果实参多于一个,则用逗号分隔。传值调用函数的方法调用一个函数时,一定要保证实参和形参的一致,即在参数数量、类型和顺序上都要一致。调用一个函数时,要发生由实参到形参的“单向值传递”的参数传递过程。?为什么用函数名就可以调用一个函数因为函数名中包含了该函数的入口地址信息,即函数名是一个指向函数入口地址的常量指针。函数调用的内部过程是:出现函数调用时,主调函数的执行过程暂时停止,在进行了必要的“现场”保存工作后,转去执行被调用函数的代码,待被调用函数执行完毕返回后,首先恢复刚才保存的“现场”,然后继续主调函数的执行。函数调用的内部过程主调函数被调函数函数调用被调函数开始被调函数结束(传递参数)(返回函数值)形式参数:定义函数名后面括号中的变量名称为“形式参数”(简称“形参”)。实际参数:主调函数中调用一个函数时,函数名后面括号中的参数(可以是一个表达式)称为“实际参数”(简称“实参”)。函数返回值:return后面的括号中的值作为函数带回的值(称函数返回值)。1.首先被调用的函数必须是已经存在的函数(是库函数或用户自己定义的函数)。但光有这一条件还不够。2.如果使用库函数,还应该在本文件开头用#include命令将调用有关库函数时所需用到的信息“包含”到本文件中来。3.如果使用用户自己定义的函数,而该函数的位置在调用它的函数(即主调函数)的后面,应该在主调函数中对被调用的函数作声明。C语言函数的定义是平行的、独立的,函数定义不能嵌套。即:在一个函数定义的函数体中,不能再定义另一个函数。C语言函数的调用可以嵌套。即:在一个函数定义的函数体中,可以调用另一个函数。如果被嵌套调用的函数是该函数本身,就叫做递归调用。C语言允许函数的递归调用。注意:使用递归调用方法,要保证是有限次的,有终止的递归调用。即当满足某个条件时,不再继续递归调用。函数1函数1函数调用函数调用函数1例:Hanoi塔问题如下图所示(n=3)。一块板上有三根针,A,B,C。A针上套有n(n=3)个大小不等的圆盘,大的在下,小的在上。要把这n个圆盘从A针移动C针上.移动规则是:(1)一次只能移动一个;(2)大的不能放在小的上面;(3)只能在三个位置中移动。求移动的步骤函数的递归调用:例由上面的分析可知:将n个盘子从A座移到C座可以分解为以下3个步骤:1.将A上n-1个盘借助C座先移到B座上。2.把A座上剩下的一个盘移到C座上。3.将n-1个盘从B座借助于A座移到C座上。以下是有关汉诺塔问题的程序段,若在main函数中有调用语句hanoi(3,‘A’,‘B’,‘C’);voidmove(chargetone,charputone){printf(“%c--%c\n”,getone,putone);}voidhanoi(intn,charone,chartwo,charthree){if(n==1)move(one,three);else{hanoi(n-1,one
文档评论(0)