第7章 函数
7.1 库函数
7.2 函数的定义和返回值
7.3 函数的调用
7.4 函数的说明
7.5 调用函数和被调用函数之间的数据传递
7.6
7.1 库函数
库函数是由C语言提供的,不需要另外编写。
使用库函数时,在调用之前必须使用"include"包含对应的"头文件"。
★ 输入输出函数
★ 数学函数
★ 字符函数
★ 字符串函数
#include “stdio.h”
#include “math.h”
#include “ctype.h”
#include “string.h”
库函数的调用有两种出现形式:
① 出现在表达式中
② 作为独立的语句出现
y=pow(x,2.5)+1.3;
printf(“*****\n”);
7.2 函数的定义和返回值
C语言虽然提供了丰富的库函数,但这些函数的功能已经被开发人员编写好了,
直接来调用就可以了,这一节我们将学习自己来编写函数,自己编写的函数
成为用户自定义函数。
函数定义的一般形式如下:
函数返回值的类型名 函数名(类型名 形式参数1,类型名 形式参数2,….. )
{
说明部分
语句部分
}
标识符
变量名
函数的首部
函数体
该函数的返回值由它决定,省略时默认为int类型
例如:double add(double a,double b)
{double s;
s=a+b;
return s;
}
退出调用函数,并带回返回值
return (s);
注意
此函数不能执行,
只有必须在主函数中调用它才行。
7.3 函数的调用
调用形式:
函数名(实际参数)
实际参数的个数和类型必须于形式参数一致.
在主函数中调用用户编写的函数有两种方式:
① 作为表达式出现在允许表达式出现的任何地方。
y=add(3.0,4.0);
if(add(x,y)>0) 某语句;
② 作为独立的语句出现。
add(x,y);
7.3 函数的调用
#include
main()
{double y,p,q;
scanf(“%lf%lf”,&p,&q);
y=add(p,q);
printf(“%f”,y);
}
p
q
5.5
3.5
y
double add(double a,double b)
{double s;
s=a+b;
return s;
}
调用刚才遍好的用户自定义函数
调用时函数名要相同,并且实际参数的
个数和类型必须于形式参数一致
变量名可以不同
s
a
b
3.5
5.5
传递
传递
9.0
退出函数,将s的值作为该函数的返回值,所以该函数的值为9.0。当退出用户自定义函数时,该函数中的变量全部释放。
9.0
9.000000
用户在编写完整的程序时,用户自定义函数可以放在主
函数的前面,也可以放在主函数的后面,不过要是放在
主函数的后面,则要进行函数说明。
7.4 函数的说明
#include
double add(double a,double b)
{double s;
s=a+b;
return s;
}
main()
{double y,p,q;
scanf(“%lf%lf”,&p,&q);
y=add(p,q);
printf(“%f”,y);
}
#include
main()
{double y,p,q;
scanf(“%lf%lf”,&p,&q);
y=add(p,q);
printf(“%f”,y);
}
double add(double a,double b)
{double s;
s=a+b;
return s;
}
注意
用户自定义函数无论放在主函数的前面还是后面都没有关系,因为
程序都是先从main函数开始执行。不过当用户自定义函数出现在
主函数之后,一定要对该函数进行函数说明(函数返回值的类型为
int或char除外)。函数说明一般都是在程序的开头进行。
函数说明的一般形式:
类型名 函数名(参数类型1,参数类型2,…..);
类型名 函数名(参数类型1 参数名1,参数类型2 参数名2,…..);
double add(double,double);
double add(double x,double y);
#include
double add(double a,double b);
main()
{double y,p,q;
scanf(“%lf%lf”,&p,&q);
y=add(p,q);