欢迎来到天天文库
浏览记录
ID:6679798
大小:31.00 KB
页数:7页
时间:2018-01-22
《c语言教程(课件)第4章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、c语言教程(课件)第4章本文由youlangoo贡献ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。第四章模块化程序设计函数C语言的模块化功能:函数式的程序结构:程序整体由一个或多个函数构成,每个函数具有各自独立的功能和明显的界面。允许使用不同存储类别的变量,控制模块内部和外部的信息交换。具有编译预处理功能,为程序的调试、移植提供了方便。支持模块化程序设计。一、C一、C程序结构用C语言编写程序的任务:编写函数。至少要有一个main()函数。一个main()函数。C语言执行:C语言的执行就是执行main()函数,语言的执行就是
2、执行main()函数,从开始main()函数的第一个花括号开始,到最后从开始main()函数的第一个花括号开始,到最后一个花括号结束。其它函数,均是在main()被执一个花括号结束。其它函数,均是在main()被执行时才被调用。C语言程序设计方法:自顶向下、逐步细化。先集中考虑main()中的算法,某些功能先用一个函数表先集中考虑main()中的算法,某些功能先用一个函数表达式表示。main()设计完毕,再考虑所要用到的函数,有的直接拿main()设计完毕,再考虑所要用到的函数,有的直接拿来使用,没有的就开始动手设计。结构化程序设计举例高校事务管理系统办公室管
3、理……学藉绩管管理理成理管理理理理理………………务管管管管管……教研事务勤科人财后书图…………排课管……理多级管理的实现:一般用菜单方式(例L4多级管理的实现:一般用菜单方式(例L4-1)高校事务管理系统1、办公室管理3、科研管理5、财务管理7、图书管理2、教务管理4、人事管理6、后勤管理8、退出系统请您选择功能(1请您选择功能(1-8):二、函数的定义与声明例4-2main(){…doublefun(inta,intb);b);…}Doublefun(inta,intb){/*函数体*//*函数体*}函数的声明“;”不能少函数的定义不能有“;”(一)函数的定
4、义函数名:函数名要符合C函数名:函数名要符合C的标识的规定。形式参数:要在函数名后的括号内,有多个时,以逗号分隔。形式参数只有在程序运行时才临时分配存储空间,用完则释放该空间,因此函数中的参数值的变化不返回(例L4间,因此函数中的参数值的变化不返回(例L4-2-2),称为值传递。函数体:是一个分程序结构,和主程序一样,一般也由变量定义部分和语句组成。但允许只有语句甚至整个函数为空。函数的返回值:有返回值,则要声明函数的类型,并用return返回其值。有返回值,则要声明函数的类型,并用return返回其值。没有返回值,则函数类型声明为void型,且若函数中的re
5、turn在最没有返回值,则函数类型声明为void型,且若函数中的return在最后时,可省去。函数的外部特性:函数不允许嵌套:函数是平等的,不能在函数中再定义函数。(二)函数的声明在主调函数中,要对在本函数中将要调用的函数事先作一声明。其作用是向编译系统提供必要的信息:函数名,函数类型,参数的个数、类型及排列次序。并注意这些应与函数的定义部分一一对应(一般只要将函数的定义复制过来,并加一个“;”即可。)虽然,在主调函数前定义的函数,可不声明,但一般还是养成声明的习惯为好,这样可以清楚地知道,在主调函数中到底要用到哪些函数。三、函数的嵌套调用C语言中允许函数中再
6、调用函数。main()函数{….u=f1(i,t)….}1f1()函数2{….v=f2(p,q,t)….6}3{f2()函数….}547四、函数的递归调用函数的递归调用就是一个函数直接或间接地调用它自身。例L4-9求n!L4要求n!可以:要求n!可以:只先求出(n-1)!,再乘以n只先求出(n-1)!,再乘以n。要求(n-1)!,只先求出(n-2)!,再乘以n要求(n-1)!,只先求出(n-2)!,再乘以n-1。……终于变成了求1!(这个值是已知的,也叫递归终止条件)终于变成了求1!(这个值是已知的,也叫递归终止条件)再回推过去。这就是一个递归调用问题。例L4
7、-10-2汉诺塔问题:将64个盘子从从A座移至C座,可L4汉诺塔问题:将64个盘子从从A座移至C以借助B以借助B座。将n个盘子从A座移至C座的解决的方法:个盘子从A座移至C1.将上面的n-1个盘子从A移至B;将上面的n个盘子从A移至B2.将剩下的一个从A移至C;将剩下的一个从A移至C3.将n-1个从B移至C;个从B移至C其中的将n其中的将n-1个盘子从一座移至另一座,又重复前面的过程,只是盘子数减1。且第1步和第3程,只是盘子数减1。且第1步和第3步性质相同,只是座名不同而已。ABCvoidhanoi(intn,chara,charb,charc){if(n>
8、0){hanoi(n{hanoi(n-
此文档下载收益归作者所有