资源描述:
《《C语言程序设计》第6章函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章函数本章要求理解模块化程序设计思想;掌握函数的定义与调用方法;掌握C语言的参数传递方式,尤其是数组参数的传递特点;掌握变量的作用域和存储方式。本章重点函数的定义与调用参数传递变量的作用域和存储方式本章难点参数传递变量的作用域和存储方式已知多边形的各条边的长度,要计算多边形的面积。计算多边形面积,可将多边形分解成若干个三角形。计算三角形面积的公式如下:c=0.5*(x+y+z);area=sqrt(c*(c-x)*(c-y)*(c-z));多边形在面积为:s=s1+s2+s3;abcdefgS1S2S3引例:6.1函数概述6.1.1模块化程序设计方法模块是较小的、能够完成一
2、定任务的、相对独立的程序段,可以被看作组成一个程序的逻辑单元。C语言使用函数作为程序的组成单元。一个完整的程序由一个主函数main和若干个其它函数组成,由主函数根据需要调用其它函数来实现相应功能,调用的关键在于函数之间的数据传递。对于每一个函数,它仍然由顺序、选择和循环三种基本结构组成。6.1.2C函数的分类从使用角度划分从函数形式划分从函数的结果划分从函数的存储类型划分标准函数,即库函数自定义函数无参函数有参函数无返回值函数有返回值函数外部函数(extern)静态函数(static)注意:在函数体中,形式参数作为已知的变量,它的值是函数调用时由实参传递。6.2函数的定义6.2.
3、1函数的定义形式类型符函数名(形式参数){函数体}说明:类型符用于说明函数返回值的类型。函数名是一个标识符。形式参数可以是0个、一个或多个,表示该函数被调用时所需的一些必要信息,其定义与变量的定义形式相似。函数体一般包括声明部分和执行部分。6.2.2函数返回值C语言通过return语句获得函数返回值的,其格式如下:return表达式;或return(表达式);例:floatarea(floatx,floaty,floatz){floatt,s;t=0.5*(x+y+z);s=sqrt(t*(t-x)*(t-y)*(t-z));returns;}返回值类型返回计算结果注意:也有函
4、数无返回值。voidabc(){printf(“###”);}说明:表达式的值即函数返回值,它应与所定义的函数返回值的类型一致一个函数可以有多条return语句,执行到哪一条return语句,哪一条起作用return语句的另一作用是终止执行函数为增加程序的可读性,建议只在函数结尾处使用一次return语句main(){…s1=area(a,b,c);…}若定义好函数area,在main函数中就可以调用了。6.2.3形式参数的设计分析函数的功能,哪个数据需要调用函数提供,就应定义一个形式参数接收该数据。如:计算一个三角形面积,需要知道三条边的长度。例:floatarea(fl
5、oatx,floaty,floatz){floatt,s;t=0.5*(x+y+z);s=sqrt(t*(t-x)*(t-y)*(t-z));returns;}chargetach(void){return('a'+random(26));}随机产生一个小写字母。无需参数。6.2.4函数原型在使用自定义函数时,除了进行函数的定义外,还需要在调用该函数之前对其进行原型声明函数原型声明和函数定义的区别函数原型声明的作用是将函数类型告诉编译系统,使程序在编译阶段对调用函数的合法性进行全面的检查,避免函数调用时出现参数的个数或类型不一致的运行错误。函数定义部分则是函数的实际实现代码函数原
6、型声明的格式:类型符函数名(形式参数);参数名可省6.3函数调用与参数传递6.3.1函数的调用方式有参函数调用的格式:函数名(实际参数)无参函数的调用格式:函数名()说明:函数总是在某个函数体中被调用;函数调用可以在结尾处加上分号,单独作为一条语句;对于有返回值的函数,其调用也可以出现在某条语句中;函数调用过程floatarea(floatx,floaty,floatz){floatt,s;t=0.5*(x+y+z);s=sqrt(t*(t-x)*(t-y)*(t-z));returns;}voidmain(){floata,b,c,d,e,f,g;floats1,s2,s3
7、,s;a=9;b=11;c=18;d=13;e=14;f=7;g=8;s1=area(a,b,c);s2=area(c,d,e);s3=area(e,f,g);s=s1+s2+s3;printf("s=%f",s);getch();}库函数printf主调函数被调函数6.3.2参数传递函数的参数:形式参数(形参或虚参)——定义函数时的参数,用于接受主调函数提供的值。形参调用函数时分配内存空间,调用结束后释放空间。实际参数(实参)——调用函数时的参数,向被调用函数提供的一些具体