




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章程序的模块结构和C函数 7 内容提要 本章从模块化程序设计的角度 介绍如何编制所需要的C函数包括函数的定义 调用方法 调用函数和被调用函数之间如何进行数据传递 变量和函数的存储类型对函数调用的影响 函数的递归调用最后介绍如何向main 函数传递数据 C程序的模块结构 1 模块化程序设计的特点根据模块化程序设计的思想 对于复杂的问题都可以采用自顶向下 或自底向上 逐步求精的方法将其分解成若干个相对独立的子问题 每个子问题对应一个功能独立的程序模块 将这些模块有机地连接在一起 构成一个完整的程序 2 C程序的模块结构 C函数的定义和调用 1 C函数的定义C函数的定义格式有两种 传统格式和现代格式 传统格式也称K R格式 是早期编译系统使用的格式 现代格式又称ANSI格式 是现代编译系统使用的格式 2 C函数的调用 调用函数和被调用函数之间的数据传递 当一个函数调用另一个函数时 函数之间传递数据的方式有3种 即虚实结合方式 函数返回值方式和全局变量方式 用得最多的是虚实结合方式 1 虚实结合方式虚实结合方式是在形式参数 简称形参 和实际参数 简称实参 之间进行的数据传递 虚实结合适用于所有的有参函数 传递的数据可以是变量 数组 指针 结构 函数等 2函数返回值方式 存储类型对函数调用的影响 变量的存储类型对函数调用的影响函数的存储类型对函数调用的影响 函数的递归调用 递归调用是一个函数直接或间接地调用自己 前者称为直接递归 后者称为间接递归 递归调用的函数称为递归函数 由于递归非常符合人们的思维习惯 而且许多数学函数及许多算法或数据结构都是递归定义的 因此递归调用颇具实用价值 main 函数的参数和返回值 除了在递归程序中可能出现main函数自己调用自己的情况外 main函数很少被其他函数调用 所以 我们前面用到的main函数一概写成 main 当然也可以写成 voidmain void 但是 main函数也会有参数和返回值 本节介绍main函数的参数 返回值及其应用 1 命令行参数2 main 函数的参数 本章总结 本章应重点掌握函数的定义方式及函数的数据类型 存储类型 形式参数和返回值的概念 函数的调用方法 包括函数名调用 函数指针调用 递归调用 表达式调用 表达式语句调用及什么时候要进行函数类型说明 调用函数和被调用函数之间传递单个数据 指针 数组 字符串的方法 包括调用函数将它们传递给被调用函数及被调用函数将它们返回给调用函数 本章难点是函数之间数据传递的方式 方法和效果 变量和函数的存储类型对函数调用的影响 函数递归调用过程的分析 以及main函数的参数和返回值的使用 本章习题 一 选择题1 以下函数的数据类型是 fun floatx floaty y 3 x 4 returny A intB 不确定C voidD float2 在下列关于C函数定义的叙述中 正确的是 A 函数可以嵌套定义 但不可以嵌套调用B 函数不可以嵌套定义 但可以嵌套调用C 函数不可以嵌套定义 也不可以嵌套调用D 函数可以嵌套定义 也可以嵌套调用 本章习题 3 若函数为int型 变量z为float型 则该函数体内的语句return z 返回的值是 A int型B float型C 不定D 不确定4 在C语言中 函数的隐含存储类型是 A autoB staticC externD 无存储类型5 有以下函数 char fun char p returnp 该函数的返回值是 A 无确切的值B 形参p中存放的地址C 一个临时存储单元的地址D 形参p自身的地址 本章习题 6 以下所列各函数定义的首部中 正确的是 A voidplay int int B voidplay inta b C voidplay inta intb D subplay aasinteger basinteger 7 在C语言中 形参的缺省存储类型是 A autoB registerC staticD extern8 有如下函数调用语句 func rec1 rec2 rec3 rec4 rec5 该函数调用语句中 含有的实参个数是 A 3B 4C 5D 有语法错误 本章习题 9 在调用函数时 如果实参是简单变量 它与对应形参之间的数据传递方式是 A 地址传递B 单向值传递C 由实参传给形参 再由形参传给实参D 传递方式由用户指定10 以下有关C语言函数的描述中 正确的是 A 在C语言中 调用函数时 只能把实参的值传送给形参 形参的值不能传送给实参B C函数既可以嵌套定义又可以递归调用C 函数必须有返回值 否则不能使用函数D C程序中有调用关系的所有函数 必须放在同一个源程序文件中11 若调用函数的实参是一个数组名 则向被调用函数传送的是 A 数组的长度B 数组的首地址C 数组每个元素的地D 数组每个元素中的值 本章习题 二 填空题1 下面的程序用来求数组a各元素的平均值 请填空 floatavr int pa intn inti floatavg 0 0 for i 0 i n i avg avg 1 avg 2 returnavg main inti a 5 2 4 6 8 10 floatmean mean avr a 5 printf mean f n mean 本章习题 2 函数pi的功能是根据以下近似公式求 值 6 1 1 2 2 1 3 3 1 n n 请将下面函数的空白处填写正确 以完成求 的功能 includedoublepi longn doubles 0 0 longk for k 1 k n k s s return sqrt 6 s 3 以下函数用来求两整数之和 并通过形参将结果传回 请填空 voidfunc intx inyy z z x y 本章习题 三 编程题1 编写程序 要求在主函数中输入一个整数 子函数prime 判断该整数是否为素数 若是素数 函数返回1 否则返回0 2 编写程序 要求在主函数中输入一个字符串 子函数将该字符串中的大写字母转换成小写字母 小写字母转换成大写字母 其他字符不变 并将转换后的字符串返
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院护士年度个人工作总结汇编15篇
- 2025年甘肃省武威市事业单位已发布模拟试卷完整参考答案详解
- 2025广西百色市平果市道路运输发展中心城镇公益性岗位人员招聘1人模拟试卷及完整答案详解一套
- 2025贵州黔西南州交通建设发展中心招聘公益性岗位工作人员3人考前自测高频考点模拟试题及答案详解(有一套)
- 2025鄂尔多斯准格尔旗事业单位引进40名高层次人才和急需紧缺专业人才考前自测高频考点模拟试题及一套参考答案详解
- 2025年甘肃省庆阳市镇原县第二批城镇公益性岗位83人考前自测高频考点模拟试题及答案详解(有一套)
- 2025湖州吴兴宝易矿业有限公司招聘2人模拟试卷及答案详解一套
- 2025北京大学肿瘤医院云南医院招聘高层次人才(27人)考前自测高频考点模拟试题及完整答案详解一套
- 2025年甘肃省烟草专卖局(公司)招聘相关事宜考前自测高频考点模拟试题及答案详解(夺冠系列)
- 2025昆明市盘龙区鼓楼街道社区服务中心招录见习岗位(2人)考前自测高频考点模拟试题参考答案详解
- 新部编版语文1-6年级2460个生字表(带拼音)
- (高清版)DZT 0324-2018 蓝晶石、红柱石、矽线石矿产地质勘查规范
- 卫生监督员行为规范
- 深圳电子行业前景分析
- 内窥镜检查病历委托书
- 70篇短文复习1600中考词汇
- 小学计算机兴趣小组活动记录
- SCR烟气脱硝装置声波清灰技术的研究的开题报告
- 大学英语三级词汇表(新版)
- 煤矿班组建设课件
- CB/T 495-1995吸入口
评论
0/150
提交评论