欢迎来到天天文库
浏览记录
ID:32702326
大小:94.59 KB
页数:12页
时间:2019-02-14
《第5章模块化程序设计函数》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第5章模块化程序设计……函数★教学目标•使学生理解使用称为“函数”的小程序块构造程序组件模块的好处•使学生熟悉c标准库中常见的数学函数,并能在程序中灵活运用它们•使学生真正理解函数值的类型,即所需功能返回值的类型的本质,掌握函数声明的必要条件•使学生理解函数之间的信息(参数)传递机制•使学生具备将较复杂的问题进行抽象分解成若干个功能块,并能编出相应的功能函数的能力•使学生掌握功能函数的正确调用•使学生理解全局变量与局部变量“生命权限周期”的范围★教学过程解决现实卅界中问题的程序往往比前五章介绍的
2、程序大得多。经验表明:任何一项复杂的问题都可细化分解成若干个小问题,然后再各个击破、逐个解决。软件工程学中捉出的结构化程序设计思想就是沿川的这种方法,它提出程序设计开发采用白顶向下逐步求精的设计方法和单入口单出口的控制结构。开发和维护大型程序的最好办法是用更容易管理的较小程序块(即模块)建立程序,C语言的程序模块称为“函数”。函数的使用是通过函数调用来实现的,函数调用指宦了被调用函数的名字和调用函数所需的信息(参数)。这与现实生活中上下级管理形式有点类似:老板(相当于调用函数或调用者)要求工人(
3、相当于被调用函数)完成某个任务并在完成工作后向老板报告。例如,某个要在屏幕上显示信息的函数可调用函数printf(工人)完成这项工作,函数printf显示了信息并在完成显示返回到调用函数(老板)。此时,调用函数并不知道被调用函数是怎样具体完成指定工作的,实际上被调用函数也可以再调用其它函数,但这些最初的调用函数并不知道这些情况。这就相当于这样一个实例:老板命令工人甲完成一项任务,工人甲接受任务后私自将任务交给工人乙来做,最后如期完成了老板布置的任务,但老板并不清楚其间的细节,事实上这也不是他所关
4、心的。C语言的函数机制很好地实现了工件工程思想中信息隐蔽的概念,这有效地提高了软件工程的质量,随着学习的深入,你会逐步体会到这种好处的。5.1函数的概述C程序的全部工作都是由各式各样的函数完成的,所以也把C语言称为函数式语言。由于釆用了函数模块式的结构,C语言易于实现结构化程序设计。使程序的层次结构淸晰,便于程序的编写、阅读、调试。整个C语言程序项目大致如下图所示:在C语言中可从不同的角度对函数分类。1.从函数定义的角度看,函数可分为库函数和用户定义函数两种(1)库函数由C系统提供,用户无须定义
5、,也不必在程序中作类型说明,只需在程序前包含有该函数原型的头文件即可在程序中直接调用。在前面各章的例题中反复用到printf、scanf、getchar、putchar>gets、puts>strcat等函数均属此类。(2)用户定义函数山用户按需要写的函数。对于用户自定义函数,不仅要在程序中定义函数本身,而且在主调函数模块中还必须对该被调函数进行类型说明,然后才能使用。2.从对函数返回值的需求状况,C语言的函数又可分为有返回值函数和无返回值函数两种(1)有返回值函数此类函数被调用执行完后将向调用
6、者返回一个执行结果,称为函数返回值。如数学函数即属于此类函数。由用户定义的这种要返回函数值的函数,必须在函数定义和函数说明中明确返回值的类型。(2)无返回值函数此类函数用于完成某项特定的处理任务,执行完成后不向调用者返回函数值。其实这类函数并非真的没有返回值,而是程序设计者不关心它而已,此时关心的是它的处理过程。由于函数无须返回值,用户在定义此类函数时可指定它的返回为“空类型”,空类熨的说明符为“void”。3.从主调函数和被调函数之间数据传送的角度看又可分为无参函数和有参函数两种(1)无参函数
7、函数定义、函数说明及函数调用中均不带参数。主调函数和被调函数之间不进行参数传送。此类函数通常用来完成一组指定的功能,可以返回或不返回函数值。(2)有参函数也称为带参函数。在函数定义及函数说明时都有参数,称为形式参数(简称为形参)。在函数调用时也必须给岀参数,称为实际参数(简称为实参)。进行函数调用时,主调函数将把实参的值传送给形参,供被调函数使用。5・2函数的定义与声明1、函数的定义格式:函数类型函数名(形参及其类型)函数类型是函数返回值的类型,若不关心函数返回值,则函数类型可定义为void类型
8、,即空类型,前面我们在主函数前已经使用过。函数名的命名必须符合标识符的要求,形参是实现函数功能所要用到的传输数据,它是函数间进行交流通信的唯一途径。山于形参是山变量充当的,所以变量必须定义类型,那么,形参定义时,就在函数名后的插号中定义,不过有些功能函数不一定要形参,是否有形参将会根据具体情况來定。例[5-1]写一个求n!的函数。分析:因为求的是n的阶乘,所以必须知道n,因此n对于这个函数功能的实现起到重要的作用,也就是说,具体的n值是我们所需要知道的信息,因此,n就是我们要定义的函数的形参。代
此文档下载收益归作者所有