




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十讲 Begin 第七章函数 函数概述函数的分类与定义函数调用的一般形式函数的参数函数的返回值数组作为函数参数 7 1函数概述 function函数也可以说是 功能就是具有一定功能的代码段 到现在为止 我们都是用主函数中的代码完成一定的功能 函数 7 1函数概述 C语言规定 可以把程序中的不同的功能写成不同的函数即 C语言程序可以由不同功能的函数组成 函数 7 1函数概述 函数组成程序的例子 intmain printstar print message printstar return0 include stdio h voidprintstar printf n voidprint message printf Howdoyoudo n printstar和print message就是两个函数 7 1函数概述 print message函数的功能输出一行信息Howdoyoudo printstar的功能是输出一排 main是主函数 首先执行main 7 1函数概述 一个C程序由一个或多个函数组成 但至少有一个主函数 main函数 main函数是程序执行的入口 可置于程序的任何位置 C语言语法规范 函数的分类 7 1函数概述 从函数间的调用关系 主调函数 被调函数 从函数间数据传送的关系分为 有参函数 无参函数 有返回值函数 无返回值函数 接下来详细讲 从用户的观点分为 C编译系统提供的标准库函数和用户自定义函数 类型符 函数名称 数据说明语句可执行语句 7 2 2无参函数的定义 7 2函数定义的一般形式 printstar 和print message 都是无参函数 类型符 函数名称 类型形参1 数据说明语句可执行语句 7 2 3有参函数的定义 7 2函数定义的一般形式 函数定义的一般形式举例 floatsum floatx floaty floatz z x y returnz 7 2函数定义的一般形式 函数定义的一般形式说明 1 floatsum floatx floaty floatz z x y returnz 类型说明符 指明函数的类型 函数的类型是指函数的返回值的类型 函数返回值所具有的数据类型的种类与变量相同 7 2函数定义的一般形式 省略时则默认为int型 若明确表示函数 不带回值 可以用 void 作类型符 称 无类型 或称 空类型 floatsum floatx floaty floatz z x y returnz 函数名 通常是一个标识符 在一个程序中除了主函数外其余函数的名字可以任意取 但应有意义 函数标志 7 2函数定义的一般形式 floatsum floatx floaty floatz z x y returnz 参数表 形参表 函数定义时的参数称为形式参数 形式参数彼此间用逗号分隔 形式参数省略时称无参函数 但此时函数名后的圆括号不能省 形参说明是用来指明各个形式参数的类型 它随形参的存在而存在 7 2函数定义的一般形式 floatsum floatx floaty floatz z x y returnz 函数体 函数中最外层一对花括弧 括起来的内容 它由若干个数据说明语句和可执行语句组成 决定函数要实现的功能 完成的任务 函数体内若无任何语句时 为空函数 7 2函数定义的一般形式 格式二 类型符 函数名称 7 2 4空函数的定义 7 2函数定义的一般形式 voiddummy 实参 实际参数 是函数调用时调用函数传送给被调用函数参数的实际值 实参可以是常量 变量和表达式 实参必须有确定的值 例如 fabs 2 putchar c sqrt x x 2 y z 7 3 1形式参数与实际参数 7 3函数的参数和函数的值 形参 形式参数 是函数定义时 参数表中的参数 形式参数只能是变量 数组等 在函数定义时 参数表中的形参并没有具体的值 系统也不为其分配存储单元 7 3函数的参数和函数的值 例如 intmax intx inty intz z x y x y returnz 例形参和实参的运用 7 3函数的参数和函数的值 intmax intx inty intz z x y x y returnz voidmain inta b c scanf d d 7 3 2函数的返回值 当被调用函数在完成一定的功能后 可以将处理的结果返回到调用函数 7 3函数的参数和函数的值 7 3 2函数的返回值方式 return语句作用 将表达式的值传给调用函数 并把控制权转向调用函数实现函数的返回 格式 return 表达式 7 3函数的参数和函数的值 对于不需要提供返回值的函数可以直接用void作为函数类型定义 以表明此函数返回值为 无类型 或 空类型 voidprintchar printf WuhanUniversity n main printchar void函数 7 3函数的参数和函数的值 例编写自定义函数计算 分析 确定形参 求c必须知道f的大小 设形参为temp 确定函数 函数的返回值即为c的值 设为实型 程序 floatftoc floattemp floatc c 5 9 temp 32 returnc 7 3函数的参数和函数的值 例编写一个自定义函数求n 分析 确定形参 求n 必须知道n的大小 设形参为n 确定函数 函数的返回值即为n 的值 设为实型 程序 floatfactorial intn floatx y for x y 1 0 x n x y x returny 7 3函数的参数和函数的值 7 4函数的调用 7 4 1函数调用的一般形式是 函数名 实参表列 说明 实参与形参的个数相等 类型相同 顺序一致 呈一一对应的关系 实参的求值顺序不确定 与所用系统有关 实参应有确定的值 函数调用时 需要注意的几点 C语言参数传递时 一般采用传值方式 把各个实参值分别顺序对应传给形参 被调函数执行中形参值的变化不会影响主调函数中实参变量的值 函数调用也是一种表达式 其值就是函数的返回值 7 4函数的调用 自定义函数 floatfactorial intn floatx y for x y 1 0 x n x y x returny 例调用自定义函数求n 调用 voidmain intn floatf printf Pleaseinputn scanf d 7 4函数的调用 调用方式1 函数语句 例printf 2 函数表达式 例c 2 pow 3 5 6 3 函数参数 例c 2 pow pow 3 5 6 6 例printf f n pow 3 5 6 7 4函数的调用 例 说出下列程序的运行结果 fun2 inta intb intc c a b 3 returnc fun1 inta intb intc a a b b c fun2 a b returnc c main intx 11 y 19 printf d n fun1 x y 程序运行结果 4 7 4函数的调用 includefunc inta intb intc c a b returnc main intx 6 y 7 z 8 r r func x y x y z printf r d n r 程序运行结果 r 21 例 说出下列程序的运行结果 7 4函数的调用 函数原型 在定义或调用函数前 对该函数进行声明 作用 将函数名 函数类型及形参个数 类型 顺序等通知编译系统 当函数被调用时 可对实参 形参的类型 个数匹配情况进行检查 格式 类型符函数名 参数类型1 或 类型符函数名 类型符形参1 7 4 3对被调用函数的说明 7 4 3对被调用函数的说明 自定义函数 floatfactorial intn floatx y for x y 1 0 x n x y x returny 例调用自定义函数求n floatfactorial intn 函数原型声明 voidmain intn floatf printf Pleaseinputn scanf d 例判定素数 include math h intisprime int 函数原型声明 main intx 35 if isprime x printf d是素数 n x elseprintf d不是素数 n x isprime inta inti for i 2 i sqrt double a i if a i 0 return0 return1 7 4 3对被调用函数的说明 数组名可做实参和形参 传送的是整个数组 数组作为函数的参数 7 7数组作为函数的参数 在用数组名做函数参数时 实参和形参都应该用数组 7 7数组作为函数的参数 例起泡法排序voidsort intarray 10 intn inti j t for i 0 iarray j 1 t array j array j array j 1 array j 1 t 数组作函数的参数举例 7 7数组作为函数的参数 例起泡法排序intmain inti a 10 3 1 5 7 26 4 6 8 12 2 sort a 10 for i 0 i 10 i printf d a i return1 数组作函数的参数举例 数组名作函数参数时应注意 1 数组名作函数参数时 应在主调函数和被调函数中分别定义数组 7 7数组作为函数的参数 数组名作函数参数时应注意 2 实参数组与形参数组的类型必须相同 但大小可以不同 7 7数组作为函数的参数 数组名作函数参数时应注意 3 形参数组的一维下标可以省略 4 数组名表示的是数组元素的首地址 数组名作函数参数时 传递的是整个数组 实参与形参之间的数据传递是地址传递 7 7数组作为函数的参数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 真实有效在职人员信息证明(5篇)
- 2025年其他未列明建筑服务项目建议书
- 全方位工作经历及职位证明(7篇)
- 2025年年健康服务项目建议书
- 员工离职后重新就业证明书(6篇)
- 农村绿地生态环境保护整治协议书
- 合作养殖农户协议书
- 2025年无机电子材料合作协议书
- 医院装饰装修合同
- 市场推广及销售代理合作协议具体内容
- 《月光下的中国》朗诵稿
- 印染工业园八万吨日污水集中处理项目环境影响评价报告书简本
- 单片机红外遥控系统设计
- 第15课《驿路梨花》教学实录
- 动物英语俚语课件
- 园林绿化种子进场检验记录
- 混凝土基础质量检验记录表
- 小学生民法典主题班会PPT
- 二级社会体育指导员培训分析课件
- 抗滑桩施工监测监控措施
- 教科研汇报2014[1](1)
评论
0/150
提交评论