书签 分享 收藏 举报 版权申诉 / 32
上传文档赚钱

类型C语言电子教案第6章函数课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3377074
  • 上传时间:2022-08-25
  • 格式:PPT
  • 页数:32
  • 大小:379.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C语言电子教案第6章函数课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言 电子 教案 函数 课件
    资源描述:

    1、第6章 函数 教学目标:1.领会函数在C语言程序中的作用;2.会运用函数调用的原则和参数传递方式;3.会运用简单的递归算法;4.能够分析C语言程序中变量的作用域和生存期。本章结构 概述 函数的定义 函数的参数和返回值 函数的调用 数组作为函数参数 函数的嵌套调用 函数的递归调用 外部变量与内部变量 静态变量与自动变量 变量的存储类别 多文件程序的编译与连接6.1概述C语言程序是一种独特的模块结构,每个模块都是一个函数函数有且只能有一个名为mainmain的主函数 mainmain可以调用其他函数,但其他函数不能可以调用其他函数,但其他函数不能调用主函数调用主函数自定义函数的作用函数分类:从用户

    2、角度主函数:名为main的函数标准函数(库函数):由系统提供用户自定义函数 从函数形式无参函数有参函数类型标识符 函数名(形参列表)/*函数头*/说明部分 /*函数体*/语句部分例 int max(int x,int y)int z;z=xy?x:y;return(z);例 无参函数 printstar()printf(“*n”);6.2 函数定义的一般形式 6.3函数参数和返回值6.3.1形式参数与实际参数max(int x,int y)int z;Z=xy?x:y;return(z);main()int a,b;a=2;b=3;Printf(“%d”,max(a,b);实际参数形式参数 返

    3、回语句 形式:return(return(表达式表达式);或 return return 表达式表达式;或 return;return;功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数 说明:函数中可有多个return语句 若无return语句,遇 时,自动返回调用函数6.3.2函数的返回值float area(float float area(float a,float b)a,float b)float s;float s;s=a s=a*b;b;return(s);return(s);6.4.1 函数调用的一般形式6.4 函数的调用函数名(实参表)函数语句:函数语句:

    4、例 printstarprintstar();();printf printf(“Hello,World!n”);(“Hello,World!n”);函数表达式:函数表达式:例 m=max(a,b)m=max(a,b)*2;2;函数参数:函数参数:例 printfprintf(“%d”,max(a,b);(“%d”,max(a,b);m=max(a,max(b,c);m=max(a,max(b,c);函数的调用方式对被调用函数要求:必须是已存在已存在的函数库函数:#include#include.h用户自定义函数:函数类型说明函数类型说明函数说明一般形式:函数类型函数类型 函数名函数名(形参类

    5、型形参类型 形参名形参名,.);.);或 函数类型函数类型 函数名函数名();();作用:告诉编译系统函数类型、参数个数及类型,以便检验函数定义函数定义与函数说明函数说明不同函数说明位置:程序的数据说明部分(函数内或外)程序的数据说明部分(函数内或外)下列情况下,可不作函数说明 若函数返值是若函数返值是charchar或或intint型型,系统自动按intint型处理函数说明实参必须有确定的值形参必须指定类型形参与实参类型一致,个数相同类型一致,个数相同若形参与实参类型不一致,自动按形参 类型转换函数调用转换函数调用转换形参在函数被调用前不占内存;函数调用函数调用 时为形参分配内存;调用结束,

    6、内存时为形参分配内存;调用结束,内存 释放释放函数参数说明(1 1)值传递)值传递:函数调用时,为形参分配存储单元为形参分配存储单元,并并将实参的值传送到形参中;调用将实参的值传送到形参中;调用结束时结束时,形参单,形参单元释放,实参单元仍保留并维持原值元释放,实参单元仍保留并维持原值特点:形参和实参占用不同不同的内存单元单向单向传递参数传递方式(2)地址传递)地址传递:函数调用时,将数据的存储地址存储地址作为参数传递给形参特点:形参与实参占用同样同样的存储单元实现了数据的“双向双向”传递实参和形参必须是地址地址利用自定义函数计算:1!+2!+5!fact(n)/*阶乘函数*/int i,t=

    7、1;for(i=1;i=n;i+)t=t*i;return(t);/*返回阶乘值*/main()int i,sum=0;for(i=1;i=5;i+)sum=sum+fact(i);/*调用阶乘函数,之后进行累加*/printf(sum=%dn,sum);music(hz,t)int i;sound(hz);/*演奏音阶*/for(i=0;i=t;i+)/*以延时形成节拍*/delay(2000000000);nosound();模拟电子琴键盘#include#include#include#includemain()char i=1,j;int hz,t;while(i=getch()!=x

    8、1b)/*Esc键退出演奏*/switch(i)casea: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;case m:hz=523;break;case,:hz=523;break;case.:hz=523;break;default:break;if(kbhit()&getch()=)t=20;else t=10;music(hz,t

    9、);69xy:调用前:调用结束:调用结束:#include swap(int a,int b)int temp;temp=a;a=b;b=temp;main()int x=6,y=9;printf(x=%d,ty=%dn,x,y);swap(x,y);printf(x=%d,ty=%dn,x,y);调用:调用:a:b:swap:temp交换两个变量的值:xy:69699696xy:69b:a:y:x结果:x=6 y=96.5 数组作为参数数组作为参数时:实参数组的首地址传给形参sort(int b)/*形参b长度不定*/int a11;sort(a);/*实参a长度11*/首地址例6-9 调用

    10、自定义排序函数对数组排序main()int i,a11=0;void sort(int b11);for(i=1;i=10;i+)scanf(%d,&ai);sort(a);printf(n);for(i=1;i=10;i+)printf(%6d,ai);/*输出已排序输出已排序的数组的数组a*/*调用*/void sort(int b11)int i,j,t;for(i=1;i=9;i+)for(j=2;jbj-1)t=bj;bj=bj-1;bj-1=t;for(i=1;i=10;i+)printf(%6d,bi);/*自定义函数自定义函数中输出排序后中输出排序后的数组的数组b*/6.6 函

    11、数的嵌套主函数main()子函数fun1()子函数fun2()#includemain()int i,j,n,t,t1,t2,s411;void output(int score411);for(i=1;i=3;i+)printf(no.%d:1-10?,i);for(j=1;j=10;j+)scanf(%d,&sij);for(n=1;n=3;n+)for(i=1;i=9;i+)for(j=2;jsnj-1)t=snj;snj=snj-1;snj-1=t;output(s);void output(int core411)int i,j;print_line();for(i=1;i=3;i+

    12、)printf(n|);for(j=1;j=10;j+)printf(%3d|,scoreij);printf(n);print_line();print_line()int i;for(i=1;i0):);scanf(%d,&n);y=fact(n);printf(%d!=%ldn,n,y);long fact(int n)long f;if(n=0|n=1)f=1;else f=n*fact(n-1);return(f);/*递 归 时 如 果 没 有“如果”,一定是错误的!*/6.8 外部变量与内部变量内部变量(局部变量):在一个函数内部起作用外部变量(全局变量):从定义开始处直到程序结

    13、束6.8.1外部变量的定义(1)在整个函数之前定义。如:float x,y;float average(x,y)float aver;aver=(x+y)/2;return(aver);(2)在整个函数之后定义。如:float average(x,y)float aver;aver=(x+y)/2;return(aver);float x,y;(3)在函数体之前,函数头部。如:float average(x,y)float x,y;float aver;aver=(x+y)/2;return(aver);6.8.2外部变量的作用范围 int x=2;main()void print();int

    14、 a=x;printf(a=%d x=%dn,a,x);print(a);printf(a=%d x=%dn,a,x);void print(int a)a+;x+;printf(a=%d x=%dn,a,x);运行结果:a=2 x=2a=3 x=3a=2 x=3/*外部变量*/*a为内部变量*/6.9静态变量和自动变量 静态变量:赋值后一直保留到程序结束。自动变量:每次调用值都可能发生变化外部变量时静态变量;外部变量时静态变量;内部变量如果没有特殊说明都是自动变量内部变量如果没有特殊说明都是自动变量静态变量的声明:如:static int a=3;static 类型名 变量名;main()v

    15、oid print();int a=2,b=2;static i n t c=2;p r i n t f(a=%d b=%d c=%d n,a,b,c);print(a);print(a);p r i n t f(a=%d b=%d c=%d n,a,b,c);/*a,b为自动变量,只在main中有效*/*c为静态局部变量,只在main中有效*/void print(int a)int b=2;/*a,b为自动变量只在内部有效*/static int c=2;/*c为静态局部变量,只在内部有效*/a+;b+;c+;p r i n t f(a=%d b=%dc=%dn,a,b,c);a=2 b=

    16、2 c=2a=3 b=3 c=3a=3 b=3 c=4a=2 b=2 c=26.10 变量的存储类别auto:内部变量没有特别声明时register:存取速度极快,但数量有限static:外部变量为静态变量extern:可作特别说明6.11内部函数与外部函数 内部函数:仅在文件内部调用用static定义。如:static func1(int a,int b)外部函数:可在多个文件中调用用exturn定义。如:exturn func2(int x,int y)本章小结 1.学会自定义函数的编写和函数的相互调用关系,是程序设计的基本技能。函数之间是通过函数名和参数来建立联系的。2.主调函数调用其它函数时提供的参数称为实在参数,被调函数中的参数称为形式参数。函数调用时,主调函数将实在参数传递给形式参数。3.当被调用的函数又调用另一个函数时,就出现了函数的嵌套调用。而当一个函数又调用自身的功能时,就出现了递归调用。4.程序中的变量作用范围是不同的。当一个变量在几个函数中或整个程序中都有效时,就称为全局变量。当一个变量仅在一个函数内部有效时,就称为局部变量,也称为内部变量。5.auto型变量所占存储单元在退出函数时释放;static型变量所占存储单元要到程序结束才释放。6.所有函数可以构成一个源程序文件,也可以构成多个源程序文件。无论有几个源程序文件,最终都要生成一个可执行文件。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C语言电子教案第6章函数课件.ppt
    链接地址:https://www.163wenku.com/p-3377074.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库