C语言程序设计PPT课件第7章-函数.ppt
《C语言程序设计PPT课件第7章-函数.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计PPT课件第7章-函数.ppt(78页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能第第第第7 7 7 7章章章章 函数函数函数函数2023/1/182/78为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能本章学习内容本章学习内容 函数定义、函数调用、函数原型、函数的参数函数定义、函数调用、函数原型、函数的参数函数定义、函数调用、函数原型、函数的参数函数定义、函数调用、函数原型、函数的参数传递与返回值传递与返回值传递与返回值传递与返回值 递归函数和函数的递归调用递归函数和函数的递归调用递归函数和函数的递归调
2、用递归函数和函数的递归调用 函数封装,函数复用,函数设计的基本原则,函数封装,函数复用,函数设计的基本原则,函数封装,函数复用,函数设计的基本原则,函数封装,函数复用,函数设计的基本原则,程序的健壮性程序的健壮性程序的健壮性程序的健壮性 变量的作用域与存储类型,全局变量、自动变变量的作用域与存储类型,全局变量、自动变变量的作用域与存储类型,全局变量、自动变变量的作用域与存储类型,全局变量、自动变量、静态变量、寄存器变量量、静态变量、寄存器变量量、静态变量、寄存器变量量、静态变量、寄存器变量 “自顶向下、逐步求精自顶向下、逐步求精自顶向下、逐步求精自顶向下、逐步求精”的模块化程序设计方的模块化程
3、序设计方的模块化程序设计方的模块化程序设计方法法法法 2023/1/183/78为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能数学中的函数数学中的函数自变量自变量因变量因变量函数名函数名程序设计中的函数程序设计中的函数程序设计中的函数程序设计中的函数 程序设计中的函数不局限于计算程序设计中的函数不局限于计算计算类,如打印阶乘表的程序计算类,如打印阶乘表的程序计算类,如打印阶乘表的程序计算类,如打印阶乘表的程序判断推理类,如排序、查找判断推理类,如排序、查找判断推理类,如排序、查找判断推理类,如排序、查找2023/1/184/78为
4、深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能问题的提出问题的提出 读多少行的程序能让你不头疼?读多少行的程序能让你不头疼?读多少行的程序能让你不头疼?读多少行的程序能让你不头疼?假如系统提供的函数假如系统提供的函数假如系统提供的函数假如系统提供的函数printf()printf()由由由由1010行代码替行代码替行代码替行代码替换,那么你编过的程序会成什么样子?换,那么你编过的程序会成什么样子?换,那么你编过的程序会成什么样子?换,那么你编过的程序会成什么样子?实际上一个实际上一个实际上一个实际上一个printf()printf(
5、)有上千行代码有上千行代码有上千行代码有上千行代码 main()main()中能放多少行代码?中能放多少行代码?中能放多少行代码?中能放多少行代码?如果所有代码都在如果所有代码都在如果所有代码都在如果所有代码都在main()main()中,怎么团队合作中,怎么团队合作中,怎么团队合作中,怎么团队合作?如果代码都在一个文件中,怎么团队合作?如果代码都在一个文件中,怎么团队合作?如果代码都在一个文件中,怎么团队合作?如果代码都在一个文件中,怎么团队合作?2023/1/185/78为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能问题的提出
6、问题的提出 三国演义三国演义中有这样一段描写:中有这样一段描写:懿问曰:懿问曰:懿问曰:懿问曰:“孔明寝食及事之烦简若何?孔明寝食及事之烦简若何?孔明寝食及事之烦简若何?孔明寝食及事之烦简若何?”使者使者使者使者曰:曰:曰:曰:“丞相夙兴夜寐,罚二十以上皆亲览焉。丞相夙兴夜寐,罚二十以上皆亲览焉。丞相夙兴夜寐,罚二十以上皆亲览焉。丞相夙兴夜寐,罚二十以上皆亲览焉。所啖之食,日不过数升。所啖之食,日不过数升。所啖之食,日不过数升。所啖之食,日不过数升。”懿顾谓诸将曰:懿顾谓诸将曰:懿顾谓诸将曰:懿顾谓诸将曰:“孔明食少事烦,其能久乎?孔明食少事烦,其能久乎?孔明食少事烦,其能久乎?孔明食少事烦,
7、其能久乎?”此话音落不久,诸葛亮果然病故于五丈原。此话音落不久,诸葛亮果然病故于五丈原。此话音落不久,诸葛亮果然病故于五丈原。此话音落不久,诸葛亮果然病故于五丈原。“事无巨细事无巨细”,“事必躬亲事必躬亲”管理学的观点是极其排斥这种做法的,认为工管理学的观点是极其排斥这种做法的,认为工管理学的观点是极其排斥这种做法的,认为工管理学的观点是极其排斥这种做法的,认为工作必须分工,各司其职作必须分工,各司其职作必须分工,各司其职作必须分工,各司其职其中的思想,在程序设计里也适用其中的思想,在程序设计里也适用其中的思想,在程序设计里也适用其中的思想,在程序设计里也适用 2023/1/186/78为深入
8、学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能7.1分而治之与信息隐藏分而治之与信息隐藏 分而治之(分而治之(Divide and Conquer,Wirth,1971)函数把较大的任务分解成若干个较小的任务,并函数把较大的任务分解成若干个较小的任务,并函数把较大的任务分解成若干个较小的任务,并函数把较大的任务分解成若干个较小的任务,并提炼出公用任务提炼出公用任务提炼出公用任务提炼出公用任务 信息隐藏(信息隐藏(Information Hiding,Parnas,1972)设计得当的函数可把具体操作细节对外界隐藏起设计得当的函数可把具体
9、操作细节对外界隐藏起设计得当的函数可把具体操作细节对外界隐藏起设计得当的函数可把具体操作细节对外界隐藏起来,从而使整个程序结构清楚来,从而使整个程序结构清楚来,从而使整个程序结构清楚来,从而使整个程序结构清楚使用函数时,不用知道函数内部是如何运作的,使用函数时,不用知道函数内部是如何运作的,使用函数时,不用知道函数内部是如何运作的,使用函数时,不用知道函数内部是如何运作的,只按照我们的需要和它的参数形式调用它即可只按照我们的需要和它的参数形式调用它即可只按照我们的需要和它的参数形式调用它即可只按照我们的需要和它的参数形式调用它即可2023/1/187/78为深入学习习近平新时代中国特色社会主义
10、思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能程序设计的艺术程序设计的艺术 算法设计艺术算法设计艺术程序的灵魂程序的灵魂程序的灵魂程序的灵魂Donald E.Knuth,Donald E.Knuth,Donald E.Knuth,Donald E.Knuth,“The Art of Computer Programming”,“The Art of Computer Programming”,“The Art of Computer Programming”,“The Art of Computer Programming”,清华大学出版社清华大学出版社清华大学出版社
11、清华大学出版社(英),国防工业出版社(中)(英),国防工业出版社(中)(英),国防工业出版社(中)(英),国防工业出版社(中)结构设计艺术结构设计艺术程序的肉体程序的肉体程序的肉体程序的肉体模块化(模块化(模块化(模块化(Parnas,1972Parnas,1972Parnas,1972Parnas,1972)结构化(结构化(结构化(结构化(StructuralStructural)面向对象(面向对象(面向对象(面向对象(Object-OrientedObject-Oriented)面向组件(面向组件(面向组件(面向组件(Component-OrientedComponent-Oriented
12、)面向智能体(面向智能体(面向智能体(面向智能体(Agent-OrientedAgent-Oriented)2023/1/188/78为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 函数是函数是C语言中模块化编程的最小单位语言中模块化编程的最小单位可以把每个函数看作一个模块(可以把每个函数看作一个模块(可以把每个函数看作一个模块(可以把每个函数看作一个模块(Module Module)如把编程比做制造一台机器,函数就好比其如把编程比做制造一台机器,函数就好比其零部件零部件可将这些可将这些可将这些可将这些“零部件零部件零部件零部件”
13、单独设计、调试、测试好,单独设计、调试、测试好,单独设计、调试、测试好,单独设计、调试、测试好,用时拿出来装配,再总体调试。用时拿出来装配,再总体调试。用时拿出来装配,再总体调试。用时拿出来装配,再总体调试。这些这些这些这些“零部件零部件零部件零部件”可以是自己设计制造可以是自己设计制造可以是自己设计制造可以是自己设计制造/别人设计别人设计别人设计别人设计制造制造制造制造/现成的标准产品现成的标准产品现成的标准产品现成的标准产品7.2 7.2 函数(函数(函数(函数(FunctionFunction)的定义)的定义)的定义)的定义MoeCurlyLarry2023/1/189/78为深入学习习
14、近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能7.2 函数(函数(Function)的定义)的定义 若干相关的函数可以合并成一个若干相关的函数可以合并成一个若干相关的函数可以合并成一个若干相关的函数可以合并成一个“模块模块模块模块”一个一个一个一个C C C C程序程序程序程序由一个或多个源程序文件组成由一个或多个源程序文件组成由一个或多个源程序文件组成由一个或多个源程序文件组成 一个源程序文件一个源程序文件一个源程序文件一个源程序文件由一个或多个函数组成由一个或多个函数组成由一个或多个函数组成由一个或多个函数组成2023/1/1810/78
15、为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能7.2.1函数的分类函数的分类 函数生来都是平等的,互相独立的,没有函数生来都是平等的,互相独立的,没有高低贵贱和从属之分高低贵贱和从属之分main()main()稍微特殊一点点稍微特殊一点点稍微特殊一点点稍微特殊一点点C C程序的执行程序的执行程序的执行程序的执行从从从从mainmain函数开始函数开始函数开始函数开始调用其他函数后流程回到调用其他函数后流程回到调用其他函数后流程回到调用其他函数后流程回到mainmain函数函数函数函数在在在在mainmain函数中结束整个程序运行函
16、数中结束整个程序运行函数中结束整个程序运行函数中结束整个程序运行2023/1/1811/78为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能7.2.1函数的分类函数的分类 标准库函数标准库函数ANSI/ISO CANSI/ISO C定义的标准库函数定义的标准库函数定义的标准库函数定义的标准库函数 符合标准的符合标准的符合标准的符合标准的C C语言编译器必须提供这些函数语言编译器必须提供这些函数语言编译器必须提供这些函数语言编译器必须提供这些函数 函数的行为也要符合函数的行为也要符合函数的行为也要符合函数的行为也要符合ANSI/ISO
17、 CANSI/ISO C的定义的定义的定义的定义第三方库函数第三方库函数第三方库函数第三方库函数 由其他厂商自行开发的由其他厂商自行开发的由其他厂商自行开发的由其他厂商自行开发的C C语言函数库语言函数库语言函数库语言函数库 不在标准范围内,能扩充不在标准范围内,能扩充不在标准范围内,能扩充不在标准范围内,能扩充C C语言的功能(图形、网络、数据语言的功能(图形、网络、数据语言的功能(图形、网络、数据语言的功能(图形、网络、数据库等)库等)库等)库等)自定义函数自定义函数自己定义的函数自己定义的函数自己定义的函数自己定义的函数 包装后,也可成为函数库,供别人使用包装后,也可成为函数库,供别人使
18、用包装后,也可成为函数库,供别人使用包装后,也可成为函数库,供别人使用2023/1/1812/78为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能7.2.2函数的定义函数的定义(Function Definition)类型类型 函数名函数名(类型类型 参数参数1,1,类型类型 参数参数2,)2,)声明语句序列声明语句序列声明语句序列声明语句序列 可执行语句序列可执行语句序列可执行语句序列可执行语句序列 returnreturn 表达式表达式表达式表达式;返回值返回值类型类型函数名函数名标识符,标识符,说明运算规则说明运算规则参数表参
19、数表相当于相当于运算的操作数运算的操作数返回返回运算的结果运算的结果函数出口函数出口2023/1/1813/78为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能类型类型 函数名函数名(类型类型 参数参数1,1,类型类型 参数参数2,)2,)声明语句序列声明语句序列声明语句序列声明语句序列 可执行语句序列可执行语句序列可执行语句序列可执行语句序列 returnreturn 表达式表达式表达式表达式;函数体的定界符函数体的定界符参数表里的变量(叫形式参数,参数表里的变量(叫形式参数,Formal Parameter)也是内部变量)也是内
20、部变量函数体函数体7.2.27.2.2函数的定义函数的定义函数的定义函数的定义(Function DefinitionFunction Definition)2023/1/1814/78为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能void 函数名函数名(void)声明语句序列声明语句序列声明语句序列声明语句序列 可执行语句序列可执行语句序列可执行语句序列可执行语句序列 returnreturn;函数无返回值,用函数无返回值,用void定义返回值类型定义返回值类型用用void定义参数,定义参数,表示没有参数表示没有参数return
21、语句后无语句后无需任何表达式需任何表达式7.2.27.2.2函数的定义函数的定义函数的定义函数的定义(Function DefinitionFunction Definition)2023/1/1815/78为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能【例例7.1a】计算整数计算整数n的阶乘的阶乘n!/*/*函数功能:函数功能:函数功能:函数功能:用迭代法计算用迭代法计算用迭代法计算用迭代法计算n!n!函数入口参数:函数入口参数:函数入口参数:函数入口参数:整型变量整型变量整型变量整型变量n n表示阶乘的阶数表示阶乘的阶数表示阶
22、乘的阶数表示阶乘的阶数 函数返回值:函数返回值:函数返回值:函数返回值:返回返回返回返回n!n!的值的值的值的值*/long Fact(int n)/*long Fact(int n)/*函数定义函数定义函数定义函数定义*/int i;int i;long result=1;long result=1;for(i=2;i=n;i+)for(i=2;i=n;i+)result*=i;result*=i;return result;return result;返回值类型返回值类型函数名说明函数名说明函数的功能函数的功能返回值作为函数返回值作为函数调用表达式的值调用表达式的值形参表,函形参表,函数入
23、口数入口函数内部可以定义函数内部可以定义只能自己使用的变只能自己使用的变量,称内部变量量,称内部变量2023/1/1816/78为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能 函数名函数名(表达式表达式1,1,表达式表达式2,);2,);实际参数实际参数实际参数实际参数(Actual Argument)(Actual Argument)(Actual Argument)(Actual Argument)函数调用函数调用函数调用函数调用(Founction Call)(Founction Call)(Founction Call)(
24、Founction Call)时提供的表达式时提供的表达式时提供的表达式时提供的表达式 有返回值时有返回值时有返回值时有返回值时放到一个数值表达式中放到一个数值表达式中放到一个数值表达式中放到一个数值表达式中 c=max(a,b);c=max(a,b);作为另一个函数调用的参数作为另一个函数调用的参数作为另一个函数调用的参数作为另一个函数调用的参数 c=max(max(a,b),c);c=max(max(a,b),c);printf(printf(%dn%dn,max(a,b);,max(a,b);无返回值时无返回值时无返回值时无返回值时函数调用表达式函数调用表达式函数调用表达式函数调用表达式
25、 display(a,b);display(a,b);返回值返回值返回值返回值 =函数名函数名函数名函数名(实参表列实参表列实参表列实参表列););););函数名函数名函数名函数名(实参表列实参表列实参表列实参表列););););7.37.3向函数传递值和从函数返回值向函数传递值和从函数返回值向函数传递值和从函数返回值向函数传递值和从函数返回值2023/1/1817/78为深入学习习近平新时代中国特色社会主义思想和党的十九大精神,贯彻全国教育大会精神,充分发挥中小学图书室育人功能函数的参数传递函数的参数传递 实参和形参必须匹配实参和形参必须匹配实参和形参必须匹配实参和形参必须匹配数目一致,类型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 PPT 课件 函数
限制150内