版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2 本节学习目标 函数简介 函数使用 按值传递与按地址传递 全局变量与局部变量 存储类型 2 4 一个简单模型 经理部 人事部财务部 j 供应部 经理部 是公司内的一个部门 可以指挥其它各部门 各部门 关系平等,可以互相请求对方帮助 可以向经理部反馈信息,但不能指挥经理部 3 1. 经理部发出命令 2. 供应部向财务部申请支票 3. 财务部向财务部提供支票 4. 供应部购买电脑 5. 供应部将电脑提供给经理部经理部需要一台电脑 一件事情 提出问题 编写一段代码显示以下图形 ! ! ! rlw %.叫、elw %、叫 1 卜 1 1 %、 ! ! ! ! 2 ! 2 卜 ej rjw 产 ejw
2、 ej e| ejw * 大家好 * 2 2 2# 2 rjw rw rj rjw rjw . ejw rj rw ej r 5 范例 printf(,*nft); printfC1 大家好 *n); printf(木屮水*圧屮水未屮屮水未出n); printfC* 大家好 *nM); printf(M * *c!iiM); star(); word(); star(); 6 佬注鸚方法一: -#include -void main() 方法二 printfC木半半卒木半*邯冰*辛那n ); void word() - - print8 什么是函数 独立的程序段 执行一个具体的.明确定义的任务
3、 易于编写.理解.调试和维护 将需要多次执行的一组指令定义为函数 函数功能 有效的维护代码 容易的理解代码 消除代码的冗余 使代码可以重用10 函数之间的关系 main 函数使用说明 C语言源程序是由一个或多个函数组成。 一个C程序只有一个main函数,程序运 行从main函数开始,到main函数结束。 Main函数以外的函数,都是相互独立, 可以互相调用,但子函数不可调用main 函数。】2 函数的分类(用户角度) 标准函数 一也叫库函数,由系 统提供的,不需用户 去定义使用的函数。 如 printf、strcmp 等 自定义函数 一用以解决用户专门 的问题。 II #include #in
4、clude h void #include stdio pow(int b) int a; return (a); void 】2 举例x=pow(5); printf(M%dnfx); 14 函数分类(函数的形式) 无参函数 主函数并未向被调 用函数传送数据。 有参函数 主调用函数与调用 子函数之间有数据的 传递。 函数参数 形式参数 -在定义函数时,函数 名后面括号中的变量 名,即是形参。 实际参数 -在主函数调用一个函 数时,函数名后括号 中的参数。 主要区别:系统是否为其分配内存单元 函数参数说明: 1在自定义函数中指定的形参变量,在未出现 函数调用时,它们并不占用内存中的存储单元。
5、只有在发生函数调用时形参才被分配内存单元。 在调用结束后,所占用的存储单元被释放。 2实参可以是常量,变量或表达式: 如:add (3,a+b); 3 形参必须指定参数类型。 4 实参与形参类型要一致. 5实参与形参的数据传递是“值传递”。 15 形参与实参范例 #include int sum(int a9int b) int c; c=a+b; return (c); void main() int a,b,c; printfC输入 两个数;M);scanf(M%d,%dM,&a,&b); c=sum(a,b); printf(n %dnfc); 16 18 函数使用的一般
6、过程 主函数开始 函数声明与定义 主函数调用 子函数执行 将执行结果返回主函数 主函数结束 函数声明 有参函数声明格式 函数类型函数名(参数列表); 注: 19 当被调用函数的函数定义出现在调用函数之前时 可以省去对被调用函数的说明20 函数声明 无参函数声明格式 函数类型函数名(); 注: 当被调用函数的函数定义出现在调用函数之前时 可以省去对被调用函数的说明 19 函数的定义 无参函数的定义格式 数据类型函数名() 声明部分; 执行部分;22 有参函数的格式 数据类型函数名(参数列表) 声明部分; 执行部分; 21 函数调用的方式 1.函数语句 例:sum(2,5); 2.函数表达式 例:
7、c=2*sum(2,5); 函数参数 例:c=sum(5,sum(2,5)24 函数调用 -函数名(参数列表) 函数的返回值 什么是返回值? -一即希望通过函数调用使主调函数能从被调 函数得到一个值。 有ea A Si 23 26 函数值注意事项 主要功能:将控制权从被调用函数再交 给主询譎 数。 函数返回值是通过函数中的return语句 获得的。 retur n的格式 一 return (参数) -参数: -可以是变量,常量,表达式。 -参数类型必须与函数的返回类型一致。y 25 C宴懿韓 Return范例 #include int sum(int a9int b) int c; c=a+b
8、; return (c); void main() int a,b,c; printf(M 输入两个数;n);scanf(H%d,%dM,&a,&b); c=sum(a,b); printf(M%dntc); n A LI ia 返回值类型 float max(int a9int b) - /*返回的函数值为整型*/ double min(int a9int b) -/*返回的函数值为双精度型*/ char leter(char a9char b); -/*返回的函数值为字符型*/ 27 返回值类型范例 #include float add(int ajnt b); void
9、main() int a printfC*输入两个整数:M); scanf(M%d%df&a,&b); printf(M%radd(a,b); float add(int a,int b) float c; c=a+b; return (c);30 返回值注意事项 注意: -调用函数中无return语句,并不是不返回一 个值,而是一个不确定的值。为了明确表示 不返回值,可以用“void”定义成“无(空) 类型” O 29 31 int a9b9c; printf(n 输入两个数;M);scanf(H%d,%dt&a,&b); 函#include int sum(
10、int ajnt b) int c; 函数定义return (c); void main() c=sum(ab); prmtf(M%dntf,c 调用部分 32 课堂练习 1 编写一个函数min,它返回2个参数的 最小值。 2编写一个c程序,它接收一个三角形的 三个边,并且检查三角型是等边三角形。 3接收一个值,并使用函数显示该值的 平方。 4编写一个c函数,它从用户接收信息并 且按用户请求多次显示信息o 函数调用(续) 按值传递(如以上例 题,皆是按值传递) 按地址传递 -当主函数中的值需要 变化时,可以使用按 地址传递。 h4 (卑 按地址传递 #include int sum (int
11、*p,int *q) int sum; sum=*p+*q; return (sum); void main() int a,b; printf(n输入两个数:); scanf(M%d,%dM,&a,&b); printf( Msum= % dn* *,sum(&址&1); 33 嵌套函数调用 #include stdio int sum(int a,int b);声明计 算和的函数 int pow(int x);声明计算平方 的函数 void main() int a,b,c; printf(H输入a和b的值: M); scanf(M%d%dM,&a,&b); c=sum(a,b); printf(,c=%dn,c);计算和的函数 int sum(int ajnt b) int c; c=p36 变量:全局变量,局部变量 也就是说只有在本函数内才能使用它们, 在此函数以外是不能使用这些变量的。 全局、局部变量决定变量的作用域 全局变量 全局变量:在函数内定义的变量是局部 变量,而在函数之夕卜定义的变量称 为外部变量,外部变量是全局变量。 全局变量可以为本文件中其它函数 变量的位置开始到本原
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 分物游戏(说课稿)-2024-2025学年二年级上册数学北师大版
- 二零二五年度建筑工程安全生产环保验收合同3篇
- 全国人教版初中信息技术七年级上册第四单元第13课七、《插入更新日期》说课稿
- 山东省泰安市肥城市2024-2025学年六年级上学期末考试道德与法治试题(含答案)
- 200万套基于AI大模型的新能源汽车热泵空调部件柔性制造智能工厂项目可行性研究报告写作模板-申批备案
- Unit6 Meet my family B Lets talk Lets learn(说课稿)-2024-2025学年人教PEP版英语四年级上册
- 河南省信阳市浉河区2024-2025学年三年级上学期期末学业质量监测数学试题参考答案
- 湖南省娄底市(2024年-2025年小学六年级语文)部编版阶段练习(上学期)试卷及答案
- 贵州盛华职业学院《建筑设备(暖通空调)》2023-2024学年第一学期期末试卷
- 贵州轻工职业技术学院《医疗诊断前沿技术与创新应用》2023-2024学年第一学期期末试卷
- 2024年高考物理一轮复习讲义(新人教版):第七章动量守恒定律
- 浙江省宁波市慈溪市2023-2024学年高三上学期语文期末测试试卷
- 草学类专业生涯发展展示
- 法理学课件马工程
- 《玉米种植技术》课件
- 第47届世界技能大赛江苏省选拔赛计算机软件测试项目技术工作文件
- 2023年湖北省公务员录用考试《行测》答案解析
- M200a电路分析(电源、蓝牙、FM)
- 2024-2030年全球及中国洞察引擎行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 建筑工程施工图设计文件审查办法
- 置业顾问考核方案
评论
0/150
提交评论