第六章函数 教学目标 教学内容 小结
第六章 函数 •教学目标 •教学内容 •小结
教学目标 掌握函数的定义与应用 掌握函数的传值调用与传址调用方式。 掌握主被调函数间的参数传递。 掌握命令行参数及其应用。 了解函数的递归调用
教学目标 • 掌握函数的定义与应用。 • 掌握函数的传值调用与传址调用方式。 • 掌握主被调函数间的参数传递。 • 掌握命令行参数及其应用。 • 了解函数的递归调用
教学内 ●函数的定义和调用及返回值 ●数据在函数间的传递方式 数组名作实参 ●通过指针调用函数 ●带参数的主函数(命令行参数) ●两类特殊函数
教学内容 ⚫ 函数的定义和调用及返回值 ⚫ 数据在函数间的传递方式 ⚫ 数组名作实参 ⚫ 通过指针调用函数 ⚫ 带参数的主函数(命令行参数) ⚫ 两类特殊函数
什么是函数? (1)函数是程序的基本组成单元,是实现特定功能 的模块。 (2)一个C语言程序是由一个ma0函数和若干个 其它函数组成的。 (3)C语言的函数包括标准库函数与用户自定义函 数
什么是函数? (1)函数是程序的基本组成单元,是实现特定功能 的模块。 (2)一个C语言程序是由一个main()函数和若干个 其它函数组成的。 (3) C语言的函数包括标准库函数与用户自定义函 数
函数示例1 float circle area(int r float s s=.1416*rr return(s) main( float area, intr printf("请输入圆的半径:"); scanf(" %d", &r) printf("n area=%f\n", circle area(r)
函数示例1 float circle_area (int r) { float s; s=.1416*r*r; return(s); } main( ) { float area; int r; printf("请输入圆的半径:"); scanf("%d",&r); printf("\n area=%f\n",circle_area(r)); }
函数的定义与声明 类型标识符函数名(类型标识符形参1,类型标识符形参 函数体变量说明语句; 函数体可执行语句 前面示例的方式 类型标识符 函数名(形式参数表) 形式参数说明; 函数体变量说明语旬 函数体可执行语旬 该方式已过时
函数的定义与声明 类型标识符 函数名(类型标识符 形参1,类型标识符 形参 2, …) { 函数体变量说明语句; 函数体可执行语句 } 类型标识符 函数名(形式参数表) 形式参数说明; { 函数体变量说明语句; 函数体可执行语句 } 前面示例的方式 该方式已过时
函数的定义与声明 (1)函数与变量一样,必须先定义后使用。 (2)如果没有声明函数类型,则编译程序自动将整 型作为函数的缺省类型。 (3)函数声明中,末尾的分号不可缺少
函数的定义与声明 (1)函数与变量一样,必须先定义后使用。 (2)如果没有声明函数类型,则编译程序自动将整 型作为函数的缺省类型。 (3)函数声明中,末尾的分号不可缺少
函数示例2 include float rectangle area(float length, float width) int maino float length width printf("请输入矩形的长与宽:"); scanf("%f, %f, &length, &width) printf("rectangle area=%10. 3fn", rectangle _ area(length, width) return o float rectangle area(float length, float width) float s=length*width return s
函数示例2 #include float rectangle_area(float length,float width); int main() { float length,width; printf("请输入矩形的长与宽:"); scanf("%f,%f",&length,&width); printf("rectangle area=%10.3f\n",rectangle_area(length,width)); return 0; } float rectangle_area(float length,float width) { float s; s=length*width; return s; }
函数的调用方式 假定我们定义了一个函数 int max(nta,ntb);,那么 函数的调用方式可以采用 (1)作为表达式的一部分,例如 a=max( x,y*Z+s/t (2)作为一条独立的语句,例如 max(x, y) (3)作为另一个函数的实参,例如: printf( Maximum =%dn, max(x, D)
函数的调用方式 假定我们定义了一个函数int max(int a,int b);,那么 函数的调用方式可以采用 (1)作为表达式的一部分,例如: a=max(x,y)*z+s/t; (2)作为一条独立的语句,例如: max(x,y); (3)作为另一个函数的实参,例如: printf(“Maximum =%d\n”,max(x,y));
函数的调用-1 (1)函数调用遵循“先定义,后调用”的原则。即 一般被调用函数应放在调用函数之前定义。 例如:被调函数 int fun 1(int a2, int b2,int C2,....) main() fun1(a1,b1,c2,);/调用函数*
函数的调用-1 (1)函数调用遵循“先定义,后调用”的原则。即: 一般被调用函数应放在调用函数之前定义。 例如:/*被调函数*/ int fun1(int a2,int b2,int c2,….. ) {… … } main( ) {… fun1(a1,b1,c2,….. ); /*调用函数*/ }