You are on page 1of 8

教 案

课程名称: C 语言程序设计

授课专业:

授课教师:

2023 年 9 月
C 程序的结构和函数的分类、
教学内容 定义函数的方法、函数的一般调用

教学学时 2
班级 地点 周次 星期 节次
14 2 3-4 节

素质目标 知识目标 能力目标


(1)基本职业素养:遵守工作时间,使
用实践设备时注意用电安全,实践设备使
用完毕后要断电并放于指定位置,程序设
计要注重工程规范,养成良好的工作习
惯。
(2)团结协作素养 小组内成员互查程 (1)熟悉 C 程序的
序代码书写规范性、准确性和完整性,取 结构和函数的分
长补短,具有责任意识、团队意识与协作 类
教学目标 精神。 (2)掌握定义函数
能用函数实现
模块化程序
(3)自主学习素养 能根据任务要求查 的方法
找相关资料解决实际问题;能自主完成练 (3)掌握函数的一
习,培养自主学习的意识与一丝不苟、实 般调用方法
事求是的工作作风。
(4)思政和劳动素养 具有一定的辩证
唯物主义运用能力、安全意识、劳动意
识、创新意识、创新能力和强烈的爱国主
义精神。
(1)定义函数的方法
教学重点 (2)函数的一般调用方法
(1)有参函数的定义方法和调用方法、函数参数传递
教学难点 (2)函数的类型和返回值
任务 1:熟悉 C 程序的结构和函数的分类
能力训练任务 任务 2:学握定义函数的方法
任务 3:掌握函数的一般调用方法
(1)教材:胡成松《C 语言程序设计》,机械工业出版社
教学材料 (2)教学资源:电子教案、教学课件、微课视频、在线开放课程
(3)仪器与设备:电脑(装有 VC+开发环境)
教学进度设计
步骤 教学内容及目标 思政元素 教师活动 学生活动 时间
一、复习和 之前的 C 程序都比较简单,只有一个源 群众路线、 讲解、布置 听讲、明确学 5min
导入 程序文件 (.c 文件),且在此源文件中 民主集中 学习任务 习任务
只有一个函数(主函数)。但在设计复杂
的 C 程序时,往往将其划分为若干个程
序模块,每个程序模块作为一个源程序
文件,而每个源程序文件可包括多个函
数。
二、实施任 1.源程序的结构 群众路线、 讲解、引导 听讲,理解体 15min
务 1:熟悉 2.函数的分类 资源共享、 学生学会将 会
C 程序的结 创新意识 若干问题分
构和函数分 解为简单问
类 题
三、实施任 1.定义无参函数 具体问题具 对比讲解、 听讲,理解 20min
务 2:掌握 2.定义有参函数 体分析、创 引导学生根
定义函数的 新意识 据实际需要
方法 定义参数函

四、实施任 1、函数的一般调用流程 举一反三的 讲解,引导 听讲,分析编 45min
务 3:掌握 2、函数的一般调用形式 能力,组织 学生通过教 写和运行教材
函数的一般 (1)无参函数 观念 材例题掌握 例题,思考和
调用方法 (2)有参函数 函数的一般 实验题
3、有参函数调用时,“参数传递的问 调用方法
题:
(1)形参的存储和释放
(2)单向信息传递
(3)实参的形式
4、函数的值
return 语句和函数类型
5 对函数声明
五、总结 概括基本内容,归纳重点内容 自主学习 引导学生归 思考,记录 5min
纳,布置课
后任务
作业 通过教材、PPT 和在线课程,复习巩固本次课内容完成教材相应习题(可穿插到上述任务中);预
习下次课内容(函数的嵌套调用和递归调用)。
课后体会 1.对于复杂 C 程序的结构,让学生提前了解复杂 C 程序的文件组织方法(分门别类、各有归处,
以便可移植和可复用)。
2.C 语言学习和应用的落脚点就是引导学生能够编写简单的功能函数,以培养学生的创新意识
和创新能力。
3.本次课内容较多,可根据学生基础,灵活安排教学内容,可将后面的部分内容安排在下次
课,或者将后面的内容穿插至前面的例题讲解。
C 程序的结构和函数的分类、定义函数的方法、函数的一般调用
教学详案
步骤一:复习与导入(时间:5 分钟)
之前所学的大部分程序都比较简单,只有一个源程序文件 (.c 文件),且在此文件中只有一个函数
(主函数)。但在设计复杂的 C 程序时,往往将其划分为若干个程序模块,每个程序模块作为一个程序
文件,而每个程序文件可包括多个函数。

步骤二:任务 1:熟悉 C 程序的结构和函数的分类(时间:15 分钟)

1、C 程序结构
【软件工程思想和企业规范】对照表 1:一个复杂的 C 程序由若个模块组成每个程序模块作为一个
源程序文件(.c 文件、 文件等),而每个源程序文件由预处理命令数据声明以及若干函数组成。

