- 1、本文档共71页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言模块化程序设计
第5章 模块化程序设计 5.1 模块化设计与函数 模块化程序设计 基本思想:将一个大的程序按功能分割成一些小模块。 特点: 各模块相对独立、功能单一、结构清晰、接口简单。 控制了程序设计的复杂性。 缩短了开发周期。 避免程序开发的重复劳动。 易于维护和功能扩充。 开发方法: 自上向下,逐步细化。 C程序结构 C是函数式语言。 必须有且只能有一个名为main的主函数。 C程序的执行总是从main函数开始于“{”,在main中结束于“}”。 其它函数只在执行main()函数的过程中被调用时才能执行。 5.1.1 函数的定义 “函数”(function):“功能”的意思,即用函数来实现程序 中的某一个功能。 C语言程序处理过程全部都是以函数形式 出现,最简单的程序至少也有一个main函数。 1.无参函数的一般形式 类型说明符 函数名() { /*函数体*/ 局部变量说明; 语句序列; } 注意: 类型说明符和函数名称为函数头。 函数名是由用户定义的标识符,函数名后有一个空括号,其中无参数 。 {}中的内容称为函数体 。 函数的定义位置是在任意函数之外,且不能嵌套定义 。 2.有参函数的一般形式 类型说明符 函数名(形式参数类型及说明表列) { /*函数体*/ 局部变量说明; 语句序列; } 形式参数类型及说明表列的一般形式为: 数据类型 形式参数,数据类型 形式参数… 注意: 有参函数比无参函数多了一个参数表 。 函数定义分为两大部分:函数头和函数体 。 与上述现代风格相应传统风格的函数定义为如下形式: 类型说明符 函数名(形式参数变量表列) 形式参数类型说明; { /*函数体*/ 局部变量说明; 语句序列; } 返回语句 形式:return (表达式);return 表达式;return; 意义:流程返回主调函数,把返回值带给主调函数。 说明: 函数中可有多个return语句。 若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换(函数调用转换)。 若函数的类型为void,则函数可以无return语句,或者return语句的表达式为空 。 若无return语句,遇}时,流程自动返回主调函数。 5.1.2 函数的调用 1.函数的声明 一般形式: 函数类型 函数名(参数类型1,参数类型2,…); 函数类型 函数名(参数类型1 参数名1,参数类型2 参数名2,…); 作用:告诉编译系统函数类型、参数个数及类型。 位置:程序的数据说明部分。 注意: 形参名可省略。 函数的声明应与函数定义时的头部写法保持一致。 函数定义在前,主调函数在后时,可以省略函数声明。 若在定义所有函数前声明了函数,各个主调函数中不必再对其声明。 2.函数的调用 有参函数调用形式: 函数名(实参表达式1,实参表达式2,…); 无参函数调用形式: 函数名( ); 注意: 实际参数表中的参数可以是常量,变量或其它构造类型数据及表达式 。 各实参之间用逗号分隔。 对被调用函数要求: 必须是已存在的函数。 库函数: #include *.h 用户自定义函数: 函数声明。 调用方式 函数表达式: m = max(a,b); 函数语句: printf(“Hello,World!\n”); 函数实参: printf(“%d”,max(a,b)); 说明: 实参与形参个数相等,类型一致,按顺序一一对应。 如果调用是无参函数,实参表可以没有,但括号不能省略。 实参表求值顺序,因系统而定(Turbo C 自右向左)。 5.1.3 函数的参数传递 形参与实参 形式参数:定义函数时函数名后面括号中的变量名。 实际参数:调用函数时函数名后面括号中的表达式。 说明: 形参只有在被调用时才分配内存,调用结束,形参 内存释放。 实参必须有确定的值以传给形参。 形参与实参类型一致、个数相同、顺序一致。 函数调用中发生的数据传送是单向的(即传值而不传地址)。 int max(int x,int y) {? int z;? y=(xy)? x:y;? return z; ????????} 5.1.4 函数的嵌套调用 C规定:函数定义不可嵌套,但函数调用可以嵌套,即在一 个函数的定义中出现对另一个函数的调用。 #includestdio.h long fun1(int n) { long data=1; int i; if(n0) { printf(input error);data=-1;} else if(n==0) data=1; else for(i=1; i=n; i++) { data=data*
您可能关注的文档
- C++第二章-基本数据类型、运算符和表达式.ppt
- C++第三章-结构化程序设计.ppt
- C++程序设计之 多态性和虚函数.ppt
- c++课设学生管理系统.doc
- cadVBA初级教程.doc
- CAA学术报告.ppt
- CAD制图课程教学大纲.doc
- CAD╱CAM读书报告.doc
- CAD教材 第九章 绘制三维实体基础练习.ppt
- CADENCE的PCB设计.doc
- 广东省广州市增城区2023-2024学年九年级上学期期末道德与法治试题(答案).doc
- 广东省广州市2021-2022学年九年级上学期期末模拟历史试题(含答案).docx
- 广东省广州市天河区暨南大学附属实验学校2022-2023学年九年级上学期期末历史试题.doc
- 广州市南沙区2023—2024学年第一学期九年级历史期末教学质量监测模拟试卷.doc
- 广东省广州市天河区暨南大学附属实验学校2022-2023学年九年级上学期期末历史试题(答案).doc
- 在全市县区委书记第五次工作座谈会上的讲话.docx
- 3篇中央政法工作会议发言材料汇编.docx
- 5篇贵州省庆祝第二十个中国记者节座谈会经验交流发言材料汇编.docx
- 在全市人大工作座谈会上的讲话.docx
- 在全市人大系统改革创新工作交流会上的讲话.docx
文档评论(0)