第6章中职类的C语言课件PPT格式课件下载.ppt
- 文档编号:15562855
- 上传时间:2022-11-05
- 格式:PPT
- 页数:36
- 大小:319KB
第6章中职类的C语言课件PPT格式课件下载.ppt
《第6章中职类的C语言课件PPT格式课件下载.ppt》由会员分享,可在线阅读,更多相关《第6章中职类的C语言课件PPT格式课件下载.ppt(36页珍藏版)》请在冰豆网上搜索。
6.1.1函数的概念函数的概念函数是C程序的机构单位,是模块化程序设计的重要体现。
从用户的使用角度看,函数有两种:
标准函数(或库函数)和用户自定义函数。
()标准函数(或库函数)。
库函数是系统已经编好的函数,一个库函数就能实现一个特定的功能。
C语言包括了丰富的库函数。
关于库函数有以下几点说明。
调用标准库函数时要使用include命令,例如:
#include。
对于每一类库函数,在调用该类库函数时,用户在源程序include命令中都有应该包含的头文件名。
(2)用户自定义函数这种函数由用户自己编写,主要用于执行特定的功能,编写用户自定义函数是使用C语言进行程序设计的重点,相关方法将在稍后详细介绍。
此外,从函数的形式来看,函数还可以分为无参函数和有参函数两种,这两种函数的详细情况将在稍后介绍。
6.2函数的定义函数的定义函数和变量一样,在使用前需对其定义,用以说明函数的结构和特点。
下面分别介绍无参函数和有参函数的定义方法。
1无参函数的定义无参函数没有参数,用法比较单一,常用于执行一些固定操作。
2有参函数的定义有参函数带有一个或多个参数,通过参数传递可以获得更加丰富的设计结果。
6.3函数的参数和返回值函数的参数和返回值6.3.1函数的参数6.3.2函数的返回值函数的参数和函数的返回值是函数的两个重要属性。
参数是主调函数和被调函数交换数据的接口。
对于带参数的函数在函数调用时都必须进行参数传递,主调函数要将参数传给被调函数,被调函数根据调用函数传过来的参数进行计算和处理,最后将运算结果返回给调用函数。
而函数返回给主调函数的运算结果就是函数的返回值。
6.3.1函数的参数函数的参数在C语言中,参数是函数之间进行信息交换的渠道,参数的形式多样,在用法和用途上都有较大差异。
(1)参数的类型在C语言中,函数有如下两种类型的参数。
形式参数:
定义函数时,函数名后面的圆括号中列出的参数,简称形参。
例如:
intmax(intx,inty);
实际参数:
在函数调用表达式中,函数名后面的圆括号中列出的参数,简称实参。
amax(a,40);
(2)参数的传递在一个程序中实参与形参总是一一对应的,它们的参数个数相等,对应参数的类型相同。
在程序的执行过程中,参数由实参向形参传递数据。
下面结合实例来说明参数的传递过程。
6.3.2函数的返回值函数的返回值当实参将参数值传给形参后,即可执行该函数对应的操作,函数的执行情况主要有以下两种。
在函数中完成一些打印操作和信息显示输出等任务,不需要返回结果给主调函数,这类函数的类型为void。
在执行相应的函数操作后,还要将函数运行结果返回给主调函数,主调函数使用返回值做进一步运算。
这类函数带有返回值。
要使1个函数返回1个确定的值,就必须要用return语句。
(1)在以前的例子中已经用到了return语句,return语句的格式如下:
return(表达式);
或者:
return表达式;
return;
(2)对return语句的用法做如下说明。
return语句中的“表达式”的值就是函数返回给主调函数的值。
当程序执行到return语句时,立即退出函数的执行返回主调函数。
一个函数中可以包含多个return语句,但是在1次函数调用中只会有1个被执行。
return语句中也可以不包含表达式,其作用只是使流程返回主调函数,这时并不返回确定的值。
如果函数不需要返回值,则可以在定义函数时使用void类型。
函数要返回值必须具有1个确定的类型。
例如1个函数可以返回一个整型、实型或字符型的数值。
这主要在函数定义时在通过类型标识符指定。
函数的返回值必须与函数定义的“类型标识符”一致或者兼容,若类型不一致,则以函数的类型标识为准进行转换,返回1个与函数的类型标识符一致的值。
建议尽量使其一致,避免系统的自动转换和人为所造成的数据误差或者错误。
6.4函数的调用函数的调用6.4.1函数调用的一般形式6.4.2函数调用一个C程序由1个主函数和若干个函数组成,因此,C程序是一系列被定义函数的集合体。
1个函数可以被主函数main()调用,也可以被其他函数调用。
各函数之间可以相互调用。
同一函数可以被1个或多个函数任意调用多次。
6.4.1函数调用的一般形式函数调用的一般形式在讲函数的调用之前,先回顾一下函数的定义,以免混淆两者之间的差异。
函数的定义为类型标识符函数名(形参表列)函数体而函数调用的一般形式为函数名(实参表列);
两者的区别有如下几点。
(1)函数的定义中有“类型标识符”而函数的调用中没有。
(2)函数的定义中的参数为“形参”,而函数的调用中的参数为“实参”。
(3)函数的定义后没有“;
”,而函数的调用中有“;
”(函数作为实参除外)。
6.4.2函数调用函数调用1函数的调用方式函数调用的目的是:
当主函数运行到某处需要实现某个特定的功能时,执行函数调用,函数调用完毕后,返回主调函数继续向下执行程序。
在C程序中,主要有以下3种函数调用方式。
(1)函数语句:
把函数调用单独作为一个语句使用。
如前面例子中:
star(b);
YesNo(charch);
等都是函数调用语句。
这种情况下主调函数通常不需要被调函数返回数值。
(2)函数表达式:
函数出现在一个表达式中,这种表达式称为函数表达式。
如前面表达式中的:
c=math(a,b);
k=number(c);
等都是函数表达式的用法。
这种情况下主调函数通常需要被调函数返回1个确定的结果。
(3)函数参数:
把函数调用的结果作为另一个函数的参数。
m=max(a,min(b,c);
其中“min(b,c)”是1次函数的调用,它的返回值将作为另一次函数调用的实参。
这种形式较为复杂。
为了增强程序的可读性,建议读者在学习的过程中用以下的语句代替该例:
n=min(b,c);
m=max(a,n);
有关函数的注意事项如下。
调用函数时,函数调用语句中的函数名必须与所调函数的函数名完全一致。
实参的数目必须和形参的数目相等。
实参可以是任何表达式,在类型上应按书写位置与形参一一匹配。
如果类型不匹配,C编译程序则按赋值兼容的规则进行转换。
在C语言中,原则上规定函数要先定义后调用。
但如果使用在先定义在后,则必须在适当的地方对被调函数给予声明(函数的声明在下一节中将进行讲述)。
C语言中,函数可以直接或间接地自己调用自己,这种方法叫函数的递归调用。
2函数的声明在一个函数中调用另一个函数,不仅要保证被调函数存在,而且还要在函数被调用之前让C编译系统知道该函数已经存在。
就像出席会议前要先报到一样,只有在会前向主办单位表明自己已经到达并将出席会议,主办单位才能做好相关的安排工作。
如果一个函数使用在先定义在后,在使用该函数之前,必须对该函数进行声明。
函数声明的方法比较简单,使用函数原型即可实现对函数的声明。
在函数定义中除了函数体之外的部分称为函数头,在1个函数的函数头后面添加一个“;
”就构成了函数的原型:
函数名(参数类型1参数名1,参数类型2参数名2,);
floatmath(floata,floatb);
函数声明还可以简化为类型标识符函数名(参数类型1,参数类型2,);
floatmath(float,float);
就函数的原型和声明做如下说明。
(1)函数的声明常常是作为一条独立的语句,其位置可以有如下两种。
在所有函数的外部,在被调用之前声明函数。
这种情况下,在函数声明之后的所有位置上都可以调用该函数。
函数声明也可放在函数内的说明部分,如在main()函数的内部进行说明。
这种情况下,只能在main()函数内部才能调用该函数。
(2)对函数进行声明,可以使C语言的编译程序在编译时进行有效的类型检查,进行相应的类型转换。
(3)在函数名前没有说明函数返回值的类型时,隐含为整型。
如果使用库函数,一般在函数的头部要使用“#include”命令将调用有关库函数时所用到的信息“包含”到源程序中。
如前面所有程序中用到的“#include”,“stdio.h”是一个“头文件”,凡是使用输入/输出函数均要用到该文件,在头文件中包含了输入/输出函数的声明。
6.5变量的作用范围变量的作用范围变量可分为局部变量和全局变量,它们的作用范围是不同的。
局部变量的作用范围只在被定义的函数的内部,而全局变量的作用范围为从该变量定义开始到程序结束。
局部变量就像地方法律,只在某一个地方范围内有效,而全局变量就像是国家的宪法,在全国范围内都有效。
1局部变量局部变量总是定义在函数体的内部(即大括号内),并且只在该函数内有效。
在该函数之外无法使用该变量。
如果在变量的作用区域之外使用变量,系统将报告该变量尚未定义。
2全局变量全局变量又叫全程变量,它是在所有函数的外部定义的变量。
其作用范围从定义开始到整个程序结束。
intx,y;
charc;
/*x,y,c为全局变量,其作用范围从此开始到程序结束*/f1()intm;
.floatk;
/*k为全局变量,其作用范围从此开始到程序结束*/f2()intn;
全局变量虽然作用范围较局部变量大,但是也存在以下不足。
(1)由于在其作用的整个范围内均占用内存,所以增加了内存的开销,不如局部变量节约系统资源。
(2)易与局部变量发生冲突,降低了程序的可读性。
习题习题一、选择题1下面关于函数参数传递正确的是。
A只能传递地址B只能传递数据C传值,即为传递地址和数据D双向传递2void返回类型函数正确的描述是。
A返回确定的值B返回不确定的值C返回值D不返回值3下面说法中正确的是。
AC语言程序总是从第一个定义的函数开始执行的B在C语言程序中,要调用的函数必须在main()函数中定义CC语言程序总是从main()函数开始执行的DC语言程序中的main()函数必须放在程序的开始部分4以下正确的函数定义是。
Aintadd(intx,inty)Bintadd(intx;
inty)Cintadd(intx,inty);
Dintadd(intx,y)5若调用一个函数,且此函数中没有return语句,则以下正确的说法是。
A没有返回值B返回若干个系统默认值C能返回一个用户所希望的值D返回一个不确定的值6关于参数的传递说明正确的是。
A地址传递B单向值传递C由实参传向形参,再由形参传向实参D由用户指定传递方式7C语言规定,函数的返回值的类型由。
Areturn语句中的表达式类型决定B调用该函数时的主调函数类型决定C调用该函数时系统临时决定D定义该函数时所指定的函数类型决定8凡函数中未指定存储类别的局部变量,其默认
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章中职类 语言 课件