小甲鱼C语言第七章 函数.docx
《小甲鱼C语言第七章 函数.docx》由会员分享,可在线阅读,更多相关《小甲鱼C语言第七章 函数.docx(18页珍藏版)》请在三一办公上搜索。
1、小甲鱼C语言第七章 函数第七章 函数 如果有人问你,这个地球上什么动物最聪明?我想不会有其他答案,这个地球上人类是最聪明的。我们去百度一下“人类”,会发现百度百科中是这样描述人类的:人的总称,是地球上一中相比较来说比较高智慧的生物,可以说是地球至今的统治者。现代汉语词典对人的解释是:能制造工具、并且能够熟练使用工具进行劳动的高等动物。 现代汉语词典中对人类的解释离不开“工具”这个词。我们人类的祖先在使用天然工具的过程中,逐渐学会了如何制造工具。工具是什么呢?工具往往具有某些特定的作用、可以实现某种功能。比如打火机,可以用于打火,当我们想抽烟的时候,只需要轻轻的按一下打火机就可以了,而不需要钻木
2、取火,如果现在还有人钻木取火的话,除非那个人是想实验一下钻木取火的真实性,否则为了帮助这个社会,我们就可以打电话通知精神病院了。 工具简化了我们的生活,也丰富了我们的生活。当我们需要实现某种功能的时候,只需要把对应的工具拿过来使用就好了。C语言中也提供了这种使用某种“工具”来处理特定问题的方法,称之为函数。 7.1 函数概述 有些人在看到本章的标题的时候可能就会惊呼:我函数学的最差了!我最讨厌函数了!。没错,数学中的函数的确很讨厌,我也很不喜欢它。但是不要担心,这里不会讲数学中的函数,更不会告诉你一次函数和二次函数的差别。我们这里讲的是计算机语言中的函数。 函数,在有些语言当中也称为方法。要说
3、计算机语言中的函数和数学中的函数完全不一样吗?其实也不然,在计算机语言当中,函数就是具有特定功能的“工具”。像我们目前使用过的printf函数和scanf函数,前者用于输出,后者用于输入。还有我们每次编写代码都会使用的main函数。只不过printf和scanf函数是C语言提供的,我们只需要会用就行了,而main函数的功能是我们自己编写的。 为了更好的理解函数的概念,我举个例子来说。日常生活中我们经常会用到ATM自动取款机,这是一个非常方便的工具,我们平常只需要把钱存在卡里,需要的时候可以24小时去取款机中取钱,我想大家都应该有过去取款机取钱的经历,回想一下这个过程:走到取款机面前,我们要把卡
4、放进去,然后取款机会提示输入密码,密码正确之后,选择取款,然后输入取款金额,取款机会把相应的钱吐出来,随后将会提示你是否打印凭条,打印完之后点击取款机屏幕上的退出,便可以取回自己的银行卡。 取款机实现了“自动取款”这个功能,在使用这个功能的时候,我们首先需要把卡放进取款机里,而且还要输入正确的密码,当密码正确之后,我们使用取款这个功能取得相应的钱。最后这个功能完成了,打印一张凭条,打印了此次取款的记录,最后把卡退还给用户。 那么自动取款机就可以说是一个函数,它具有取钱、存钱、转账等等功能,而且我们不需要知道这种功能是如何实现的,我们只需要会使用就可以了。 我们在C语言中也使用函数来实现某种特定
5、的功能。C语言中函数分为两类,一类是库函数,一类是自定义函数。C语言有着丰富的库函数,这个库函数又是个啥子东西?C语言的语句十分简单,如果要使用C语言的语句来完成printf和scanf的功能,就需要编写颇为复杂的程序,因为C语言的语句中没有提供可以用于输出或输入的语句。又如为了显示一段文字,或者输入一段文字,我们可以直接使用printf和scanf函数,可以直接用于输出和输入,我们不必去关心这两个函数是如何实现输出和输入功能的。但是,C语言是不可能提供我们编写程序所需求的所有函数,所以我们还需要自定义函数,也就是由我们自己来编写函数,来实现我们需要的功能,这时候就需要动用我们自己聪明的大脑去
6、编写函数中的代码。 目前我们接触的程序都很短小,主要是希望初学者通过简短的例子能理解知识点。在以后随着学习的深入,代码会变的越来越多,实现的功能也越来越多,这些功能好多都是重复的,我们就可以将其编写成一个个的函数,需要的时候直接使用这个函数就可以了。一般来说,一个较大的程序一般分为若干个程序模块,每一个模块用来实现一个特定的功能,这就是所谓的模块化编程。在C语言中,实现程序模块功能都是用函数来完成的。一个C语言程序可以由一个主函数和若干个其他函数构成,这所谓的“若干个其他函数”大多数都是自定义函数,也可以使用他人编写好的函数,所以函数的定义和使用就变得尤为重要了。 C语言源程序可以放在不同的文
7、件中,所以同一个源程序中的函数也可以放在不同的文件中,为方便起见,本书只讨论在同一个源文件中的函数的定义和使用。 7.2库函数 前面说过,C语言提供了丰富的库函数,其中包括好多常用的函数,包括数学运算函数、处理字符和字符串的函数、用于输入和输出的函数等等,大家应该了解这些函数,在需要使用的时候可以拿来直接使用,不必自己编写。 以下为使用一个数学运算函数为例讲解其中包含的知识点: 例7.1.1,计算2的3次方的值 #include #include int main(void) int a=pow(2,3);/计算2的3次方的值 printf(a的值为%dn,a); return 0; 其运行结
8、果为: 1.在调用其他文件中的函数时要使用的include命令行 非常高兴的是,程序的第一行不仅仅包含了#include,还包含了#include,第一行的内容终于不再孤独,终于有一个看起来很像同类的代码和他在一起了。我相信好多初学者在前面的学习中总会有一个疑问,#include这玩意到底是啥,今天首先就要先搞明白这是个啥东西。在例7.1.1中,使用了一个函数,函数名为pow,我用蓝色字体并且加粗标注起来了。pow函数用于计算某个数的n次方的值。由于pow这个函数是放在math.h这个文件中的,这个文件也称为头文件。所以要在程序的最前面写上#include,用来告诉编译器,我这个程序要使用ma
9、th.h这个文件中包含的函数,系统提供的头文件都是以.h作为后缀名的。而include命令的作用就是把本程序需要用到的其他文件中的函数导入到本程序中,以便使用。Include命令行一定要以#开头,文件名要使用一对尖括号或者双引号”包起来。另外要特别注意,include不是C语言的语句,所以不能在后面加上分号。对于include命令的使用,再后续的章节中会用更加详细的讲解。 2.关于主函数main int main(void)这一行相信大家应该很熟悉了,写C语言程序必须写的一个函数,被称为主函数。C语言程序总是从主函数开始执行,无论这一段程序中有多少函数总是从main函数开始执行。一个程序只能有
10、一个主函数,在主函数里可以编写执行代码或者调用其他函数来执行相应的功能。在我们以前接触过的程序中,都是直接在主函数编写代码,然后直接运行就可以了。 3.库函数的调用 在例7.1.1中,定义了一个变量a,然而变量a的值的初始化却和之前学过的方式不一样。之前的学习中,变量可以被初始化为一个值,或者初始化为其他变量的值。但是现在却出现pow(x,y)的形式,这就是库函数的调用方式。库函数的调用方式一般为: 函数名(参数列表) 在例7.1.1中,我们使用pow(2,3)的方式获取到了2的3次方的值,pow为库函数的名字,其后的括号中为参数列表,目前来说,参数列表又是一个新的名词。那么如何理解这个参数列
11、表呢?还记得7.1小节中我举的ATM机的例子吗?在使用ATM取款机执行取款之前,我们一定要把卡插进去,同时要输入正确的密码才行。这里的卡和密码就是参数,也就是ATM机要处理的条件和内容。pow函数也是一样的,我们调用pow函数是希望计算出某个数的n次方的值,所以,你一定要告诉它需要计算的是什么数,幂数是多少,这个函数才能计算出最终的结果。 4.在C语言中,库函数的调用有两种方式: 1).出现在表达式当中,比如例7.1.1,用pow函数计算2的3次方的值然后赋值给变量a int a=pow(2,3); 2).作为独立的语句完成某种操作,比如 printf(“*”); 用于在屏幕上输出8个星号。
12、7.3自定义函数 C语言虽然提供了很多库函数可以很方便的使用,但是毕竟库函数只提供了一些常用的操作,在程序的编写中经常会碰到好多C语言没有提供的库函数,这时候我们就要自己编写函数,也就是自定义函数。自定义函数在一个稍大的程序里占很大一部分,所以自定义函数的学习非常重要。 7.3.1自定义函数的语法 1).自定义函数的一般形式如下: 函数返回值 函数名(类型名 形式参数1,类型名 形式参数2.) /这里函数首部 函数的功能代码 /这里是函数体 2).函数名和各个形式参数都是用户自定义标识符,必须符合自定义标识符的命名规则。在同一个程序源文件中,函数名不可以重复,形式参数的名字只要在同一个函数中不
13、同名就可以了,同一个程序源文件中的不同函数里的形式参数的名字可以同名。 3)在一个函数中,不可以定义其他函数,但是可以调用其他函数。 4)如果在自定义函数的首部省略了函数返回值,即变成 函数名(类型名 形式参数1,类型名 形式参数2.) 这种形式,则默认返回值为int类型。 5)除了返回值为int类型的函数之外,函数必须先定义后使用。 6)如果某一个函数只是用来执行某个功能,而没有返回值,那么可以将这个函数的返回值定义为void。 7)自定义函数的调用和库函数的调用的方式一致。 看了以上6条知识点的介绍,我想大家一定晕晕的,没有关系,下面我们通过实例来详细分析上面的知识点。 例7.1.2 求最
14、大值 #include int max(int a,int b) if(ab) return a; else return b; int main(void) int x,y; int t; printf(请输入两个整数:n); scanf(%d,&x); scanf(%d,&y); t=max(x,y); printf(最大的数为%dn,t); 当我输入2和5,其运行结果如下图: 在这个例子中,我编写了一个函数,我已经用蓝色字体标注起来了。这个函数的名字是max,这个函数有两个形式参数,都为int类型的,这个函数的返回值也为int类型的。在这个函数中还出现了return语句的身影。即使看到这
15、里我依旧相信有好多人对“形式参数”、“返回值”、return语句的作用还是不能理解,那么首先以这个例子来了解一下这几个概念。 1.形式参数:简称形参。在前面提到过ATM机的例子,还是这个例子,ATM机有一个插口,用于插入卡,还有一个密码框等待用户输入密码。这些功能都是ATM机提供好的,要想取钱或者转账就一定要有这两个步骤才行。那么这两个步骤是在ATM机的设计之初就设计好的,这两个功能就是等待用户插入卡和等待用户输入正确的密码。那么这就可以理解为两个形式参数,ATM机的插口和密码输入框的用处就是告诉用户:想要让我吐出钱来,就一定要给我两个数据,一个是卡,一个是正确的密码。你不能塞进去一个树叶,也
16、不能输入错误的密码。在例7.1.2中的第二行,也就是max函数的首部中,函数名max后面的括号中的形式参数列表中,定义了两个形式参数,分别为int a,int b,那么这个函数的意思就是告诉程序开发的人员:你要是想让我帮你运算最大值,你就得先告诉我两个值,这两个值必须是int类型的。还有一点特别强调,在某一个函数中的形式参数,是可以直接在这个函数中使用的,而不用另外声明。 2.实际参数:简称实参。实参的概念和形参的概念是对立起来的,我相信理解了形参的概念就不难理解实参的概念。形参只是要求了一个函数能接受的数据,实参就是实际传递给这个函数的数据。在例7.1.2的第17行中,t=max(x,y);
17、我们调用了max这个函数,在调用这个max函数的时候,我们在函数名后的括号中,写入了两个由我们自己输入的数据,分别为int类型的x,和int类型的y,这是我们输入的东西,输入了这些东西就是希望调用函数来处理这两个数据。简单来说,形参主要理解的就是形式参数的中形式两个字,在生活中我们可以知道,形式,往往都是没有任何实际内容的,而实际参数,就是实际要去操作、去处理的数据。 3.return语句:在我们编写第一个程序的时候,我们都会在main函数的函数体的最后看到一条return 0; 我相信这也是大家一直疑问到现在的问题。还是ATM机的例子,我去ATM取款,我输入密码,输入取款金额之后,不可能就这
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小甲鱼C语言第七章 函数 甲鱼 语言 第七
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-3476483.html