C语言程序设计第六章.ppt
《C语言程序设计第六章.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计第六章.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第第第6 6 6 6章章章章 函函函函 数数数数制作人:李敏制作人:李敏制作人:李敏制作人:李敏第第6 6章:函章:函 数数 u学习的意义学习的意义 模块化程序设计方法:模块化程序设计方法:模块化程序设计方法:模块化程序设计方法:人们在求解某个复杂问题时,通常采用逐步分解、分而人们在求解某个复杂问题时,通常采用逐步分解、分而人们在求解某个复杂问题时,通常采用逐步分解、分而人们在求解某个复杂问题时,通常采用逐步分解、分而治之的方法,也就是将一个大问题分解成若干个比较容易求治之的方法,也就是将一个大问题分解成若干个比较容易求治之的方法,也就是将一个大问题分解成若干个比较容易求治之的方法,也就是将
2、一个大问题分解成若干个比较容易求解的小问题,然后分别求解。程序员在设计一个复杂的应用解的小问题,然后分别求解。程序员在设计一个复杂的应用解的小问题,然后分别求解。程序员在设计一个复杂的应用解的小问题,然后分别求解。程序员在设计一个复杂的应用程序时,往往也是把整个程序划分成若干个功能较为单一的程序时,往往也是把整个程序划分成若干个功能较为单一的程序时,往往也是把整个程序划分成若干个功能较为单一的程序时,往往也是把整个程序划分成若干个功能较为单一的程序模块,然后分别予以实现,最后再把所有的程序模块象程序模块,然后分别予以实现,最后再把所有的程序模块象程序模块,然后分别予以实现,最后再把所有的程序模
3、块象程序模块,然后分别予以实现,最后再把所有的程序模块象达积木一样装配起来,这种在程序设计中分而治之的策略,达积木一样装配起来,这种在程序设计中分而治之的策略,达积木一样装配起来,这种在程序设计中分而治之的策略,达积木一样装配起来,这种在程序设计中分而治之的策略,被称为模块化程序设计方法。被称为模块化程序设计方法。被称为模块化程序设计方法。被称为模块化程序设计方法。u学习的意义学习的意义 C C C C语言程序语言程序语言程序语言程序C C C C语言函数语言函数语言函数语言函数u学习的意义学习的意义 使用函数,不仅可以实现程序的模块化,程序设计得简单使用函数,不仅可以实现程序的模块化,程序设
4、计得简单使用函数,不仅可以实现程序的模块化,程序设计得简单使用函数,不仅可以实现程序的模块化,程序设计得简单和直观,提高了程序的易读性和可维护性。和直观,提高了程序的易读性和可维护性。和直观,提高了程序的易读性和可维护性。和直观,提高了程序的易读性和可维护性。编写自定义函数库。把一些常用的或某些特定功能的程序编写自定义函数库。把一些常用的或某些特定功能的程序编写自定义函数库。把一些常用的或某些特定功能的程序编写自定义函数库。把一些常用的或某些特定功能的程序制作成自己的函数库,以供随时调用,这样可以大大减轻日制作成自己的函数库,以供随时调用,这样可以大大减轻日制作成自己的函数库,以供随时调用,这
5、样可以大大减轻日制作成自己的函数库,以供随时调用,这样可以大大减轻日后编写代码的工作量。后编写代码的工作量。后编写代码的工作量。后编写代码的工作量。通过对函数的学习,掌握模块化程序设计的理念,为将来通过对函数的学习,掌握模块化程序设计的理念,为将来通过对函数的学习,掌握模块化程序设计的理念,为将来通过对函数的学习,掌握模块化程序设计的理念,为将来进行团队合作,协同完成大型应用软件奠定一定的基础。进行团队合作,协同完成大型应用软件奠定一定的基础。进行团队合作,协同完成大型应用软件奠定一定的基础。进行团队合作,协同完成大型应用软件奠定一定的基础。u学习目标学习目标 正确理解函数在正确理解函数在正确
6、理解函数在正确理解函数在C C C C语言程序设计中的作用和地位;语言程序设计中的作用和地位;语言程序设计中的作用和地位;语言程序设计中的作用和地位;理解函数、形参、实参、作用域、生存期的概念;理解函数、形参、实参、作用域、生存期的概念;理解函数、形参、实参、作用域、生存期的概念;理解函数、形参、实参、作用域、生存期的概念;掌握各种函数的定义、原型声明和调用的方法;掌握各种函数的定义、原型声明和调用的方法;掌握各种函数的定义、原型声明和调用的方法;掌握各种函数的定义、原型声明和调用的方法;理解全局变量、局部变量、静态变量、静态函数的作用理解全局变量、局部变量、静态变量、静态函数的作用理解全局变
7、量、局部变量、静态变量、静态函数的作用理解全局变量、局部变量、静态变量、静态函数的作用域和生存期;域和生存期;域和生存期;域和生存期;掌握递归函数的编写规则;掌握递归函数的编写规则;掌握递归函数的编写规则;掌握递归函数的编写规则;u学习内容学习内容 函数概述函数概述函数概述函数概述 函数的定义与调用函数的定义与调用函数的定义与调用函数的定义与调用l l 无参数无返回值的函数无参数无返回值的函数无参数无返回值的函数无参数无返回值的函数l l 无参数有返回值的函数无参数有返回值的函数无参数有返回值的函数无参数有返回值的函数l l 带参数无返回值的函数带参数无返回值的函数带参数无返回值的函数带参数无
8、返回值的函数l l 带参数有返回值的函数带参数有返回值的函数带参数有返回值的函数带参数有返回值的函数 函数参数传递的传递方式函数参数传递的传递方式函数参数传递的传递方式函数参数传递的传递方式 变量的作用域和生存期变量的作用域和生存期变量的作用域和生存期变量的作用域和生存期 变量的存储类型变量的存储类型变量的存储类型变量的存储类型 函数的作用域函数的作用域函数的作用域函数的作用域 函数应用综合举例函数应用综合举例函数应用综合举例函数应用综合举例 本章小结本章小结本章小结本章小结6 6.1 .1 函数概述函数概述 1 1 1 1、函数的概念、函数的概念、函数的概念、函数的概念 函数其实就是一段可以
9、重复调用的、功能相对独立完整函数其实就是一段可以重复调用的、功能相对独立完整函数其实就是一段可以重复调用的、功能相对独立完整函数其实就是一段可以重复调用的、功能相对独立完整的程序段。的程序段。的程序段。的程序段。&C C C C是是是是函数式函数式函数式函数式语言语言语言语言&必须有且只能有一个名为必须有且只能有一个名为必须有且只能有一个名为必须有且只能有一个名为mainmainmainmain的主函数的主函数的主函数的主函数&C C程序的执行总是程序的执行总是程序的执行总是程序的执行总是从从从从mainmainmainmain函数开始,在函数开始,在函数开始,在函数开始,在mainmainm
10、ainmain中结束中结束中结束中结束&函数函数函数函数不能嵌套定义不能嵌套定义不能嵌套定义不能嵌套定义,可以可以可以可以嵌套嵌套嵌套嵌套调用调用调用调用2 2 2 2、函数的分类、函数的分类、函数的分类、函数的分类 从用户角度从用户角度从用户角度从用户角度l l 标准函数(库函数):由系统提供标准函数(库函数):由系统提供标准函数(库函数):由系统提供标准函数(库函数):由系统提供l l 用户自定义函数用户自定义函数用户自定义函数用户自定义函数 从函数形式从函数形式从函数形式从函数形式l l 无无无无参数参数参数参数函数函数函数函数 l l 有参数有参数有参数有参数函数函数函数函数l l 无
11、无无无返回值返回值返回值返回值函数函数函数函数l l 有有有有返回值返回值返回值返回值函数函数函数函数使用库函数应注意:使用库函数应注意:使用库函数应注意:使用库函数应注意:1 1 1 1、函数功能、函数功能、函数功能、函数功能 2 2 2 2、函数参数的数目和顺序,及各参数意义和类型、函数参数的数目和顺序,及各参数意义和类型、函数参数的数目和顺序,及各参数意义和类型、函数参数的数目和顺序,及各参数意义和类型 3 3 3 3、函数返回值意义和类型、函数返回值意义和类型、函数返回值意义和类型、函数返回值意义和类型 4 4 4 4、需要使用的包含文件、需要使用的包含文件、需要使用的包含文件、需要使
12、用的包含文件6 6.2 .2 函数的定义和调用函数的定义和调用 1 1 1 1、无参数无返回值的函数、无参数无返回值的函数、无参数无返回值的函数、无参数无返回值的函数 定义格式定义格式定义格式定义格式 void void 函数名函数名函数名函数名 (void)(void)变量声明部分变量声明部分变量声明部分变量声明部分 执行部分执行部分执行部分执行部分 函数体函数体函数体函数体空空空空类类类类型型型型,表表表表明明明明函函函函数数数数无无无无返返返返回回回回值值值值,不可省!不可省!不可省!不可省!表表表表明明明明无无无无参参参参数数数数,可缺省!可缺省!可缺省!可缺省!必必必必须须须须为为为
13、为合合合合法法法法的的的的标识符标识符标识符标识符 函数用途函数用途函数用途函数用途 此类函数用于完成某项此类函数用于完成某项此类函数用于完成某项此类函数用于完成某项固定的固定的固定的固定的处理任务,执行完成后不处理任务,执行完成后不处理任务,执行完成后不处理任务,执行完成后不向调用者返回函数值。它类似于其它语言的过程。向调用者返回函数值。它类似于其它语言的过程。向调用者返回函数值。它类似于其它语言的过程。向调用者返回函数值。它类似于其它语言的过程。函数的原型声明函数的原型声明函数的原型声明函数的原型声明 void void 函数名函数名函数名函数名(void)(void);或或或或 void
14、 void 函数名函数名函数名函数名()();C C C C语言规定,对函数调用之前必须对其原型加以声明,语言规定,对函数调用之前必须对其原型加以声明,语言规定,对函数调用之前必须对其原型加以声明,语言规定,对函数调用之前必须对其原型加以声明,否则会出现编译错!否则会出现编译错!否则会出现编译错!否则会出现编译错!1 1 1 1、无参数无返回值的函数、无参数无返回值的函数、无参数无返回值的函数、无参数无返回值的函数 函数的调用函数的调用函数的调用函数的调用 函数名函数名函数名函数名()();注意:注意:注意:注意:不能将这种函数调用赋值给任何变量,因为它没有返不能将这种函数调用赋值给任何变量,
15、因为它没有返不能将这种函数调用赋值给任何变量,因为它没有返不能将这种函数调用赋值给任何变量,因为它没有返回值。调用时回值。调用时回值。调用时回值。调用时,(,(,(,()中间不能有)中间不能有)中间不能有)中间不能有voidvoid。实例实例实例实例#include#include#include#include void printstar();void printstar();/声明声明声明声明printstarprintstar函数的原型函数的原型函数的原型函数的原型void main()void main()int a;int a;for(a=0;a10;a+)for(a=0;a10;
16、a+)printstar();printstar();void printstar()void printstar()/函数的定义,无参数无返回值函数的定义,无参数无返回值函数的定义,无参数无返回值函数的定义,无参数无返回值 printf(*n);printf(*n);/函数体,没有声明变量函数体,没有声明变量函数体,没有声明变量函数体,没有声明变量 调用调用调用调用outputoutput函数函数函数函数 返回返回返回返回 注意:注意:对函数调用之前,必须要先声明或先对函数调用之前,必须要先声明或先定义,否则编译错定义,否则编译错!2 2 2 2、无参数有返回值的函数、无参数有返回值的函数、
17、无参数有返回值的函数、无参数有返回值的函数 定义格式定义格式定义格式定义格式 返回值类型符返回值类型符返回值类型符返回值类型符 函数名函数名函数名函数名 (void)(void)变量声明部分变量声明部分变量声明部分变量声明部分 执行部分执行部分执行部分执行部分 函数体函数体函数体函数体可可可可 以以以以 为为为为 int,char,int,char,float,doublefloat,double等等等等,缺缺缺缺省省省省时时时时,默默默默认认认认为为为为intint型型型型表表表表明明明明无无无无参参参参数数数数,可缺省!可缺省!可缺省!可缺省!必必必必须须须须为为为为合合合合法法法法的的的
18、的标识符标识符标识符标识符 函数用途函数用途函数用途函数用途 此类函数用于完成某项此类函数用于完成某项此类函数用于完成某项此类函数用于完成某项固定的固定的固定的固定的处理任务,执行完成后向处理任务,执行完成后向处理任务,执行完成后向处理任务,执行完成后向调用者调用者调用者调用者返回函数值返回函数值返回函数值返回函数值。函数的原型声明函数的原型声明函数的原型声明函数的原型声明 返回值类型符返回值类型符返回值类型符返回值类型符 函数名函数名函数名函数名(void)(void);或或或或 返回值类型符返回值类型符返回值类型符返回值类型符 函数名函数名函数名函数名()();2 2 2 2、无参数有返回
19、值的函数、无参数有返回值的函数、无参数有返回值的函数、无参数有返回值的函数 函数的调用函数的调用函数的调用函数的调用 函数名函数名函数名函数名(void)(void);或或或或 变量变量变量变量 =函数名函数名函数名函数名()();实例实例实例实例#include#include#include#include#include#include int sum();int sum();void main()void main()int tot;int tot;tot=sum();tot=sum();printf(nthe result is:%dn,tot);printf(nthe result
20、 is:%dn,tot);int sum()int sum()int i;int i;int tot=0;int tot=0;for(i=0;i=100;i+)for(i=0;i=100;i+)tot+=i;tot+=i;return(tot);return(tot);声明声明声明声明sumsum函函函函数的原型数的原型数的原型数的原型 调用调用调用调用sumsum函数函数函数函数函数的定义,无函数的定义,无函数的定义,无函数的定义,无参数有返回值参数有返回值参数有返回值参数有返回值 变量声明部分变量声明部分变量声明部分变量声明部分函数函数函数函数sumsum的功能是:的功能是:的功能是:的功
21、能是:计算计算计算计算1 1100100之间所有整数之之间所有整数之之间所有整数之之间所有整数之和和和和 2 2 2 2、无参数有返回值的函数、无参数有返回值的函数、无参数有返回值的函数、无参数有返回值的函数 函数的返回函数的返回函数的返回函数的返回 表达式的值即是函数的返回值;表达式的值即是函数的返回值;表达式的值即是函数的返回值;表达式的值即是函数的返回值;函数体中一般都包含函数体中一般都包含函数体中一般都包含函数体中一般都包含returnreturn(表达式)(表达式)(表达式)(表达式)语句语句语句语句,如果如果如果如果没有没有没有没有,函数也会返回一个值。这个值是不可预知的函数也会返
22、回一个值。这个值是不可预知的函数也会返回一个值。这个值是不可预知的函数也会返回一个值。这个值是不可预知的,将将将将会使程序可能犯有逻辑错;会使程序可能犯有逻辑错;会使程序可能犯有逻辑错;会使程序可能犯有逻辑错;一般情况下,一般情况下,一般情况下,一般情况下,表达式值的类型应与函数返回值类型表达式值的类型应与函数返回值类型表达式值的类型应与函数返回值类型表达式值的类型应与函数返回值类型一致一致一致一致;当当当当returnreturn(表达式)语句中的表达式的类型与函数(表达式)语句中的表达式的类型与函数(表达式)语句中的表达式的类型与函数(表达式)语句中的表达式的类型与函数的返回值类型不一致时
23、,编译器将对表达式进行强制的返回值类型不一致时,编译器将对表达式进行强制的返回值类型不一致时,编译器将对表达式进行强制的返回值类型不一致时,编译器将对表达式进行强制类型转换类型转换类型转换类型转换,将表达式的值强制转换成函数返回值类型将表达式的值强制转换成函数返回值类型将表达式的值强制转换成函数返回值类型将表达式的值强制转换成函数返回值类型,然后返回给调用者。然后返回给调用者。然后返回给调用者。然后返回给调用者。l l 格式格式格式格式 rerurn(rerurn(表达式表达式表达式表达式););或或或或 rerutn rerutn 表达式表达式表达式表达式;l l 说明说明说明说明#incl
24、ude#include int sum();int sum();void main()void main()int x;int x;x=sum();x=sum();printf(“x=%dn,x);printf(“x=%dn,x);int sum()int sum()int i,tot=0;int i,tot=0;for(i=1;i=100;i+)for(i=1;i 1-1-1-形参形参形参形参1 1 1 1 实参实参实参实参2-2-2-2-形参形参形参形参2 2 2 2 实参实参实参实参n-n-n-n-形参形参形参形参n n n n3 3 3 3、有参数无返回值的函数、有参数无返回值的函数、
25、有参数无返回值的函数、有参数无返回值的函数#include#include void printnstar(int n);void printnstar(int n);void main()void main()int i=8;int i=8;printnstar(i);printnstar(i);void printnstar(int n)void printnstar(int n)for(int i=0;in;i+)for(int i=0;in;i+)printf(*);printf(*);printf(n);printf(n);原型声明原型声明原型声明原型声明*运行结果运行结果运行结果运
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 第六
限制150内