资源描述:
《lectc06chap05函数变量存储类别生命周期作用范围》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Chap5函数5.1计算圆柱体积5.2数字金字塔5.3复数运算本章要点函数的作用?如何确定函数功能?怎样定义函数?如何调用函数?定义函数与声明函数有何区别?什么是函数的参数?怎样确定函数的参数?在函数调用时,参数是如何传递数据的?变量与函数有什么关系?如何使用局部变量和全局变量?什么是静态变量?5.1计算圆柱体积5.1.1程序解析5.1.2函数的定义5.1.3函数的调用5.1.4函数程序设计5.1.1程序解析-计算圆柱体积例5-1输入圆柱体的高和半径,求圆柱体积,volume=π*r2*h。要求定义和调用函数
2、cylinder(r,h)计算圆柱体的体积。例5-1源程序/*计算圆柱体积*/#includeintmain(void){doubleheight,radius,volume;doublecylinder(doubler,doubleh);/*函数声明*/printf("Enterradiusandheight:");scanf("%lf%lf",&radius,&height);/*调用函数,返回值赋给volume*/volume=cylinder(radius,height);print
3、f("Volume=%.3f",volume);return0;}例5-1源程序/*定义求圆柱体积的函数*/doublecylinder(doubler,doubleh){doubleresult;result=3.1415926*r*r*h;/*计算体积*/returnresult;/*返回结果*/}Enterradiusandheight:3.010Volume=282.743例5-1源程序#includeintmain(void){doubleheight,radius,volum
4、e;doublecylinder(doubler,doubleh);/*函数声明*/printf("Enterradiusandheight:");scanf("%lf%lf",&radius,&height);volume=cylinder(radius,height);printf("Volume=%.3f",volume);return0;}doublecylinder(doubler,doubleh){doubleresult;result=3.1415926*r*r*h;returnresult
5、;}Enterradiusandheight:3.010Volume=282.743问题:函数是如何运行的?5.1.2函数的定义函数是指完成一个特定工作的独立程序模块。库函数:由C语言系统提供定义如scanf()、printf()等函数自定义函数:需要用户自己定义如计算圆柱体体积函数cylinder()main()也是一个函数,C程序由一个main()或多个函数构成。程序中一旦调用了某个函数,该函数就会完成特定的计算,然后返回到调用它的地方。函数经过运算,得到一个明确的运算结果,并需要回送该结果。例如,函数c
6、ylinder()返回圆柱的体积。5.1.2函数定义函数类型函数名(形参表)/*函数首部*/{/*函数体*/函数实现过程return表达式;}把函数运算的结果回送给主函数只能返回一个值函数返回值的类型没有分号doublecylinder(doubler,doubleh){doubleresult;result=3.1415926*r*r*h;returnresult;}doublecylinder(doubler,doubleh)/*函数首部*/{/*函数体,写在一对大括号内*/doubleresult;re
7、sult=3.1415926*r*r*h;/*计算圆柱体积*/returnresult;/*返回运算结果*/}分析函数的定义函数类型函数名形参表与函数类型一致形参类型1参数1,类型2参数2,……,类型n参数n参数之间用逗号分隔,每个参数前面的类型都必须分别写明函数类型函数名(形参表){函数实现过程return表达式;}不能写成doubler,hdoublecylinder(doubler,doubleh){doubleresult;result=3.1415926*r*r*h;returnresult;}5.
8、1.3函数的调用定义一个函数后,就可以通过程序来调用这个函数。调用标准库函数时,在程序的最前面用#include命令包含相应的头文件。调用自定义函数时,程序中必须有与调用函数相对应的函数定义。1.函数调用的形式函数调用的一般形式为:函数名(实际参数表)对于实现计算功能的函数,函数调用通常出现在两种情况:赋值语句volume=cylinder(radius,height);输出函数的实参printf(