C语言程序设计4-1

上传人:平*** 文档编号:46083811 上传时间:2018-06-22 格式:PPT 页数:26 大小:1.26MB
返回 下载 相关 举报
C语言程序设计4-1_第1页
第1页 / 共26页
C语言程序设计4-1_第2页
第2页 / 共26页
C语言程序设计4-1_第3页
第3页 / 共26页
C语言程序设计4-1_第4页
第4页 / 共26页
C语言程序设计4-1_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《C语言程序设计4-1》由会员分享,可在线阅读,更多相关《C语言程序设计4-1(26页珍藏版)》请在金锄头文库上搜索。

1、 4.1 概述C语言是面向过程的模块化语言。所谓模块化,就是把一个较大的程序分解成若干个小模块,每个模块用来实现一个特定的功能,使程序的结构清晰,便于程序人员分工。在程序设计中,常将一些常用的功能模块编写成函数,放在公共函数库中供大家随时调用。善于利用函数,以减少重复编写程序段的工作量。例4.1函数调用的简单例子 #include void printstar() printf(“*n”); void print_message() printf(“How do you do!n”);void main() printstar(); print_message(); printstar();使

2、用函数的优点:(1)使程序变得更简短而清晰;(2)提高了代码的重用性;(有利于程序维护;(4)可以提高程序开发的效率。说明:(1)一个源程序文件由一个或多个函数以及其他有关内容(如命令行、数据定义等)组成。一个源程序文件是一个编译单位,即以源文件为单位进行编译,而不是以函数为单位进行编译。(2)一个C程序由一个或多个源程序文件组成 。对较大的程序,一般不希望把所有内容全放在一个文件中,而是将它们放在若干个源程序中,再由若干个源程序文件组成。一个源程序文件可以为多个C程序共用。(3)一个C程序有且只能有一个名为main()的主函数,程序的的执行是从main函数开始的。如果在main函数中有调用其

3、他函数,在调用后流程返回到main函数,在main函数中结束整个程序的运行。(4)所有函数都是平行的,即在定义函数时是分别进行的,是相互独立的。一个函数并不从属于另一个函数,即函数不能嵌套定义。函数间可以相互调用,但不能调用main函数。main函数是系统调用的。(5)从用户使用的角度看,函数有两种。标准函数。即库函数,由系统提供,可直接使用。用户自己定义的函数。用以解决用户专门需要。(6)从函数的形式看,函数分两类。无参函数。在调用函数时,主调函数不向被调用函数传递数据。有参函数。在调用函数时,主调函数通过参数向被调用函数传递数据。(7) 函数可分为有返回值函数和无返回值函数。有返回值函数。

4、执行后向主调函数返回一个执行结果。无返回值函数。执行后不向主调函数返回函数值。4.2 函数的定义与调用1.定义无参函数的一般形式为: 类型标识符 函数名() 声明部分语句部分 在定义函数时要用“类型标识符”指定函数值的类型,即函数返回值的类型。函数名是用户定义的标识符,后面的括号不能缺少。4.2.1 函数的定义例如:void printstar() printf(“*n”);函数头函数体对于无返回值的函数,应将函数类型定义为”void”,即 空类型。这样,系统就保证不使函数带回任何值,即禁 止调用函数中使用被调用函数的返回值。此时在函数体 中不得出现return语句。2.定义有参函数的一般形式

5、为: 类型标识符 函数名(形参表列) 声明部分语句部分 形参是变量,必须在形参表中给出 形参的类型说明。例如: int max(int x, int y) int z; z = xy ? x : y; return (z ); 4.2 函数的定义与调用4.2.1 函数的定义3.空函数的一般形式为: 类型说明符 函数名() 4.2 函数的定义与调用4.2.1 函数的定义如果函数定义中省略了返回类型 ,则缺省为int。1.函数的调用:4.2 函数的定义与调用4.2.2 函数的调用、参数及传递方式函数调用的一般形式为 函数名(实参表列); 说明:(1)实参与形参个数相等,类型一致,按顺序一一对应。实

6、 参表求值顺序,因系统而定。(VC+自右向左)(2)如果是调用无参函数,则“实参表列”可以没有,但括号 不能省略。(3)如果实参表列包含多个实参,则各参数间用逗号隔开。#include void main() int f(int a, int b); int i=2, p; p=f(i, +i); printf(“%dn”, p); int f(int a, int b) int c; if(ab) c=1; else if(a=b) c=0;else c=-1; return c; 例4.4实参求值的顺序练习:教材p130,二,22.函数的参数:4.2 函数的定义与调用4.2.2 函数的调用

7、、参数及传递方式形式参数:定义函数时函数名后面括号中的变量名表。实际参数:调用函数时函数名后面括号中的变量名表或对应的表达式表。#include main() int a=4,b=5,c=2,max;if(ab)if(ac)max=a;else max=c;else if(bc)max=b;else max=c;printf(“%d”,max2); 例4.2求a,b,c3个数中的最大者。 #include main() int a=4,b=5,c=2 int max1,max2;max1=max(a,b);max2=max(max1,c);printf(“%d”,max2); int max(

8、int x, int y) int z;if (xy) z=x;else z=y;return (z); 3.函数参数的传递方式:4.2 函数的定义与调用4.2.2 函数的调用、参数及传递方式例 交换两个数#include main()int x=7,y=11;swap(x,y);printf(“x=%d,y=%dn“,x,y);swap(int a,int b) int temp;temp=a;a=b;b=temp; printf(“a=%d,b=%dn“,a,b);关于形参与实参的说明:(1)在定义函数中指定的形参,在未出现函数调用时,它们并不占内存中的存储单元。只有在发生函数调用时,形参

