考点13 函数的调用与常用库函数《C语言程序设计》山东(春季高考)软件与应用技术类 知识点讲解
山东省(软件与应用技术类)春季高考
《C语言程序设计》复习讲义
模块 一 C 语言程序设计
考点 13 函数的调用与常用库函数
【考纲要求】
(1)掌握函数的调用。
【知识网络】
【知识和技能要点】
一、函数的调用形式
原创精品资源学科网独家享有版权,侵权必究
学科网(北京)股份有限公司
1. 调用的一般形式
函数之调用,其形为“函数名(实参表);”。若无参数,则括弧之内为空,然括弧不可省。实参之个数、次序与类型,须与被调函数之形参一一相合。调用之际,先以实参之值授予形参,而后入其体以行其事,事毕返于调用之处,继续其下之语句。
(1)形式:函数名(实参表); 无参者括弧内空,然括弧不可省。
(2)相合:实参之个数、次序、类型须与形参相合。
(3)过程:授值→行体→返于调用处,续行其下。
2. 调用的三种用法
函数之调用,其用有三。一为独立成句,但求其行其事而不取其值,如 display();。二为取其返回值而用于表达式,如 y=sqrt(x)+1;。三为以其返回值作他函数之实参,如 printf("%d", max(a,b));。凡 void 型之函数,只可作第一种用,不可用于表达式,亦不可为实参。
(1)独立成句:如 display(); 不求其值。
(2)用于表达式:如 y=sqrt(x)+1;
(3)作实参:如 printf("%d", max(a,b)); void 型者不可。
3. 调用的执行过程
调用之时,程序之控制由主调函数转于被调函数:先算实参之值,次以之授予形参,再入函数体而顺序行之;遇 return 则止,携其值返于主调之处。被调函数之行毕,其局部变量随之而失,控制复归主调函数,续行调用语句之后。故调用者,控制之往返也。
(1)转控:控制自主调函数转入被调函数。
(2)授值:先算实参,再授予形参。
(3)返回:遇 return 携值而返,局部变量随之而失。
二、函数原型与嵌套递归
1. 函数原型声明
欲调用一函数,须先使其形为编译器所知,此即函数原型声明,其式与函数定义之首部同,而末加一分号,如 int max(int x, int y);。其用在于使编译器得检调用之合法与否,非法者即报语法错误。原型可省形参之名而只书其类型,如 int max(int, int);,盖编译器不察形参之名。
(1)形式:与定义之首部同,末加分号,如 int max(int x, int y);
原创精品资源学科网独家享有版权,侵权必究
学科网(北京)股份有限公司
(2)作用:使编译器得检调用之合法性。
(3)可省:形参名可省,只书类型;然个数、次序、类型须与定义全同。
2. 嵌套调用
C 语言之函数各自独立,地位相等,故不可于函数之内再定义他函数;然调用则可嵌套,即一函数之内可调他函数,而其所调者又可再调他函数。如 main 调 a,a 调 b,b 调 c,层层而下,返则层层而上。此与嵌套定义不同,不可混为一谈。
(1)禁嵌套定义:函数之内不可再定义函数,诸函数地位相等。
(2)许嵌套调用:一函数可调他函数,其所调者亦可再调。
(3)往返:层层而下,返则层层而上。
3. 递归调用
一函数若直接或间接调用自身,是谓递归调用。其要在于二端:一曰递归之式,使大者化为小者,如阶乘之化为 n 乘其次阶乘;二曰终止之条,使递归有止,如 n 为一或零时径返一。二者缺一,则递归无已,终至栈溢而程序败。故写递归者,必先明其式,再定其止。
(1)定义:函数直接或间接调用自身,谓之递归。
(2)递归式:大者化为小者,如 n! 化为 n×(n-1)!。
(3)终止条:须有终境,否则递归无已而栈溢。
三、常用库函数
1. 数学函数
C 语言之数学函数,皆在头文件 math.h 之中。其常用者:sqrt 求平方根,pow 求幂,exp 求以 e 为底之指数,log、log10 求对数,fabs 求实型数之绝对值,sin、cos、tan 求三角函数,其参数须以弧度计。用时须于程序之首书 #include <math.h>,否则编译器不知其原型,或致误。又 sqrt 之参数不得为负,log、log10 之参数须大于零,否则其值不可料。
(1)常用者:sqrt、pow、exp、log、log10、fabs、sin、cos、tan。
(2)头文件:须书 #include <math.h>。
(3)注意:三角函数以弧度为参数;sqrt 之参数不得为负,log、log10 之参数须大于零。
2. 输入输出函数
原创精品资源学科网独家享有版权,侵权必究
学科网(北京)股份有限公司