内容正文:
江苏省XY中等专业学校2022-2023-1教案 编号:
专业名称
计算机应用
课程名称
C语言
所在
年级
三年级
主备
教师
授课教师
授课系部
授课班级
授课
日期
课题
函数的参数
教学
目标
1、认识函数的调用过程
2、能看懂函数调用的程序
3、培养学生对函数调用的学习
重点
数组元素作为函数的参数与数组名作为函数的参数的不同
难点
区别两者对主调函数中数组元素的影响
教法
讲授法、案例教学法、讨论法
教学设备
黑板 计算机 网络机房
教学
环节
教学活动内容及组织过程
个案补充
教
学
内
容
一、导入:
数组元素作为函数的参数与数组名作为函数的参数之间的不同,是本节课学习的重点知识
二、讲授:
1、数组元素作为函数参数
数组元素就是下标变量,在使用时它与普通变量并无区别。因此它作为函数实参使用与普通变量是完全相同的,在发生函数调用时,把作为实参的数组元素的值传送给形参,实现单向的值传送。
例1、以数组元素为参数的函数调用。
#include <stdio.h>
void nzp(int v)
{
if(v>0)
printf("%d ",v);
else
printf("%d ",0);
}
void main()
{
int a[5],i;
printf("input 5 numbers
");
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
nzp(a[i]);}
}
2、数组名作为函数参数
用数组名作函数参数与用数组元素作实参有以下几点不同:
(1)用数组元素作实参时,要求形参和相对应的实参都必须是类型相同的数组,都必须有明确的数组说明。当形参和实参二者不一致时,即会发生错误。
(2)在普通变量或下标变量作函数参数时,数组名就是数组的首地址。因此在数组名作函数参数时所进行的传送只是地址的传送,形参数组名取得该首地址之后,也就等于有了实在的数组。实际上是形参数组和实参数组为同一数组,共同拥有一段内存空间。
例2、数组a中存放了一个学生5门课程的成绩,求平均成绩。
#include <stdio.h>
float aver(float a[5])
{
int i;
float av,s=a[0];
for(i=1;i<5;i++)
s=s+a[i];
av=s/5;
return av;
}
void main()
{
float sco[5],av;
int i;
printf("
input 5 scores:
");
for(i=0;i<5;i++)
scanf("%f",&sco[i]);
av=aver(sco);
printf("average score is %5.2f",av);
}
(3)在变量作函数参数时,所进行的值传送是单向的。即只能从实参传向形参,不能从形参传回实参。而当用数组名作函数参数时,情况则不同。由于实际上形参和实参为同一数组,因此当形参数组发生变化时,实参数组也随之变化。当然这种情况不能理解为发生了“双向”的值传递。
例3、一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
程序源代码:
#include <stdio.h>
main()
{
static int k[10];
int i,j,n,s;
for(j=2;j<1000;j++)
{
n=-1;
s=j;
for(i=1;i {
if((j%i)==0)
{ n++;
s=s-i;
k[n]=i;
}
}
if(s==0)
{
printf("%d is a wanshu",j);
for(i=0;i printf("%d,",k[i]);
printf("%d
",k[n]);
}
}
}
板
书
设
计
函数的参数
1、 数组元素作为参数
2、 数组名作为参数
3、 应用举例
教 后 札 记
学科网(北京)股份有限公司
$