C程序设计 教学课件 作者 赵山林 8.ppt

C程序设计 教学课件 作者 赵山林 8.ppt

ID:50319971

大小:333.50 KB

页数:47页

时间:2020-03-08

C程序设计 教学课件 作者 赵山林 8.ppt_第1页
C程序设计 教学课件 作者 赵山林 8.ppt_第2页
C程序设计 教学课件 作者 赵山林 8.ppt_第3页
C程序设计 教学课件 作者 赵山林 8.ppt_第4页
C程序设计 教学课件 作者 赵山林 8.ppt_第5页
资源描述:

《C程序设计 教学课件 作者 赵山林 8.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章函数8.1概述8.2函数的定义8.3函数的调用8.4函数的嵌套及递归调用8.5局部变量和全局变量8.6变量的存储类别8.7函数举例8.1概述8.1.1模块化程序设计思想面对一项复杂任务,通常采取模块化的解决方法。首先,分解该复杂任务成几个大的功能模块,根据需要还可以继续细分,直到分解成一个个功能独立的模块为止。分解的结果可以描述为一棵倒立的大树,如图8.1所示。图8.1模块化程序设计8.1.2C语言程序结构函数是构成C语言程序的基本功能模块,它完成一项相对独立的任务。一个C语言程序是若干函数构成的,在构成C程序的诸多函数中有而且只有一个主函数。函数是程序的最小组成单

2、位。所有函数之间的关系是平行的,没有从属的概念。函数的平行关系使得函数的编写相对独立,便于模块化程序设计的实现。C程序的执行总是从主函数开始,又从主函数结束,其他函数只有通过调用关系发生作用。8.1.4函数的分类1.从用户角度分从用户角度,函数可分为以下两类。(1)库函数(2)自定义函数①定义函数;②声明函数;③调用函数。具体使用方法将在本章中详细介绍。2.从函数形式分从函数形式角度,函数可分为以下两类。(1)无参函数,函数不带参数。(2)有参函数,函数带有至少一个参数。3.从函数的返回值分从函数是否有返回值,函数可分为以下两类。(1)有值函数,调用该函数后可以得到返回值

3、。(2)无值函数,调用该函数后没有返回值。无值函数类似于其他高级语言中的过程。8.2函数的定义函数由两部分构成:函数头和函数体。函数头给出函数相关信息(类似“黑盒子”中的入口和出口),而函数体具体实现函数的功能。8.2.1函数的定义形式函数定义的一般形式是:[类型标识符]函数名(形式参数表列)形式参数类型说明{数据描述部分算法实现部分}前两行是函数头。形式参数(又简称形参)表列和形式参数类型说明部分体现的是一个函数的入口参数的个数及其类型。类型标识符说明了函数返回值的类型,也简称函数类型。函数体用一对花括号{}括起来。函数体中不仅可以使用数据描述部分描述的变量,而且还可以

4、使用形式参数。例8.1函数定义示例。floatmax(x,y)floatx,y;{floattemp;if(x>y)temp=x;elsetemp=y;return(temp);}8.2.2函数的返回值在函数定义时需要描述函数类型,但没有给出函数如何得到返回值。调用有值函数时,要求被调函数返回数据给主调函数,返回的数据称为函数返回值,简称函数值。得到函数返回值的方法是使用return语句。return语句的功能有3个。(1)返回一个值给主调函数。(2)释放在函数的执行过程中分配的所有内存空间。(3)结束被调函数的运行,将流程控制权交给主调函数。return语句使用的一般形

5、式为:return(表达式)return语句应书写在函数体的算法实现部分,圆括号可以省略。8.2.3形参和返回值的设定编写函数时,应分析该函数中哪些量是函数的已知量,那些是函数需要得到的结果。设计时将已知数据作为函数的形参,已知数据有几个,形参就有几个。未知数据正是函数需要得到的结果。除需要分析已知和未知外,还需要确定已知和未知的数据类型,从而完成对函数头的设计。8.3函数的调用当函数被调用时,函数对应的程序代码才开始执行,才能实现相应的函数功能。8.3.1对被调用函数的声明对被调用函数的声明有两种方式:外部声明和内部声明。在主调函数内对被调函数所作的声明称为内部声明,也

6、称为局部声明;在函数外进行的函数声明称为外部声明,如果声明在程序最前端,外部声明又称为全局声明。内部声明过的函数只能在声明它的主调函数内调用。外部声明过的函数,从声明处到本程序文件结束都可以被调用。内部声明应放在主调函数的数据描述部分,外部声明可以出现在程序中任何函数外。对被调用函数的声明具体形式为:函数类型函数名();例8.5函数声明示例。main(){intm;floatc;floatsum();/*在主函数main()内对被调函数sum()作局部声明,*/scanf("%d",&m); /*只能在主函数内调用声明过的函数max()*/c=sum(m);printf(

7、"c=%f",c);}floatsum(intn)/*功能是计算数列1/2,2/3,3/5,5/8……的前n项之和*/{floata,b,t,s;intk;a=1,b=2;s=0.5;for(k=2;k<=n;k++){t=a,a=b,b=a+t;s=s+a/b;}return(s);}8.3.2函数调用的一般形式1.函数调用的一般形式函数名(实际参数表列)实际参数表列是函数入口参数的实际值。如例8.5中的csum(m)中的m就是有确定值的实际参数,sum(m)是对函数的调用,调用结束后得到返回值赋值给变量c。2.形式参

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

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

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