2011投影5 省二级C等级考试基础考点4(函数)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

函数

一、非递归函数的定义、声明、调用及执行过程

1.函数的分类(***)

C语言中函数从用户的角度分为标准函数和用户自定义函数。

1) 标准函数(库函数)

用include将包含该函数的头文件包含进来

2)用户自定义函数

用户自定义函数由用户按需要编写的函数,分为函数定义和函数调用两部分。

2.函数的定义(*****)

函数有两个部分组成:函数首部和函数体。

函数首部只有一行,包含函数类型、函数名和形参类型说明表

注意:函数首部没有分号“;”

函数体为包含在一对花括号中的说明部分和语句部分。

1)函数定义格式

函数类型函数名(形参类型说明表)

{ 说明部分

语句部分

}

函数名为C语言的合法标识符,尽量与库函数名不同。

2)函数类型

函数类型为函数返回值类型

函数返回值类型可以为基本数据类型、结构体类型、指针类型。

①函数返回值类型,如果为“int”,则可以缺省,若缺省则表示为

“int”型。

②不返回函数值的函数,函数类型定义为“空类型”,在函数类型处

必须写“void”。

3)函数形式参数的声明

函数参数定义形式:

(类型形参1,类型形参2, ……)

①形参个数和类型的设计应根据具体应用需要。

②每个形式参数名前都要有类型说明,参数与参数之间用逗号“,”

隔开。

③如果是无参函数,则没有参数,但是括号“( )”必须有。也可以在

括号里写void,如:

int f(); 或者int f(void);

无参函数不存在参数的传送,通常用来完成指定的功能。

(1)函数体定义

函数体由一对花括号括起来,由说明部分和语句部分组成

说明部分包含变量定义和函数声明

语句部分是函数执行的语句。

(2) 函数返回值与return语句的使用

函数的返回值

指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值。

如果需要把被调函数的值带回主调函数,就需要使用return语句。

函数是否需要返回值,由具体应用决定。返回值由return语句实现。

return语句的一般形式如下:

return 表达式; 或者return (表达式) ; 或者return ;

①当执行return语句时,即使调用的函数主体中还有其他语句,

函数执行也会停止。

②return语句只能出现在函数体内,出现在代码中的其他任何地方

都会造成语法错误。

③对于返回类型为void的程序,return;语句是可选的

④对于返回类型非void的程序,必须至少包括一条明确的return

语句。

⑤程序体可以包含不只一条,但只会执行其中的一个return语句,

只能返回一个值,如果需要带回多个值,借助于指针或者外部变

量实现。

⑥函数返回值的类型应该与函数定义时的类型保持一致,若不一

致,自动转换为函数定义时的类型。

3.函数的声明(函数原型) (****)

函数要先定义后才能使用。

若定义写在调用位置之后,必须在调用位置之前用函数原型声明。

声明方式:

函数类型函数名(形参类型说明表);

有以下三种情况可以不作函数声明,其他情况都必须进行函数声明:

(1)定义写在调用位置之前。

(2)函数返回值为int型。

(3)在所有函数之前已经声明过。

4.函数的调用(*****)

所有的函数定义,包括主函数在内,都是平行的,也就是说,在一个函数体内,不能再定义另一个函数。

但是,函数之间可以相互调用,也可以嵌套调用,就是函数A调用了函数B,函数B又调用了函数C,还可以自己调用自己,即递归调用。

main函数可以调用其他函数,但是不能被其他函数调用。

若在函数A中调用函数B,则称A为主调函数,B为被调函数。

1)函数调用形式

(1)对于没有返回值的函数,即函数类型为“void”的函数,调用形式为:

函数名(实参1,实参2,……);

(2)对于有返回值的函数,调用形式为:

变量名=函数名(实参1,实参2,……);

实参与形参个数相等,类型一致,按顺序一一对应,参数与参数之间用逗号隔开。

2)函数执行过程

C程序必须有且只能有一个名为main的主函数,C程序的执行总是从main函数开始。

当执行到main函数中的函数调用语句时,程序会跳转到被调用函数定义体内,同时将主调函数中的值通过参数传递给被调函数,当执行到被调函数的return语句时或者最后一个语句后返回到主调函数。

3)函数调用方式

(1)函数语句

在函数调用后加一分号构成函数语句。例如:

printstar();

printf("Hello,World!\n");

(2)函数表达式

将函数调用的返回值作为操作数使用,构成表达式。例如:

m=max(a,b)*2;

(3)函数实参

将函数调用的返回值作为另一个函数的实际参数。例如:

printf("%d",max(a,b));

m=max(a,max(b,c));

4)函数调用和函数声明的区别

(1)函数调用是函数的执行部分;函数声明是函数的说明部分。

(2)函数调用中使用的参数是实际参数,函数声明中的参数是形式参

数,有时括号中只写参数类型即可。

(3)函数声明是为函数调用服务的,如果没有调用,就不需要声明。

二、函数调用时参数的传递

1.形参与实参(*****)

1)形式参数

形式参数是定义函数时使用的变量名,等待接收从主调函数传来的实际参数值,简称形参。

形参变量只有在被调用时才分配内存,调用结束,释放内存,只在函数内部有效。

2)实际参数

实际参数是调用函数时用到的变量名,调用函数时函数名后圆括号中

相关文档
最新文档