全国计算机等级考试实用应试教程二级C语言函数市公开课一等奖百校联赛特等奖课件.pptx
《全国计算机等级考试实用应试教程二级C语言函数市公开课一等奖百校联赛特等奖课件.pptx》由会员分享,可在线阅读,更多相关《全国计算机等级考试实用应试教程二级C语言函数市公开课一等奖百校联赛特等奖课件.pptx(26页珍藏版)》请在咨信网上搜索。
第7章 函数本章关键点本章关键点:7.1 库函数7.2 函数定义和返回值7.3 函数调用7.4 函数说明7.5 调用函数和被调用函数之间数据传递第1页7.1 库函数1函数概念函数从本质上来说就是完成一定功效程序段,有一个名字叫函数名。若有其它程序要完成该函数功效,可经过函数名调用它,函数可屡次重复调用。引入函数主要是处理两个问题:一是为了处理代码重复。如有一个程序段在程序中要出现很屡次,每次都要写出来既非常麻烦又使程序显得很长,此时就能够把该程序段定义成一个函数,在使用该程序段地方直接调用该函数就能够了;二是结构化、模块化编程需要。第2页建立函数过程称“函数定义”,在程序中使用函数称“函数调用”。被调用函数称“被调函数”,而调用函数函数称“主调函数”。在C程序中,main()能够调用任何非主函数,非主函数能够调用非主函数也可被其它函数调用但不能调用main()函数,也就是说main()只能作用主调函数。普通情况下,函数对数据进行加工,最终得到一个结果作为函数返回值。依据不一样方法,函数能够分成不一样种类。如从使用角度来看,能够把函数分成用户函数和系统函数;从定义时有没有参数来分,可分为有参函数和无参函数;依据函数调用时是否有返回值来分,可分为有返回值函数和无返回值函数;依据函数作用范围来分,可分成内部函数和外部函数。第3页2库函数C语言提供了丰富库函数,包含惯用数学函数,字符、字符串处理函数,输入输出函数等,用户在编写程序时能够直接调用这些已经有库函数。以下是关于库函数调用几点说明:(1)调用C语言标准库函数时要求用include命令对每一类库函数,都有其对应头文件名,调用某个库函数时,用户在源程序中须用include命令包含其头文件名。普通形式为:#include 或#include“头文件名.h”第4页(2)标准库函数调用库函数调用普通形式为:函数名(参数表)C语言中库函数调用有两种方式:在表示式中调用。如:x=pow(2),就是在赋值表示式中调用pow函数来求x值。作为独立语句完成某种操作。如:printf(“*&n”);第5页就是调用了printf函数,且调用之后加了分号,组成了一条独立语句,完成该输出操作。(3)各个库函数功效、参数个数和类型、函数值类型都有其要求,用户在调用时依据需要选择适当库函数,并严格按照该库函数规则,正确进行调用。重点提醒重点提醒:库函数调用需要注意是:函数功效,函数参数个数、类型,函数返回值,对参数一些特殊要求。第6页7.2 函数定义和返回值1函数定义方法(1)C语言函数定义普通形式:存放类型说明符存放类型说明符 函数返回值类型名函数返回值类型名 函数名函数名(类型名类型名 形参形参1,类型名类型名 形参形参2,)*函数首部*/说明部分 执行部分 存放类型说明符说明该函数是内部函数还是外部函数。函数返回值类型名是用来说明该函数返回值类型,假如没有返回值,则其类型说明符应为“void”。第7页 第一行通常称为函数首部,经过它就能知道函数功效及调用方式。其它部分称函数体。函数体包含两个部分,说明部分和执行部分,说明部分通惯用来定义在本函数中使用变量、数组等,执行部分是函数功效实现,通常由一系列可执行语句组成。(2)无参函数定义格式存放类型说明符 数据类型说明符 函数名()/*函数头*/说明部分 执行部分说明:无参函数与有参函数基本一样,不一样只是它没有形式参数,调用时不需实参。第8页3)关于函数定义几点说明 C语言要求,不能在同一个函数内部再定义函数。函数名和形式参数都是由用户命名标识符。在同一程序中,函数名必须唯一,形式参数名只要在同一函数中即可,能够与其它函数中变量同名。若省略了函数返回值类型名,则C默认函数返回值类型为int类型。形参能够省略,称为无参函数。在调用时不需实参。即存放类型说明符 函数返回值类型名 函数名()函数体中,除形参外,用到其它变量必须在说明部分进行定义,且能够和其它函数中变量同名。第9页2函数返回值函数值经过return语句返回,return语句普通形式为:return 表示式;或 return(表示式)或 return;以下是几点说明:(1)return语句中表示式值就是所求函数值,且其类型必须与函数首部所说明类型一致。若类型不一致,则由系统自动转换为函数值类型。第10页(2)在程序执行到return语句时,流程就返回到调用该函数处,并带回函数值。在同一个函数内,能够在多处出现return语句。(3)return语句也能够不含表示式。此时,它只是使流程返回到调用函数,并没有确定函数值。(4)函数体内能够没有return语句,程序就一直执行到函数末尾,然后返回调用函数,此时也没有确定函数值带回。第11页3函数定义举例(1)定义一个函数,其功效是对三个实型参数求最大值,并返回这个值。float max(float f1,float f2,float f3)/*定义函数返回值类型、函数名和形式参数*/float m1;/*函数体说明部分*/if(f1f2)m1=f1;/*以下是函数体执行部分*/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”,所认为无返回值函数,函数中不需要return语句。第13页重点提醒重点提醒:要想让函数返回一个确定值,必须经过语句“return(表示式)”来实现,其中表示式就是函数返回值。假如没有return语句,或return语句不带表示式并不表示没有返回值,而是表示返回一个不确定值。假如不希望有返回值,必须在定义函数时把“数据类型说明符”说明为“void”。第14页7.3 函数调用7.3.1 函数调用两种形式1有返回值函数调用形式有返回值函数调用,能够作为表示式或表示式一部分,也能够作为一条语句。其调用形式是:函数名(实际参数列表)调用结果是取得一个返回值,该返回值能够参加对应类型计算。如:sum(x,y)是一函数,能够由以下两种调用方式y2sum(3,4);(作为表示式一部分,参加计算)或sum(3,4);(单独作为一条语句,不使用返回值),第15页2无返回值函数调用形式无返回值函数调用只能作为一条语句,其调用形式以下:函数名(实际参数列表);(注意,这里分号必不可少)如:max(a,b,c);第16页3函数调用执行过程其实在执行函数调用时,系统要完成一系列复杂过程:首先为被调函数全部形式参数分配内存,再计算实际参数值,再一一对应地赋给对应形式参数(对于无参函数,不做该项工作);然后进入函数体,为函数说明部分定义变量分配存放空间,再依次执行函数体中可执行语句;当执行到“return(表示式)”语句时,计算返回值(假如是无返回值函数,不做该项工作),收回本函数中定义变量所占用存放空间(对于对于static类型变量,其空间不收回类型变量,其空间不收回),返回主调函数继续执行。重点提醒重点提醒:有返回值函数调用,能够作为表示式或表示有返回值函数调用,能够作为表示式或表示式一部分,也能够作为一条语句。而无返回值函数调用只式一部分,也能够作为一条语句。而无返回值函数调用只能作为一条语句。能作为一条语句。第17页7.3.2 函数调用时语法要求函数调用时,需要遵照以下几条语法要求:(1)调用函数时,函数名必须与所调用函数名字完全一致。(2)实参个数必须与形参一致。实参能够是表示式,在类型上应按位置与形参一一对应匹配。假如类型不匹配,C编译程序按赋值兼容规则进行转换,不然,程序运行后不能得到正确结果。(3)C语言要求,函数必须先定义后调用(函数返回值类型为int或char时除外)。(4)实参能够是 C程序中函数能够直接或间接自己调用自己,即递归调用。重点提醒:重点提醒:函数调用时,必须尤其注意实参和形参类型匹配。第18页7.4 函数说明7.4.1 函数说明形式在C语言中,要调用某个函数,需对该函数进行函数说明(或称为函数原型说明)。函数说明普通形式为:类型名 函数名(参数类型1,参数类型2,)或类型名 函数名(参数类型1 参数名1,参数类型2 参数名2,)第19页以下是函数说明几条规则:(1)调用系统函数时,需要在程序开头包含对应头文件。但scanf()和printf()等少数几个函数不需要。(2)当被调函数定义在主调函数之前时,对被调函数说明能够省去,也能够不省。(3)当被调函数返回值类型是整形或字符型时,不论其定义在主调函数之前还是之后,对被调函数说明都能够省去,也能够不省。(4)其它情况一律需要对被调函数进行说明。第20页(5)当被调函数和主调函数在同一个程序文件中,可在主调函数函数体说明部分对被调函数进行说明,说明格式有两种,以下:类型名 被调函数名()或 类型名 被调函数名(形式参数列表)(6)函数说明能够是一条独立语句,也能够与普通变量一起出现在同一个定义语句中。如double sub(float,double)和double x,y,sub(float,double)都是正当。重点提醒重点提醒:内部函数说明包含在.h文件中,故调用某个内部函数,必须包含对应头文件。第21页7.4.2 函数说明位置当在函数外部、被调用之前说明函数时,在函数说明后面全部位置上都能够对该函数进行调用。函数说明也能够放在调用函数内说明部分,如在main函数内部进行说明,则只能在main函数内部才能识别函数。重点提醒:重点提醒:函数调用时,必须尤其注意实参和形参类型匹配。第22页7.5 调用函数和被调用函数之间数据传递1形参和实参概念每个函数普通都能完成一定功效,能够形象地把函数看成一个加工厂,该加工厂对材料进行加工,最终生产出产品。而加工厂加工材料,称为“函数参数”,而加工出来产品称为“函数返回值”(有函数没有返回值)。在定义函数时,只是形式化地说明函数加工对象,这种对象并不实际存在,就象建立一个本材加工厂时只是说明该加工厂把木材加工成木板,但并没有实际木材,把这种参数称为“形式参数”。当程序段要调用该函数完成指定功效,就需要给它实际材料,方便加工出“产品”。就象一个人要把木材加工成木板,就必须把实际木材送到加工厂加工一样,函数调用时传入参数称为“实际参数”。第23页2数据传递形式(1)C语言中,调用函数和被调函数之间数据能够经过三种方式进行传递:实际参数和形式参数之间进行数据传递。经过return语句把函数值返回调用函数。经过全局变量。(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页- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 实用 应试 教程 二级 语言 函数 公开 一等奖 联赛 特等奖 课件
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文