- 1、本文档共52页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
4.4函数返回类型与返回值1.有返回值函数如果函数有返回值,则函数体中必须包含return语句,通过return语句将值返回给主调函数。使用return语句的一般形式为: return表达式;或 return(表达式);该语句的功能是计算表达式的值,并返回给主调函数。4.4函数返回类型与返回值1.有返回值函数当一个函数有返回值时,必须在函数定义时指定函数的返回类型。如果省略函数的返回类型,则系统默认函数返回类型为int型。函数返回类型应该和return语句中表达式值的类型一致。如果两者不一致时,则返回类型以函数返回类型为准。【例4.5】函数返回类型与return表达式值类型不一致。4.4函数返回类型与返回值2.无返回值函数如果函数没有返回值,则定义为“空”类型,类型说明符为“void”。无返回值函数用于完成特定的处理任务,执行完后不向主调函数返回任何值。如 voidprintstar() { printf(********); }如果要在主调函数中调用printstar函数,则语句为: printstar();当函数声明为void型,则函数体中不应出现return语句或者return语句后面不带任何表达式。4.5函数的参数形式参数与实际参数在定义一个有参函数时,函数名后面圆括号“()”中的参数称为形式参数,简称形参。形参在定义时必须指明它的个数,类型和名字。在调用一个有参函数时,函数名后面圆括号“()”中的参数称为实际参数,简称实参。实参可以是常量、变量、表达式、函数等。在进行函数调用时,实参必须具有确定的值,以便将这些值传送给形参。注意:在函数调用时,实参的值应一一对应地传递给形参,实参与形参的个数应相同,类型应一致。形参只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后,不能再使用该形参。4.5函数的参数值传递指根据实参和形参的对应关系,将实参的值单向地传递给形参,供被调函数在执行时使用。在函数执行过程中,对形参做任何修改都不影响实参的值。定义函数func()intfunc(intx,inty){y=x+y;return(y);}在main()函数中执行赋值语句m=func(a,b);假设主函数中a=3,b=4,如图main funca xb y调用函数时3434main funca xb y调用结束34374.5函数的参数值传递【例4.6】从m个不同元素中取出n(n≤m)个元素的所有组合的个数,叫做从m个不同元素中取出n个元素的组合数。求组合数:C(m,n)=。分析:定义一个求n!的函数fac,主函数中三次调用fac函数实现求组合数。当输入6,2,运行结果如图所示:m!n!*(m-n)!4.6递归调用如果一个函数在调用的过程中出现直接或者间接地调用该函数本身,称为函数的递归调用。C语言的特点之一就是允许使用函数的递归调用。 intfn(inta) {intx,y; … y=fn(x); return(3*y); }在调用函数fn()的过程中,又出现再次调用fn()函数,这就是函数的递归调用,函数fn()称为递归函数。像函数fn()这样直接调用自身的,称为函数的直接递归调用。4.6递归调用如果调用f1()函数的过程中要调用f2()函数,而在调用f2()函数的过程中又要调用f1()函数,则称为函数的间接递归调用。fn函数调用fn函数a.直接递归调用b.间接递归调用f1函数调用f2函数f2函数调用f1函数4.6递归调用问题:求自然数n的阶乘。用递归方法求n!,对应的递归公式为: n!=1 (n=0,1) n!=n×(n-1)!(n1)以5!为例,递归过程是这样的: 因为5!=5×4!,所以要求出5!,就必须先求出4!,而4!=4×3!,所以要求出4!,就必须先求出3!,同理,要求出3!,就必须先求出2!,要求出2!,就必须先求出1!,而根据递归公式可知,1!=1,从而,再反过来就可以依次求出2!,3!,4!,5!。注意:在递归过程中,必须给定递归结束条件,否则,递归过程会无限制地进行下去。4.6递归调用【例4.8】用递归法求正整数n!。回归5!=5×4!4!=4×3!3!=
您可能关注的文档
- C语言程序设计课件:文件.ppt
- C语言程序设计课件:选择结构.ppt
- C语言程序设计课件:选择结构程序设计.ppt
- C语言程序设计课件:循环结构流程及应用.ppt
- C语言程序设计课件:循环控制结构.ppt
- C语言程序设计课件:指针 .ppt
- C语言程序设计课件:指针.ppt
- C语言程序设计课件:字符数组与字符串.ppt
- C语言程序设计立体化教程课件:C程序设计起步.ppt
- C语言程序设计立体化教程课件:if语句.ppt
- AMI软件:Schneider Electric AMI二次开发_SchneiderElectricAMI系统架构.docx
- DMS软件:Schneider Electric DMS二次开发_用户界面和前端开发.docx
- DMS软件:Schneider Electric DMS二次开发_常见问题与解决方案.docx
- DMS软件:General Electric DMS二次开发_案例分析与实践.docx
- EMS软件:ABB Ability二次开发_优化与性能提升.docx
- DMS软件:General Electric DMS二次开发_故障排除与技术支持.docx
- DMS软件:General Electric DMS二次开发_安全性与性能优化.docx
- DMS软件:Schneider Electric DMS二次开发_能源管理系统二次开发.docx
- DSS软件:Schneider Electric DSS二次开发_自定义功能开发.docx
- DMS软件:ABB Ability二次开发_DMS软件数据导入与导出.docx
文档评论(0)