资源描述:
《C语言电子教案第6章函数.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章函数教学目标:1.领会函数在C语言程序中的作用;2.会运用函数调用的原则和参数传递方式;3.会运用简单的递归算法;4.能够分析C语言程序中变量的作用域和生存期。本章结构概述函数的定义函数的参数和返回值函数的调用数组作为函数参数函数的嵌套调用函数的递归调用外部变量与内部变量静态变量与自动变量变量的存储类别多文件程序的编译与连接6.1概述◆C语言程序是一种独特的模块结构,每个模块都是一个函数◆有且只能有一个名为main的主函数◆main可以调用其他函数,但其他函数不能调用主函数自定义函数的作用函数分类:从用户角度主函数:名为main的函数标准函数
2、(库函数):由系统提供用户自定义函数从函数形式无参函数有参函数[类型标识符]函数名(形参列表)/*函数头*/{说明部分/*函数体*/语句部分}例intmax(intx,inty){intz;z=x>y?x:y;return(z);}例无参函数printstar(){printf(“**********”);}6.2函数定义的一般形式6.3函数参数和返回值6.3.1形式参数与实际参数max(intx,inty){intz;Z=x>y?x:y;return(z);}main(){inta,b;a=2;b=3;Printf(“%d”,max(a,b)
3、);}实际参数形式参数返回语句形式:return(表达式);或return表达式;或return;功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数说明:函数中可有多个return语句若无return语句,遇}时,自动返回调用函数6.3.2函数的返回值floatarea(floata,floatb){floats;s=a*b;return(s);}6.4.1函数调用的一般形式6.4函数的调用函数名(实参表)函数语句:例printstar();printf(“Hello,World!”);函数表达式:例m=max(a,b)*2;
4、函数参数:例printf(“%d”,max(a,b));m=max(a,max(b,c));函数的调用方式对被调用函数要求:必须是已存在的函数库函数:#include<*.h>用户自定义函数:函数类型说明函数说明一般形式:函数类型函数名(形参类型[形参名],…..);或函数类型函数名();作用:告诉编译系统函数类型、参数个数及类型,以便检验函数定义与函数说明不同函数说明位置:程序的数据说明部分(函数内或外)下列情况下,可不作函数说明若函数返值是char或int型,系统自动按int型处理函数说明实参必须有确定的值形参必须指定类型形参与实参类型一致,个
5、数相同若形参与实参类型不一致,自动按形参类型转换———函数调用转换形参在函数被调用前不占内存;函数调用时为形参分配内存;调用结束,内存释放函数参数说明(1)值传递:函数调用时,为形参分配存储单元,并将实参的值传送到形参中;调用结束时,形参单元释放,实参单元仍保留并维持原值特点:①形参和实参占用不同的内存单元②单向传递参数传递方式(2)地址传递:函数调用时,将数据的存储地址作为参数传递给形参特点:①形参与实参占用同样的存储单元②实现了数据的“双向”传递③实参和形参必须是地址利用自定义函数计算:1!+2!+…5!fact(n)/*阶乘函数*/{i
6、nti,t=1;for(i=1;i<=n;i++)t=t*i;return(t);/*返回阶乘值*/}main(){inti,sum=0;for(i=1;i<=5;i++){sum=sum+fact(i);/*调用阶乘函数,之后进行累加*/printf("sum=%d",sum);}}music(hz,t){inti;sound(hz);/*演奏音阶*/for(i=0;i<=t;i++)/*以延时形成节拍*/delay(2000000000);nosound();}模拟电子琴键盘#include#include#
7、include#includemain(){chari=1,j;inthz,t;while((i=getch())!='x1b')/*Esc键退出演奏*/{switch(i){case’a':hz=262;break;case's':hz=294;break;case'd':hz=330;break;case'f':hz=349;break;case'j':hz=392;break;case'k':hz=440;break;case'l':hz=494;break;case';':hz=523;break;c
8、ase'm':hz=523;break;case',':hz=523;break;case'.':hz=523;break