内容正文:
千锋教育
《C语言程序设计》
教学设计
课程名称: C语言程序设计教程
授课年级:
授课学期:
教师姓名:
2017年09月01日
课程名称
第3章 函数
计划学时
4学时
内容分析
本章主要介绍函数的基本概念,包括函数的定义与声明、有参函数、形式参数与实际参数、函数的返回值、printf函数与scanf函数、putchar函数与getchar函数、变量的作用域等内容
教学目标
与
教学要求
要求学生掌握函数的定义与声明、printf函数与scanf函数、putchar函数与getchar函数,理解有参函数和无参函数、形式参数与实际参数、作用域
教学重点
函数的使用、形参与实参、局部变量与全局变量、作用域、输出与输入函数
教学难点
形参与实参、局部变量与全局变量
教学方式
课堂讲解及ppt演示
教
学
过
程
第一课时
(函数的定义与声明、带参数的函数、形式参数与实际参数、函数的返回值)
函数的定义与声明
· 函数的定义
函数也称为方法,是指实现某种功能的代码块,例如,要实现输出一行文字的功能,可自定义一个函数来实现,示例代码如下:
void remember()
{
printf("拼搏到无能为力,坚持到感动自己!");
}
void表示该函数没有返回值,remember是为函数取的名字,remember后面有一对圆括号,圆括号中代表函数的参数,假如没有参数,圆括号内为空。函数的主体从左大括号开始,到右大括号结束,中间是函数的功能,该函数实现输出“拼搏到无能为力,坚持到感动自己!”。
remember这个函数不是C函数库中的函数,而是自己写的,也叫自定义函数,它的名字是remember,如要用到这个函数的时候就可以写:
remember();
这就是调用函数,程序执行到这里,就会立即跳转到remember函数的定义部分去执行(定义部分就是实现函数功能的部分),当函数执行完毕后,再跳回到原始位置继续往下执行。
· 函数的声明
上一小节中,自定义的函数是放在主调函数的前面,有读者可能会提出是否可以把自定义函数放到主调函数的后面。其实是可以,但是要在main函数的前面声明自定义函数
有参函数
假如要实现一个执行相加运算的函数,那么就需要给函数添加两个参数,示例代码如下:
int add(int x,int y)
{
return x+y;
}
圆括号里面不再为空,而是多了两个参数——x和y,参数之间用逗号隔开,这里参数的类型为int,表示x和y是用来保存整数的。
因此,可以在调用add函数时传递两个整数:
add(23,11);
当调用add函数时,23会传递给x,由x来保存,11会传递给y,由y来保存。这里需要注意的是,add函数在调用之前,x和y是不存在的,只有在调用add函数,并为x和y传递了23和11时,系统才会为x和y分配内存,而一旦调用结束,系统又会立即释放x和y所占的内存,所以x和y不是实际存在的参数,而是形式上存在的参数,又叫形式参数。
形式参数与实际参数
形式参数是指在定义函数时函数名后圆括号内的变量,简称形参。形参的本质是变量,变量的值是可以改变的,示例代码如下:
int i;
该行定义了一个变量i,如果把3通过赋值号赋值给变量i,那么i值就是3,因此变量的值不是固定不变的。但对于数字3来说,它是恒定不变的,无法改变数字3的值。
由于变量的这一特性,它常常用来表示不确定值的量,因此变量也可用做函数的参数(函数在调用之前,参数的值都是不确定的),示例代码如下:
int mul(int x, int y)
{
return x*y;
}
这里定义了一个函数mul,它有两个参数x和y,这两个参数都是变量,函数在调用之前,参数的值都是不确定的,因此系统是不会为这两个参数分配内存的,只有调用了函数,并将确切的数值传递给这两个参数的时候,系统才会为这两个参数分配内存,示例代码如下:
mul(1, 10);
这里调用了mul函数,并为两个形参传递了确切的数值1和10,这样系统才会为形参分配内存,用分配好的内存来保存数值1和10。而当函数调用结束后,系统又会释放形参所占用的内存,因此这样的参数实际上是不存在的,它只是在形式上存在,称为形式参数,简称形参。
实际参数就是在调用mul函数时传递的1和10,它们是实际存在的,确切的数值,简称实参。实参可以是常量、变量或表达式,因此可以这样来调用mul函数,示例代码如下:
int a = 3;
mul(a, 10);
第2行调用mul函数,为其传递了两个实参;第1个实参是变量a,第二个参数是10,假如