




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第6章函数,1.概述2.函数的定义3.函数的调用,2,6.1概述,#includevoidmain()voidprintstar();/*对printstar函数声明*/voidprint_message();/*对print_message函数声明*/i=printstar();*调用printstar函数*print_message();/*调用print_message函数*/printstar();*调用printstar函数*/,先看一个函数调用的简单例子,3,voidprintstar()*定义printstar函数*printf(*n);voidprint_message()*定义print_message函数*printf(Howdoyoudo!n);,运行情况如下:*Howdoyoudo!*,4,几点说明:,一个程序由一个或多个程序模块组成,每一个程序模块作为一个源程序文件。对于较大的程序,通常将程序内容分别放在若干个源文件中,再由若干源程序文件组成一个C程序。这样便于分别编写、分别编译,提高调试效率。一个源程序文件可以为多个C程序公用。一个源程序文件由一个或多个函数以及其他有关内容(如命令行、数据定义等)组成。一个源程序文件是一个编译单位,在程序编译时是以源程序文件为单位进行编译的,而不是以函数为单位进行编译的。,5,程序的执行是从main函数开始的,如果在main函数中调用其他函数,在调用后流程返回到main函数,在main函数中结束整个程序的运行。所有函数都是平行的,即在定义函数时是分别进行的,是互相独立的。一个函数并不从属于另一函数,即函数不能嵌套定义。函数间可以互相调用,但不能调用main函数。main函数是系统调用的。,6,从用户使用的角度看,函数有两种:标准函数,即库函数。这是由系统提供的,定义在不同的头文件中,用户不必自己定义这些函数,可以直接使用它们。用户使用时,必须用#include把相应的头文件包含到程序中来。用户自己定义的函数。用以解决用户的专门需要。从函数的形式看,函数分两类:无参函数。无参函数一般用来执行指定的一组操作。在调用无参函数时,主调函数不向被调用函数传递数据。有参函数。主调函数在调用被调用函数时,通过参数向被调用函数传递数据。,7,6.2函数的定义,方式1函数返回值类型名函数名(参数类型说明及参数列表)局部变量说明;语句序列;方式2函数返回值类型名函数名(参数列表)参数类型说明局部变量说明;语句序列;,如:intmax(a,b)inta,b;,如:intmax(inta,intb),8,例定义符号函数sign。,intsign(intx)/*函数首部*/inty;/*函数体局部变量*/y=x0?1:(x=0?0:-1);returny;/*返回函数值*/注意:C语言函数分为两大部分:函数的说明部分函数体部分,9,函数各部分作用,1.函数的说明部分函数说明部分说明函数的类型,函数名,参数表及参数类型。(1)函数的类型说明函数的类型即函数的返回值类型。若函数不提供返回值,则可定义其类型为:void。例如:voidputdata(inta)省略函数类型名时,C语言默认其为int型。(2)函数名函数名又称函数标识符。命名遵循C语言标识符的规定;函数名要反映函数完成的功能。,10,(3)参数表,参数表写在函数名后的()内,由一个或多个变量标识符及类型标识符组成。参数表中的变量称为形式参数,简称形参。若函数没有形参,则称为无参函数,其后“()”不能省略。参数必须指定类型。形参的类型说明:intmax(inta,intb),11,2.函数体,函数体以“”开始,以“”结束,包括变量定义和执行语句序列。函数所完成的工作由函数体中一段程序实现。函数的返回值用返回语句return返回,形式:return(表达式);或return表达式;或return;如果函数的类型与return语句的表达式的类型不一致时,则以函数的类型为准。返回时自动进行数据转换。,12,例定义函数power(x,n),求x的n次方。,函数定义如下:floatpower(floatx,intn)inti;floatt=1;for(i=1;ib)?a:b;y=yc?y:c;printf(max=%dn,y);voidmain()intx,y,z,m;scanf(%d,%d,%d,/*采用函数语句形式调用函数max*/,16,intmax(inta,intb)inty;y=(ab)?a:b;returny;voidmain()intx,y,z,m;scanf(%d,%d,%d,/*函数参数调用形式*/,17,6.3.2函数声明,函数定义在主调函数之后,需要进行主调函数中加入函数声明语句。类型名函数名(类型1变量1,类型2变量2,类型n变量n);说明:函数声明应与该函数定义的函数类型与名称、形参的个数、类型、次序相一致。函数声明中的形参名可省略,其形式为:类型名函数名(类型1,类型2,类型n);类型名函数名();当函数定义在主调函数之前,即先定义,后调用。则调用时函数声明可以省略。,18,例编写计算x的n次乘方的程序。,#includestdio.h”voidmain()floatx,y;intn;floatpower(floatx,intn);scanf(%f,%d,floatpower(floatx,intn)inti;floatt=1;for(i=1;iy)t=x;elset=y;returnt;,21,2)关于形式参数和实际参数说明如下:形式参数在函数被调用时才被分配内存。当函数执行完毕返回时,形式参数占用的内存空间便被释放。实参可以是变量、常量和表达式。如:y=power(x,4);y=power(x,i*2);但实参必须有确定的值。3)形参和实参的类型必须相容。4)形参和实参之间的关系是:单向的值的传递,1)形参y之间值的传递如图所示。,22,6.3.4函数的嵌套调用,调用一个函数的过程中又调用了另一个函数,这种调用称为函数的嵌套调用。,23,6.3.5递归调用,函数调用函数本身,称为函数的递归调用。递归调用形式如下:,2)间接递归voida().b();.voidb().a();.,直接递归voida().a();.,24,用递归算法计算n!,讨论:采用递归的方法计算。n!的递归定义形式的:,编程:if(初始条件)表达式;e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届绍兴市重点中学英语九年级第一学期期末达标检测模拟试题含解析
- 辽宁省盘锦市双台子区实验中学2026届化学九上期中监测模拟试题含解析
- 黑龙江省宝泉岭农垦管理局2026届化学九上期中监测试题含解析
- 垂直领域家居培训课件
- 记叙文的写法课件
- 导管滑脱防范措施与处理
- 医院保洁培训课件模板
- 物联网家庭娱乐创新创业项目商业计划书
- 社交媒体招聘解决方案创新创业项目商业计划书
- 园林植物创意盆栽创新创业项目商业计划书
- 《城市轨道交通车辆段(停车场)物业服务标准》
- 初级招标采购从业人员《招标采购法律法规》近年考试真题试题库(含答案)
- 教学评一体化理念
- 人音版七年级音乐上册教案全册
- ECE-R90-欧盟第3版-中文版(R090r3e-01)
- 2023学年武汉市武昌区九年级语文上学期期中检测试卷附答案
- 渠道衬砌施工方案(渠道预制混凝土块)
- 不交社保劳动合同模板
- 2024年云南省中考数学试题(含答案)
- GB 14102.1-2024防火卷帘第1部分:通用技术条件
- 越野跑策划方案
评论
0/150
提交评论