c语言经典课件5-9章

c语言经典课件5-9章

ID:13036504

大小:844.00 KB

页数:118页

时间:2018-07-20

c语言经典课件5-9章_第1页
c语言经典课件5-9章_第2页
c语言经典课件5-9章_第3页
c语言经典课件5-9章_第4页
c语言经典课件5-9章_第5页
资源描述:

《c语言经典课件5-9章》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第五章函数第五章函数解决大的复杂问题的方法之一是化整为零,分而治之,在程序设计中也采用这样的方法,将大任务分解成若干人的智力能及的小模块,降低程序的复杂性,增加程序的可靠性和可重用性。在C程序中,模块以函数的形式来体现,所以说C程序是由函数构成的语言,是函数式的语言。一个C程序由一个main函数和若干其它函数组成,这些函数可以写在一个文件中,也可以写在若干文件中,无论main函数的位置在何处,程序总是从main函数开始执行,也从main函数结束。图5-1是C程序的组织示意图。文件1文件2文件n函数1一1函数2一1函数n一1程序图5-1C程序的组织5.1问题的提

2、出5.1.1问题如何使用函数编程计算3!+5!+8!5.1.2问题分析题目要求计算三个阶乘的值,相加后,输出结果,核心在于计算阶乘。如果在一个main()函数里完成的程序如下:例5_1main(){longintj,t=1,s=0;for(j=1;j<=3;j++)t=t*j;/*计算3阶乘*/s+=t;for(t=1,j=1;j<=5;j++)t=t*j;/*计算5阶乘*/s+=t;for(t=1,j=1;j<=8;j++)t=t*j;/*计算8阶乘*/219第五章函数s+=t;printf(“3!+5!+8!=%ld”,s);}仅仅因为循环次数不同,程

3、序中写了三遍计算阶乘的程序段(三个for语句),程序显得重复累赘,如果把计算阶乘的程序段独立写成一个模块(函数),需要时,调用它,程序的可重用性、可靠性、可维护性都可得到提高,怎样写一个函数呢?,怎样调用这个函数呢?这就是我们学习函数这章的任务。5.1.3程序1.把求阶乘的程序段独立写成一个函数,调用这个函数时,输入n,函数就输出n!,如图5-2。n!n函数图5-2求n!函数例5_2longjch(intn){longt=1;intj;for(j=1;j<=n;j++)t*=j;returnt;}2.main函数中三次调用以上函数,并将结果相加后输出。main

4、(){longs=0;s=jch(3)+jch(5)+jch(8);printf(“3!+5!+8!=%ld”,s);}将以上两个函数输入计算机,运行后输出和例5_1同样的结果:3!+5!+8!=40446,但程序的模块化程度提高,整个程序由两个函数组成,可重用性提高,jch函数可被多次使用,main函数的任务减轻,它主要完成调用其他函数的任务。函数的应用主要涉及三方面的内容:定义、调用、声明。5.2函数的定义函数的定义由函数头和函数体两部分组成,形式如下:函数头{函数体}219第五章函数5.2.1函数头C程序通过函数头来调用函数,因此函数头是函数的用户界

5、面,其形式如下:类型名函数名(形参表列)类型名是函数返回值的类型,如例5_2中的longjch(intn)表示该函数将返回一个长整型数据,无返回值的函数是void型。函数名是函数的标识,必须是合法的C标识符。括号中的形参表列是0个或多个以逗号分隔的形式参数,它定义了调用该函数时必须送给该函数的数据类型及数据个数,之所以称为形式参数,是因为函数不被调用时,系统不给这些参数分配存储空间,只在调用发生时,才分配空间,调用结束后,系统又收回空间。这种参数就像剧本中的角色,只有在被演员扮演时才能有演出效果。5.2.2函数体函数体是用一对花括号括起来的语句系列(语句块),

6、它描述了函数实现某一功能的执行过程,函数最后要执行返回,返回的作用是:u将程序的执行从当前函数返回其上级(调用它的函数)。u释放该函数的参数及变量所占用的内存空间。u向函数返回一个值(如果函数的类型不是void时)。当函数要返回一个值时,必须通过return语句返回,其形式如下:return(表达式);表达式的类型应该和函数定义时函数名前的类型一致,有冲突时,服从于函数名前的类型,return后的括号可有可无。例5_3intabsint(intx)/*返回一个整数的绝对值*/{if(x>=0)returnx;elsereturn-x;}C函数只能通过一个ret

7、urn语句返回一个值,所有return语句的返回值类型应与函数名前的类型一致。这个函数虽然有两个return语句,但执行时只可能执行到一个return语句。函数只完成某一功能,而不返回任何值时,可将函数定义成void类型,在这种函数中return语句可有可无,函数执行完后,有无return语句,都执行返回功能。例:5_4voidpok(){printf(“0k”);return;/*可以无return*/}219第五章函数在一个程序中不能出现同名的多个函数定义,且函数体内不能再定义函数,即不能嵌套定义,如:intff1()/*ff1函数定义*/{floatff

8、2()/*ff2函数定义出现在ff1函

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。