- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C程序设计程序的模块结构和C函数
第7章 程序的模块结构和C函数 内容提要 本章从模块化程序设计的角度,介绍如何编制所需要的C函数 包括函数的定义、调用方法,调用函数和被调用函数之间如何进行数据传递,变量和函数的存储类型对函数调用的影响,函数的递归调用 最后介绍如何向main()函数传递数据。 C程序的模块结构 1. 模块化程序设计的特点 根据模块化程序设计的思想,对于复杂的问题都可以采用自顶向下(或自底向上)、逐步求精的方法将其分解成若干个相对独立的子问题。每个子问题对应一个功能独立的程序模块,将这些模块有机地连接在一起,构成一个完整的程序。 2. C程序的模块结构 C函数的定义和调用 1. C函数的定义 C函数的定义格式有两种:传统格式和现代格式。传统格式也称KR格式,是早期编译系统使用的格式;现代格式又称ANSI格式,是现代编译系统使用的格式。 2. C函数的调用 调用函数和被调用函数之间的数据传递 当一个函数调用另一个函数时,函数之间传递数据的方式有3种,即虚实结合方式、函数返回值方式和全局变量方式,用得最多的是虚实结合方式。 1、虚实结合方式 虚实结合方式是在形式参数(简称形参)和实际参数(简称实参)之间进行的数据传递。虚实结合适用于所有的有参函数,传递的数据可以是变量、数组、指针、结构、函数等。 2 函数返回值方式 存储类型对函数调用的影响 变量的存储类型对函数调用的影响 函数的存储类型对函数调用的影响 函数的递归调用 递归调用是一个函数直接或间接地调用自己,前者称为直接递归,后者称为间接递归。 递归调用的函数称为递归函数。由于递归非常符合人们的思维习惯,而且许多数学函数及许多算法或数据结构都是递归定义的,因此递归调用颇具实用价值。 main()函数的参数和返回值 除了在递归程序中可能出现main函数自己调用自己的情况外,main函数很少被其他函数调用。所以,我们前面用到的main函数一概写成: main() 当然也可以写成: void main(void) 但是,main函数也会有参数和返回值,本节介绍main函数的参数、返回值及其应用。 1. 命令行参数 2. main()函数的参数 本章总结 本章应重点掌握函数的定义方式及函数的数据类型、存储类型、形式参数和返回值的概念。函数的调用方法,包括函数名调用、函数指针调用、递归调用、表达式调用、表达式语句调用及什么时候要进行函数类型说明,调用函数和被调用函数之间传递单个数据、指针、数组、字符串的方法,包括调用函数将它们传递给被调用函数及被调用函数将它们返回给调用函数。 本章难点是函数之间数据传递的方式、方法和效果,变量和函数的存储类型对函数调用的影响,函数递归调用过程的分析,以及main函数的参数和返回值的使用。 本章习题 一、选择题 1. 以下函数的数据类型是____。 fun(float x) { float y; y=3*x-4; return y; } A. int B. 不确定 C. void D. float 2. 在下列关于C函数定义的叙述中,正确的是____。 A. 函数可以嵌套定义,但不可以嵌套调用 B. 函数不可以嵌套定义,但可以嵌套调用 C. 函数不可以嵌套定义,也不可以嵌套调用 D. 函数可以嵌套定义,也可以嵌套调用 本章习题 3. 若函数为int型,变量z为float型,则该函数体内的语句return(z);返回的值是____。 A. int型 B. float型 C. 不定 D. 不确定 4. 在C语言中,函数的隐含存储类型是____。 A. auto B. static C. extern D. 无存储类型 5. 有以下函数: char *fun(char *p) { return p; } 该函数的返回值是____。 A. 无确切的值 B. 形参p中存放的地址 C. 一个临时存储单元的地址 D. 形参p自身的地址 本章习题 6. 以下所列各函数定义的首部中,正确的是____。 A. void play(int ,int) B. void play(int a,b) C. void play(int a,int b) D. sub play(a as integer,b as integer) 7. 在C语言中,形参的缺省存储类型是_
文档评论(0)