c语言 函数 ppt,C语言函数章节PPT课件.ppt-资源下载在线文库www.lddoc.cn

《C语言函数章节》PPT课件.ppt

1 第8章函数 任课教师 张盈 2 本章主要内容 C语言程序的结构函数的定义函数的调用函数的嵌套调用递归函数数组与函数全局变量与 3 8 1结构化程序设计语言 C语言 C程序的结构由若干个C函数组成 C函数是C程序的组成部分 是由完成一特定任务的说明语句和执行语句组成的基本功能单元 C函数的功能相当于其它程序设计语言中的一个程序模块 或一个子程序 模块化程序示意图 函数调用程序实例 main printstar print message printstar printstar printf n print message printf howdoyoudo n 调用函数 用户自定义函数 函数的分类 1 从使用角度分 标准库函数 以程序库的形式直接提供给用户使用 stdio h gets printf math h sin sqrt 用户自定义函数 由用户自己建立定义 函数的分类 2 从函数形式分 无参函数 调用函数时主函数不将数据传送给被调函数 用于完成特定功能的操作 如 c getchar 有参函数 调用函数时在主调函数和被调函数之间有参数传递 如 putchar c puts str 8 函数说明 一个C程序是由一个或多个源文件组成 每个源文件由若干函数组成 C程序的执行从main函数开始 也从main函数终止 源程序中所有的函数在结构上都是平行的 互相独立的 main函数可以调用其他函数 其他函数之间可以互相调用 9 8 2 1函数的定义 一 无参函数的特点 只完成某些动作 不进行参数传递 无参函数的定义形式 类型标识符函数名 说明部分 语句部分 10 8 1 无参函数使用示例 main printstar printword printstar printstar 定义无参函数printstar printf n printword 定义无参函数printword printf Thisisanexample n 11 函数的定义 二 有参函数定义形式 一 类型标识符函数名 形式参数列表 形式参数说明 说明部分 语句部分 intmax x y intx y intz z x y x y return z 举例 12 函数的定义 二 intmax intx inty intz z x y x y return z 有参函数定义形式 二 类型标识符函数名 类型名参数1 类型名参数n 说明部分 语句部分 举例 13 有参函数定义说明 类型标识符 指的是函数计算结果的数据类型 即函数类型 函数名 必须是合法的标识符 命名时尽可能使之 见名知意 参数的类型定义部分可在 外 也可在 内 只在函数内部使用的变量 因为不参与主调函数与被调函数之间的参数传递 必须放在 内部的说明部分位置 8 2 求两数的最大值 注意函数的定义形式 main inta b c scanf d d 15 8 2 2函数参数 几个相关术语 函数调用 一个函数调用另一个函数 主调函数 被调函数有参函数 主调函数和被调函数之间有数据传递关系 被调函数即有参函数 无参函数 主调函数和被调函数之间无数据传递关系 被调函数即无参函数 举例 关于实参和形参 main inta b c scanf d d 形式参数 实际参数 8 2 3函数的返回值 函数的返回值是通过return语句传递的 return语句的一般形式 return表达式 return 表达式 return语句执行图示 main inta b c scanf d d intmax x y intx y intz z x y x y return z 主调函数 被调函数 19 函数返回值的注意事项 返回值类型要与函数类型一致 且以函数类型为准 函数类型缺省时 系统自动按整型处理 例如 intmax intx inty returnx y 20 补充说明 一个函数中可以有若干个return语句 流程执行到哪里 就从哪里返回主调函数 若函数体内没有return语句 则执行函数到末尾 然后返回主调函数 当不需要返回值的时候 可以用void定义函数为空类型 表示无返回值 21 8 3函数的调用 8 3 1函数调用的一般格式 函数名 实参表 举例 设已建立max函数 为求最大值 main intx y z scanf d d 22 8 3 2函数调用中参数传递的两种方法 传值调用 函数调用中 采用赋值方式将实参的值传给形参 即单向调用 传址调用 函数调用中 把实参的地址传给形参 在被调用函数中通过形参中的地址来访问调用函数中的实参 双向调用 8 3 3函数调用的三种方式 按照函数在程序中出现的位置来分 作为表达式出现在任何允许表达式出现的地方 参与运算 如 a sqrt b 作为一条独立的语句完成特定的操作 如 gets string1 作为函数的参数被其他函数调用 如 printf s n strcpy str1 Redrose 24 8 3 4调用函数与被调函数的相对位置关系 如使用库函数 一般应在文件开头用 include 函数调用遵循 先定义后调用 的原则 一般被调函数放在调用函数之前定义 若被调函数在调用函数之后定义 就必须在调用函数中对被调函数加以如下说明 类型名被调函数名 main floatsum 对被调函数的说明 floata b c scanf f f 例8 12 被调函数在调用函数之后出现 26 8 4函数的嵌套调用 C语言程序由函数构成 函数与函数之间是平行的 独立的 不允许在一个函数内部嵌套定义另一个函数 但允许在调用一个函数的过程中 又调用另一个函数 main函数 结束 调用函数a 调用函数b 函数b 函数a 函数的嵌套调用 28 8 5递归函数 递归调用 在调用一个函数的过程中又出现直接或间接的调用该函数本身 称为函数的递归调用 注意 递归结构构成了另外一种形如循环的结构 29 递归函数设计举例 求n 算法描述 n 1 2 3 n 1 n求积公式 f n 1n 0n n 1 n 0 5 的运算过程 5 5 4 4 3 3 2 2 1 1 2 1 3 2 4 6 5 24 120 1 0 1 1 n 递归程序源程序1 2 求n 递归源程序如下 main intx longfacto printf anumber n scanf d longfacto n intn longintz if n 0 z 1 elsez n facto n 1 returnz n 递归程序源程序2 2 33 8 6数组与函数 函数间传递数组数据的两种方法 值传递 将数组中的每个元素都作为一个参数来传递 地址传递 通过地址传送方式将数组的首地址 如数组名 作为参数进行传递 34 8 6 1数组元素作函数实参 数组元素 同简单变量 作函数实参 单向值传递 即 传值调用 方式 例8 17 用程序求出a数组中所有素数的和及平均值 函数isprime用来判断自变量是否素数 intisprime intx 该函数判断是否素数 inti for i 2 i x 2 i if x i 0 return 0 return 1 main inti a 10 sum 0 n 0 floataver printf Enter10numbers n for i 0 i 10 i 源程序1 2 scanf d 源程序2 2 37 8 6 2数组名作函数实参 形参和实参都采用数组名 传递是实参数组的起始地址 是地址传递方式 例8 18 求某学生10门课程成绩的平均分 课程成绩用数组存放 floataverage b floatb 10 inti floataver sum 0 for i 0 i 10 i sum b i aver sum 10 return aver 源程序1 2 数组名作形参 例8 18 main floata 10 ave inti printf 10scores n for i 0 i 10 i scanf f 源程序2 2 数组名作实参 传递的是实参数组的起始地址 40 使用数组名作函数实参说明 数组名表示数组元素存放的起始地址 可认为是地址常量 数组名作实参 传递是数组地址 而非数组元素 字符串常量作实参 传递的字符串常量的首地址而非字符内容 用数组名作函数参数 必须在主调函数和被调函数中分别定义数组 并保证类型一致 41 8 7 1局部变量和全局变量 基本概念 变量的生命期变量占用存储空间的时限变量的作用域在变量占用存储空间的时间内是否能够被引用 即变量作用的有效范围是全局的还是局部的 42 局部变量 局部变量在一个函数内部定义的变量 内部变量 它只在此函数范围内有效 在此函数以外不能被使用 局部变量的作用域所在函数内部 floatf1 a inta intb c charf2 intx inty inta b main intm n a b c有效范围 x y a b有效范围 m n有效范围 局部变量举例 44 局部变量使用说明 主函数main中定义的变量只在main函数中有效 不同函数中可以使用同名变量 它们互不干扰 形参也是局部变量 在一个函数内部 可以在复合语句中定义变量 这些变量只在该复合语句中有效 这种复合语句称为 分程序 和 程序块 45 全局变量 在函数之外定义的变量是外部变量 外部变量是全局变量 全局变量可以为本文件中所有函数共用 全局变量的有效范围为从定义变量的位置开始直到本源文件结束 设置全局变量的作用是增加函数间数据联系的渠道 全局变量举例 inti j 全局变量 floatf1 a inta intb c floatp q 全局变量 charf2 intx inty inta b main intm n p q的作用范围 全局变量i j的作用范围 47 全局变量的使用说明 在程序设计中 应尽量避免使用全局变量 全局变量在程序的全部执行过程中都占用存储单元 而不是仅在需要时才开辟单元 如果在同一个源文件中 外部变量与局部变量同名 则在局部变量的作用域范围内外部变量不起作用 使函数的可靠性和通用性降低 使用全局变量过多 会降低程序的清晰性 48 作业 编程求下列的公式 m n为整型变量 教材上本章习题程序 P172 1 8 任选3道

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典表管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据库结构,再根据系统功能模块的设计制作系统功能模块图、流程表和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本完成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列表,管理员可以进行查看列表、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列表、模糊搜索以及相关维护等操作。产品类型管理页面,此页面提供给管理员的功能有:新增产品类型,修改产品类型,删除产品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值