机电C函数省公共课一等奖全国赛课获奖课件.pptx
《机电C函数省公共课一等奖全国赛课获奖课件.pptx》由会员分享,可在线阅读,更多相关《机电C函数省公共课一等奖全国赛课获奖课件.pptx(77页珍藏版)》请在咨信网上搜索。
1、第第6 6章章 函数函数第第6章章函函数数第1页第第6 6章章 函数函数概概述述C语语言言是是由由函函数数组组成成。经经过过函函数数定定义义把把实实现现细细节节封封闭闭起起来来,经经过过函函数数调调用用组组合合各各种种功功效效,就就象象用一个个构件盖房子似。用一个个构件盖房子似。本本章章介介绍绍C语语言言中中函函数数定定义义、函函数数调调用用、函函数数间间数数据据传传递递问问题题以以及及变变量量存存放放类类别别、作作用用域域和和生生存期。存期。第2页第第6 6章章 函数函数考评内容考评内容1.函数定义方法。函数定义方法。2.函数类型和返回值。函数类型和返回值。3.形式参数与实际参数,参数值传递
2、。形式参数与实际参数,参数值传递。4.函数正确调用,嵌套调用,递归调用。函数正确调用,嵌套调用,递归调用。5.局部变量和全局变量。局部变量和全局变量。6.变量存放类别、变量作用域和生存期。变量存放类别、变量作用域和生存期。7.内部函数与外部函数。内部函数与外部函数。第3页第第6 6章章 函数函数序言序言6.1C语言程序结构语言程序结构C程序程序程序文件程序文件1函数11函数12函数1n程序文件程序文件m函数m1函数m2函数mn程序文件程序文件2函数21函数22函数2n第4页第第6 6章章 函数函数 说明:说明:1.函数类型和返回值。函数类型和返回值。2.任任何何一一个个C程程序序可可由由多多个
3、个源源程程序序文文件件(.C)组组成成。每个源程序文件(每个源程序文件(.C)由多个函数组成。由多个函数组成。3.任任何何一一个个C程程序序且且必必须须有有且且只只能能有有一一个个main函函数数。C程程序序执执行行都都是是从从main函函数数开开始始,调调用用其其它它函函数数后后流程回到流程回到mian函数,在函数,在main函数中结束。函数中结束。4.4.当当main函函数数调调用用其其它它函函数数时时,我我们们称称main函函数数为为主主调调函函数数,而而称称其其它它函函数数为为被被调调函函数数。当当其其它它函函数数调用另外一些函数时,它们又成为主调函数。调用另外一些函数时,它们又成为主
4、调函数。第5页第第6 6章章 函数函数 说明:说明:5.C语言中使用函数种类有各种,我们可语言中使用函数种类有各种,我们可以从不一样角度来了解。以从不一样角度来了解。函数从用户角度分为:函数从用户角度分为:标准函数(库函数)标准函数(库函数)用户自定义函数用户自定义函数函数从形式上分为:函数从形式上分为:无参函数无参函数有参函数有参函数第6页第第6 6章章 函数函数例例例例6-1 6-1 6-1 6-1 函数举例函数举例函数举例函数举例#includefunc1()/*fun1函数定函数定义义*/printf(*n);printf(THISISACFUNCTIONEXAMPLE!n);prin
5、tf(*n);main()func1();/*main函数调用函数调用fun1函数函数*/程序运行结果以下:程序运行结果以下:*THISISACFUNCTIONEXAMPLE!*第7页第第6 6章章 函数函数普通格式普通格式类型标识符类型标识符 函数名(形参类型说明表)函数名(形参类型说明表)申明语句申明语句执行语句执行语句 例例有参函数有参函数intmax(intx,inty)intz;z=xy?x:y;return(z);例例有参函数有参函数不不能以下定义能以下定义intmax(intx,y)intz;z=xy?x:y;return(z);例例空函数空函数dummy()6.2函数定义普通形
6、式函数定义普通形式 例例无参函数无参函数fun1()printf(“*n”);或或intfun1()printf(“*n”);函数返回值类型缺省函数返回值类型缺省int型型无返回值无返回值void正当标识符正当标识符用于指出每个形参类型、名用于指出每个形参类型、名称。称。注意,即使没有形参,()注意,即使没有形参,()也不能省也不能省函数体函数体函数体为函数体为空空第8页第第6 6章章 函数函数例例例例6-2 6-2 6-2 6-2 定义一个函数,用于求两个数相乘结果定义一个函数,用于求两个数相乘结果定义一个函数,用于求两个数相乘结果定义一个函数,用于求两个数相乘结果 main()floatm
7、ul(floatx,floaty);/*mul函数申明函数申明*/floata,b,c;scanf(“%f,%f”,&a,&b);c=mul(a,b);/*调用调用mul函数求两数相乘结果函数求两数相乘结果*/printf(“Theresultis%f”,c);floatmul(floatx,floaty)/*mul函数以及形参定义函数以及形参定义*/floatz;z=x*y;return(z);/*返回函数值语句返回函数值语句*/程序运行结果以下:程序运行结果以下:2.1,3.4 Theresultis7.140000第9页第第6 6章章 函数函数c=mul(a,b);(main函数)函数)
8、(mul函数)函数)floatmul(floatx,floaty)floatz;z=x*y;return(z);例例例例6-2 6-2 6-2 6-2 程序执行过程程序执行过程程序执行过程程序执行过程 第10页第第6 6章章 函数函数 函数间数据传递方式有三种:函数间数据传递方式有三种:1.参数传递(值传递和地址传递)参数传递(值传递和地址传递)利用实参和形参实现(实参利用实参和形参实现(实参形参)形参)2.函数返回值函数返回值 利用利用return语句实现(形参语句实现(形参实参)实参)3.全局变量全局变量6.3函数之间数据传递函数之间数据传递 第11页第第6 6章章 函数函数 1.1.形参
9、加实参形参加实参 形式参数:形式参数:定义函数时函数名后面括号中变量名。定义函数时函数名后面括号中变量名。形参出现在被调函数定义中。形参出现在被调函数定义中。实际参数:实际参数:调用函数时函数名后面括号中表示式。调用函数时函数名后面括号中表示式。实参出现在主调函数调用被调函数语句中。实参出现在主调函数调用被调函数语句中。6.3.1函数参数函数参数实参加形参实参加形参 2.2.实参实参-形参传递数据方式形参传递数据方式 值传递值传递含义含义:在调用函数时,主调函数把实参变在调用函数时,主调函数把实参变量值复制给被调函数形参,在函数内部则使用形量值复制给被调函数形参,在函数内部则使用形参中值进行处
10、理。参中值进行处理。值传递方式:值传递方式:数据复制数据复制 地址复制地址复制 第12页第第6 6章章 函数函数例例6-3 6-3 求三个数平均值求三个数平均值 floataver(floatf1,floatf2,floatf3)floatz;z=(f1+f2+f3)/3;return(z);main()floata,b,c,average;printf(pleaseentera,b,c:n);scanf(%f,%f,%fn,&a,&b,&c);average=aver(a,b,c);printf(average=%fn,average);程序运行结果以下:程序运行结果以下:pleaseent
11、era,b,c:4.0,8.0,5.0 average=5.666667值传递方式一值传递方式一:数据复制数据复制值传递(数据复制)第13页第第6 6章章 函数函数例例6-46-4编写一个函数交换主函数中两个变量值编写一个函数交换主函数中两个变量值 swap(inta,intb)inttemp;temp=a;a=b;b=temp;printf(“na=%db=%dn”,x,y);main()intx,y;printf(“pleaseenterxandy:”);scanf(“%d%d”,&x,&y);printf(“nx=%dy=%d”,a,b);printf(“n-doswap-”);swap
12、(x,y);printf(“nx=%dy=%d”,x,y);.200A5变量变量a 变量变量b(main)8558 58数据复制数据复制 变量变量temp 变量变量y 变量变量x(swap)值传递(数据复制)程序运行结果以下:程序运行结果以下:pleaseenterxandy:58 x=5y=8-doswap-a=8b=5x=5y=8第14页第第6 6章章 函数函数例例6-56-5求一维数组中各元素之和求一维数组中各元素之和 main()inti,a10;floatmv;floatsub();for(i=0;i10;i+)scanf(%d,&ai);mv=sub(a);printf(SUB=%
13、fn,mv);floatsub(intd10)floatsum;inti;for(sum=0,i=0;i10;i+)sum+=di;returnsum;值传递(地址复制)值传递方式二值传递方式二:地址复制地址复制1424681012161820200A200C200Ead程序运行结果以下:程序运行结果以下:2468101214161820 SUB=110.000000第15页第第6 6章章 函数函数 注意:注意:6.3.1函数参数函数参数实参加形参实参加形参1.1.数组名代表数组首地址。数组名代表数组首地址。2.2.地址传递方式是经过将实参存放地址值传地址传递方式是经过将实参存放地址值传给形参
14、来实现数据传送。其实质是让形参和给形参来实现数据传送。其实质是让形参和实参使用相同存放空间。实参使用相同存放空间。第16页第第6 6章章 函数函数函数参数小结函数参数小结:6.3.1函数参数函数参数实参加形参实参加形参 1.1.形参在被调函数中定义,实参在主调函数中形参在被调函数中定义,实参在主调函数中定义。定义。2.2.形参定义时编译系统并不为其分配存放空形参定义时编译系统并不为其分配存放空间,也无初值,只有在函数调用时,暂时分配存间,也无初值,只有在函数调用时,暂时分配存储空间,接收来自实参值,函数调用结束,形储空间,接收来自实参值,函数调用结束,形参所占用内存空间释放,值消失。所以,形参
15、参所占用内存空间释放,值消失。所以,形参只有在函数内部有效。函数调用结束返回主调函只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。数后则不能再使用该形参变量。第17页第第6 6章章 函数函数函数参数小结函数参数小结:6.3.1函数参数函数参数实参加形参实参加形参 3.3.实参能够是常量、变量、表示式、函数、实参能够是常量、变量、表示式、函数、数组、指针等,不论实参是何种类型量,在数组、指针等,不论实参是何种类型量,在进行函数调用时,它们都必须含有确定值,进行函数调用时,它们都必须含有确定值,方便把这些值传送给形参。方便把这些值传送给形参。4.4.实参和形参在数量、类型、次
16、序上应一实参和形参在数量、类型、次序上应一致,不然会发生致,不然会发生“类型不匹配类型不匹配”错误。错误。5.5.函数调用中发生数据传送是单向。函数调用中发生数据传送是单向。(实参(实参形参形参)第18页第第6 6章章 函数函数 返回语句返回语句:形式:形式:return(return(表示式表示式)。功效:功效:使程序控制从被调函数返回到主调函数使程序控制从被调函数返回到主调函数中,中,同时把被调函数返回值带给主调函数。同时把被调函数返回值带给主调函数。6.3.2函数返回值函数返回值表示式能够是常量、变量、函数、数表示式能够是常量、变量、函数、数组元素、地址常量和其它形式表示式组元素、地址常
17、量和其它形式表示式等。等。第19页第第6 6章章 函数函数例例6-66-6计算分段函数值计算分段函数值#includefloatsub2(floata)floatb;if(a=0&a1)b=a+1;elseif(a2)b=2*a+5;elseb=0;return(b);main()floatx,y;printf(enterx:);scanf(%f,&x);y=sub2(x);printf(x=%f,y=%f,x,y);程序运行结果以下:程序运行结果以下:enterx:1.5 x=1.500000,y=8.000000第20页第第6 6章章 函数函数 说明:说明:1.return语句将被调用函数
18、中一个确定值带回语句将被调用函数中一个确定值带回主调函数中去,且一个主调函数中去,且一个return语句只能带回一个返语句只能带回一个返回值。回值。2.2.一个函数体内能够有多个返回语句,一个函数体内能够有多个返回语句,不论执行不论执行到哪一个,函数都结束,回到主调函数。到哪一个,函数都结束,回到主调函数。3.return 3.return后面括号内若是一个常量或变量,则后面括号内若是一个常量或变量,则能够省略能够省略()()4.4.在定义函数时应该指定函数返回值类型在定义函数时应该指定函数返回值类型(简称简称函数类型),函数类型),returnreturn语句中表示式类型应与定义函语句中表示
19、式类型应与定义函数时所指定函数类型一致。数时所指定函数类型一致。return0;等价于等价于return(0);#includefloatsub2(floata)floatb;if(a=0&a1)return(a+1);elseif(a2)return(2*a+5);elsereturn0;main()floatx,y;printf(enterx:);scanf(%f,&x);y=sub2(x);printf(x=%f,y=%f,x,y);6.3.2函数返回值函数返回值/*/*例例6-7求两数中最大值求两数中最大值*/#includemax(floatx,floaty)floatz;z=xy?
20、x:y;return(z);main()floata,b;intc;scanf(%f%f,&a,&b);c=max(a,b);printf(MAXis%dn,c);程序运行结果以下:程序运行结果以下:4.56.8 MAXis6第21页第第6 6章章 函数函数 说明:说明:1.1.假如函数类型和假如函数类型和return语句中表示式值语句中表示式值类型不一致,则以函数类型为准,自动进行类类型不一致,则以函数类型为准,自动进行类型转换。型转换。2.2.不带返回值函数,能够明确定义为不带返回值函数,能够明确定义为“空空类型类型”,类型说明符为,类型说明符为“void”6.3.2函数返回值函数返回值第
21、22页第第6 6章章 函数函数6.4.1函数调用普通形式函数调用普通形式6.4函数调用函数调用 调用形式:调用形式:函数名函数名(实参表实参表);说明:说明:1.1.实参表中实参个数、实参值类型以及出实参表中实参个数、实参值类型以及出现次序应与形参表实际情况相匹配。现次序应与形参表实际情况相匹配。2.2.假如被调用函数是无参函数,则函数调用时假如被调用函数是无参函数,则函数调用时也没有实参,但函数名后面圆括号不能省略。也没有实参,但函数名后面圆括号不能省略。3.3.在函数调用中还应该注意一个问题是求值在函数调用中还应该注意一个问题是求值次序问题。次序问题。第23页第第6 6章章 函数函数mai
22、n()inti=8;printf(%d,%d,%d,%dn,+i,-i,i+,i-);例例6-8 6-8 参数求值次序参数求值次序从右到左求值从右到左求值运行结果:运行结果:8,7,7,8从左到右求值从左到右求值运行结果:运行结果:9,8,8,9第24页第第6 6章章 函数函数函数表示式:函数表示式:例例 c=max(a,b);c=max(a,b);函数语句:函数语句:例例 fun1();fun1();函数参数:函数参数:例例 printf(“%d”,max(a,b);printf(“%d”,max(a,b);6.4.2函数调用方式函数调用方式第25页第第6 6章章 函数函数 1.1.对被调用
23、函数要求对被调用函数要求必须是已存在函数。必须是已存在函数。库函数库函数:stdio.h string.h math.h stdio.h string.h math.h。用户自定义函数用户自定义函数:在主调函数中对被调在主调函数中对被调函数作申函数作申明。明。6.4.3对被调用函数申明对被调用函数申明 2.2.函数申明函数申明普通形式普通形式1 1:函数类型:函数类型 函数名函数名(形参类型形参类型1,1,形参形参类型类型2,);2,);普通形式普通形式2:2:函数类型函数类型 函数名函数名(形参类型形参类型1 1 形参形参1,1,形参类型形参类型2 2 形参形参2,)2,);第26页第第6
24、6章章 函数函数main()longf(intn);/*对被调函数对被调函数f申明申明*/longsum;sum=1+f(2)+f(3)+f(4)+f(5);printf(“sum=%ldn”,sum);longf(intn)/*函数函数f定义定义*/inti;longy=1;for(i=1;i=n;i+)y=y*i;return(y);例例6-9 6-9 编程计算编程计算1!+2!+3!+4!+5!1!+2!+3!+4!+5!程序运行情况以下:程序运行情况以下:sum=153等价于等价于:longf(int);第27页第第6 6章章 函数函数 注意:注意:1.1.函数定义与函数申明不一样函数
25、定义与函数申明不一样函数申明位置:主调函数数听说明部分函数申明位置:主调函数数听说明部分 2 2.以下情况下,可不作函数说明以下情况下,可不作函数说明 (1 1)若函数返值是)若函数返值是charchar或或intint型,系统自动按型,系统自动按intint型处理。型处理。(2 2)被调用函数定义出现在主调函数之前。)被调用函数定义出现在主调函数之前。(3 3)假如在全部函数定义之前,在函数外预先)假如在全部函数定义之前,在函数外预先说明了各个函数类型,则在以后各主调函数说明了各个函数类型,则在以后各主调函数中,可不再对被调函数作申明。中,可不再对被调函数作申明。6.4.3对被调用函数申明对
- 配套讲稿:
如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。