第7章函数 第7章函数 71函数的定义 72函数的调用 73数据传递方法 74嵌套调用和递归调用 75变量的作用域 76变量的存储类别 7,7结构化程序设计方法 BACK
第 7章 函 数 第 7章 函 数 7.1 函数的定义 7.2 函数的调用 7.3 数据传递方法 7.4 嵌套调用和递归调用 7.5 变量的作用域 7.6 变量的存储类别 7.7 结构化程序设计方法
第7章函数 71函数的定义 1.函数头 函数头有经典与现代两种形式,现代形式称之为函数原型。 经典形式: 函数属性函数类型函数名(函数参数表)参数说明 如: static float fi(ab,c)/*属性 static,类型foat函数名们,函数参 数表"anb,c"/ float a,b,c;/*参数说明*/ 现代形式 函数属性函数类型函数名(参数说明) tI: static double f2(float, float y, float z)
第 7章 函 数 7.1 函数的定义 1. 函数头 函数头有经典与现代两种形式, 现代形式称之为函数原型。 经典形式: 函数属性 函数类型 函数名(函数参数表) 如: static float f1(a,b,c)/*属性static,类型float,函数名f1,函数参 数表″a,b,c″/float a, b, c; /*参数说明*/ 现代形式: 函数属性 函数类型 函数名(参数说明) 如: static double f2(float x, float y, float z)
第7章函数 2.函数体 函数体由服务于函数的数据说明与执行语句两部分组 成。数据说明包括数据定义和数据申明,完成数据描述,执 行语句完成操作描述。 TURBO C中数据说明必须位于函 数体或复合语句的开始处,但C++中可根据需要随时定义 个函数的函数体可以为空,此时的函数称为空函数, 空函数常用于程序调试。 空函数的形式为: void fo {}
第 7章 函 数 2. 函数体 函数体由服务于函数的数据说明与执行语句两部分组 成。数据说明包括数据定义和数据申明, 完成数据描述, 执 行语句完成操作描述。TURBO C中数据说明必须位于函 数体或复合语句的开始处, 但C++中可根据需要随时定义。 一个函数的函数体可以为空, 此时的函数称为空函数, 空函数常用于程序调试。 空函数的形式为: void f( ) { }
第7章函数 712返回语句 通过在函数中使用返回语句,返回一个值给函数,同 时终止函数的调用,返回主函数。 格式 return(表达式); 或 return表达式; 功能: 1)计算表达式的值,将表达式的值返回给函数。 (2)从被调用的函数返回主调函数
第 7章 函 数 7.1.2 返回语句 通过在函数中使用返回语句, 返回一个值给函数, 同 时终止函数的调用, 返回主函数。 格式: return(表达式); 或return 表达式; 功能: (1) 计算表达式的值, 将表达式的值返回给函数。 (2) 从被调用的函数返回主调函数
第7章函数 713函数的定义 (1)需定义函数的属性。 (2)需定义函数的类型。 (3)给函数取一个名字。 (4)设计函数的参数 (5)对函数中使用的量进行定义 (6)对函数的执行部分进行描述
第 7章 函 数 7.1.3 函数的定义 (1) 需定义函数的属性。 (2) 需定义函数的类型。 (3) 给函数取一个名字。 (4) 设计函数的参数。 (5) 对函数中使用的量进行定义。 (6) 对函数的执行部分进行描述
第7章函数 例7-1求两个数的最大值函数 /*求两个数的最大值函数* float max (x, y) (1)函数值类型foat float x,y (2)函数名max float m (3)函数参数x、y,类型为foat if (x>y)m=x else m=y return(m);/*返回最大值*
第 7章 函 数 例 7 – 1 求两个数的最大值函数。 /*求两个数的最大值函数*/ float max(x, y) (1) 函数值类型float float x, y; (2) 函数名max {float m; (3) 函数参数x、 y, 类型为float if (x>y) m=x; else m=y; return(m); /*返回最大值*/ }
第7章函数 说明: (1)函数头可以用现代形式 float max(float x, float y (2)函数体也有多种等价形式 形式if(x>y) return(x) else return (y) 形式二 return(xy?x:y)
第 7章 函 数 说明: (1) 函数头可以采用现代形式: float max(float x, float y (2) 函数体也有多种等价形式: 形式一: if (x>y) return(x); else return(y); 形式二: return(x>y?x: y);
第7章函数 例7-2判断两个数是否是相等函数。 方法一: /*判断两个数是否是相等函数* int eq (x,y (1)函数值类型int,可以缺省 float x, y; (2)函数名eq float t (3)函数参数x、y,类型为foat if (x=y) t=1 else t=0 return(t);/*相等返回1,不等返回0*
第 7章 函 数 例 7-2 判断两个数是否是相等函数。 方法一: /*判断两个数是否是相等函数*/ int eq(x, y) (1) 函数值类型int, float x, y; (2) 函数名eq {float t; (3) 函数参数x、 y, 类型为float if (x==y) t=1; else t=0; return(t); /*相等返回1, 不等返回0*/ }
第7章函数 方法二: /*判断两个数是否是相等函数* int eq(Xy) float x, y i if (xy) return (1) else return (0)
第 7章 函 数 方法二: /*判断两个数是否是相等函数*/ int eq(x, y) float x, y; { if (x==y) return(1); else return(0); }
第7章函数 方法三: /*判断两个数是否是相等函数* int eq(x,y) float x,y freturn(X-y)
第 7章 函 数 方法三: /*判断两个数是否是相等函数*/ int eq(x, y) float x, y; {return(x==y); }