- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
五函数(正式)
5.2 函数的定义与调用 5.2.1函数的定义 一般格式 函数说明 对被调用函数要求: 必须是已存在的函数 库函数: #include *.h 用户自定义函数: 函数类型说明 函数说明 一般形式: 函数类型 函数名(形参类型 [形参名],….. ); 或 函数类型 函数名(); 作用:告诉编译系统函数类型、参数个数及类型,以便检验 函数定义与函数说明不同 函数说明位置:程序的数据说明部分(函数内或外) 下列情况下,可不作函数说明 若函数返值是char或int型,系统自动按int型处理 被调用函数定义出现在主调函数之前 有些系统(如Borland C++)要求函数说明指出函数返值类型和形参类型,并且对void 和 int 型函数也要进行函数说明 局部变量与全局变量 局部变量---内部变量 定义:在函数内定义,只在本函数内有效 说明: main中定义的变量只在main中有效 不同函数中同名变量,占不同内存单元 形参属于局部变量 可定义在复合语句中有效的变量 局部变量可用存储类型:auto register static (默认为auto) 5.4 函数的嵌套与递归 5.4.1 函数的嵌套调用 函数的嵌套调用是指在一个函数调用另一个函数的过程中,调 函数又调用了另一个函数。C规定:函数定义不可嵌套,但可以嵌套调用函数 5.5 数组作为函数参数 数组元素作函数实参——值传递 例5.8 利用函数完成交换两个变量的值。 int a,b; main() { void swap(void); scanf(%d,%d,a,b); printf(a=%d,b=%d\n,a,b); swap(); printf(a=%d,b=%d\n,a,b); } void swap(void) { int c; c=a; a=b; b=c; } main( ) 调用函数a 结束 a函数 b函数 调用函数b ? ? ? ? ? ? ? ? ? 例 求三个数中最大数和最小数的差值 #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=xy?x:y; return(rz?r:z); } int min(int x,int y,int z) { int r; r=xy?x:y; return(rz?r:z); } main( ) 调用函数dif 输出 结束 dif函数 max函数 调用函数max 调用函数min min函数 5.4.2 函数的递归调用 函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。 在递归调用中,主调函数又是被调函数。执行递归函数将反复调用其自身,每调用一次就进入新的一层。 long fac(int n) { long f; if(n= =1) f=1; else f=fac(n-1)*n; return(f); } 递归调用 函数直接或间接的调用自身叫函数的递归调用 f( ) 调f 调f2 调f1 f1( ) f2( ) 说明 C编译系统对递归函数的自调用次数没有限制 每调用函数一次,在内存堆栈区分配空间,用于存放函数变量、返回值等信息,所以递归次数过多,可能引起堆栈溢出 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); } 例5.10 用递归法计算n!。 分析:求解n的阶乘实际上
您可能关注的文档
最近下载
- 中国北方典型地区农用地膜污染现状调查及其防治策略.pdf VIP
- 农用地膜的应用趋势及残膜污染防控对策研究.pdf VIP
- 2025至2030中国磨机衬板行业发展趋势分析与未来投资战略咨询研究报告.docx
- 云南宁永高速公路项目白马隧道工程招标控制价编制.docx
- 医疗质量安全管理核心制度汇编(广州市卫健委 2023年10月修订版).docx VIP
- 《GB/T 192-2025普通螺纹 牙型》.pdf
- 农用地膜的应用与污染防治(严昌荣,何文清,梅旭荣等编著)PPT模板.pptx
- 特别的人 方大同 高清钢琴谱五线谱.docx VIP
- 萨提亚家庭治疗法(11-16).pdf VIP
- 2025上半年高级软件水平考试《系统架构设计师(综合知识)》真题及解析.docx VIP
文档评论(0)