- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8.1 函 数 C程序是结构化很强的程序,将程序按功能自上向下分解,一个函数实现一个功能模块。 1.一个C程序可以由若干个源文件组成。 2.一个源文件可以由若干个函数组成。 3.在组成C程序的所有函数中,有且仅有一个主函数main( ),位置任意(在哪个源文件中都可以),但程序的运行总是从主函数开始。 4.组成C程序的各个函数均彼此平行,独立定义,可以嵌套调用。 函数的类型可按不同的方法分类如下: 从用户的角度 标准函数(库函数) 用户定义函数 从函数的任务 完成某种运算 实现某种处理(并无计算返回值) 从函数的形式 有参函数 无参函数 8.1.1 函数的定义 1、一般函数 格式: 类型 函数名(形参表) { 声明语句 执行语句 } 2、空函数:无内容等待添加。有时候需要这样 8.1.2 函数的参数与返回值 函数的参数 形参与实参 编译时,系统不为形参分配存储空间,函数调用时,临时分配,调用结束,空间释放。 实参在主调函数内部定义,可以是常量,变量或表达式,但必须有值,调用被调函数时,将其值传给形参。 函数调用与返回 函数调用分两种形式: 1、无返回值(或不关心返回值) 2、有返回值。 3、返回语句return 1 格式:return 表达式 ; 2 功能:将表达式的值带回主调函数。 3 说明:如果没有返回值,可以不写表达式, 语句为return ,或不写语句。 8.1.3 函数的声明 格式:类型 函数名(参数表) 对变量应先定义,再使用;对函数,主调函数使用被调函数之前,要对被调函数做声明。 参数传递 相当于赋值。 值传递 地址传递 例子 1、任意从键盘输入一个三位整数,要求正确地分离出它的个位、十位和百位数,并分别在屏幕上输出。 2、比较两个数的大小。 3、将百分制转化为五级制。 4、输入一个年份进行判断是否闰年。 5、计算1+2+3+……+100的值。 6、计算任意输入整数的阶乘。 7、求1!+2!+……10!的值。 8、求1到100以内的素数。 例子 9、用‘*’打印一个等腰三角形。 10、在一维数组中找出值最小的元素,并将其值与第1个元素的值对调。 11、将一维数组由小到大排序。 12、将两个已知整数进行交换。 8.1.4 递归调用 函数的嵌套: 1. 被调函数在调用过程中,调用其他函数称为函数的嵌套调用。 2. 函数可以嵌套调用,不允许嵌套定义。 函数的递归: 自己调用自己。 阶乘 汉诺塔 汉诺塔问题 据说在约十九世纪末欧洲的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由 64 个圆盘构成的塔。 游戏的目的是将最左边A杆上的圆盘,借助最右边的C杆,全部移到中间的B杆上,条件是一次仅能移动一个盘,且不允许大盘放在小盘的上面。 步骤 第一步:将问题简化。假设 A杆 上只有 2 个圆盘,即汉诺塔有 2 层,N=2。移动过程如下: 移动方法: 1. 将上面小片移到C杆上。 2. 将下面的大片由A杆移到B杆上。 3. 将C杆上的小片移到B杆上。 第二步,对于一个有 N(N1)个圆盘的汉诺塔,将N个圆盘分为两部分:上面的N-1个圆盘和最下面的N号圆盘。将“上面的N-1个圆盘”看成一个整体。 第三步,为解决 N 个圆盘的汉诺塔,可按如下方式进行操作: 汉诺塔算法 把第一步中化简问题的条件作为递归结束条件,将第三步分析得到的算法作为递归算法。 定义函数 movedisc( n,fromneedle,toneedle,usingneedle)。将 fromneedle 杆上的 N 个圆盘,借助 usingneedle 杆,移动到 toneedle 杆上。 移动N个圆盘的递归算法描述如下: movedisc ( n,fromneedle,toneedle,usingneedle ) { if ( n==1 ) 将 n 号圆盘从 fromneedle 上移到 toneedle上; else { ① movedisc ( n-1,fromneedle,usingneedle,toneedle ) ② 将 n 号圆盘从 fromneedle 上移到 toneedle上; ③ movedisc ( n-1,usingneedle,toneedle,fromneedle ) } } 8.1.5 外部函数与内部函数 内部函数:函数仅被本文件内其他函数调用 外部函数:函数允许其他文件中的函数调用 8.2 变量的作用域和存储类型 8.2.1 变量的作用域 变量是定义在一个函数内,还是定义在函数之外,是被一个函数所使
您可能关注的文档
- 第11章 linux.ppt
- 第11章 linux DNS.ppt
- 第11章 Linux操作系统基础.ppt
- 第11章 shell程序设计.ppt
- 第11章 Shell的使用.ppt
- 第11章 Squid代理服务的配置与应用.ppt
- 第11章 Visual Basic 6.0中的数据库编程.ppt
- 第11章 并发控制.ppt
- 第11章 函数二.ppt
- 第11章 设计、建立“学生成绩管理系统”.ppt
- 2025新人教英语四年级上册Unit 6 Changing for the seasons Part B 第5课时 Let's learn&Do a survey 课件.ppt
- 2.问题提出(1) 课件 2025西师大版数学二年级上册.ppt
- 3.第1课时 画线段 课件 2025西师大版数学二年级上册.ppt
- 10.1 人类社会的存在和发展 课件 高教版中职思想政治哲学与人生.ppt
- 8.2 明辨是非,追求真理 课件 高教版中职思想政治哲学与人生.ppt
- 2025新人教英语四年级上册Unit 4 Helping in the community Part B 第6课时 Read and write 课件.ppt
- 2.问题提出(2) 课件 2025西师大版数学二年级上册.ppt
- 2025新人教英语四年级上册Unit 6 Changing for the seasons Part A 第3课时 Let's spell 课件.ppt
- 8.1 透过现象认识本质 课件 高教版中职思想政治哲学与人生.ppt
- 第2课时 年、月、日知多少 课件 2025西师大版数学二年级上册.ppt
文档评论(0)