文档详情

第五章模块化程序设计-杭州电子科技大学精品课程网站!讲课.ppt

发布:2017-05-10约字共45页下载文档
文本预览下载声明
第五章 函数 第五章 函数 5.1函数定义 5.2 函数调用 5.3 函数与C程序结构 5.4 函数与变量 第五章 函数 本章学习目标 理解函数的概念 学会定义函数 理解函数调用时的参数传递机制 学会函数调用 理解函数嵌套调用和递归调用 用多个函数组成一个程序 第5章 函数 5.1 函数概述 函数是独立程序段,它完成特定的功能。 函数分为标准库函数与自定义函数。 1。系统提供的标准库函数: 如:pow(x,n) 计算xn的值,sqrt(x) 计算x的平方根等。 2。用户自定义函数。 用户自己编写函数。 5.1 函数定义 函数概述 通常将相对独立又经常使用的操作编写成函数。用户可以通过函数调用来实现函数的功能。C程序的函数有两种:标准库函数和自定义函数。 标准库函数 将一些常用的操作或计算定义成函数,实现特定的功能,这些函数称为标准库函数。 自定义函数 除了使用系统提供的标准库函数外,用户也可以自己编写函数,使函数完成用户指定的任务。 5.1 函数定义 函数定义 函数定义的一般形式: 类型标识符 函数名(类型 形参,类型 形参,……) { 定义部分 语句序列 } 类型标识符 类型标识符用来定义函数类型,是指函数返回值的类型。 无返回值的函数,函数类型用“void”,称为“空类型”。 函数名 函数名由程序员取名,但必须符合标识符的命名规则。 形参 形参个数及形参的类型是由具体的函数功能决定。 5.1 函数定义 例5.1 定义一个函数,根据三角形的三条边长,计算三角形面积。 #includemath.h double area(double x,double y,double z) //定义求三角形面积函数 { double s, a; s=(x+y+z)/2; a=sqrt(s*(s-x)*(s-y)*(s-z)); return a; } 5.1 函数定义 例5.2 编写函数,在屏幕一行上输出8个“*”字符。 void printstar() { int i; for(i=0; i8; i++) printf(%c,*); printf(\n); return; // 返回主调函数 } 5.1 函数定义 return语句 return; return 表达式; return; 用在定义为void的函数体中,函数无返回值; return表达式;用在除空类型外的所有其它函数体中,函数有返回值。 return语句功能:返回的到主调函数的调用点。 5.2 函数调用 函数调用 程序中使用已定义好的函数,称为函数调用。如果函数A调用函数B,则称函数A为主调函数,函数B为被调函数。 函数调用的一般形式: 函数名(实参,实参,……) 函数调用时,实参与形参的个数必须相等,类型应一致,若形参与实参类型不一致,编译系统按照类型转换原则,自动将实参值的类型转换为形参类型。 5.2 函数调用 函数调用过程: (1)建立形参变量。 (2)实参值传给形参变量,使形参变量获得值 (无参函数调用无该步)。 (3)程序在调用点暂停执行,转入被调用的函数体内执行。 (4)被调用函数体执行完后转回调用函数的调用点并带回值,然后从调用函数的暂停点开始继续执行尚未执行完的程序。 5.2 函数调用 例5.3 编写函数,求两个数的最大值函数。在主函数中输入两个数,用函数调用求出最大值,并在主函数中输出。 #includestdio.h double max(double x,double y) // 定义求两个数中的最大值 { double mx; mx= xy?x:y; return(mx); // 返回最大值 } void main() { double a,b,m; printf(“Input a b:\n”); scanf(%lf%lf,a,b); m=max(a,b); printf(Max=%lf,m); } 5.2 函数调用 传值调用的特点 C语言中函数调用时,先建立形参变量,再把实参的值复制(赋值)给形参变量,起到了外部数据传给函数的作用。除此之外,实参与形参变量没有任何关系。 在函数体的执行中,形参变量值的任何改变,都不影响实参值。 5.2 函数调用 例5.4 定义一个计算n!的函数,其中n是自然数,函数返回值为double。计算5!,输入t,分别计算输出t!和(5+t)!。 #includestdio.h
显示全部
相似文档