chap2用C语言编写程序1-3.ppt

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chap 10 函数与程序结构;本章要点;使用结构化程序设计方法解决复杂的问题 把大问题分解成若干小问题,小问题再进一步分解成若干更小的问题 写程序时,用main()解决整个问题,它调用解决小问题的函数 这些函数又进一步调用解决更小问题的函数,从而形成函数的嵌套调用;main( );例10-1 设计一个常用圆形体体积计算器,采用命令方式输入1、2、3,分别选择计算球体、圆柱体、圆锥体的体积,并输入计算所需相应参数。 分析: 输入1、2、3选择计算3种体积,其他输入结束计算 设计一个控制函数cal(),经它辨别圆形体的类型再调用计算球体、圆柱体、圆锥体体积的函数 设计单独的函数计算不同圆形体的体积;3层结构,5个函数 降低程序的构思、编写、调试的复杂度 可读性好;例10-1源程序;/* 常用圆形体体积计算器的主控函数 */ void cal ( int sel ) { double vol_ball(void ); double vol_cylind(void ); double vol_cone(void ); switch (sel) { case 1: printf(球体积为:%.2f\n, vol_ball( )); break; case 2: printf(圆柱体积为:%.2f\n, vol_cylind( ) ); break; case 3: printf(圆锥体积为:%.2f\n, vol_cone( ) ); break; } };10.1.2 函数的嵌套调用;函数的嵌套调用;例9-1 分析;函数的嵌套调用;10.1.3 文件包含;问题:如何把若干程序文件模块连接成一个完整的可执行程序? 当一个C语言程序由多个文件模块组成时,整个程序只允许有一个main()函数。 为了能调用写在其它文件模块中的函数,文件包含是一个有效的解决方法。;格式 # include 需包含的文件名 # include “需包含的文件名” 作用 把指定的文件模块内容插入到 #include 所在的位置,当程序编译连接时,系统会把所有 #include 指定的文件拼接生成可执行代码。 注意 编译预处理命令,以#开头。 在程序编译时起作用,不是真正的C语句,行尾没有分号。;将例10-1的5个函数分别存储在2个.C文件上,要求通过文件包含把它们联结起来。;ctype.h 字符处理 math.h 与数学处理函数有关的说明与定义 stdio.h 输入输出函数中使用的有关说明和定义 string.h 字符串函数的有关说明和定义 stddef.h 定义某些常用内容 stdlib.h 杂项说明 time.h 支持系统时间函数 ;10.1.4 全局变量与程序文件模块 ;外部变量(extern);int x; void main() {……… };;10.1.5 寄存器变量和外部变量;10.1.6 函数与程序文件模块;extern int f1(); int main(void) { ……… f1( ); ……… };10.2 递归函数;10.2.1 程序解析;10.2.2 递归函数基本概念;递推法与递归法求阶乘;递归式;main() fact(3) fact(2) fact(1) { .... { .... { .... { .... printf(fact(3)) f=3*fact(2) f=2*fact(1) f=1 } return(f) return(f) return(f) } } } ;例10-4 写输出结果;10.2.3 递归程序设计;例10-5 汉诺(Hanoi)塔 ;分析;分析;分析;算法;函数 ; 源程序 ;10.3 宏定义;宏定义可以写在程序中任何位置,它的作用范围从定义书写处到文件尾。 可以通过“#undef”强制指定宏的结束范围。;#define A “This is the first macro” void f1() { printf( “A\n

文档评论(0)

smartxiaohuli + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档