9、才被分配内存单元。调用结束时内存释放。(2)实参可以是常量、变量或表达式。但要求它们有确定的值。在调用时将实参的值赋给形参。(3)在被定义的函数中,必须指定形参的类型。关于形参与实参的说明:(4)实参与形参的类型应相同或赋值兼容。(5)实参向形参的数据传递是“值传递”,单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束,形参释放,实参仍保留并维持原值。因此,在执行一个被调用函数时,形参的值如果发生改变,并不会改变主调函数的实参的值。返回语句形式:return(表达式) 或 ret

10、urn 表达式 或 return;功能:使程序控制从被调函数返回到主调函数中,同时把返回 值带给主调函数。 说明: 1.函数至多可以返回一个值,不能返回多个值; 2.返回值的数据类型必须与函数中返回值的数据类型匹配。如 果类型不一致,则以函数类型为准。对数值型数据,可以自 动进行类型转换。即函数类型决定返回值的类型。 3.当遇到return语句时,函数执行将终止。程序控制流程将立即 返回调用函数。4.2 函数的定义与调用4.2.3 函数的返回值例4.3返回值类型与函数类型不同#include void main() int max(flaot x, float y); float a, b;

11、int c; scanf(“%f,%f”, c=max(a, b); printf(“Max is %dn”, c); max(float x, float y) float z; z = x y ? x : y; return z; 4.2 函数的定义与调用4.2.4 函数声明的作用函数声明的一般形式:函数类型 函数名(形参类型 形参名,);或 函数类型 函数名()函数声明的作用:告诉编译系统函数类型、参数个数及类型,以便检验。注意:函数定义与函数声明的区别!4.2 函数的定义与调用4.2.4 函数声明的作用在一个函数中调用另一个函数需要具备的条件:(1) 必须是已经存在的函数(库函数或用户

12、自己定义的函数)。(2)如果使用库函数,应在本文件开头用#include命令将调用有关库函数时所需用到的信息“包含”到本文件中去。(3)如果使用用户自己定义的函数,而该函数的位置在调用它的函数(即主调函数)的后面(在同一个文件中),应该在主调函数中对被调用的函数作声明。说明:(1)如果被调用函数的定义出现在主调函数之前,可以不必加以声明。(2)如果已在文件的开头(在所有函数之前),已对本文件中所调用的函数进行了声明,则在各函数中不必对其所调用的函数再作声明。4.2 函数的定义与调用4.2.4 函数声明的作用例4.5对被调用的函数作声明#include float add(float x, fl

13、oat y) float z; z=x+y; return z; void main() float a, b, c; scanf(“%f,%f”, c=add(a, b); printf(“sum is %fn”, c);#include void main() float a, b, c; scanf(“%f,%f”, c=add(a, b); printf(“sum is %fn”, c); float add(float x, float y) float z; z=x+y; return z;float add(float x, float y);4.2 函数的定义与调用4.2.5 main函数中的参数main函数是由系统调用的,一般是void类型的无参函数,但在某种特定情形下可以带参数。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号