




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章函数与变量 8 1函数8 2变量的作用域和存储类型 根据结构化程序设计原则 一个较大的程序要经过自顶向下的分析 逐步细化为若干模块 每一模块完成某种功能 在C语言中由函数来实现这些模块 C语言源程序是由许多函数组成的 main是由用户自己编写的 其中可以调用C提供的库函数 也可以调用自己和他人编写的函数 但总是从main 开始执行 C语言提供的标准库中存放着若干已定义的函数 在使用这些库函数时 需要使用文件包含命令 include 将带有该函数定义的头文件包含到当前程序 而对于标准库函数未提供的功能则只能由用户编写自定义函数来实现 标准库函数的调用 形式 函数名 参数表 调用库函数有两种形式 1 在表达式中 y sqrt x 1 5 2 作为独立的语句完成某种操作 scanf d 注意 调用各个函数时 必须给予类型相同的参数 并且最后的结果作为函数的返回值 函数 C语言中所有函数的定义是并列的 独立的 各个函数之间没有嵌套或从属的关系 建立函数即为函数的定义 使用函数即为函数的调用 调用其它函数的函数称为主调函数 被其它函数所调用的函数称为被调函数 main函数只能被系统调用 而对于其它函数而言 main函数只能是主调函数 8 1函数函数只能通过被调用才能执行 8 1 1函数的定义自定义函数必须经过用户自行定义后 才能使用 函数原型定义格式 函数类型函数名 类型形参1 类型形参2 声明部分执行部分 例8 1 求3个字符中的最大值 includecharmax chara charb charc charm m a b a b m m c m c return m main chara b c d printf Enterthreecharacters n scanf c c c 1 函数类型returnvoid 2 函数名同一程序中 函数的名称应是唯一的 3 函数参数分为有参 无参函数 4 形参说明若是有参函数 在函数定义时必须对参数类型进行说明 5 函数体声明部分和执行部分 对函数定义作进一步说明 若一个函数定义后 未被调用 它是不能自己执行自己的 定义空函数 函数类型函数名 空函数实际上什么也不做 但具有可用在以后扩充函数的功能 例8 2 编程计算组合数C n k n k n k includeintfac intm inti s 1 for i 1 i m i s i return s voidmain intn k c printf 请输入C n k scanf d d 请输入C n k 6 4C n k 15 8 1 2函数的参数和返回值1 函数的参数定义函数时的参数为形参 调用函数时的参数为实参 形参和实参不同 当函数未被调用时 形参无确定值 只是形式上的数 函数定义时形参不占内存 只有当函数被调用时 形参才被分配内存单元 接收传递来的实参值 实参则有确定值 实参可以是常量 变量或表达式 当调用函数时 实参值将被传递给对应的形参 使用时实参和形参个数必须相等 对应实参和形参的数据类型应该相同 当实参和形参不一致时 1 类型不同 2 个数不同另外 实参和形参可以同名 虽然是同名也是两个不同的变量 占用不同的内存单元 不会发生混浠 2 函数的返回值主调函数调用被调函数的目的 1 完成一定的处理功能 无返回值 2 得到一个计算处理结果 并向主调函数返回一个返回值 用return语句 其格式如下 return 表达式 return表达式 return 执行过程 程序执行到return时 流程返回到调用函数的地方 退出被调函数 带回函数值 例8 3 编写子程序求两个数的和 includefloatadd floatx floaty floatz z x y return z main floata b c printf Inputtwofloats scanf f f 在设计带有返回值的函数时注意以下几点 1 无返回值的函数应该定义void类型 否则会返回一个不确定的值 2 函数返回值的类型应为定义函数时函数的类型 若return语句中表达式值的类型与函数类型不一致 系统会将其强制转换为函数类型 3 return语句的另一功能是结束被调函数的运行 返回主调函数中继续执行后续语句 无返回值的函数中也可以有return语句 可写为 return 若没有return语句 会执行到函数体最后的 为止 但也无确定的函数值 8 1 3函数的声明和调用 1 函数的声明一个函数调用另一个函数必须具备的前提是 1 被调函数已存在 被调函数可以是库函数 或者是用户自定义的函数 2 对于库函数 调用前要用 include命令包含相应的头文件 对于自定义函数 要在主调函数中对其进行声明 声明的目的 使编译系统在编译阶段对函数调用进行合法性检查 即说明被调函数返回值的类型 检查实参与形参的类型与个数是否一致 优点 提高调试效率 把错误改正在初级阶段 提高程序的可读性 函数的定义只能有一次 而函数声明则可以有多次 标准C语言声明格式如下 函数类型函数名 形参类型表 例如 doublemix inta doubleb floatbig char int 例8 4 编写子程序 判断两个数的符号是否相同 若相同就输出Y 否则输出N includecharf floata floatb main floatx y charp printf Inputtwofloats scanf f f 函数的声明部分 函数的定义部分 C语言约定 以下3中情况下可省略对被调函数的声明 1 在同一文件中被调函数的定义出现在主调函数之前 2 被调函数的返回值类型为整型时 整型是系统默认的类型 3 在文件的开头 所有函数定义之前已对各个函数统一进行了声明 这样 在各主调函数内可以不必再次声明 2 函数调用 函数的调用就是主调函数通过传递一定的信息来使用被调函数的功能 函数调用的一般格式 函数名 实参表列 圆括弧内实参的个数 出现的顺序必须与函数定义中的形参一致 实参类型一般也应与形参表列对应相同 实参之间用逗号分隔 函数调用的执行过程 1 为形参分配内存单元 并把实参值一一对应的传送给形参 2 进入函数体 执行语句 实现函数的功能 执行到return语句 计算表达式的值 释放形参及本函数的局部变量所占内存 返回主调函数 3 继续执行主调函数中的后续语句 例8 5 计算两个实数的和与积 并将它们按大小顺序输出 includevoidoutput printf n floatadd floatx floaty return x y floatmultiply floatx floaty return x y voidsort floatx floaty floata b charch1 ch2 if x y a x b y else a y b x printf 最大数为 d 最小数为 d n a b voidmain floata b sum mul output printf 请输入a b scanf d d 请输入a b 5 23 4最大数为 17 68 最小数为 8 6 voidoutput voidmain output sum add a b mul multiply a b sort sum mul output floatadd floatx floaty floatmultiply floatx floaty voidsort floatx floaty return 上机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 42513.9-2025镍合金化学分析方法第9部分:总硼含量的测定姜黄素分光光度法
- 农业消防安全培训课件
- 办事处安全工作培训记录课件
- 刺猬汉斯课件图文
- 初次安全生产培训课件
- 一物一码创意营销方案(3篇)
- 化学品安全警示培训课件
- 内积空间和赋范空间课件
- 创建数据图表课件
- 3 -声声慢 跨学科公开课一等奖创新教学设计
- 产品品质及售后无忧服务承诺书3篇
- 2025年第11个全国近视防控宣传教育月活动课件
- 2025年养老产业市场营销策略调整分析报告
- 部编版二年级道德与法治上册第4课《欢欢喜喜庆国庆》精美课件
- 潍坊市2026届高三开学调研监测考试生物试题及答案
- 2022年定安县事业单位考试试题真题及答案
- 职业(工种)标准开发专家推荐表
- 妊娠期高血压用药
- 游泳社会指导员专项理论考试复习题库汇总(附答案)
- 我不是完美小孩
- GB/T 18091-2015玻璃幕墙光热性能
评论
0/150
提交评论