第五章函数省公共课一等奖全国赛课获奖课件.pptx
《第五章函数省公共课一等奖全国赛课获奖课件.pptx》由会员分享,可在线阅读,更多相关《第五章函数省公共课一等奖全国赛课获奖课件.pptx(44页珍藏版)》请在咨信网上搜索。
1、第五章第五章 C+C+函数函数昆明理工大学昆明理工大学 电信系电信系C C+语言程序设计语言程序设计年3月1第1页本章主要内容本章主要内容l l本章介绍本章介绍C+函数,包含:函数,包含:函数概述函数概述 函数定义与申明函数定义与申明 函数调用函数调用年3月2第2页5.1 函数概述函数概述 C+语言认为函数是一个能完成某一语言认为函数是一个能完成某一独立功效独立功效子程序子程序,也就是,也就是程序模块程序模块。函数就是对复杂问题一个函数就是对复杂问题一个“自顶向下,自顶向下,逐步求精逐步求精”思想表达。思想表达。编程者能够将一个编程者能够将一个大而复杂程序大而复杂程序分解分解为若干个相对独立而
2、且功效单一为若干个相对独立而且功效单一小块程序小块程序(函数)进行编写(函数)进行编写,并经过在各个函数之,并经过在各个函数之间进行间进行调用调用,来实现总体功效。,来实现总体功效。年3月3第3页5.1 函数概述(续)函数概述(续)使用函数优点:使用函数优点:可读性好;可读性好;易于查错和修改;易于查错和修改;便于分工编写,分阶段调试;便于分工编写,分阶段调试;各各个个函函数数之之间间接接口口清清楚楚,便便于于相相互互间间交交换换信息和使用;信息和使用;节约程序代码和存放空间;节约程序代码和存放空间;降低用户总工作量;降低用户总工作量;成为实现结构程序设计思想主要工具;成为实现结构程序设计思想
3、主要工具;扩充语言和计算机原设计能力;扩充语言和计算机原设计能力;便于验证程序正确性。便于验证程序正确性。年3月4第4页5.1 函数概述(续)函数概述(续)设计设计C+程序过程,实际上就是编写函程序过程,实际上就是编写函数过程,最少也要编写一个数过程,最少也要编写一个main()函数。()函数。执行执行C+程序,也就是执行对应程序,也就是执行对应main()()函数。函数。即从即从main()函数第一个左花括号()函数第一个左花括号“”开始,依次执行后面语句,直到最终一开始,依次执行后面语句,直到最终一个右花括号个右花括号“”为止。假如在执行过程中为止。假如在执行过程中碰到其它函数,则调用其它
4、函数。调用完碰到其它函数,则调用其它函数。调用完后,返回到刚才调用函数下一条语句继续后,返回到刚才调用函数下一条语句继续执行。执行。而其它函数也只有在执行而其它函数也只有在执行main()()函数过程中被调用时才会执行。函数过程中被调用时才会执行。年3月5第5页5.1 函数概述(续)函数概述(续)函数能够被一个函数调用,也能够调函数能够被一个函数调用,也能够调用另一个函数,用另一个函数,它们之间能够存在着调用它们之间能够存在着调用上嵌套关系。上嵌套关系。不过,不过,C+不允许函数定义不允许函数定义嵌套,嵌套,即在函数定义中再定义一个函数是即在函数定义中再定义一个函数是非法。非法。C+函数是一个
5、独立完成某个功效语句函数是一个独立完成某个功效语句块,块,函数与函数之间经过输入和输出来联函数与函数之间经过输入和输出来联络。络。年3月6第6页5.2 函数定义与申明函数定义与申明在在C+程序中调用函数之前,程序中调用函数之前,首先要对首先要对函数进行定义函数进行定义。假如调用此函数在前,函。假如调用此函数在前,函数定义在后,就会产生编译错误。数定义在后,就会产生编译错误。为了使函数调用不受函数定义位置影响,为了使函数调用不受函数定义位置影响,能够在调用函数前进行函数申明。能够在调用函数前进行函数申明。这么,这么,不论函数是在哪里定义,只要在调用前进不论函数是在哪里定义,只要在调用前进行函数申
6、明,就能够确保函数调用正当性。行函数申明,就能够确保函数调用正当性。年3月7第7页5.2.1 函数定义函数定义C+中中每每一一个个函函数数都都是是从从四四个个方方面面来来进进行行定定义义:类类型型、函函数数名名、形形式式参参数数表表、函函数体。数体。定义一个函数语法格式为:定义一个函数语法格式为:类型类型 函数名(形式参数表)函数名(形式参数表)函数体;函数体;年3月8第8页5.2.1 函数定义(续)函数定义(续)比如:比如:intmax(inta,intb)intt;if(ab)t=a;elset=b;returnt;年3月9第9页5.2.1 函数定义函数定义类型就是该函数类型类型就是该函数
7、类型,也就是该函数返回,也就是该函数返回值类型,这类型能够是值类型,这类型能够是C+中除函数、数组类中除函数、数组类型之外任何一个正当数据类型,型之外任何一个正当数据类型,包含普通类型、包含普通类型、指针类型和引用类型等。指针类型和引用类型等。函数返回值通常指明了该函数处理结果,函数返回值通常指明了该函数处理结果,由函数体中由函数体中return语句给出语句给出。一个函数能够有。一个函数能够有返回值,也能够无返回值(称为无返回值函数返回值,也能够无返回值(称为无返回值函数或无类型函数)。此时需要使用保留字或无类型函数)。此时需要使用保留字void作作为类型名,而且函数体中也不需要再写为类型名,
8、而且函数体中也不需要再写return语句,或者语句,或者return后面什么也没有。后面什么也没有。每个函数都有类型,假如在函数定义时没每个函数都有类型,假如在函数定义时没有明确指定类型,有明确指定类型,则默认类型为则默认类型为int。年3月10第10页5.2.1 函数定义(续)函数定义(续)函数名是一个函数名是一个有效有效C+标识符标识符,遵照,遵照普普通命名规则通命名规则。在函数名后面必须跟一对小。在函数名后面必须跟一对小括号括号“()()”,用来将函数名与变量名或,用来将函数名与变量名或其它用户自定义其它用户自定义标识符区分开来标识符区分开来。在小括号中能够没有任何信息,也能在小括号中能
9、够没有任何信息,也能够包含形式参数表。够包含形式参数表。C+程序经过使用这程序经过使用这个函数名和实参表能够调用该函数。个函数名和实参表能够调用该函数。主函数名称要求取编译器默认名称主函数名称要求取编译器默认名称main()。()。年3月11第11页5.2.1 函数定义(续)函数定义(续)l l形式参数表又称参数表,写在函形式参数表又称参数表,写在函数名后面一对圆括号内。它可包含任意多数名后面一对圆括号内。它可包含任意多个(含个(含0个,即没有)参数说明项,当多个,即没有)参数说明项,当多于一个时其前后两个参数说明项之间必须于一个时其前后两个参数说明项之间必须用逗号分开。用逗号分开。l l每个
10、参数说明项由一种已定义数每个参数说明项由一种已定义数据类型和一个变量标识符组成,该变量标据类型和一个变量标识符组成,该变量标识符称为该函数形式参数,简称形参,形识符称为该函数形式参数,简称形参,形参前面给出数据类型称为该形参类型。每参前面给出数据类型称为该形参类型。每个形参类型可认为任一种数据类型,包含个形参类型可认为任一种数据类型,包含普通类型、指针类型、数组类型、引用类普通类型、指针类型、数组类型、引用类型等。型等。l l一个函数定义中一个函数定义中可以被可以被省略,表明该函数为无参函数,若省略,表明该函数为无参函数,若用用void取代,则也表明是无参函数,取代,则也表明是无参函数,若若不
11、为空,同时又不是保留字不为空,同时又不是保留字void,则称为带参函数。,则称为带参函数。年3月12第12页5.2.1 函数定义(续)函数定义(续)是一条复合语句,它以左花是一条复合语句,它以左花括号开始,到右花括号结束,中间为一条括号开始,到右花括号结束,中间为一条或若干条或若干条C+语句,用于实现函数执行功语句,用于实现函数执行功效。效。注意:在一个函数体内允许有一个或注意:在一个函数体内允许有一个或多个多个return语句,一旦执行到其中某一个语句,一旦执行到其中某一个return语句时,语句时,return后面语句就不再执后面语句就不再执行,直接返回调用位置继续向下执行。行,直接返回调
12、用位置继续向下执行。年3月13第13页5.2.1 函数定义(续)函数定义(续)函数形参也能够在函数体外说明。函数形参也能够在函数体外说明。函数形参也能够在函数体外说明。函数形参也能够在函数体外说明。以下例:以下例:以下例:以下例:func1(inta,intb)func1(inta,intb)也可写成:也可写成:也可写成:也可写成:func1(a,b)func1(a,b)inta;inta;intb;intb;年3月14第14页5.2.1 函数定义(续)函数定义(续)#includeiostream.h#includeiostream.hintfunc(intn)intfunc(intn)if
13、(n0)if(n0)return1;return1;elseif(n=0)elseif(n=0)return0;return0;elsereturn-1;elsereturn-1;voidmain()voidmain()intn;intn;coutPleasecoutPleaseinputinputn:endl;n:n;cinn;coutnthecoutntheresult:func(n)enresult:func(n)endl;dl;例例5-1:给出以下程序运行结果。:给出以下程序运行结果。年3月15第15页5.2.1 函数定义(续)函数定义(续)此程序运行结果为:此程序运行结果为:此程序运
14、行结果为:此程序运行结果为:Pleaseinputn:Pleaseinputn:2 2 theresult:1theresult:1Pleaseinputn:Pleaseinputn:-2-2 theresult:-1theresult:-1年3月16第16页5.2.1 函数定义(续)函数定义(续)请注意:请注意:请注意:请注意:C+C+中不允许函数定义嵌套,即在中不允许函数定义嵌套,即在中不允许函数定义嵌套,即在中不允许函数定义嵌套,即在函数定义中再定义一个函数是非法。一个函数只函数定义中再定义一个函数是非法。一个函数只函数定义中再定义一个函数是非法。一个函数只函数定义中再定义一个函数是非法
15、。一个函数只能定义在别函数外部,能定义在别函数外部,能定义在别函数外部,能定义在别函数外部,函数定义之间都是平行,函数定义之间都是平行,函数定义之间都是平行,函数定义之间都是平行,相互独立。相互独立。相互独立。相互独立。比如:下面代码在主函数中比如:下面代码在主函数中比如:下面代码在主函数中比如:下面代码在主函数中非法嵌套非法嵌套非法嵌套非法嵌套了一个了一个了一个了一个f f()函数定义:()函数定义:()函数定义:()函数定义:voidmain()voidmain()voidf()voidf()/年3月17第17页5.2.2 函数申明函数申明l l函数申明也称函数模型(或函数函数申明也称函数
16、模型(或函数原型)。在主调函数中,假如要调用另一原型)。在主调函数中,假如要调用另一个函数,则须在本函数或本文件中开头将个函数,则须在本函数或本文件中开头将要被调用函数事先作一申明。申明函数,要被调用函数事先作一申明。申明函数,就是告诉编译器函数返回类型、名称和形就是告诉编译器函数返回类型、名称和形参表组成,方便编译系统对函数调用进行参表组成,方便编译系统对函数调用进行检验。检验。l l函数申明普通格式为:函数申明普通格式为:l l 函数类型函数类型 函数名(形式参数表);函数名(形式参数表);l l除了需在函数申明末尾加上一个除了需在函数申明末尾加上一个分号分号“;”之外,其它内容与函数定义
17、中第之外,其它内容与函数定义中第一行(称函数头)内容一样。一行(称函数头)内容一样。年3月18第18页5.2.2 函数申明(续)函数申明(续)比如:设有一函数定义为:比如:设有一函数定义为:比如:设有一函数定义为:比如:设有一函数定义为:doublefunc1(doublea,intb,floatc)doublefunc1(doublea,intb,floatc)函数体函数体函数体函数体 正确完整函数申明应为:正确完整函数申明应为:正确完整函数申明应为:正确完整函数申明应为:doublefunc1(doublex,inty,floatz);doublefunc1(doublex,inty,fl
18、oatz);/末尾要加上分号末尾要加上分号末尾要加上分号末尾要加上分号 年3月19第19页5.2.2 函数申明(续)函数申明(续)也能够写为以下形式:也能够写为以下形式:也能够写为以下形式:也能够写为以下形式:doublefunc1(double,int,float);doublefunc1(double,int,float);/函数申明中省略了形参名函数申明中省略了形参名函数申明中省略了形参名函数申明中省略了形参名或写为以下形式:或写为以下形式:或写为以下形式:或写为以下形式:doublefunc1(doublea,intb,floatc);doublefunc1(doublea,intb,
19、floatc);/函数申明中形参名与函数申明中形参名与函数申明中形参名与函数申明中形参名与/函数定义中形参名不一样函数定义中形参名不一样函数定义中形参名不一样函数定义中形参名不一样年3月20第20页5.2.2 函数申明(续)函数申明(续)不能写为以下形式:不能写为以下形式:不能写为以下形式:不能写为以下形式:doublefunc1(x,y,z);doublefunc1(x,y,z);/函数申明中省略了形参类型函数申明中省略了形参类型函数申明中省略了形参类型函数申明中省略了形参类型 或:或:或:或:func1(doublex,inty,floatz);func1(doublex,inty,flo
20、atz);/函数申明中省略了函数类型函数申明中省略了函数类型函数申明中省略了函数类型函数申明中省略了函数类型 或:或:或:或:doublefunc1(inty,floatz,doublex);doublefunc1(inty,floatz,doublex);/函数申明中形参次序调换了函数申明中形参次序调换了函数申明中形参次序调换了函数申明中形参次序调换了 年3月21第21页5.3 函数调用函数调用 5.3.1 5.3.1 函数调用格式:函数调用格式:在在在在C+C+中中中中,除除除除了了了了主主主主函函函函数数数数mainmain由由由由系系系系统统统统自自自自动动动动调调调调用用用用外外外外
21、,其其其其它它它它函函函函数数数数都都都都是是是是由由由由主主主主函函函函数数数数直直直直接接接接或或或或间间间间接接接接调调调调用用用用。函函函函数调用语法格式为:数调用语法格式为:数调用语法格式为:数调用语法格式为:函数名函数名函数名函数名 (实际参数表);(实际参数表);(实际参数表);(实际参数表);实参应该与函数定义中形参表中形参一一对实参应该与函数定义中形参表中形参一一对实参应该与函数定义中形参表中形参一一对实参应该与函数定义中形参表中形参一一对应应应应,即个数相等、次序一致且对应参数数据类型,即个数相等、次序一致且对应参数数据类型,即个数相等、次序一致且对应参数数据类型,即个数相
22、等、次序一致且对应参数数据类型相同或相容相同或相容相同或相容相同或相容 。每个实参是一个表示式,而且必。每个实参是一个表示式,而且必。每个实参是一个表示式,而且必。每个实参是一个表示式,而且必须有确定值。须有确定值。须有确定值。须有确定值。年3月22第22页5.3.1 函数调用格式:函数调用格式:如:如:如:如:g1(25)g1(25)/实参是一个整数实参是一个整数实参是一个整数实参是一个整数g2(x)g2(x)/实参是一个变量实参是一个变量实参是一个变量实参是一个变量g3(a,2*b+3)g3(a,2*b+3)/第一个为变量,第二个运算表第一个为变量,第二个运算表第一个为变量,第二个运算表第
23、一个为变量,第二个运算表/达式达式达式达式g4(sin(x),)g4(sin(x),)/第第第第一一一一个个个个为为为为函函函函数数数数调调调调用用用用表表表表示示示示式式式式,第二第二第二第二/个为字符常量个为字符常量个为字符常量个为字符常量g5(&d,*p,x/y-1)g5(&d,*p,x/y-1)/分别为取地址运算、间接访问和分别为取地址运算、间接访问和分别为取地址运算、间接访问和分别为取地址运算、间接访问和/普通运算表示式普通运算表示式普通运算表示式普通运算表示式 年3月23第23页5.3.1 函数调用格式(续)函数调用格式(续)常见函数调用方式有以下两种:常见函数调用方式有以下两种:
24、常见函数调用方式有以下两种:常见函数调用方式有以下两种:l l方方方方式式式式一一一一:将将将将函函函函数数数数调调调调用用用用作作作作为为为为一一一一条条条条表表表表示示示示式式式式语语语语句句句句使使使使用用用用,只只只只要要要要求求求求函函函函数数数数完完完完成成成成一一一一定定定定操操操操作作作作,而而而而不不不不使使使使用用用用其其其其返返返返回回回回值值值值。若若若若函函函函数数数数调调调调用用用用带带带带有返回值,则这个值将会自动丢失。比如:有返回值,则这个值将会自动丢失。比如:有返回值,则这个值将会自动丢失。比如:有返回值,则这个值将会自动丢失。比如:max(3,5);max(
25、3,5);l l方方方方式式式式二二二二:对对对对于于于于含含含含有有有有返返返返回回回回值值值值函函函函数数数数来来来来说说说说,把把把把函函函函数数数数调调调调用用用用语语语语句句句句看看看看作作作作语语语语句句句句一一一一部部部部分分分分,使使使使用用用用函函函函数数数数返返返返回回回回值值值值参参参参加加加加对对对对应应应应运运运运算算算算或或或或执执执执行行行行对对对对应操作。比如:应操作。比如:应操作。比如:应操作。比如:inta=max(3,5);inta=max(3,5);inta=max(3,5)+1;inta=max(3,5)+1;coutmax(3,5)endl;cout
- 配套讲稿:
如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。