计算机二级函数省公共课一等奖全国赛课获奖课件.pptx
《计算机二级函数省公共课一等奖全国赛课获奖课件.pptx》由会员分享,可在线阅读,更多相关《计算机二级函数省公共课一等奖全国赛课获奖课件.pptx(60页珍藏版)》请在咨信网上搜索。
1、第四章第四章 函函 数数4.4.1 1 概述概述 4.4.函数定义普通形式函数定义普通形式4.4.函数参数和函数值函数参数和函数值4.4.函数调用函数调用 4.4.函数嵌套调用函数嵌套调用4.4.函数递归调用函数递归调用 4.4.数组作为函数参数数组作为函数参数4.4.8 8 局部变量和全局变量局部变量和全局变量4.4.变量存放类别变量存放类别 4.4.10 10 内部函数和外部函数内部函数和外部函数第1页一个较大程序可分为若干一个较大程序可分为若干个个程序模块程序模块,每一个模块,每一个模块用来实现一个特定功效。用来实现一个特定功效。在高级语言中用在高级语言中用子程序子程序实实现模块功效。子
2、程序由函现模块功效。子程序由函数来完成。一个程序可数来完成。一个程序可由一个主函数和若干个其由一个主函数和若干个其它函数组成。它函数组成。由主函数调用其它函数,其它函数也能够相互调用。由主函数调用其它函数,其它函数也能够相互调用。同一个函数能够被一个或多个函数调用任意屡次。同一个函数能够被一个或多个函数调用任意屡次。函数间调用关系函数间调用关系 4.1 概述概述第2页#include void main()void printstar();/*对对printstar函数申明函数申明*/void print_message();/*对对print_message函数申明函数申明*/printst
3、ar();*调用调用printstar函数函数*print_message();/*调用调用print_message函数函数*/printstar();*调用调用printstar函数函数*/先举一个函数调用简单例子先举一个函数调用简单例子先举一个函数调用简单例子先举一个函数调用简单例子1 1 1 1:void printstar()*定义定义printstar函数函数*printf(*n);void print_message()*定义定义print_message函数函数*printf(How do you do!n);结果:结果:*How do you do!How do you do
4、!*假如下面函数写在main之前,函数申明能够省略第3页#include#include void mainvoid main()int max(int int max(int,int int);/*/*对maxmax函函数数申明申明*/*/int int,;,;scanf scanf(,);(,);maxmax(,);(,);printf printf(“max is“max is,);,);int maxint max(int int,int int)int int;?;return return();();另一个函数调用简单例子另一个函数调用简单例子另一个函数调用简单例子另一个函数调用简
5、单例子2 2 2 2:返回值形参表第4页说明:说明:3、组成组成C程序各个函数彼此平行,独立定义,能够嵌程序各个函数彼此平行,独立定义,能够嵌套调用。但不能调用主函数套调用。但不能调用主函数main()1、一个一个C程序能够由若干个函数组成。程序能够由若干个函数组成。2、在组成在组成C程序全部函数中,有且只有一个主函数程序全部函数中,有且只有一个主函数main(),位置任意(在哪个源文件中都能够)但程序运行从,位置任意(在哪个源文件中都能够)但程序运行从主函数开始。假如主函数在调用函数前,要对调用函数进行主函数开始。假如主函数在调用函数前,要对调用函数进行申明,假如主函数在调用函数后,函数申明
6、能够省略。申明,假如主函数在调用函数后,函数申明能够省略。第5页一、一、1.1.系统函数(库函数)需要在程序前包含头文件系统函数(库函数)需要在程序前包含头文件 2.2.用户自己定义函数用户自己定义函数二、二、1.1.有返回值函数(注意返回值类型)有返回值函数(注意返回值类型)2.2.无返回值函数(函数类型应定义为空类型无返回值函数(函数类型应定义为空类型voidvoid)4.2.1函数分类函数分类三三、1.1.无无参参函函数数。在在调调用用无无参参函函数数时时,主主调调函函数数不不向向被被调调 用函数传递数据。无参函数普通用来执行指定一组操作用函数传递数据。无参函数普通用来执行指定一组操作
7、2.2.有有参参函函数数。在在调调用用函函数数时时,主主调调函函数数在在调调用用被被调调用用函函数数时时,经经过过参参数数向向被被调调用用函函数数传传递递数数据据,普普通通情情况况下下,执执行行被调用函数时会得到一个函数值,供主调函数使用。被调用函数时会得到一个函数值,供主调函数使用。第6页4.2.2 4.2.2 函数定义函数定义 1.1.无参函数定义普通形式无参函数定义普通形式无参函数定义普通形式无参函数定义普通形式 定义定义无参函数无参函数普通形式为普通形式为:类型说明符类型说明符函数名函数名()()说明语句部分;说明语句部分;可执行可执行语句部分;语句部分;在定义函数时要用在定义函数时要
8、用“类型说明符类型说明符”指指定函数值类型,即定函数值类型,即函数带回来值类型函数带回来值类型。例中例中printstarprintstar和和print_messageprint_message函数函数为为voidvoid类型,表示类型,表示不需要带回函数值不需要带回函数值 为函数首部(函数头)内为函数体第7页2.2.有参函数定义普通形式有参函数定义普通形式有参函数定义普通形式有参函数定义普通形式 定义定义有参函数有参函数普通形式为普通形式为:类型说明符类型说明符函数名函数名(形式参数表)(形式参数表)说明语句部分;说明语句部分;可执行可执行语句部分;语句部分;例例2 2:Int maxIn
9、t max(int int,int int)int int;/*/*函数体中申明部分函数体中申明部分*?;return return();();形式参数表简称形参形式参数表简称形参表,多个形参之间用表,多个形参之间用逗号分隔逗号分隔形参是变量,必须进形参是变量,必须进行类型说明行类型说明第8页3.空函数空函数 定义定义空函数空函数普通形式为普通形式为:类型说明符类型说明符函数名函数名()()比如:比如:void dmvoid dm()()调用此函数时,什么工调用此函数时,什么工作也不做,没有任何实作也不做,没有任何实际作用。在主调函数中际作用。在主调函数中写上写上“dm“dm();();”表明
10、表明“这里要调用一个函数这里要调用一个函数”,而现在这个函数没,而现在这个函数没有起作用,等以后扩充有起作用,等以后扩充函数功效时补充上。函数功效时补充上。括号不能省略第9页4.2.3函数参数和函数值函数参数和函数值 1.1.形式参数和实际参数形式参数和实际参数形式参数和实际参数形式参数和实际参数 形式参数:将函数定义中参数表称为形式参数表,简称形参表。与调用函数提供实际参数区分。实际参数:调用有参函数时,调用函数必须赋予这些参数实际值,调用函数中参数称为实际参数。实参可认为变量,常量,函数,表达式,但实参要按照形参类型和个数对应排列。当函数调用时,调用函数把实参值一一对应传送给被调用函数形参
11、,从而实现调用函数向被调用函数数据传送。形参出现在函数定义中,只能在该函数体内使用(有效),调用结束,返回调用函数后,不能在使用形参变量。第10页#include#include void mainvoid main()int max(int int max(int,int int);/*/*对maxmax函函数数申明申明*/*/int int,;,;scanf scanf(,);(,);maxmax(,);(,);printf printf(“max is“max is,);,);int maxint max(int int,int int)int int;?;return return()
12、;();例例例例2 2 2 2:实参加形参类型应相同或赋值兼容;假如a=3.5则形参x=3字符型和整形通用运行情况以下:运行情况以下:,max is 第11页经过函数调用,使两个函数中数据发生联络经过函数调用,使两个函数中数据发生联络 第12页关于形参加实参说明:关于形参加实参说明:(1)在定义函数中指定形参,在未出现函数调用时,它们在定义函数中指定形参,在未出现函数调用时,它们并不占内存中存放单元。只有在发生函数调用时,函数并不占内存中存放单元。只有在发生函数调用时,函数max中形参才被分配内存单元。在调用结束后,形参所占中形参才被分配内存单元。在调用结束后,形参所占内存单元也被释放。内存单
13、元也被释放。(2)2)实参能够是常量、变量或表示式,如:实参能够是常量、变量或表示式,如:(,);(,);但要求它们有确定值。在调用时将实参值赋给形参。但要求它们有确定值。在调用时将实参值赋给形参。第13页(3)(3)在被定义函数中,必须指定形参类型(见例在被定义函数中,必须指定形参类型(见例2 2程序中程序中“max(,);(,);”)。)。(4)(4)实参加形参类型应相同或赋值兼容。例中实实参加形参类型应相同或赋值兼容。例中实参和形参都是整型。假如实参为整型而形参参和形参都是整型。假如实参为整型而形参x x为实型,或为实型,或者相反,则按不一样类型数值赋值规则进行转换。者相反,则按不一样类
14、型数值赋值规则进行转换。比如实参值比如实参值a a为为3.53.5,而形参,而形参x x为整型,则将实数为整型,则将实数3.53.5转换成整数转换成整数3 3,然后送到形参然后送到形参x x。字符型与整型能够相互通用。字符型与整型能够相互通用。第14页(5)(5)在语言中,实参向对形参数据传递是在语言中,实参向对形参数据传递是“值传递值传递”,单向传递,只由实参传,单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不一样给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不一样单元。单元。图一图一在调用函数时,给形参分配存放单元,并将实参对应值传递
15、给形参,调用结束后,在调用函数时,给形参分配存放单元,并将实参对应值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。所以,在执行一个被调用函数时,形参单元被释放,实参单元仍保留并维持原值。所以,在执行一个被调用函数时,形参值假如发生改变,并不会改变主调函数实参值。比如,若在执行函数过程中形参值假如发生改变,并不会改变主调函数实参值。比如,若在执行函数过程中和值变为和,而和仍为和。图二和值变为和,而和仍为和。图二图一图一图二图二第15页4.3 4.3 函数返回值函数返回值通常,希望经过函数调用使主调函数能得到一个确定值,这通常,希望经过函数调用使主调函数能得到一个确定值,这就是
16、就是函数返回值函数返回值。比如,例中,。比如,例中,maxmax(2 2,3 3)值是,)值是,maxmax(,)值是(,)值是5 5。赋值语句将这个函数值赋给变量。赋值语句将这个函数值赋给变量。关于函数返回值一些说明:关于函数返回值一些说明:(1)(1)函数返回值是经过函数中函数返回值是经过函数中returnreturn语句取得。语句取得。第16页假如需要从被调用函数带回一个函数值供主调函数使用,假如需要从被调用函数带回一个函数值供主调函数使用,被调用函数中必须包含被调用函数中必须包含return语句。假如不需要从被调用语句。假如不需要从被调用函数带回函数值能够不要函数带回函数值能够不要re
17、turn语句。语句。一个函数中能够有一个以上一个函数中能够有一个以上return语句,执行到哪一个语句,执行到哪一个return语句,哪一个语句起作用,函数结束,所以函数只语句,哪一个语句起作用,函数结束,所以函数只能返回一个值。能返回一个值。return语句后面括弧也能够不要语句后面括弧也能够不要如如:“:“return ;”;”等价于等价于“return();();”returnreturn语句将被调用函数中一个确定值带回主调函数中语句将被调用函数中一个确定值带回主调函数中去。去。第17页return后面值能够是一个表示式。后面值能够是一个表示式。比如,例中函数比如,例中函数maxmax能
18、够改写成:能够改写成:max(int,int)return(?););(2)(2)函数返回值应该属于某一个确定类型,函数返回值应该属于某一个确定类型,在定义函在定义函数时指定函数返回值类型数时指定函数返回值类型。第18页比如比如:下面是下面是3 3个函数首行:个函数首行:int max(float,float)/*函数值为整型函数值为整型*/char letter(char c1,char c2)/*函数值为字符型函数值为字符型*/double min(int,int)/*函数值为双精度型函数值为双精度型*/在语言中,在语言中,凡不加类型说明函数,自动按整型处理。凡不加类型说明函数,自动按整型
19、处理。例中例中maxmax函数首行函数类型函数首行函数类型intint能够省写,用能够省写,用Turbo C Turbo C 2.02.0编译程序时能经过,但用编译程序时能经过,但用Turbo CTurbo C 3.0 3.0编译程序编译程序时不能经过,所以时不能经过,所以,提议在定义时对全部函数都指定函数提议在定义时对全部函数都指定函数类型。类型。其中:其中:int char doubleint char double为函数类型,实质上函数类型就是为函数类型,实质上函数类型就是函数返回值类型,就是函数返回值类型,就是returnreturn语句返回数据类型。语句返回数据类型。第19页(3 3
20、)在定义函数时指定函数类型普通应该和在定义函数时指定函数类型普通应该和returnreturn语句语句中表示式类型一致。中表示式类型一致。假如函数值类型和假如函数值类型和return语句中表示式值不一致,则以语句中表示式值不一致,则以函函数类型为准数类型为准。对数值型数据,能够自动进行类型转换。即。对数值型数据,能够自动进行类型转换。即函数类型决定返回值类型。函数类型决定返回值类型。(4 4)对于不带回值函数,应该用对于不带回值函数,应该用“void”“void”定义函数为定义函数为“无类型无类型”(或称(或称“空类型空类型”)。这么,系统就确保不使函)。这么,系统就确保不使函数带回任何值,即
21、禁止在调用函数中使用被调用函数返回数带回任何值,即禁止在调用函数中使用被调用函数返回值。此时在函数体中不得出现值。此时在函数体中不得出现returnreturn语句。语句。第20页例例 返回值类型与函数类型不一样返回值类型与函数类型不一样#include void main()()int max(float,float);函数申明函数申明 float,;,;int;scanf(,);(,);max(,);(,);printf(“max is,);,);int max(float,float)float;/*z为实型变量为实型变量*/?;return();();运行情况以下:运行情况以下:1.5
22、1.5,2.5 2.5max is max is 第21页4.3 4.3 函数调用函数调用 函数调用普通形式函数调用普通形式函数调用普通形式函数调用普通形式函数调用普通形式为函数调用普通形式为:函数名函数名(实参表)(实参表)假如实参表列包含多个实参,则各参数间用逗号隔开。假如实参表列包含多个实参,则各参数间用逗号隔开。实参加形参个数应相等,类型应匹配。实参加形参按实参加形参个数应相等,类型应匹配。实参加形参按次序对应,一一传递数据。次序对应,一一传递数据。假如是调用无参函数,则假如是调用无参函数,则“实参表实参表”能够没有,但括能够没有,但括弧不能省略。弧不能省略。第22页例例 实参求值次序
23、实参求值次序#include void main()int f(int a,int b);/*函数申明函数申明*/int i=2,p;p=f(i,+i);/*函数调用函数调用*/printf(%dn,p);int f(int a,int b)/函数定义函数定义*/int c;if(ab)c=1;else if(a=b)c=0;else c=-1;return(c);第23页假如按自左至右次序求实参值,假如按自左至右次序求实参值,则函数调用相当于(,)则函数调用相当于(,)假如按假如按从右至左从右至左次序求实参值,则次序求实参值,则函数调用相当于(函数调用相当于(3,),)普通选择普通选择从右至
24、左。结果为:从右至左。结果为:0 对于函数调用对于函数调用 int i=2,p;p=f(i,+i);第24页4.3.4.3.函数调用方式函数调用方式函数语句函数语句把函数调用作为一个语句。如例把函数调用作为一个语句。如例1中中printstar();这时不要;这时不要求函数带回值,只要求函数完成一定操作。求函数带回值,只要求函数完成一定操作。函数表示式函数表示式函数出现在一个表示式中,这种表示式称为函数出现在一个表示式中,这种表示式称为函数表示式函数表示式。这时要求函数带回一个确定值以参加表示式运算。比如这时要求函数带回一个确定值以参加表示式运算。比如:*max*max(,);(,);按函数在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 二级 函数 公共课 一等奖 全国 获奖 课件
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。