网站大量收购独家精品文档,联系QQ:2885784924

chap10_函数与程序结构解析.ppt

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
chap10_函数与程序结构解析

10.4.3 文件模块间的通信 静态全局变量 当一个大的程序由多人合作完成时,每个程序员可能都会定义一些自己使用的全局变量 为避免自己定义的全局变量影响其他人编写的模块,即所谓的全局变量副作用,静态全局变量可以把变量的作用范围仅局限于当前的文件模块中 即使其他文件模块使用外部变量声明,也不能使用该变量。 10.4.3 文件模块间的通信 文件模块与函数 外部函数 如果要实现在一个模块中调用另一模块中的函数时,就需要对函数进行外部声明。声明格式为: extern 函数类型 函数名(参数表说明); 静态的函数 把函数的使用范围限制在文件模块内,不使某程序员编写的自用函数影响其他程序员的程序,即使其他文件模块有同名的函数定义,相互间也没有任何关联, 增加模块的独立性。 本章小结 多函数程序的组织结构 函数调用的层次结构 多文件模块实现:文件包含 合理运用变量在多文件模块、多函数间的关联 程序文件模块:变量与文件模块、 函数与文件模块的关系 递归函数 构成要素:递归式子(重点)与递归出口 运用递归函数解决特殊问题(如汉诺塔) 编译预处理 文件包含 宏实质:编译预处理的替代 带参的宏——不是函数 源程序 /* 搬动n个盘,从a到b,c为中间过渡 */ void hanio(int n, char a, char b, char c) { if (n == 1) printf(%c--%c\n, a, b); else{ hanio(n-1, a, c, b); printf(%c--%c\n, a, b); hanio(n-1, c, b, a); } } int main(void) { int n; printf(input the number of disk: ); scanf(%d, n); printf(the steps for %d disk are:\n,n); hanio(n, a, ‘b, ‘c) ; return 0; } input the number of disk: 3 the steps for 3 disk are: a--b a--c b--c a--b c--a c--b a--b A B C input the number of disk: 3 the steps for 3 disk are: a--b a--c b--c a--b c--a c--b a--b 课堂练习:利用递归函数计算x的n次幂 int mi(int x, int n) { if (n==1) return x; else return x*mi(x,n-1); } 10.3 长度单位转换 10.3.1 程序解析 10.3.2 宏基本定义 10.3.3 带参数的宏定义 10.3.4 文件包含 10.3.5 编译预处理 10.3.1 程序解析 例10-5 欧美国家长度使用英制单位,1英里=1609米,1英尺=30.48厘米,1英寸=2.54厘米。请编写程序转换。 #includestdio.h #define Mile_to_meter 1609 /* 1英里=1609米 */ #define Foot_to_centimeter 30.48 /* 1英尺=30.48厘米 */ #define Inch_to_centimeter 2.54 /* 1英寸=2.54厘米 */ int main(void) { float foot, inch, mile; /* 定义英里,英尺,英寸变量 */ printf(Input mile,foot and inch:); scanf(%f%f%f, mile, foot, inch); printf(%f miles=%f meters\n, mile, mile * Mile_to_meter); /* 计算英里的米数 */ printf(%f feet=%f centimeters\n, foot, foot * Foot_to_centimeter); /* 计算英尺的厘米数 */ printf(%f inches=%f centimeters\n, inch, inch * Inch_to_centimeter); /* 计算英寸的厘米数 */ return 0; } Input mile,foot and inc

文档评论(0)

此项为空 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档