《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 函数与预处理命令

C语言程序设计 第8章函数与预处理命令 八西亚斯围陈学院自动化 2021/2/24
2021/2/24 1 第8章 函数与预处理命令 西亚斯国际学院 自动化 C 语言程序设计

第8章函数与预处理命令 81概述 82函数的定义与调用 8.3数组作函数参数 84函数的嵌套调用和递归调用 85局部变量和全局变量及其作用城 86变量的存储类别及变量的生存期 87函数的存储分类 88编译预处理 8.9多文件程序的调试方法 2021/2/24
2021/2/24 第 2 8章 函数与预处理命令 8.1 概述 8.2 函数的定义与调用 8.3 数组作函数参数 8.4 函数的嵌套调用和递归调用 8.5 局部变量和全局变量及其作用域 8.6 变量的存储类别及变量的生存期 8.7 函数的存储分类 8.8 编译预处理 8.9 多文件程序的调试方法

81概述 C程序 源程序文件1 。。。 源程序文件n 函数1 函数n 函数1 函数m 「使用L⑩程序结构清晰,可读性好 函数②减少重复编码的工作量 的 好处 ③可多人共同编制一个大程序,缩短程序 设计周期,提高程序设计和调试的效率。 2021/2/24
2021/2/24 3 8.1 概述 ① 程序结构清晰,可读性好。 ② 减少重复编码的工作量。 ③ 可多人共同编制一个大程序,缩短程序 设计周期,提高程序设计和调试的效率。 使用 函数 的 好处 … … C程序 源程序文件n 函数1 函数m 源程序文件1 … … 函数1 函数n

例81】求一个整数的立方 nt cube(intx)/函数定义 d return(x *x* x);3 #include void main( 程序的执行总是 f int f, a 从main函数开始 printf("n Enter an integer lumber: y scan f("%d",&a); f= cube(a) 函数调用 printf("%d* %d* %d=%d\n", a, a, a, f); 程序运行情况如下: Enter an integer number: 2Y 22*2=8 2021/2/24
2021/2/24 4 【例8.1】求一个整数的立方。 int cube (int x) /* 函数定义 */ { return (x * x * x); } #include void main( ) { int f, a; printf("\nEnter an integer number:"); scanf("%d", &a); f = cube (a); printf("%d * %d * %d = %d\n", a, a, a, f); } 程序运行情况如下: Enter an integer number:2 2 * 2 * 2 = 8 函数调用 程序的执行总是 从main函数开始

(1)一个C源程序可以由一个或多个源程序文件组 成。C编译系统在对C源程序进行编译时是以文件 为单位进行的。 (2)一个C源程序文件可以由一个或多个函数组成。 所有函数都是独立的。主函数可以调用其它函数, 其它函数可以相互调用 (3)在一个C程序中,有且仅有一个主函数main C程序的执行总是从main函数开始,调用其它函数 后最终回到main函数,在main函数中结束整个程 序的运行。 2021/2/24
2021/2/24 5 ⑴ 一个C源程序可以由一个或多个源程序文件组 成。C编译系统在对C源程序进行编译时是以文件 为单位进行的。 ⑵ 一个C源程序文件可以由一个或多个函数组成。 所有函数都是独立的。主函数可以调用其它函数, 其它函数可以相互调用。 ⑶ 在一个C程序中,有且仅有一个主函数main。 C程序的执行总是从main函数开始,调用其它函数 后最终回到main函数,在main函数中结束整个程 序的运行。 说明

(4)函数的种类 从使用的角度看: 从函数定义形式分 ①标准函数(库函数)①有参函数: 库函数是由系统提供的。在主调(用)函数和被调 如: getchar()、sin(x等。(用)函数之间通过参数 在程序中可以直接调用进行数据传递,如: 它们。附录A列出了C的 int cube (int x)){.…,} 部分库函数 ②无参函数: ②用户自定义函数。 如:例81中的cube函数 如: getchar() °在调用无参函数时,主调 函数不需要将数据传递给 无参函数 2021/2/24
2021/2/24 ⑷ 函数的种类 6 从函数定义形式分: ① 有参函数: 在主调(用)函数和被调 (用)函数之间通过参数 进行数据传递, 如: int cube (int x) { … } ② 无参函数: 如:getchar( ) 在调用无参函数时,主调 函数不需要将数据传递给 无参函数。 从使用的角度看: ① 标准函数(库函数) 库函数是由系统提供的。 如:getchar( )、sin(x)等。 在程序中可以直接调用 它们。附录A列出了C的 部分库函数。 ② 用户自定义函数。 如:例8.1中的cube函数

821函数的定义 函数定义的一般形式 函数类型函数名(类型名形式参数1,…) 说明语句 执行语句 类型省略时 例如:求两个数的最大值 默认为int int max(int x, int y) 类型 Int Zs z=X>y?X: y9 没有形式参数 return(z) 为无参函数 2021/2/24
2021/2/24 7 8.2.1 函数的定义 函数定义的一般形式 函数类型 函数名(类型名 形式参数1,… ) { 说明语句 执行语句 } 例如:求两个数的最大值。 int max(int x,int y) { int z; z = x > y ? x : y; return( z ); } 类型省略时 默认为int 类型 没有形式参数 为无参函数

