![第7章函数ppt课件_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/22/f072a038-288d-449e-a3f1-3dd2a419e6a1/f072a038-288d-449e-a3f1-3dd2a419e6a11.gif)
![第7章函数ppt课件_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/22/f072a038-288d-449e-a3f1-3dd2a419e6a1/f072a038-288d-449e-a3f1-3dd2a419e6a12.gif)
![第7章函数ppt课件_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/22/f072a038-288d-449e-a3f1-3dd2a419e6a1/f072a038-288d-449e-a3f1-3dd2a419e6a13.gif)
![第7章函数ppt课件_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/22/f072a038-288d-449e-a3f1-3dd2a419e6a1/f072a038-288d-449e-a3f1-3dd2a419e6a14.gif)
![第7章函数ppt课件_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/22/f072a038-288d-449e-a3f1-3dd2a419e6a1/f072a038-288d-449e-a3f1-3dd2a419e6a15.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第7章 函数本章要点本章要点:7.1 库函数库函数7.2 函数的定义和前往值函数的定义和前往值7.3 函数的调用函数的调用7.4 函数的阐明函数的阐明7.5 调用函数和被调用函数之间的数据传调用函数和被调用函数之间的数据传送送7.1 库函数1函数的概念函数从本质上来说就是完成一定功能程序段,有一个名字叫函数名。假设有其它程序要完成该函数的功能,可经过函数名调用它,函数可多次反复调用。引入函数主要是处理两个问题:一是为理处理代码的反复。如有一个程序段在程序中要出现很多次,每次都要写出来既非常费事又使程序显得很长,此时就可以把该程序段定义成一个函数,在运用该程序段的地方直接调用该函数就可以了;二是
2、构造化、模块化编程的需求。建立函数的过程称“函数的定义,在程序中运用函数称“函数的调用。被调用的函数称“被调函数,而调用函数的函数称“主调函数。在C程序中,main()可以调用任何非主函数,非主函数可以调有非主函数也可被其它函数调用但不能调用main()函数,也就是说main()只能作用主调函数。普通情况下,函数对数据进展加工,最后得到一个结果作为函数的前往值。根据不同的方法,函数可以分成不同的种类。如从运用的角度来看,可以把函数分成用户函数和系统函数;从定义时有无参数来分,可分为有参函数和无参函数;根据函数调用时能否有前往值来分,可分为有前往值的函数和无前往值的函数;根据函数的作用范围来分,
3、可分成内部函数和外部函数。2库函数C言语提供了丰富的库函数,包括常用的数学函数,字符、字符串处置函数,输入输出函数等,用户在编写程序时可以直接调用这些已有的库函数。以下是关于库函数调用的几点阐明:1调用C言语规范库函数时要求用include命令对每一类库函数,都有其相应的头文件名,调用某个库函数时,用户在源程序中须用include命令包含其头文件名。普通方式为: #include 或#include “头文件名.h2规范库函数的调用库函数调用的普通方式为: 函数名参数表C言语中库函数的调用有两种方式:在表达式中调用。如:x=pow(2),就是在赋值表达式中调用pow函数来求x的值。作为独立的语
4、句完成某种操作。如: printf(“*&n); 就是调用了printf函数,且调用之后加了分号,构成了一条独立的语句,完成该输出操作。3各个库函数的功能、参数的个数和类型、函数值的类型都有其规定,用户在调用时根据需求选择适宜的库函数,并严厉按照该库函数的规那么,正确的进展调用。重点提示:库函数的调用需求留意的是:函数的功能,函数的参数个数、类型,函数的前往值,对参数的一些特殊要求。7.2 函数的定义和前往值1函数的定义方法1C言语函数定义的普通方式:存储类型阐明符 函数前往值类型名 函数名(类型名 形参1,类型名 形参2,)*函数首部*/阐明部分 执行部分 存储类型阐明符阐明该函数是
5、内部函数还是外部函数。 函数前往值类型名是用来阐明该函数前往值的类型,假设没有前往值,那么其类型阐明符应为“void。 第一行通常称为函数首部,经过它就能知道函数的功能及调用方式。 其它部分称函数体。函数体包括两个部分,阐明部分和执行部分,阐明部分通常用来定义在本函数中运用的变量、数组等,执行部分是函数功能的实现,通常由一系列的可执行语句构成。2无参函数的定义格式存储类型阐明符 数据类型阐明符 函数名( ) /*函数头*/阐明部分 执行部分阐明:无参函数与有参函数根本一样,不同的只是它没有方式参数,调用时不需实参。3关于函数定义的几点阐明 C言语规定,不能在同一个函数内部再定义函数。 函数名和
6、方式参数都是由用户命名的标识符。在同一程序中,函数名必需独一,方式参数名只需在同一函数中即可,可以与其他函数中的变量同名。 假设省略了函数前往值的类型名,那么C默许函数前往值的类型为int类型。 形参可以省略,称为无参函数。在调用时不需实参。即存储类型阐明符 函数前往值类型名 函数名 函数体中,除形参外,用到的其它变量必需在阐明部分进展定义,且可以和其他函数中的变量同名。2函数的前往值函数值经过return语句前往,return语句的普通方式为: return 表达式; 或 return 表达式 或 return;以下是几点阐明:1return语句中表达式的值就是所求的函数值,且其类型必需与函
7、数首部所阐明的类型一致。假设类型不一致,那么由系统自动转换为函数值的类型。2在程序执行到return语句时,流程就前往到调用该函数处,并带回函数值。在同一个函数内,可以在多处出现return语句。3return语句也可以不含表达式。此时,它只是使流程前往到调用函数,并没有确定的函数值。4函数体内可以没有return语句,程序就不断执行到函数末尾,然后前往调用函数,此时也没有确定的函数值带回。3函数定义举例1定义一个函数,其功能是对三个实型参数求最大值,并前往这个值。float max(float f1,float f2,float f3) /*定义函数前往值的类型、函数名和方式参数*/ flo
8、at m1; /*函数体的阐明部分*/ if (f1f2) m1=f1; /*以下是函数体的执行部分*/ else m1=f2; if(m1f3) m1=f3; return(m1); /*经过return(表达式)前往一个确定的值*/2无参函数定义例如:定义一个函数,其作用是打印出五行欢迎词“Welcome you, my dear friends。void welc()/*定义函数前往值的类型(为“void阐明无前往值)及函数名*/int i; /*函数体的阐明部分*/ for(i=1;i=5;i+)/*以下是函数体的执行部分*/ printf(“Welcome, my dear frie
9、nds);阐明:该函数的类型阐明为“void,所以为无前往值的函数,函数中不需求return语句。重点提示:要想让函数前往一个确定的值,必需经过语句“return(表达式)来实现,其中表达式就是函数的前往值。假设没有return语句,或return语句不带表达式并不表示没有前往值,而是表示前往一个不确定的值。假设不希望有前往值,必需在定义函数时把“数据类型阐明符阐明为“void。7.3 函数的调用7.3.1 函数调用的两种方式1有前往值的函数的调用方式有前往值的函数调用,可以作为表达式或表达式的一部分,也可以作为一条语句。其调用方式是:函数名(实践参数列表)调用的结果是获得一个前往值,该前往值
10、可以参与相应类型的计算。如:sumx,y是一函数,可以由以下两种调用方式y2sum3,4;作为表达式的一部分,参与计算或sum3,4;单独作为一条语句,不运用前往值,2无前往值的函数调用方式无前往值的函数调用只能作为一条语句,其调用方式如下:函数名(实践参数列表);留意,这里的分号必不可少如:maxa,b,c;3函数调用执行过程其真实执行函数调用时,系统要完成一系列复杂的过程:首先为被调函数的一切方式参数分配内存,再计算实践参数的值,再一一对应地赋给相应的方式参数对于无参函数,不做该项任务;然后进入函数体,为函数阐明部分定义的变量分配存储空间,再依次执行函数体中的可执行语句;当执行到“retu
11、rn(表达式)语句时,计算前往值假设是无前往值的函数,不做该项任务,收回本函数中定义的变量所占用的存储空间对于static类型的变量,其空间不收回,前往主调函数继续执行。重点提示:有前往值的函数调用,可以作为表达式或表达式的一部分,也可以作为一条语句。而无前往值的函数调用只能作为一条语句。7.3.2 函数调用时的语法要求函数调用时,需求遵照以下几条语法要求:1调用函数时,函数名必需与所调用的函数名字完全一致。2实参的个数必需与形参一致。实参可以是表达式,在类型上应按位置与形参一一对应匹配。假设类型不匹配,C编译程序按赋值兼容的规那么进展转换,否那么,程序运转后不能得到正确的结果。3C言语规定,
12、函数必需先定义后调用函数的前往值类型为int或char时除外。4实参可以是 C程序中函数可以直接或间接的本人调用本人,即递归调用。重点提示:函数调用时,必需特别留意实参和形参的类型匹配。7.4.1 函数阐明的方式在C言语中,要调用某个函数,需对该函数进展函数阐明或称为函数原型阐明。函数阐明的普通方式为:类型名 函数名参数类型1,参数类型2,或类型名 函数名参数类型1 参数名1,参数类型2 参数名2,以下是函数阐明的几条规那么:1调用系统函数时,需求在程序的开头包含相应的头文件。但scanf()和printf()等少数的几个函数不需求。2当被调函数定义在主调函数之前时,对被调函数的阐明可以省去,
13、也可以不省。3当被调函数的前往值类型是整形或字符型时,不论其定义在主调函数之前还是之后,对被调函数的阐明都可以省去,也可以不省。4其它情况一概需求对被调函数进展阐明。5当被调函数和主调函数在同一个程序文件中,可在主调函数的函数体阐明部分对被调函数进展阐明,阐明格式有两种,如下: 类型名 被调函数名() 或 类型名 被调函数名(方式参数列表)6函数阐明可以是一条独立的语句,也可以与普通变量一同出如今同一个定义语句中。如double subfloat,double和double x,y,subfloat,double都是合法的。重点提示:内部函数的阐明包含在.h文件中,故调用某个内部函数,必需包含
14、相应的头文件。7.4.2 函数阐明的位置当在函数的外部、被调用之前阐明函数时,在函数阐明的后面一切位置上都可以对该函数进展调用。函数阐明也可以放在调用函数内的阐明部分,如在main函数内部进展阐明,那么只能在main函数内部才干识别函数。重点提示:函数调用时,必需特别留意实参和形参的类型匹配。7.4 调用函数和被调用函数之间的数据传送1形参和实参的概念每个函数普通都能完成一定的功能,可以笼统地把函数看成一个加工厂,该加工厂对资料进展加工,最后消费出产品。而加工厂加工的资料,称为“函数的参数,而加工出来的产品称为“函数的前往值(有的函数没有前往值)。在定义函数时,只是方式化地阐明函数加工的对象,
15、这种对象并不实践存在,就象建立一个本材加工厂时只是阐明该加工厂把木材加工成木板,但并没有实践的木材,把这种参数称为“方式参数。当程序段要调用该函数完成指定的功能,就需求给它实践的资料,以便加工出“产品。就象一个人要把木材加工成木板,就必需把实践的木材送到加工厂加工一样,函数调用时传入的参数称为“实践参数。2数据传送的方式1C言语中,调用函数和被调函数之间的数据可以经过三种方式进展传送: 实践参数和方式参数之间进展数据传送。 经过return语句把函数值前往调用函数。 经过全局变量。2参数值的传送主调函数在调用函数时,需求把相应的实践参数传给相应的方式参数,实践参数的个数和类型要和方式参数的个数和类型一致。 实参的个数与类型应与形参一致,否那么将会出现编译错误。 实参可以是常量、变量、数组元素和表达式,但假设在被调函数中有取形参地址或给形参赋值的语句,那么对应的实参必需是变量和数组元素。 定义函数时定义的形参并不占用实践的存储单元,只需在被调用时才由系统给它分配存储单元,在调用终了后,形参所占用的存储单元被回收。 C言语规定,函数间的参数传送是“值传参,即单向传送,实参可以把值传给形参,但形参的值不能传给实参,也就是说对形参的修正是不会影响到对应的实参。此处要留意一个“假象,数组名作为参数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 图书馆员职业法律知识培训考核试卷
- 人造板行业发展趋势与市场分析考核试卷
- 分析仪器在药物代谢动力学的研究考核试卷
- 城市轨道交通的租赁发展与商业规划考核试卷
- 摄影师微距昆虫摄影技巧考核试卷
- 2025-2030年房车旅行达人培养企业制定与实施新质生产力战略研究报告
- 2025-2030年厨电产品生日优惠行业跨境出海战略研究报告
- 2025-2030年扇贝滑蛋罐头礼盒企业制定与实施新质生产力战略研究报告
- 2025-2030年地下空间紧急避难所行业深度调研及发展战略咨询报告
- 2025-2030年新能源汽车充电站布局行业跨境出海战略研究报告
- 第02讲 导数与函数的单调性(学生版)-2025版高中数学一轮复习考点帮
- 部编版小学语文二年级下册电子课文《小马过河》
- 《医疗机构工作人员廉洁从业九项准则》专题解读
- 爱车讲堂 课件
- 成立商会的可行性报告5则范文
- 湖南财政经济学院《常微分方程》2023-2024学年第一学期期末试卷
- 游戏账号借用合同模板
- 2022年中考英语语法-专题练习-名词(含答案)
- 2011年公务员国考《申论》真题卷及答案(地市级)
- 《篮球体前变向运球技术》教案(共三篇)
- 多元化评价体系构建
评论
0/150
提交评论