收藏 分销(赏)

全国计算机等级考试实用应试教程二级C语言函数市公开课一等奖百校联赛特等奖课件.pptx

上传人:天**** 文档编号:4149332 上传时间:2024-08-03 格式:PPTX 页数:26 大小:333.04KB
下载 相关 举报
全国计算机等级考试实用应试教程二级C语言函数市公开课一等奖百校联赛特等奖课件.pptx_第1页
第1页 / 共26页
全国计算机等级考试实用应试教程二级C语言函数市公开课一等奖百校联赛特等奖课件.pptx_第2页
第2页 / 共26页
全国计算机等级考试实用应试教程二级C语言函数市公开课一等奖百校联赛特等奖课件.pptx_第3页
第3页 / 共26页
全国计算机等级考试实用应试教程二级C语言函数市公开课一等奖百校联赛特等奖课件.pptx_第4页
第4页 / 共26页
全国计算机等级考试实用应试教程二级C语言函数市公开课一等奖百校联赛特等奖课件.pptx_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、第7章 函数本章关键点本章关键点:7.1 库函数7.2 函数定义和返回值7.3 函数调用7.4 函数说明7.5 调用函数和被调用函数之间数据传递第1页7.1 库函数1函数概念函数从本质上来说就是完成一定功效程序段,有一个名字叫函数名。若有其它程序要完成该函数功效,可经过函数名调用它,函数可屡次重复调用。引入函数主要是处理两个问题:一是为了处理代码重复。如有一个程序段在程序中要出现很屡次,每次都要写出来既非常麻烦又使程序显得很长,此时就能够把该程序段定义成一个函数,在使用该程序段地方直接调用该函数就能够了;二是结构化、模块化编程需要。第2页建立函数过程称“函数定义”,在程序中使用函数称“函数调用

2、”。被调用函数称“被调函数”,而调用函数函数称“主调函数”。在C程序中,main()能够调用任何非主函数,非主函数能够调用非主函数也可被其它函数调用但不能调用main()函数,也就是说main()只能作用主调函数。普通情况下,函数对数据进行加工,最终得到一个结果作为函数返回值。依据不一样方法,函数能够分成不一样种类。如从使用角度来看,能够把函数分成用户函数和系统函数;从定义时有没有参数来分,可分为有参函数和无参函数;依据函数调用时是否有返回值来分,可分为有返回值函数和无返回值函数;依据函数作用范围来分,可分成内部函数和外部函数。第3页2库函数C语言提供了丰富库函数,包含惯用数学函数,字符、字符

3、串处理函数,输入输出函数等,用户在编写程序时能够直接调用这些已经有库函数。以下是关于库函数调用几点说明:(1)调用C语言标准库函数时要求用include命令对每一类库函数,都有其对应头文件名,调用某个库函数时,用户在源程序中须用include命令包含其头文件名。普通形式为:#include 或#include“头文件名.h”第4页(2)标准库函数调用库函数调用普通形式为:函数名(参数表)C语言中库函数调用有两种方式:在表示式中调用。如:x=pow(2),就是在赋值表示式中调用pow函数来求x值。作为独立语句完成某种操作。如:printf(“*&n”);第5页就是调用了printf函数,且调用之

4、后加了分号,组成了一条独立语句,完成该输出操作。(3)各个库函数功效、参数个数和类型、函数值类型都有其要求,用户在调用时依据需要选择适当库函数,并严格按照该库函数规则,正确进行调用。重点提醒重点提醒:库函数调用需要注意是:函数功效,函数参数个数、类型,函数返回值,对参数一些特殊要求。第6页7.2 函数定义和返回值1函数定义方法(1)C语言函数定义普通形式:存放类型说明符存放类型说明符 函数返回值类型名函数返回值类型名 函数名函数名(类型名类型名 形参形参1,类型名类型名 形参形参2,)*函数首部*/说明部分 执行部分 存放类型说明符说明该函数是内部函数还是外部函数。函数返回值类型名是用来说明该

5、函数返回值类型,假如没有返回值,则其类型说明符应为“void”。第7页 第一行通常称为函数首部,经过它就能知道函数功效及调用方式。其它部分称函数体。函数体包含两个部分,说明部分和执行部分,说明部分通惯用来定义在本函数中使用变量、数组等,执行部分是函数功效实现,通常由一系列可执行语句组成。(2)无参函数定义格式存放类型说明符 数据类型说明符 函数名()/*函数头*/说明部分 执行部分说明:无参函数与有参函数基本一样,不一样只是它没有形式参数,调用时不需实参。第8页3)关于函数定义几点说明 C语言要求,不能在同一个函数内部再定义函数。函数名和形式参数都是由用户命名标识符。在同一程序中,函数名必须唯

