- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8.1 C程序模块结构 8.1.1 概述 模块化设计是将一个大的程序自上向下进行功能分解,分成若干个子模块,模块对应了一个功能,有自己的界面。有相关的操作,完成独立的功能。各个模块可以分别由不同的人员编写和调试,最后将不同的模块组装成一个完整的程序。 基本思想:将一个大的程序按功能分割成一些小模块, 特点: 各模块相对独立、功能单一、结构清晰、接口简单 控制了程序设计的复杂性 提高元件的可靠性 缩短开发周期 避免程序开发的重复劳动 易于维护和功能扩充 开发方法: 自上向下,逐步分解,分而治之 例. 求三个数中的大数 #include “stdio.h” main() { int a,b,c,m; printf(“input a,b,c:); scanf(%d,%d, %d,a,b,c); m=max(a,b,c); printf(max=%d\n,m); m=max(3,a+2,7); printf(max=%d\n,m); } C语言特点:C语言允许将一个程序写入不同的源文件,每一个源文件可以独立编译,一个源文件可以被不同的程序使用。不同源文件的组装可以通过工程文件实现。 8.1.2 函数的种类 函数概念:用来实现一个特定功能的程序模块,目的是将重复的程序段编写成函数,避免代码重复编写。例: 1、 函数种类 从用户使用角度:标准函数:即库函数:scanf,printf,strlen …使用时,加入其头文件即可用户自定义函数:必须先定义,后使用从函数的形式:无参函数:使用该函数时不需提供数据,直接使用该程序段提供的功能,通常完成某一个处理任务。有参函数:使用该函数时,必须提供必要的数据,根据提供数据的不同,可能获得不同的结果。 使用库函数应注意: 函数功能 函数参数的数目和顺序,以及各参数的意义和类型 函数返回值意义和类型 需要使用的包含文件 8.2.1 函数定义的一般形式 格式: 函数返回值类型 函数名(形参表说明) /*函数首部*/ {说明语句 /*函数体*/ 执行语句 } 说明: 函数返回值的类型:是除数组和函数外的任何合法的数据类型,若缺省或无返回值(void) 系统默认是整类型。 函数名:用户自定义的标识符,用于标识函数,表示函数的入口地址,并以此标识符调用函数。 形参表:用逗号分隔的一组变量说明,包括形参的类型和形参标识符,其作用是指出每—个形参的类型和形参的名称,当调用函数时,接受来自主调函数的数据,确定各参数的值。 8.2.3 有参函数的定义: void string(int n) {char str[10]=“”; int i=0; if (n0) {putchar(‘-’); n=-n;} /*考虑对负数的处理*/ do /*分离整数的各位*/ {str[i++]=n%10+‘0’; n/=10; }while (n0); for(i-=1;i0;i--) /*从后向前(高到低)输出*/ putchar(str[i]) ; } 说明: 在形式参数表中说明的形参,在函数体中不再需要说明.可以直接使用,同一般的变量完全一样。 函数体内部的变量说明与形参说明的含义不一样。前者说明一个局部于函数体的一般变量,后者说明一个用于函数间传送数据的形式变量。 8.3 函数的调用 P203 8.3 函数的调用 8.3.2 对被调函数的声明和函数原型 p204 1)对被调用函数要求: 必须是已存在的函数 库函数: #include *.h 用户自定义函数: 函数类型说明 2)对被调用函数的声明 一般形式: 函数类型 函数名(形参类型 [形参名],….. ); 或 函数类型 函数名(形参类型 ,….. );/*函数的原型 或 函数类型 函数名(); 作用:告诉编译系统,函数值是什么类型,有多少个参数,每 个参数是什么类型的,为编译系统进行类型检查提供依据 8.3.2 对被调函数的声明和函数原型 例8-6 对被调用的函数作声明 main() {float fun1(float x,float y); /*对被调用函数的声明*/ float a,b,c; scanf(“%f%f”,a,b); c=fun1(a,b); /*函数调用*/ printf(“
文档评论(0)