教学课件C语言程序设计案例教程第6章 函数与预处理.ppt
《教学课件C语言程序设计案例教程第6章 函数与预处理.ppt》由会员分享,可在线阅读,更多相关《教学课件C语言程序设计案例教程第6章 函数与预处理.ppt(132页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、PPT模板下载:/moban/ 行业PPT模板:/hangye/ 节日PPT模板:/jieri/ PPT素材下载:/sucai/PPT背景图片:/beijing/ PPT图表下载:/tubiao/ 优秀PPT下载:/xiazai/ PPT教程: /powerpoint/ Word教程: /word/ Excel教程:/excel/ 资料下载:/ziliao/ PPT课件下载:/kejian/ 范文下载:/fanwen/ 试卷下载:/shiti/ 教案下载:/jiaoan/ 字体下载:/ziti/ 教学课件C语言程序设计案例教程第6章 函数与预处理C语言程序设计案例教程 C语言程序设计案例教程
2、大连理工大学出版社第6章 函数与预处理v教学目的:教学目的:通过本章的学习,要求能熟练掌握函数的定义和调通过本章的学习,要求能熟练掌握函数的定义和调用方法,掌握函数的嵌套调用和递归调用,理解变量的用方法,掌握函数的嵌套调用和递归调用,理解变量的作用域和存储类别,掌握内部函数和外部函数,并能够作用域和存储类别,掌握内部函数和外部函数,并能够在不同情况下灵活选择函数来解决实际问题。掌握编译在不同情况下灵活选择函数来解决实际问题。掌握编译预处理命令的使用方法。函数和预处理命令是编写模块预处理命令的使用方法。函数和预处理命令是编写模块化程序的重要方法,这将为编写比较复杂的程序设计的化程序的重要方法,这
3、将为编写比较复杂的程序设计的学习打下基础。学习打下基础。 C语言程序设计案例教程 大连理工大学出版社第6章 函数与预处理v教学内容教学内容 函数函数编译预处理编译预处理文件包含命令文件包含命令宏定义宏定义条件编译条件编译函数调用函数调用变量的作用域和存储类别变量的作用域和存储类别内部函数和外部函数内部函数和外部函数函数的定义函数的定义 C语言程序设计案例教程 大连理工大学出版社第6章 函数与预处理v重点和难点重点和难点 重点:重点: (1)函数的定义和函数调用函数的定义和函数调用 (2)函数的参数传递函数的参数传递 难点难点 (1)函数的参数传递函数的参数传递 (2)递归调用递归调用 (3)变
4、量的作用域和存储特性变量的作用域和存储特性 C语言程序设计案例教程 大连理工大学出版社6.1 函数应用实例程序员在设计一个复杂的应用程序时,往往将整个程序程序员在设计一个复杂的应用程序时,往往将整个程序划分为若干个功能较为单一的程序模块,然后分别予以实现,划分为若干个功能较为单一的程序模块,然后分别予以实现,最后将所有的程序模块像积木一样装配起来,这种在程序设计最后将所有的程序模块像积木一样装配起来,这种在程序设计中逐步分解、分而治之的的方法,称之为模块化程序设计。中逐步分解、分而治之的的方法,称之为模块化程序设计。 6.1.1 模块化设计 C语言程序设计案例教程 大连理工大学出版社6.1 函
5、数应用实例 6.1.1模块化设计在在C语言中,一个函数实现一个特定的功能。一个语言中,一个函数实现一个特定的功能。一个C语言语言程序可以由一个主函数和若干个其它函数构成,由主函数调用程序可以由一个主函数和若干个其它函数构成,由主函数调用其它函数,其它函数也可以相互调用。同一个函数可以被一个其它函数,其它函数也可以相互调用。同一个函数可以被一个函数或多个函数调用任意多次。因此,在设计时,往往将一些函数或多个函数调用任意多次。因此,在设计时,往往将一些常用的功能模块编写成为函数,放在函数库中,供大家选用或常用的功能模块编写成为函数,放在函数库中,供大家选用或多次调用,以减少重复性的编写程序。程序员
6、可以方便地利用多次调用,以减少重复性的编写程序。程序员可以方便地利用函数作为程序模块,来实现函数作为程序模块,来实现 C语言程序设计的模块化。语言程序设计的模块化。 C语言程序设计案例教程 大连理工大学出版社6.1 函数应用实例在第在第1章中已经介绍过,源程序是由函数组成的。章中已经介绍过,源程序是由函数组成的。 虽虽然在前面各章的程序中都只有一个主函数然在前面各章的程序中都只有一个主函数main(), 但实用但实用程序往往由多个函数组成。函数是源程序的基本模块,程序往往由多个函数组成。函数是源程序的基本模块, 通通过对函数模块的调用实现特定的功能。语言中的函数相当于过对函数模块的调用实现特定
7、的功能。语言中的函数相当于其它高级语言的子程序。其它高级语言的子程序。 语言不仅提供了极为丰富的库函语言不仅提供了极为丰富的库函数数(如如Turbo C,MS C 都提供了三百多个库函数都提供了三百多个库函数),还允许,还允许用户建立自己定义的函数。用户可把自己的算法编成一个个相用户建立自己定义的函数。用户可把自己的算法编成一个个相对独立的函数模块,然后用调用的方法来使用函数。对独立的函数模块,然后用调用的方法来使用函数。 6.1.2 函数的基本概念 C语言程序设计案例教程 大连理工大学出版社6.1 函数应用实例 6.1.2 函数的基本概念可以说程序的全部工作都是由各式各样的函数完成的,可以说
8、程序的全部工作都是由各式各样的函数完成的, 所以也把语言称为函数式语言。所以也把语言称为函数式语言。 由于采用了函数模块式的由于采用了函数模块式的结构,结构, 语言易于实现结构化程序设计。使程序的层次结构语言易于实现结构化程序设计。使程序的层次结构清晰,便于程序的编写、阅读、调试。清晰,便于程序的编写、阅读、调试。 C语言程序设计案例教程 大连理工大学出版社6.1 函数应用实例先举两个函数调用的简单例子。(该例子引自书本配套案例先举两个函数调用的简单例子。(该例子引自书本配套案例“学生学生成绩管理系统成绩管理系统”)【例例6.1】函数调用的简单例子函数调用的简单例子输入如下代码:输入如下代码:
9、/*源文件名:源文件名:Li6_1.c功能:在屏幕输出显示一个菜单功能:在屏幕输出显示一个菜单 */#include stdio.hvoid main()void printstart(); /*对对printstart()函数进行声明函数进行声明*/void menu(); /*对对 menu()函数进行声明函数进行声明*/printstart(); /*调用调用printstart()函数函数*/menu(); /*调用调用 menu()函数函数*/printstart(); /*调用调用printstart()函数函数*/6.1.3 函数的引入实例 C语言程序设计案例教程 大连理工大学出
10、版社6.1 函数应用实例 6.1.3 函数的引入实例void menu() printf(*n); printf(t1登记学生成绩登记学生成绩t tt2删除学生信息删除学生信息n); printf(t3查询学生信息查询学生信息t tt4修改学生资料修改学生资料n); printf(t5保存学生信息保存学生信息t tt6学生成绩排序学生成绩排序n);printf(t7统计学生成绩统计学生成绩t tt8输出学生信息输出学生信息n);printf(t0退出系统退出系统n); printf(*n); void printstart() printf(-n); C语言程序设计案例教程 大连理工大学出版社
11、编译、连接、运行程序。程序运行后,屏幕显示:编译、连接、运行程序。程序运行后,屏幕显示: printstart()和和menu()都是用户定义的函数,分别用都是用户定义的函数,分别用来输出一行下划线和一个菜单信息。在定义这两个函数的函数来输出一行下划线和一个菜单信息。在定义这两个函数的函数时,前面加上时,前面加上void,表示该函数无类型,也就是函数没有返,表示该函数无类型,也就是函数没有返回值。而函数名后面的括号里面是空的,说明该函数没有参数。回值。而函数名后面的括号里面是空的,说明该函数没有参数。6.1 函数应用实例 6.1.3 函数的引入实例 C语言程序设计案例教程 大连理工大学出版社【
12、例例6.2】函数调用的简单例子函数调用的简单例子/*源文件名:源文件名:Li6_2.c功能:求两个整数的和功能:求两个整数的和*/#include stdio.hvoid main()int sum(int x,int y); /*对对sum()函数进行声明函数进行声明*/int a,b,s;scanf(%d%d,&a,&b);s=sum(a,b); /*对对sum()函数进行调用函数进行调用*/printf(the sum is %dn,s);int sum(int x,int y) /*对函数对函数sum()进行定义进行定义*/int z;/*函数体中的声明部分函数体中的声明部分*/z=x
13、+y;return z;6.1 函数应用实例 6.1.3 函数的引入实例 C语言程序设计案例教程 大连理工大学出版社编译、连接、运行程序。程序运行后,屏幕显示:编译、连接、运行程序。程序运行后,屏幕显示:程序中程序中sum(int x,int y) 函数带有两个整型参数函数带有两个整型参数x和和y,表示表示sum是个有参函数,而在函数名前面加上是个有参函数,而在函数名前面加上int ,表示该,表示该函数会返回一个整型的数值。函数会返回一个整型的数值。6.1 函数应用实例 6.1.3 函数的引入实例 C语言程序设计案例教程 大连理工大学出版社说明:说明:(1)源程序是由函数组成的。函数是源程序的
14、基)源程序是由函数组成的。函数是源程序的基本模块,通过对函数模块的调用实现特定的功能。语言中本模块,通过对函数模块的调用实现特定的功能。语言中的函数相当于其它高级语言的子程序。语言不仅提供了极的函数相当于其它高级语言的子程序。语言不仅提供了极为丰富的库函数,还允许用户建立自己定义的函数。用户可为丰富的库函数,还允许用户建立自己定义的函数。用户可把自己的算法编成一个个相对独立的函数模块,然后用调用把自己的算法编成一个个相对独立的函数模块,然后用调用的方法来使用函数。可以说程序的全部工作都是由各式各的方法来使用函数。可以说程序的全部工作都是由各式各样的函数完成的,所以也把语言称为函数式语言。样的函
15、数完成的,所以也把语言称为函数式语言。由于采用了函数模块式的结构,语言易于实现结构化由于采用了函数模块式的结构,语言易于实现结构化程序设计。使程序的层次结构清晰,便于程序的编写、阅读、程序设计。使程序的层次结构清晰,便于程序的编写、阅读、调试。调试。6.1 函数应用实例 6.1.3 函数的引入实例 C语言程序设计案例教程 大连理工大学出版社(2)一个程序总是从)一个程序总是从main()函数开始执行,调用其他函数函数开始执行,调用其他函数后,流程回到后,流程回到main主函数结束。主函数结束。main主函数是系统定义的,主函数是系统定义的,必须有且只能有一个名为必须有且只能有一个名为main的
16、主函数。的主函数。(3)所有函数都是平行的,它们的定义都是相互独立的。)所有函数都是平行的,它们的定义都是相互独立的。一个函数并不从属于另外一个函数,即函数不能嵌套定义。一个函数并不从属于另外一个函数,即函数不能嵌套定义。函数间可以互相调用,即函数可以嵌套调用。但不能调用函数间可以互相调用,即函数可以嵌套调用。但不能调用main函数,函数, main函数是系统调用的。函数是系统调用的。6.1 函数应用实例 6.1.3 函数的引入实例 C语言程序设计案例教程 大连理工大学出版社6.1 函数应用实例从函数使用的角度看,函数可分为库函数和用户定义函从函数使用的角度看,函数可分为库函数和用户定义函数两
17、种。数两种。(1)库函数:由编译系统提供的已设计好的函数,用)库函数:由编译系统提供的已设计好的函数,用户只需调用而无须实现它,在编译户只需调用而无须实现它,在编译 C程序时,应尽可能的使程序时,应尽可能的使用库函数。这样可以提高编程效率和编程的质量。在前面各章用库函数。这样可以提高编程效率和编程的质量。在前面各章的例题中反复用到的的例题中反复用到的printf、scanf、getchar、putchar、gets、puts、strcat等函数均属于库函数。等函数均属于库函数。 6.1.4 函数的分类 C语言程序设计案例教程 大连理工大学出版社使用库函数时应注意:使用库函数时应注意:1) 函数
18、的功能;函数的功能;2) 函数参数的数目、顺序以及每个参数的意义和类型;函数参数的数目、顺序以及每个参数的意义和类型;3) 函数返回值的意义和类型;函数返回值的意义和类型;4) 需要使用的包含文件。要调用某个库函数,则需在需要使用的包含文件。要调用某个库函数,则需在程序的头部用包含命令(程序的头部用包含命令(#include)将说明该函数原型的)将说明该函数原型的头文件包含进本程序中。头文件包含进本程序中。6.1 函数应用实例 6.1.4 函数的分类 C语言程序设计案例教程 大连理工大学出版社(2)用户定义函数:顾名思义,就是程序员自行定义和设)用户定义函数:顾名思义,就是程序员自行定义和设计
19、的函数。库函数一般只能提供一些低层服务的功能。而用计的函数。库函数一般只能提供一些低层服务的功能。而用户自定义的函数则能针对具体的应用实现一些特殊的功能。户自定义的函数则能针对具体的应用实现一些特殊的功能。用自定义函数需要程序员自己来编写函数功能的实现代码。用自定义函数需要程序员自己来编写函数功能的实现代码。用户自定义函数是由用户按需要写的函数。对于用户自定义用户自定义函数是由用户按需要写的函数。对于用户自定义函数,不仅要在程序中定义函数本身,而且在主调函数模块函数,不仅要在程序中定义函数本身,而且在主调函数模块中还必须对该被调函数进行类型说明,然后才能使用。中还必须对该被调函数进行类型说明,
20、然后才能使用。6.1 函数应用实例 6.1.4 函数的分类 C语言程序设计案例教程 大连理工大学出版社语言的函数兼有其它语言中的函数和过程两种功能,从这语言的函数兼有其它语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值函数和无返回值函数两种。个角度看,又可把函数分为有返回值函数和无返回值函数两种。(1)有返回值函数:此类函数被调用执行完后将向调用者)有返回值函数:此类函数被调用执行完后将向调用者返回一个执行结果,称为函数返回值。如数学函数即属于此类函返回一个执行结果,称为函数返回值。如数学函数即属于此类函数。由用户定义的这种要返回函数值的函数,必须在函数定义和数。由用户定义的这
21、种要返回函数值的函数,必须在函数定义和函数说明中明确返回值的类型。函数说明中明确返回值的类型。(2)无返回值函数:此类函数用于完成某项特定的处理任)无返回值函数:此类函数用于完成某项特定的处理任务,执行完成后不向调用者返回函数值。这类函数类似于其它语务,执行完成后不向调用者返回函数值。这类函数类似于其它语言的过程。由于函数无须返回值,用户在定义此类函数时可指定言的过程。由于函数无须返回值,用户在定义此类函数时可指定它的返回为它的返回为“空类型空类型”, 空类型的说明符为空类型的说明符为“void”。6.1 函数应用实例 6.1.4 函数的分类 C语言程序设计案例教程 大连理工大学出版社6.2
22、函数的定义定义无参函数的一般形式为:定义无参函数的一般形式为:【函数类型函数类型】 函数名函数名( )声明语句部分声明语句部分可执行语句部分可执行语句部分6.2.1无参函数定义的一般形式 C语言程序设计案例教程 大连理工大学出版社例例6.1中的中的printstart()和和menu()函数都是无参函函数都是无参函数。数。在定义函数时要用类型标识符来指定函数类型,即函数在定义函数时要用类型标识符来指定函数类型,即函数返回值的类型。如在例返回值的类型。如在例6.1中的中的printstart()和和menu()函函数的函数类型都为数的函数类型都为void,表示不需要带回函数值。而例,表示不需要带
23、回函数值。而例6.2中的中的sum()函数的函数类型为函数的函数类型为int,表示该函数会返回一个,表示该函数会返回一个整型数值。整型数值。注意:在函数类型缺省的情况下,系统一律按注意:在函数类型缺省的情况下,系统一律按int型处型处理。理。6.2 函数的定义 6.2.1无参函数定义的一般形式 C语言程序设计案例教程 大连理工大学出版社6.2 函数的定义定义有参函数的一般形式为:定义有参函数的一般形式为:【函数类型函数类型】 函数名函数名( 数据类型数据类型 参数参数【,数据类型,数据类型 参参数数2】)声明语句部分声明语句部分可执行语句部分可执行语句部分6.2.2 有参函数定义的一般形式 C
24、语言程序设计案例教程 大连理工大学出版社例例6.2中的中的sum(int x,int y)就是一个有参函数。就是一个有参函数。详细分析一下详细分析一下sum函数:函数:int sum(int x,int y)/*对函数对函数sum()进行定进行定义义*/int z;/*函数体中的声明部分函数体中的声明部分*/z=x+y;return z;6.2 函数的定义 6.2.2 有参函数定义的一般形式 C语言程序设计案例教程 大连理工大学出版社这是一个求两个整型数据之和的函数。第一行中的这是一个求两个整型数据之和的函数。第一行中的int 表示函数返回值是整型的,表示函数返回值是整型的,sum为函数名,括
25、号中的两个形为函数名,括号中的两个形式参数式参数x和和y都是整型的。在调用该函数的时候,主调函数把都是整型的。在调用该函数的时候,主调函数把实际参数的值传递给被调用函数中的形式参数实际参数的值传递给被调用函数中的形式参数x和和y。大括号。大括号内是函数体,通过函数体中语句的执行求出内是函数体,通过函数体中语句的执行求出x和和y的和,通过的和,通过return z;语句把;语句把z作为函数值返回到主调函数中。作为函数值返回到主调函数中。return后面的后面的z也称为函数返回值。也称为函数返回值。注意:一般情况下,函数返回值的类型和函数类型是一注意:一般情况下,函数返回值的类型和函数类型是一致的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件C语言程序设计案例教程第6章 函数与预处理 教学 课件 语言程序设计 案例 教程 函数 预处理
限制150内