6、一,形式参数名只要在同一函数中即可,能够与其它函数中变量同名。若省略了函数返回值类型名,则C默认函数返回值类型为int类型。形参能够省略,称为无参函数。在调用时不需实参。即存放类型说明符 函数返回值类型名 函数名()函数体中,除形参外,用到其它变量必须在说明部分进行定义,且能够和其它函数中变量同名。第9页2函数返回值函数值经过return语句返回,return语句普通形式为:return 表示式;或 return(表示式)或 return;以下是几点说明:(1)return语句中表示式值就是所求函数值,且其类型必须与函数首部所说明类型一致。若类型不一致,则由系统自动转换为函数值类型。第10页(

7、2)在程序执行到return语句时,流程就返回到调用该函数处,并带回函数值。在同一个函数内,能够在多处出现return语句。(3)return语句也能够不含表示式。此时,它只是使流程返回到调用函数,并没有确定函数值。(4)函数体内能够没有return语句,程序就一直执行到函数末尾,然后返回调用函数,此时也没有确定函数值带回。第11页3函数定义举例(1)定义一个函数,其功效是对三个实型参数求最大值,并返回这个值。float max(float f1,float f2,float f3)/*定义函数返回值类型、函数名和形式参数*/float m1;/*函数体说明部分*/if(f1f2)m1=f1;

8、/*以下是函数体执行部分*/else m1=f2;if(m1f3)m1=f3;return(m1);/*经过return(表示式)返回一个确定值*/第12页(2)无参函数定义示例:定义一个函数,其作用是打印出五行欢迎词“Welcome you,my dear friends”。void welc()/*定义函数返回值类型(为“void”说明无返回值)及函数名*/int i;/*函数体说明部分*/for(i=1;i=5;i+)/*以下是函数体执行部分*/printf(“Welcome,my dear friends”);说明:该函数类型说明为“void”,所认为无返回值函数,函数中不需要retu

9、rn语句。第13页重点提醒重点提醒:要想让函数返回一个确定值,必须经过语句“return(表示式)”来实现,其中表示式就是函数返回值。假如没有return语句,或return语句不带表示式并不表示没有返回值,而是表示返回一个不确定值。假如不希望有返回值,必须在定义函数时把“数据类型说明符”说明为“void”。第14页7.3 函数调用7.3.1 函数调用两种形式1有返回值函数调用形式有返回值函数调用,能够作为表示式或表示式一部分,也能够作为一条语句。其调用形式是:函数名(实际参数列表)调用结果是取得一个返回值,该返回值能够参加对应类型计算。如:sum(x,y)是一函数,能够由以下两种调用方式y2

10、sum(3,4);(作为表示式一部分,参加计算)或sum(3,4);(单独作为一条语句,不使用返回值),第15页2无返回值函数调用形式无返回值函数调用只能作为一条语句,其调用形式以下:函数名(实际参数列表);(注意,这里分号必不可少)如:max(a,b,c);第16页3函数调用执行过程其实在执行函数调用时,系统要完成一系列复杂过程:首先为被调函数全部形式参数分配内存,再计算实际参数值,再一一对应地赋给对应形式参数(对于无参函数,不做该项工作);然后进入函数体,为函数说明部分定义变量分配存放空间,再依次执行函数体中可执行语句;当执行到“return(表示式)”语句时,计算返回值(假如是无返回值函

11、数,不做该项工作),收回本函数中定义变量所占用存放空间(对于对于static类型变量,其空间不收回类型变量,其空间不收回),返回主调函数继续执行。重点提醒重点提醒:有返回值函数调用,能够作为表示式或表示有返回值函数调用,能够作为表示式或表示式一部分,也能够作为一条语句。而无返回值函数调用只式一部分,也能够作为一条语句。而无返回值函数调用只能作为一条语句。能作为一条语句。第17页7.3.2 函数调用时语法要求函数调用时,需要遵照以下几条语法要求:(1)调用函数时,函数名必须与所调用函数名字完全一致。(2)实参个数必须与形参一致。实参能够是表示式,在类型上应按位置与形参一一对应匹配。假如类型不匹配

