(6.14)--补充课件第08讲-函数程序设计基础.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《(6.14)--补充课件第08讲-函数程序设计基础.ppt》由会员分享,可在线阅读,更多相关《(6.14)--补充课件第08讲-函数程序设计基础.ppt(130页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第八讲函数第八讲函数C语言程序设计语言程序设计 The C Programming Language2C语言程序设计语言程序设计 温州理工学院温州理工学院 2第八讲第八讲 函数函数本章要求本章要求理解模块化程序设计思想;理解模块化程序设计思想;掌握函数的定义与调用方法;掌握函数的定义与调用方法;掌握掌握C语言的参数传递方式,尤其是数组参数的传递特点;语言的参数传递方式,尤其是数组参数的传递特点;掌握变量的作用域和存储方式。掌握变量的作用域和存储方式。本章重点本章重点函数的定义与调用函数的定义与调用参数传递参数传递变量的作用域和存储方式变量的作用域和存储方式本章难点本章难点参数传递参数传递变量的
2、作用域和存储方式变量的作用域和存储方式3C语言程序设计语言程序设计 温州理工学院温州理工学院 3第八讲第八讲 函数函数概述概述函数的定义函数的定义函数调用与参数传递函数调用与参数传递函数的嵌套调用与递归调用函数的嵌套调用与递归调用数组作为函数参数数组作为函数参数局部变量与全局变量局部变量与全局变量变量的存储类别变量的存储类别内部函数与外部函数内部函数与外部函数程序应用举例程序应用举例小结小结参考书目及网络资源参考书目及网络资源讨论时间讨论时间4C语言程序设计语言程序设计 温州理工学院温州理工学院 4第八讲第八讲 函数函数概述概述函数的定义函数的定义函数调用与参数传递函数调用与参数传递函数的嵌套
3、调用与递归调用函数的嵌套调用与递归调用数组作为函数参数数组作为函数参数局部变量与全局变量局部变量与全局变量变量的存储类别变量的存储类别内部函数与外部函数内部函数与外部函数程序应用举例程序应用举例小结小结参考书目及网络资源参考书目及网络资源讨论时间讨论时间5C语言程序设计语言程序设计 温州理工学院温州理工学院 5程序设计方法程序设计方法结构化设计结构化设计方法方法模块内部程序各部分要按照自顶向下的结构划模块内部程序各部分要按照自顶向下的结构划分分各程序部分应按功能组合各程序部分应按功能组合各程序之间的联系尽量通过调用子程序来实现,各程序之间的联系尽量通过调用子程序来实现,不用或少用不用或少用GO
4、TO方式方式快速原型方法快速原型方法利用现有的工具和原型方法快速地开发所要的利用现有的工具和原型方法快速地开发所要的程序程序面向对象程序设计方法面向对象程序设计方法6C语言程序设计语言程序设计 温州理工学院温州理工学院 6C语言结构化程序设计方法语言结构化程序设计方法#include#define NAME Wenzhou University#define ADDRESS Wenzhou 325035#define NATION P.R.China void line(void);/*声明函数原型声明函数原型*/main()line();/*调用函数调用函数*/printf(%sn,NAME
5、);printf(%sn,ADDRESS);printf(%sn,NATION);line();/*调用函数调用函数*/void line(void)/*定义函数定义函数*/printf(=n);7C语言程序设计语言程序设计 温州理工学院温州理工学院 7C语言结构化程序设计方法语言结构化程序设计方法 8C语言程序设计语言程序设计 温州理工学院温州理工学院 8函数概述函数概述函数函数是是C源程序的源程序的基本模块基本模块,通过对函数模块的调用,通过对函数模块的调用实现特定的功能。可以说实现特定的功能。可以说C程序的全部工作都是由各程序的全部工作都是由各式各样的函数完成式各样的函数完成的。的。C语
6、言不仅提供了极为丰富的库函数语言不仅提供了极为丰富的库函数(如如Turbo C,MS C 都都提供了三百多个库函数提供了三百多个库函数),还允许用户建立自己定义的函数。,还允许用户建立自己定义的函数。从从使用角度划分使用角度划分 标准函数,即库函数标准函数,即库函数 自定义函数自定义函数 从函数形式划分从函数形式划分 无参函数无参函数 有参函数有参函数 9C语言程序设计语言程序设计 温州理工学院温州理工学院 9函数概述函数概述(contd)从函数定义的角度看,函数可分为从函数定义的角度看,函数可分为库函数库函数和和用用户定义函数户定义函数两种。两种。库函数库函数:由由C系统系统提供,用户无须定
7、义,也不必在提供,用户无须定义,也不必在程序中作类型说明,只需在程序前包含有该函数原程序中作类型说明,只需在程序前包含有该函数原型的头文件即可在程序中直接调用。型的头文件即可在程序中直接调用。如如printf、scanf、getchar、putchar、gets、puts、strcat 等函数均属此类。等函数均属此类。用户定义函数用户定义函数:由用户按需要写的函数。对于用户:由用户按需要写的函数。对于用户自定义函数,不仅要在程序中定义函数本身,而且自定义函数,不仅要在程序中定义函数本身,而且在主调函数模块中还必须对该被调函数进行类型说在主调函数模块中还必须对该被调函数进行类型说明,然后才能使用
8、。明,然后才能使用。10C语言程序设计语言程序设计 温州理工学院温州理工学院 10函数概述函数概述(contd)C语言的函数兼有其它语言中的语言的函数兼有其它语言中的函数函数和和过程过程两种功两种功能。因此,函数又可分为能。因此,函数又可分为有返回值函数有返回值函数和和无返回无返回值函数值函数两种。两种。有返回值函数有返回值函数:被调用执行完后将向调用者返回一个:被调用执行完后将向调用者返回一个执行结果,称为函数返回值。执行结果,称为函数返回值。如数学函数即属于此类函数。由用户定义的有返回值的函数,如数学函数即属于此类函数。由用户定义的有返回值的函数,必须在函数定义和函数说明中明确返回值的类型
9、。必须在函数定义和函数说明中明确返回值的类型。无返回值函数无返回值函数:用于完成某项特定的处理任务,执行:用于完成某项特定的处理任务,执行完成后不向调用者返回函数值。完成后不向调用者返回函数值。这类函数类似于其它语言的过程。这类函数类似于其它语言的过程。用户在定义此类函数时可指定它的返回为用户在定义此类函数时可指定它的返回为“空类型空类型”,空类空类型的说明符为型的说明符为“void”。11C语言程序设计语言程序设计 温州理工学院温州理工学院 11函数概述函数概述(contd)从主调函数和被调函数之间数据传送的角度看从主调函数和被调函数之间数据传送的角度看又可分为又可分为无参函数无参函数和和有
10、参函数有参函数两种。两种。无参函数无参函数:函数定义、函数说明及函数调用中均不:函数定义、函数说明及函数调用中均不带参数。主调函数和被调函数之间不进行参数传送。带参数。主调函数和被调函数之间不进行参数传送。此类函数通常用来完成一组指定的功能,可以返回此类函数通常用来完成一组指定的功能,可以返回或不返回函数值。或不返回函数值。有参函数有参函数:也称为带参函数。在函数定义及函数说:也称为带参函数。在函数定义及函数说明时都有参数,称为形式参数明时都有参数,称为形式参数(简称为形参简称为形参)。在函。在函数调用时也必须给出参数,称为实际参数数调用时也必须给出参数,称为实际参数(简称为简称为实参实参)。
11、进行函数调用时,主调函数将把实参的值。进行函数调用时,主调函数将把实参的值传送给形参,供被调函数使用。传送给形参,供被调函数使用。12C语言程序设计语言程序设计 温州理工学院温州理工学院 12函数概述函数概述(contd)C语言语言提供了极为丰富的库函数,这些库函数提供了极为丰富的库函数,这些库函数又可从功能角度作以下分类。又可从功能角度作以下分类。字符类型分类函数字符类型分类函数:用于对字符按ASCII 码分类:字母,数字,控制字符,分隔符,大小写字母等。转换函数转换函数:用于字符或字符串的转换;在字符量和各类数字量(整型,实型等)之间进行转换;在大、小写之间进行转换。目录路径函数目录路径函
12、数:用于文件目录和路径操作。诊断函数诊断函数:用于内部错误检测。图形函数图形函数:用于屏幕管理和各种图形功能。13C语言程序设计语言程序设计 温州理工学院温州理工学院 13函数概述函数概述(contd)输入输出函数输入输出函数:用于完成输入输出功能。接口函数接口函数:用于与DOS,BIOS 和硬件的接口。字符串函数字符串函数:用于字符串操作和处理。内存管理函数内存管理函数:用于内存管理。数学函数数学函数:用于数学函数计算。日期和时间函数日期和时间函数:用于日期,时间转换操作。进程控制函数进程控制函数:用于进程管理和控制。其它函数其它函数:用于其它各种功能。14C语言程序设计语言程序设计 温州理
13、工学院温州理工学院 14函数概述函数概述(contd)在在C语言语言中,所有的函数定义,包括主函数中,所有的函数定义,包括主函数main 在内,都是在内,都是平行平行的。的。也就是说,在一个函数的函数体内,不能再定义另一也就是说,在一个函数的函数体内,不能再定义另一个函数,即不能嵌套定义。个函数,即不能嵌套定义。但是函数之间允许相互调用,也允许嵌套调用。习惯但是函数之间允许相互调用,也允许嵌套调用。习惯上把调用者称为主调函数。函数还可以自己调用自己,上把调用者称为主调函数。函数还可以自己调用自己,称为递归调用。称为递归调用。main 函数是主函数,它可以调用其它函数,而不函数是主函数,它可以调
14、用其它函数,而不允许被其它函数调用允许被其它函数调用。C程序的执行总是从程序的执行总是从main 函数开始,完成对其它函数函数开始,完成对其它函数的调用后再返回到的调用后再返回到main 函数,最后由函数,最后由main 函数结束整函数结束整个程序。一个个程序。一个C源程序必须有且只有一个主函数源程序必须有且只有一个主函数main。15C语言程序设计语言程序设计 温州理工学院温州理工学院 15第八讲第八讲 函数函数概述概述函数的定义函数的定义函数调用与参数传递函数调用与参数传递函数的嵌套调用与递归调用函数的嵌套调用与递归调用数组作为函数参数数组作为函数参数局部变量与全局变量局部变量与全局变量变
15、量的存储类别变量的存储类别内部函数与外部函数内部函数与外部函数程序应用举例程序应用举例小结小结参考书目及网络资源参考书目及网络资源讨论时间讨论时间16C语言程序设计语言程序设计 温州理工学院温州理工学院 16函数的定义函数的定义函数定义的一般形式函数定义的一般形式其中类型标识符和函数名称为函数头。类型标识符其中类型标识符和函数名称为函数头。类型标识符指明了本函数的类型,函数的类型实际上是函数返指明了本函数的类型,函数的类型实际上是函数返回值的类型。回值的类型。函数名是由用户定义的标识符,函数名后有一个空函数名是由用户定义的标识符,函数名后有一个空括号,其中无参数,但括号不可少。括号,其中无参数
16、,但括号不可少。中的内容称为函数体。在函数体中声明部分,是中的内容称为函数体。在函数体中声明部分,是对函数体内部所用到的变量的类型说明。对函数体内部所用到的变量的类型说明。类型符类型符 函数名函数名(形式参数形式参数)函数体函数体 17C语言程序设计语言程序设计 温州理工学院温州理工学院 17函数的定义函数的定义在很多情况下都不要求无参函数有返回值,此在很多情况下都不要求无参函数有返回值,此时函数类型符可以写为时函数类型符可以写为void。类型符使用类型符使用C语言提供的数据类型标识符,用语言提供的数据类型标识符,用于说明函数返回值的类型于说明函数返回值的类型。函数名是一个标识符,应当遵循函数
17、名是一个标识符,应当遵循C语言中标识语言中标识符的命名规则符的命名规则。void Hello()printf(Hello,world n);18C语言程序设计语言程序设计 温州理工学院温州理工学院 18函数的定义函数的定义形式参数可以是形式参数可以是0个、一个或多个,表示该函个、一个或多个,表示该函数被调用时所需的一些必要信息。数被调用时所需的一些必要信息。对于有参函数,形式参数的定义与变量的定义对于有参函数,形式参数的定义与变量的定义形式相似形式相似。函数体是一组放在一对花括号中的语句函数体是一组放在一对花括号中的语句,一般一般包括声明部分和执行部分包括声明部分和执行部分。在函数中,形式参数
18、可以作为已知的变量,不在函数中,形式参数可以作为已知的变量,不需要对它赋值就可使用它,它的值是函数调用需要对它赋值就可使用它,它的值是函数调用时由实参传递给形参变量而得到的时由实参传递给形参变量而得到的。19C语言程序设计语言程序设计 温州理工学院温州理工学院 19有参函数定义的一般形式有参函数定义的一般形式有参有参函数比无参函数多了一个内容,即形式参数表函数比无参函数多了一个内容,即形式参数表列。在形参表中给出的参数称为形式参数列。在形参表中给出的参数称为形式参数,它们,它们可可以是各种类型的变量,各参数之间用逗号间隔。在以是各种类型的变量,各参数之间用逗号间隔。在进行函数调用时,主调函数将
19、进行函数调用时,主调函数将赋予这些赋予这些形式参数实形式参数实际的值。形参既然是变量,必须在形参表中给出形际的值。形参既然是变量,必须在形参表中给出形参的类型说明。参的类型说明。类型标识符类型标识符 函数名函数名(形式参数表列形式参数表列)声明部分声明部分 语句语句20C语言程序设计语言程序设计 温州理工学院温州理工学院 20函数的定义函数的定义函数返回值函数返回值C语语言言通通过过return语语句句获获得得函函数数返返回回值值的的,其其格格式式如下:如下:return 表达式表达式;或或 return(表达式表达式);定义一个函数,用于求两个整数定义一个函数,用于求两个整数中的大数,可写为
20、:中的大数,可写为:int max(int a,int b)if(ab)return a;else return b;21C语言程序设计语言程序设计 温州理工学院温州理工学院 21函数的定义函数的定义main()int max(int a,int b);int x,y,z;printf(Input two integers:n);scanf(%d%d,&x,&y);z=max(x,y);printf(MaxNum=%d,z);int max(int a,int b)if(ab)return a;else return b;第一行说明第一行说明max 函数是一个整函数是一个整型函数,其返回的函数
21、值是一个型函数,其返回的函数值是一个整数。整数。形参为形参为a,b,均为整型量。均为整型量。a,b 的的具体值是由主调函数在调用时传具体值是由主调函数在调用时传送过来的。送过来的。在在中的函数体内,除形参外中的函数体内,除形参外没有使用其它变量,因此只有语没有使用其它变量,因此只有语句而没有声明部分。句而没有声明部分。在在max 函数体中的函数体中的return 语句语句是把是把a(或或b)的值作为函数的值返的值作为函数的值返回给主调函数。有返回值函数中回给主调函数。有返回值函数中至少应有一个至少应有一个return 语句。语句。22C语言程序设计语言程序设计 温州理工学院温州理工学院 22函
22、数的定义函数的定义说明:说明:表达式的值即函数返回值,它应与所定义的函数返表达式的值即函数返回值,它应与所定义的函数返回值的类型一致。回值的类型一致。23C语言程序设计语言程序设计 温州理工学院温州理工学院 23Return语句语句不带表达式的不带表达式的return语句将把控制权返回给调语句将把控制权返回给调用者,但不返回有用的值。这时用者,但不返回有用的值。这时return语句的语句的作用是终止执行函数。作用是终止执行函数。#include stdio.hmain()return;printf(Hello,world!n);return 0;24C语言程序设计语言程序设计 温州理工学院温州
23、理工学院 24Return语句语句由于由于main本身也是函数,因此也可以向其调用本身也是函数,因此也可以向其调用者返回一个值,该调用者实际上就是程序的执者返回一个值,该调用者实际上就是程序的执行环境。行环境。一般来说,返回值为一般来说,返回值为0表示正常终止,返回值表示正常终止,返回值为非为非0表示出现异常情况或出错结束条件。表示出现异常情况或出错结束条件。#include stdio.hmain()printf(Hello,world!n);getch();return 0;25C语言程序设计语言程序设计 温州理工学院温州理工学院 25函数的参数和函数的值函数的参数和函数的值函数的参数分为
24、函数的参数分为形参形参和和实参实参两种两种。形参形参和实参的功能是作和实参的功能是作数据传送数据传送。发生函数调。发生函数调用时,主调函数把实参的值传送给被调函数的用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。形参从而实现主调函数向被调函数的数据传送。形参形参出现在函数定义中,在整个函数体内都可以使出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。用,离开该函数则不能使用。实参实参出现在主调函数中,进入被调函数后,实参变出现在主调函数中,进入被调函数后,实参变量也不能使用量也不能使用。26C语言程序设计语言程序设计 温州理工学院温州理工学院
25、26函数的参数和函数的值函数的参数和函数的值函数函数的形参和实参具有以下特点:的形参和实参具有以下特点:形参形参变量只有在被调用时才分配内存单元,在调用变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参结束时,即刻释放所分配的内存单元。因此,形参只有在只有在函数内部函数内部有效。函数调用结束返回主调函数有效。函数调用结束返回主调函数后则不能再使用该形参变量后则不能再使用该形参变量。实参实参可以是常量、变量、表达式、函数等,无论实可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必参是何种类型的量,在进行函数调用时,它们都必须具有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 6.14 补充 课件 08 函数 程序设计 基础
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内