一个 C 程序必须有且只能有一个主函数,C 程序总是从主函数开始执行《不论位置如何),最后在
主函数中结束整个程序的运行。需要注意:在主函数中可以调用其他函数,而不允许被其他函数调用。
在实际应用的 C 程序中,可将主函数设计得简单些,主要负责调用各个功能函数,依次实现各项
功能——模块化程序设计。
【学习检验】教材例题

2、函数的分类

从不同角度对函数分类。
(1)从定义函数的角度
1)库函数:由编译系统提供,只要在源文件中包含其对应的头文件,即可在程序中直接调用[见附录
D]。例如“stdio.h”头文件中的 printf、scanf 等函数,“math.h”头文件中的 sin、cos 等函数。
2)用户自定义函数:用户根据需要,将实现某个功能的代码编写成相对独立的函数。
(2)从有误返回值的角度
1)有返回值函数:将向调用者返回一个值。定义函数时须指明函数的类型(函数返回值的类型。
2)无返回值函数:不向调用者返回函数值。定义函数时应指定函数的类型为 void。
(3)从数据传递的角度
1)无参函数:调用时,主调函数和被调函数之间不进行参数传送。此类函数可以返回或不返回函数值。
2)有参函数:调用时,主调函数将实参的值传递给形参(虚参)
步骤三:任务 2 掌握定义函数的方法(时间:20 分钟)
1、 定义无参函数

说明:(1)书写函数体时,一般先写声明部分,再写执行部分

(2)若函数无需返回值,则函数类型应该定义为 void 类型

2、 定义无参函数
有返回值的函数至少有一个 return 语句。

步骤四:任务 3:掌握函数的一般调用方法(时间:45 分钟)


1、函数的一般调用流程
2、函数的一般调用形式
(1) 无参函数的调用形式: 函数名()
(2) 有参函数的调用形式: 函数名(参数列表)
调用有参函数时,主调函数将“实参”的值传递给被调函数的“形参”,从而实现信息传递。如
果有多个实参,则各参数之间要用逗号隔开。实参与形参的个数应相等,类型应匹配,按顺序对应,
一一传递信息。

【活学活用】 教材“思考与实验”:设计两个函数。在主程序中输入 3 个实数,然后分别调用这两


个函数,输出他们的最大值和最小值。
3、有参数调用时,“参数传递”的问题
(1)形参变量只有在发生函数调用时才被临时分配内存单元。在调用结束后,形参所占用的内存单
元也被释放。实参与形参占用不同的存储空间。
(2) 只能由实参传递给形参,而不能由形参传递给实参,即“单向信息传递”。在执行一个被调函
数时,形参的值如果发生改变,并不会改变主调函数的实参值。

(3)当形参为普通变量(基本类型的变量)时,实参可以是常量、变量或表达式,但必须有确定的值。
【学习检验】教材单元练习第 4、6、7、8 题
4、函数的值
(1)return 语句:函数的值只能通过 return 语句获得。
return 语句的一般形式: return 表达式; 或 return (表达式);
说明: 在函数中可有多个 return 语句,但每次调用只能有一个 return 语句被执行,因此只能返回
一个函数值。return 语句也可以不含表达式,此时必须将函数定义为 void 类型,其作用只是使流程返
回到主调函数。
(2)函数类型。函数返回值的类型和定义函数时指定的函数类型应保持一致。定义函数时若不指定
函数类型,C 编译系统则默认为整型。没有返回值的函数,函数的类型应当明确定义为 void 类型。
【学习检验】教材例题
【课后学以致用】
(1) 输入一个非整数,输出它的倒序数。
(2) 编写函数,计算 x 的 n 次方。
5、对函数的声明
在调用函数之前,都需要对被调函数进行声明。若不进行声明,编译系统对程序从上到下进行编译
的过程中,遇到被调函数名时,就会认为是一个“陌生人”而报告错误。解决办法有两个。
(1)在主调函数的函数体的开始,或者在源文件中所有函数的前面,对被调函数进行声明。提前向
编译系统“打招呼”,让编译系统“提前认识”被调函数。
函数声明(也称为函数原型的一般形式:
类型标识符 函数名(形参类型 1 形参名 1,形参类型 2 形参名 2··-):
类型标识符 函数名(形参类型 1,形参类型 2..-):或
(2)若在主调函数前面定义被调函数,则无须额外对被调函数进行声明。

说明:调用库函数时,无需对其进行声明,但要把该函数对应的头文件用#include 命令包含在源文
件中。
【学习检验】]教材单元练习第 15 题
【自主学习】宏调用和函数调用的比较

步骤五:概括基本内容,归纳重点内容(时间:5 分钟)
1、引导学生概括本次次课的基本内容,归纳重点内容(定义函数的方法,函数的一般调用方法)
2、作业布量:通过教材、PPT 和在线课程,复习固本次课内容:完成教材相应习题学以致用:预习下次课
内容(函数的嵌套调用和递归调用)。

You might also like