函数的递归调用-c程序设计基础教程.ppt

函数的递归调用-c程序设计基础教程.ppt

ID:55342244

大小:732.50 KB

页数:160页

时间:2020-05-14

函数的递归调用-c程序设计基础教程.ppt_第1页
函数的递归调用-c程序设计基础教程.ppt_第2页
函数的递归调用-c程序设计基础教程.ppt_第3页
函数的递归调用-c程序设计基础教程.ppt_第4页
函数的递归调用-c程序设计基础教程.ppt_第5页
资源描述:

《函数的递归调用-c程序设计基础教程.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第六章函数6.1概述6.2函数定义的一般形式6.3函数参数和函数返回值6.4函数的调用6.5函数的嵌套调用6.6函数的递归调用6.7数组作为函数的参数6.8局部变量和全局变量6.9变量的存储类别6.10内部函数与外部函数1问题的提出假如程序上百行,如何调试最方便?如何有效编程计算歌德巴赫猜想:大致可以分为两个猜想:1.每个不小于6的偶数都可以表示为两个奇素数之和;2.每个不小于9的奇数都可以表示为三个奇素数之和。26.1概述C程序是模块结构的,每个模块也称为函数。一个C程序可由一个main函数和若干个用户自定义函数构成,这些函数是通过调用来建立联系的。在这些函数中还

2、可以调用系统提供的各类标准库函数。本章主要介绍用户自定义函数的定义、调用以及函数间信息的传递。31.采用自定义函数的意义1)符合结构化设计思想,便于设计、调试和扩充,是逐步细化开发方式的具体体现;2)每个自定义函数可单独编译,便于模块调试;3)避免在程序中设计重复的代码,函数定义一次便可多次调用,有效地利用了已有的代码资源。42.C程序各函数之间的关系1)不管主函数的书写位置如何,C程序总是从主函数开始运行、并在主函数结束;2)主函数可调用所有自定义函数,但不能被任何函数调用;3)一个自定义函数除了可被主函数调用外,还可被其它自定义函数调用;4)自定义函数可调用除主

3、函数之外的其它自定义函数,甚至可直接或间接地自己调用自己。5main自定义f1自定义f2自定义fn┇函数调用关系图示:63.函数调用的执行流程嵌套调用:mainabac开始结束f2f1调用返回调用返回间接递归调用:直接递归调用:调用返回f74.C函数的分类从用户使用的角度分类:库函数——由系统提供,包括:常用数学库、标准I/O库、DOS专用库、字符屏幕控制库、图形库等;用户自定义函数——根据特定的需要自己编制;从函数的形式分类:无参函数——调用时不需要任何参数;有参函数——调用时必须给出实参,函数依据实参进行相应处理。86.2函数定义的一般形式1.有参函数定义的一般

4、形式[类型标识符]函数名(形式参数表)函数头{局部声明函数体执行语句}特点:调用时必须给出实参,函数将依据实参实现特定操作。其中——类型标识符:说明函数返回值的类型,省略为int型;函数名:遵循标识符命名规则,名称尽量反映功能;9形式参数:从形式上说明该函数调用时所需的参数个数及类型,多个形参间逗号分隔;局部说明部分:对自定义函数局部使用的变量、数组等进行类型定义;执行语句:实现函数功能;其中的返回语句return将控制程序流程返回主调函数;10例:用自定义函数找出两数中的较大数main(){inta,b;scanf("%d,%d",&a,&b);printf(

5、"MAX=%d",max(a,b));}intmax(intx,inty)/*int可省略,定义形参变量*/{intz;/*局部变量定义*/z=x>y?x:y;return(z);/*将z的值作为返回值*/}112.无参函数定义的一般形式[类型标识符]函数名(){局部声明执行语句}特点:不依据任何参数来实现特定操作;注意:尽管没有参数但圆括号不能省去。例:定义实现延时功能的无参函数voiddelay()/*无参、无返回值*/{longi;for(i=0;i<=32000000;i++);}123.空函数定义的一般形式[类型标识符]函数名(){}作用:用于调试程序

6、时,在逻辑上表示这个函数已经定义,而不至于影响程序其它部分的编译;待下一阶段再编制该函数具体内容。136.3函数参数和函数返回值形式参数——定义函数时的参数实际参数——调用函数时的参数函数返回值——返回主调函数时带回的结果14例:利用自定义函数,找出三个数中的最大数。main(){inta,b,c,d;scanf("%d,%d,%d",&a,&b,&c);d=max(a,b);/*a、b的值作为实参*/d=max(d,c);/*d、c的值作为实参*/printf("Maxis%d",d);}max(intx,inty){intz;z=x>y?x:y;return

7、(z);/*z值作为返回值*/}15851.形式参数和实际参数说明1)编译时并不为形参分配存储单元,在程序运行中发生函数调用时,才动态地为形参分配存储单元,并接受实参传递的值;函数调用结束,形参占用的存储单元将被释放;如例中第一次调用:实参:abd=max(a,b);形参:xy第二次调用:实参:dcd=max(d,c);形参:xy85812812165850802)由于实参和形参各有各的存储单元,因此在被调函数中给形参变量赋值,不会对实参造成任何影响。如例中主调函数:d=max(a,b);实参:ab被调函数:形参:xyz=x>y?x:y;x=y=0;return

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。