本次课内容:函数 教学目的:掌握C程序结构、函数定义、函数声明、函数的传值 调用和嵌套调用。 重点:函数定义、函数声明、传值调用和嵌套调用 难点:形参、实参和传值。 预习: maino main( double af(double r), cf(doubler) prin(面积=%P,af(2.0); printi(“t长“=%m”,cf(20); double af(double r) afo return(3.141592654rr); cfo double cf(doubler) return(20*3.141592654r);
本次课内容:函数 教学目的:掌握C程序结构、函数定义、函数声明、函数的传值 调用和嵌套调用。 重点:函数定义、函数声明、传值调用和嵌套调用。 难点:形参、实参和传值。 预习: main() { double af(double r),cf(double r); printf(“面积=%f”,af(2.0)); printf(“\t周长“=%f\n”,cf(2.0)); } double af(double r) { return(3.141592654*r*r); } double cf(double r) { return(2.0*3.141592654*r); } main() { : af(); : cf(); : } af() { : } cf() { : }
、C程序结构 执行C程序,就是执行相应的manO函数。 在 mainO函数中可以调用其他函数,这些函数还可以调用另外的 函数。 maIn fl 0f10 maino Filo 10 f0; f210 120 f210 f20 f20; f210 →f20 f220 f220
一、C程序结构 执行C程序,就是执行相应的mani()函数。 在main()函数中可以调用其他函数,这些函数还可以调用另外的 函数。 main() { : f1(); : f2(); : } f1() { : f11(); : } f2() { : f21(); : f22(); : } f11() { : } f21() { : } f22() { : } main() f1() f11() f2() f21() f22()
、函数的定义与声明 定义函数:就是在程序中设定一个模块。 函数声明:是对所用到的函数的特征进行必要的声明。 1、函数定义 定义内容:函数类型、函数名、形参类型及数目、函数体 内容。 (1)函数名 符合C语言对标识符的规定。 (2)形式参数 函数后括号内的内容 作用:表示从主调函数中接收哪些类型的信息。 ty double new style(int a, double x) 函数体中可引用形参。 注:形参不调用时不分配空间,调用结束空间释放。 (3)函数体 函数体是一个分程序结构,由变量定义部分和语句组成
二 、函数的定义与声明 定义函数:就是在程序中设定一个模块。 函数声明:是对所用到的函数的特征进行必要的声明。 1、函数定义 定义内容:函数类型、函数名、形参类型及数目、函数体 内容。 (1)函数名 符合C语言对标识符的规定。 (2)形式参数 函数后括号内的内容 作用:表示从主调函数中接收哪些类型的信息。 如:double new_style(int a,double x) 函数体中可引用形参。 注:形参不调用时不分配空间,调用结束空间释放。 (3)函数体 函数体是一个分程序结构,由变量定义部分和语句组成
(4)函数的返回 函数执行完毕后返回。返回意义: ☆返回到主调函数,释放函数分配的空间 送函数值到调用表达式中。 函数值通过 return(表达式)完成。无此句仅返回主调函数,无值。 如:p106例44 (5)函数的类型 函数类型即函数返回值的类型 sp double new style(int a, double x) (6)函数的外部性 函数定义不能嵌套。 2、函数声明 主调函数中,对要调用的函数要事先声明 格式: 类型标识符函数名(类型标识符形参,类型标识符形参,…); A: double new style(int a, double x) 注:定义写在调用之前,可以略去声明
(4) 函数的返回 函数执行完毕后返回。返回意义: * 返回到主调函数,释放函数分配的空间; * 送函数值到调用表达式中。 函数值通过return(表达式)完成。无此句仅返回主调函数,无值。 如:p106_例4.4 (5)函数的类型 函数类型即函数返回值的类型。 如:double new_style(int a,double x) (6)函数的外部性 函数定义不能嵌套。 2、函数声明 主调函数中,对要调用的函数要事先声明。 格式: 类型标识符 函数名(类型标识符 形参,类型标识符 形参,…); 如:double new_style(int a,double x) 注:定义写在调用之前,可以略去声明
函数的传值调用 参数是函数调用时进行信息交换的载体。 采用变量参数时,实参与形参是按值方式传递的。 传值调用过程: 实参「x y形参(临时) return 特点:形参变量的操作不会影响实参。 四、函数的嵌套调用 在调用一个函数的过程中又调用另一个函数的过程。 如图P147所示。 如:P109例47 例:求两个数的最大公约数。(下页) 例:P13749、4.10、4.11、412
三、函数的传值调用 参数是函数调用时进行信息交换的载体。 采用变量参数时,实参与形参是按值方式传递的。 传值调用过程: 实参 形参(临时) 特点:形参变量的操作不会影响实参。 四、函数的嵌套调用 在调用一个函数的过程中又调用另一个函数的过程。 如图P111 _ 4.7所示。 如:P109_例4.7 例:求两个数的最大公约数。(下页) 例:P137_4.9、4.10、4.11、4.12 x y return
求最大公约数 maino if(r==0) int mn: return(y); int fu(int x, int y) eise scanf("%d, %odin", &m, &n); printf(%dn”,fu(m,n) int fu(int x, int y) y=r, intr,t; 0 B while(r!=0); if (x<y) t=x; x=y;y=t; r-X
求最大公约数 main() { int m,n; int fu(int x,int y); scanf(“%d,%d\n”,&m,&n); printf(“%d\n”,fu(m,n)); } int fu(int x,int y) { int r,t; do { if (x<y) { t=x;x=y;y=t; } r=x%y; if (r==0) return(y); else { x=y; y=r; } }while(r!=0); }
小结: 函数的定义、声明; 2、函数的传值和嵌套。 课后阅读:P104~P10
小结: 1、函数的定义、声明; 2、函数的传值和嵌套。 课后阅读:P104~P110