C语言函数与宏定义教案演示文稿

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自定义函数在程序中的使用顺序有两种形式: ① 先进行函数声明,再进行函数调用,函数定义放在 函数调用之后。函数声明在函数调用之前。
② 函数定义放在函数调用之前。
10/49
06:23
【例1-1】 编程序,通过调用函数abs_sum(),求任意 两个整数的绝对值的和。
/*exam1_1.c 调用函数求两整数绝对值的和*/
#include <stdio.h>
int abs_sum(int m,int n);
main()
{
int x,y,z;
scanf("%d%d",&x,&y); z=abs_sum(x,y);
程序运行结果:
printf("sum is %d",z);
7 12
} int abs_sum(int m,int n)
5/49
06:23
3.函数名由任何合法的标识符构成。建议将函数名 的命名与函数内容有一定关系。 4. [形参说明表]是一系列用逗号分开的每个形参变量 说明。 如:int x, int y, int z 这表示形参变量有三个:x, y, z。它们的类型都是int型。
5.函数语句体是放在一对花括号{ }中,由局部数据 类型描述和功能实现两部分组成。
extern说明函数可被其它源文件中的函数调用,用 extern说明的函数,又称为外部函数。 缺省情况为extern。
2.[返回值类型符]指的是函数体语句执行完成后,函 数返回的值的类型,如int, float, char等等,若函数 无返回值,则用空类型void来定义函数的返回值。
缺省情况为int型。
main()
{
int x,y,z,sum;
scanf("%d%d%d",&x,&y,&z);
sum=abs_sum(abs_sum(x,y),z);
printf("sum is %d",sum);
}
int abs_sum(int m,int n)
{
if(m<0)
m=-m;
程序运行结果:
if(n<0) n=-n;
1.函数的声明 函数声明的一般形式:
[存储类型符] [返回值类型符] 函数名([形参说明表]); 如:int abs_sun(int m, int n);
8/49
06:23
2.函数调用 函数调用是通过函数调用语句来实现的,分两种形式:
①无返回值的情况: 函数名([实参表]); ②有返回值的情况: 变量名=函数名([实参表]); 该变量名的类型必须与函数的返回值类型相同。
函数调用时都会去执行函数语句中的内容,函数执行完 毕后,回到函数的调用处,继续执行下面的语句。
9/49
06:23
§1.1.3 函数的传值方式
函数的传值方式:
采用实参表将每一个实参的值相应地传递给每一个形 参变量,形参变量在接收到实参表传过来的值时,会在内 存临时开辟新的空间,以保留形参变量的值,当函数执行 完毕时,这些临时开辟的内存空间会被释放,并且形参的 值在函数中不论是否发生变化,都不会影响到实参变量的 值的变化,这就是函数的传值方式。
6/49
06:23
6.函数返回语句的形式有以下两种: ①函数无返回值的情况:return;或者什么也不写 ②函数有返回值的情况:return(表达式的值); 在第②种情况下要注意“表达式的值”的类型必须与 函数返回值的类型相一致。
例如:求两个任意整数的绝对值的和,用函数 abs_sum()实现。
/*直接调用库函数来计算m和n的绝对值 */ int abs_sum(int m, int n) {
return m+n;
7 12 5 sum is 24
}
12/49
06:23
注意:
对于有返回值的函数,调用时若没有把它赋给某个变量, 仍然是可以的,只是函数的返回值有可能会被丢失。
【例1-3】 求任意两数的乘积。
自定义一个函数mul(),用于求两数的乘积,程序: /*exam1_3.c 求两个数的乘积*/
#include <stdio.h>
பைடு நூலகம்
float mul(float a,float b);
main()
{
float x,y,z;
scanf("%f %f",&x,&y); z=mul(x,y); /* ① */
x=x+10;
y=y-10; mul(x,y);
/* ② */
13/49
06:23
x=x*2;
另一类函数是自定义函数
3/49
06:23
§ 1.1.1 函数定义
[存储类型符] [返回值类型符] 函数名([形参说明表]) { 函数语句体 }
4/49
06:23
说明:
1.[存储类型符]指的是函数的作用范围,它只有两种 形式:static和extern。 static说明函数只能作用于其所在的源文件,用static说 明的函数又称为内部函数。
return (abs(m)+abs(n)); } /*函数abs()是在头文件math.h中声明的*/
7/49
06:23
函数定义如下: int abs_sum(int m, int n) { if (m<0)
m=-m; if(n<0)
n=-n; return(m+n); }
§1.1.2 函数声明和调用
sum is 19
{
if(m<0)
m=-m;
if(n<0)
n=-n;
return m+n;
}
11/49
06:23
用传值方式调用函数时,实参也可以是函数调用语句
【例1-2】求任意三个数的绝对值的和。
/*exam1_2.c 调用函数求三个整数绝对值的和*/
#include <stdio.h>
int abs_sum(int m,int n);
C语言函数与宏定义教案演示 文稿
优选C语言函数与宏定义教案
§1.1 函数概念
C语言中,函数可分为两类 :
一类是由系统定义的标准函数,又称为库函数,其函数 声明一般是放在系统的include目录下以.h为后缀的头文 件中,如在程序中要用到某个库函数,必须在调用该函 数之前用#include<头文件名>命令将库函数信息包含到 本程序中。
y=y*2;
printf("z=%f,mul(%f,%f)=%f\n",z,x,y,mul(x,y)); /* ③ * /
}
float mul(float a,float b)
{
return a*b;
}
程序运行结果: 5 6 z=30.000000,mul(30.000000,-8.000000)=-240.000000
相关文档
最新文档