12、,C编译程序按赋值兼容规则进行转换,不然,程序运行后不能得到正确结果。(3)C语言要求,函数必须先定义后调用(函数返回值类型为int或char时除外)。(4)实参能够是 C程序中函数能够直接或间接自己调用自己,即递归调用。重点提醒:重点提醒:函数调用时,必须尤其注意实参和形参类型匹配。第18页7.4 函数说明7.4.1 函数说明形式在C语言中,要调用某个函数,需对该函数进行函数说明(或称为函数原型说明)。函数说明普通形式为:类型名 函数名(参数类型1,参数类型2,)或类型名 函数名(参数类型1 参数名1,参数类型2 参数名2,)第19页以下是函数说明几条规则:(1)调用系统函数时,需要在程序开

13、头包含对应头文件。但scanf()和printf()等少数几个函数不需要。(2)当被调函数定义在主调函数之前时,对被调函数说明能够省去,也能够不省。(3)当被调函数返回值类型是整形或字符型时,不论其定义在主调函数之前还是之后,对被调函数说明都能够省去,也能够不省。(4)其它情况一律需要对被调函数进行说明。第20页(5)当被调函数和主调函数在同一个程序文件中,可在主调函数函数体说明部分对被调函数进行说明,说明格式有两种,以下:类型名 被调函数名()或 类型名 被调函数名(形式参数列表)(6)函数说明能够是一条独立语句,也能够与普通变量一起出现在同一个定义语句中。如double sub(float

14、,double)和double x,y,sub(float,double)都是正当。重点提醒重点提醒:内部函数说明包含在.h文件中,故调用某个内部函数,必须包含对应头文件。第21页7.4.2 函数说明位置当在函数外部、被调用之前说明函数时,在函数说明后面全部位置上都能够对该函数进行调用。函数说明也能够放在调用函数内说明部分,如在main函数内部进行说明,则只能在main函数内部才能识别函数。重点提醒:重点提醒:函数调用时,必须尤其注意实参和形参类型匹配。第22页7.5 调用函数和被调用函数之间数据传递1形参和实参概念每个函数普通都能完成一定功效,能够形象地把函数看成一个加工厂,该加工厂对材料进

15、行加工,最终生产出产品。而加工厂加工材料,称为“函数参数”,而加工出来产品称为“函数返回值”(有函数没有返回值)。在定义函数时,只是形式化地说明函数加工对象,这种对象并不实际存在,就象建立一个本材加工厂时只是说明该加工厂把木材加工成木板,但并没有实际木材,把这种参数称为“形式参数”。当程序段要调用该函数完成指定功效,就需要给它实际材料,方便加工出“产品”。就象一个人要把木材加工成木板,就必须把实际木材送到加工厂加工一样,函数调用时传入参数称为“实际参数”。第23页2数据传递形式(1)C语言中,调用函数和被调函数之间数据能够经过三种方式进行传递:实际参数和形式参数之间进行数据传递。经过retur

16、n语句把函数值返回调用函数。经过全局变量。(2)参数值传递主调函数在调用函数时,需要把对应实际参数传给对应形式参数,实际参数个数和类型要和形式参数个数和类型一致。第24页 实参个数与类型应与形参一致,不然将会出现编译错误。实参能够是常量、变量、数组元素和表示式,但假如在被调函数中有取形参地址或给形参赋值语句,则对应实参必须是变量和数组元素。定义函数时定义形参并不占用实际存放单元,只有在被调用时才由系统给它分配存放单元,在调用结束后,形参所占用存放单元被回收。C语言要求,函数间参数传递是“值传参”,即单向传递,实参能够把值传给形参,但形参值不能传给实参,也就是说对形参修改是不会影响到对应实参。此处要注意一个“假象”,数组名作为参数传递是数组首地址,严格地说其传递也是“值(地址)”。后面所说指针变量作为参数也是如样,传也是值(地址值)。第25页3程序举例调用max()函数得到从键盘输入三个值最大值。main()float a,b,c,k;scanf(“%f,%f,%f”,&a,&b,&c);k=max(a,b,c);/*函数调用*/printf(“max=%f”,k);重点提醒重点提醒:主调函数在调用函数时,需要把对应实际参数传给对应形式参数,实际参数个数和类型要和形式参数个数和类型必须一致。第26页

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服