8 形参也可以这样定义 如下定义都是错误的 int max(x,y) int max(xy)或 int x,y? i int x, y; int max(x,y) i int z; int x,y,2y IZ=x>y?x: y z=x>y?X: y 或 return(z); return(z) int max(int x,y) 花括号中也可以为室,这种函数叫空函数。 不能在函数体内定义其他函数,即函数不能嵌套定义 2021/2/24
2021/2/24 8 int max(x,y) int x,y; { int z; z = x > y ? x : y; return( z ); } int max(x,y) { int x,y; …… } 或 int max(int x,y) { …… } 或 int max(x,y) int x,y,z; { z = x > y ? x : y; return( z ); } 花括号中也可以为空,这种函数叫空函数 。 不能在函数体内定义其他函数,即函数不能嵌套定义。 形参也可以这样定义 如下定义都是错误的 √

82.2函数的调用 函数调用的一般形式: 函数名(实参表列) 在C语言中,把函数调用也作为一个表达式。 因此凡是表达式可以出现的地方都可以出现函数 调用。例如: ① welcome(); 2 if (iabs(a)>max)max=iabs(a); 3m=max(c, max(a, b); 2021/2/24
2021/2/24 9 函数名(实参表列) 在C语言中,把函数调用也作为一个表达式。 因此凡是表达式可以出现的地方都可以出现函数 调用。例如: ① welcome( ); ② if (iabs (a)>max) max=iabs(a); ③ m=max(c,max(a,b)); 8.2.2 函数的调用 函数调用的一般形式:

(例83求1~100的累加和。 10 int sum1000 int sum(int x) fint i, t=0; g fint i, t=0 for(i=1;i=100;i++) t+=i 考for(i=l; 个 return(t) void main( 程呈 序‖# ncludesstdio. h dint s; 有 void maine() s=sum100(; 何{imts; printf("%odn",S) 不s=sum(100 printf("%odn",s); 程序输出结果 程序输出结果: 5050 5050 2021/2/24
2021/2/24 10 int sum100( ) { int i,t=0; for (i=1; i void main( ) { int s; s=sum100( ); printf("%d\n", s); } 程序输出结果: 5050 int sum ( int x ) { int i,t=0; for (i=1; i void main( ) { int s; s=sum (100); printf("%d\n", s); } 【例8.3】求1~100的累加和。 思 考: 两 个 程 序 有 何 不 同 程序输出结果: 5050
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第10章 指针.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 函数.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第3章 数据类型、运算符与表达式.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第6章 循环结构程序设计.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第5章 选择结构程序设计.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 函数与预处理命令.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第2章 算法.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第7章 数组.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第4章 顺序结构程序设计.ppt
- 上海交通大学:《C++程序设计》课程教学大纲 C++ Programming(主讲:王群慧).doc
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)程序调试简介.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第八章 类与对象(2/2).ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第八章 类与对象(1/2).ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第七章 自定义数据类型.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第六章 指针.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第五章 数组.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)作用域和生存期.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第四章 模块化与函数.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第三章 结构化程序设计.ppt
- 上海交通大学:《C++程序设计》课程教学课件(PPT讲稿)第二章 数据类型、运算符、表达式.ppt
- 河南工业大学:《微机原理与接口技术》第一章 计算机基本知识.ppt
- 河南工业大学:《微机原理与接口技术》第二章 8086体系结构.ppt
- 河南工业大学:《微机原理与接口技术》第三章 8086的指令系统.ppt
- 河南工业大学:《微机原理与接口技术》第四章 8086汇编语言程序设计.ppt
- 河南工业大学:《微机原理与接口技术》第五章 存储器原理与接口.ppt
- 河南工业大学:《微机原理与接口技术》第六章 微型计算机的输入/输出.ppt
- 河南工业大学:《微机原理与接口技术》第七章 可编程接口芯片.ppt
- 河南工业大学:《微机原理与接口技术》第八章 串行输入/输出接口.ppt
- 河南工业大学:《微机原理与接口技术》第九章 中断.ppt
- 《Visual C++编程技术》课程电子教案(讲义)第1章 Visual c++6.0基本应用程序的创建.pdf
- 《Visual C++编程技术》课程电子教案(讲义)第2章 Windows编程与MFC基础.pdf
- 《Visual C++编程技术》课程电子教案(讲义)第3章 面向对象程序设计与C++语言.pdf
- 《Visual C++编程技术》课程电子教案(讲义)第4章 基本输入—键盘和鼠标消息.pdf
- 《Visual C++编程技术》课程电子教案(讲义)第5章 菜单、工具栏和状态栏编程.pdf
- 厦门理工学院(厦门理工大学):《高级语言程序设计》课程电子教案(PPT教学课件)第7章 指针(教师:吴芸).ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件)第四章 选择结构程序设计.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件)第五章 循环结构程序设计.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件)第六章 数组.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件)第七章 函数调用.ppt
- 清华大学:《C语言程序设计》课程电子教案(PPT教学课件)第九章 用户建立的数据类型.ppt