《《C语言程序设计》教案 (2)》由会员分享,可在线阅读,更多相关《《C语言程序设计》教案 (2)(29页珍藏版)》请在金锄头文库上搜索。
1、CC 语言程序设计语言程序设计教案教案课程名称C 语言程序设计教材C 语言程序设计(第四版) 作者:谭浩强 清华大学出版社考核方式考试课程。 总成绩:课堂参与占 10%;试验报告占 20%;期末考试占 70%(闭卷考试) 。教 学 基 本 目 的 和 要 求C 语言是近年来国内外得到迅速推广使用的一种计算机语言。C 语言程序设计课程 是计算机专业和信息管理专业的核心专业基础课,它功能丰富,表达能力强,使用灵活方 便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语 言的优点。既适用于应用软件编写,又适用于系统软件的编写。在现代的工业机器人的 众多语言中,大多编程风格以
2、C 语言非常类似,学生学好 C 语言,对将来的工作中, 从事工业机器人现场编程是非常有帮助的。 课程的性质和任务课程的性质和任务语言程序设计这门课是我校工业机器人、分布式发电与微电网专业的专业必修课。 作为计算机系的数据结构、c+、单片机编程等课程的前导课程,也是一门实践性很强 的课程,既要掌握概念,又要动手编程,还要上机调试运行。对工业机器人专业来说是 一门必修的课程。同时,这门课程也是“湖南省非计算机专业学生计算机应用能力水平考试”二级考试 的主要语种之一。 课程的教学目标课程的教学目标本课程的教学目标是:通过理论和实践教学,使学生较好地掌握 C 语言各方面的知识, 掌握基本的程序设计过程
3、和技巧,具备初步的高级语言程序设计能力,并能熟练应用 VC+6.0 集成环境进行 C 语言的编写、编译与调试,能应用 C 语言解决一般编程问题 的水平。教 学 重 点 和 难 点一、程序设计和一、程序设计和 C 语言语言 重点:计算机程序、计算机语言、C 语言编译软件的安装、最简单的 C 语言程序 二、算法:程序的灵魂二、算法:程序的灵魂重点:简单的算法举例、算法的特性、用流程图表示算法。 三、顺序结构程序设计三、顺序结构程序设计重点: C 语言的数据类型、C 语句的种类、赋值语句、数据的输入输出及输入输出 中最常用的控制格式。 四、选择结构程序设计四、选择结构程序设计重点:关系运算符与逻辑运
4、算符及其组成的具有逻辑值的表达式、二条分支语句的 格式及基本应用、多分支的选择语句。 五、循环结构程序设计五、循环结构程序设计重点:C 构成循环的四种方法,尤其是后三种方法、break 与 continue 语句的基本 作用。 难点:while 语句;do-while 语句;for 语句;循环的嵌套;break 与 continue 语句。 六、数组六、数组 重点:一维数组、二维数组的定义与引用;字符数组的定义与引用、常用字符串处 理函数及字符处理函数;数组的应用 难点:二维数组的定义与引用;字符数组;数组的应用 七、函数七、函数重点:函数的定义;函数的参数和函数的值;函数的调用;函数的嵌套调
5、用;函数 的递归调用;数组作为函数参数;变量作用域;量存储类别;难点:函数定义、函数调用、函数声明等基本基本概念;函数的嵌套调用与递归调 用; 数组作为函数的参数、变量的存储类别与作用域。 八、指针八、指针 重点和难点:指针与地址的基本概念、指针与变量的关系;指针与数组;指针与字 符串、指针数组与二级指针;指针的应用 九、建立自己的数据类型九、建立自己的数据类型重点和难点:定义和使用结构体变量、用指针处理链表、共用体类型 十、文件十、文件重点:文件的基本知识、fopen、fclose 函数打开与关闭文件、顺序读写数据文件、 随机读写数据文件难点:用二进制方式向文件读写一组数据。 十一、常见错误
6、分析十一、常见错误分析重点和难点:文件的基本概念;文件的打开、关闭、常用读写方法。 十二、数组高级应用十二、数组高级应用 重点:不定长数组与二维数组的应用 难点:不定长数组与二维数组的应用 十三、综合应用十三、综合应用 重点:数组、if 语句、 循环语句、函数知识的综合应用 难点:二维数组、指针教材、 参考书教材:教材:C 程序设计 (第四版) 谭浩强著 清华大学出版社 2010 年 6 月参考书:参考书:C 程序设计语言Kernighan 熟练绘制选择语句算术的流程图 掌握关系运算符、关系表达式;逻辑运算符、逻辑表达式重点 难点重点:关系运算符、关系表达式;逻辑运算符、关系表达式 难点:熟练
7、绘制选择语句算术的流程图教 学 安 排讲授讲授一、选择结构的条件判断一、选择结构的条件判断1、理解条件-产生逻辑值的表达式2、选择结构的流程图绘制3、二元二次方程求根的算法及程序编写二、关系运算符与关系表达式二、关系运算符与关系表达式“关系运算” (比较运算)即,将两个值进行比较,判断是否符合或满足给定的条件。 1、 关系运算符及其优先次序 a)C 语言提供 6 种关系运算符。表 5-1。 b)关于优先次序:前 4 种高于后两种;关系低于算术;关系高于赋值 例 5-2。 2、 关系表达式 关系表达式的值是逻辑值,即“真” “假” 。C 语言没有逻辑型数据,1“真” ,0“假” 。 例 5-3。
8、三、逻辑运算符和逻辑表达式三、逻辑运算符和逻辑表达式“关系运算” (比较运算)即,两个逻辑值的运算。 1、 逻辑运算符。 (1)else max=b; max=ab?a:b; (1) 条件表达式的一般形式:表达式 1?表达式 2:表达式 3 (2) 条件表达式说明(5 点) 例 5-4.二、二、switch-caseswitch-case 语句(多分支选择语句语句(多分支选择语句/ /开关语句)开关语句)3、 switch 一般形式 4、 switch 语句说明。(1)-(7)三、分支程序例子三、分支程序例子例 5.5 写程序,判断某一年是否是闰年。 例 5.6 求一元二次方程 ax2+bx+
9、c=0 的根。 例 5.7 运输公司对用户计算运费。 六、应用举例六、应用举例 例 6-14:从键盘输入一个大于 2 的整数 n,判断是不是素数。 例 6-15:求 100-200 之间的所有素数。 例 6-16:输出下三角 99 乘法表 七、上机演示及学生操作七、上机演示及学生操作 在讲课的同时切换软件界面调试代码课后自我 总结分析备注CC 语言程序设计语言程序设计教案教案第第 21-2221-22 课时课时 授课内容第 6 章(1) 一维组的应用教学目的 和要求数组的基本概念; 一维数组定义、初始化、引用;最大值、冒泡排序、选择排序算法。重点 难点重点:一维数组定义、初始化、引用;求最大值
10、、冒泡排序、选择排序算法;矩阵操作 难点:冒泡排序、选择排序算法教 学 安 排引言引言 基本数据类型构造类型的数据数组 数组、数组元素、数组的下标、数组的维数 例如:int a10; 一维数组可以看作一个数列,向量。 例如:float b33; 二维数组可以看作一个矩阵。 讲授讲授 一、定义和引用一维数组一、定义和引用一维数组 1、一维数组的定义 类型说明 数组名整型常量表达式 2、一维数组定义说明 下标从 0 开始 3、数组元素的引用 例 6.1 利用数组输出 1-10 (1)循环语句 (2) 数组下标越界 4、一维数组的初始化的几种形式 (1)定义时赋初值 (2)部分赋初值 (3)数组元素
11、全部置 0 (4)数组元素如全部赋值可不指定长度 5、给数组元素赋初值和给数组集合赋初值的异同 (1) 给数组元素赋初值 int temp1=9; (2) 给数组集合赋初值 int temp10=(1,2,3); 二、一维数组的应用例子二、一维数组的应用例子 例 6-2:用数组来处理斐波那契数列 例 6-3:采用“冒泡法”对任意输入的 10 个整数按由小到大的顺序排序。 例 6-4:采用“选择法” 对任意输入的 10 个整数按由大到小的顺序排序。 三、动态内存分配法实现不定长一维数组三、动态内存分配法实现不定长一维数组 某些情境需要定义一个数组,但数组的长度不定,因为这个长度是根据某些其他条件
12、 确定的,这时我们需要定义一个长度不定的数组。如读取不同声音的语音数据序列。课后自我 总结分析备注CC 语言程序设计语言程序设计教案教案第第 23-2423-24 课时课时 授课内容第 6 章(2) 二维数组和多维数组的应用教学目的 和要求二维数组定义、初始化、引用;多维数组重点 难点重点:二维数组定义、初始化、 ;双重 for 循环读取二维数组;二维数组 1 维和 2 维的分辨;难点:双重 for 循环读取二维数组、二维数组 1 维和 2 维的分辨教 学 安 排二、二维数组二、二维数组( (注意:类比一维数组注意:类比一维数组) ) 1、二维数组的应用场景 2、二维数组的定义 3、二维数组元
13、素的内存分布 二、二维数组元素的引用二、二维数组元素的引用 例 6-5:二维数组元素的引用的例子(自学)-构造、打印单位矩阵。 思考:下标是从 1 开始使用的,哪些元素在此例子中未使用?它们的值是多少?(随机值)三、二维数组的初始化的几种形式三、二维数组的初始化的几种形式 (1)分行给二维数组赋值 (2)将所有数组写在一个花括号内 (3)对部分元素赋值 (4)对全部元素赋初值,二维数组的 1 维长度可以省略,2 维长度不能省略 四、双重四、双重 for 循环法读取二维数组循环法读取二维数组 比较抽象,图解较直观 五、二维数组应用举例五、二维数组应用举例 例 6-4:将二维数组的行和列互换,存到
14、另一个数组里。 例 6-5:找出矩阵所有元素中的最大值。 例 6-附加 分别计算矩阵的两条对角线(主、辅对角线)上的元素之和。 六、多维数组的应用六、多维数组的应用 1、多维数组的定义 2、多维数组元素的引用 3、多维数组的初始化 七、不定长二维数组的实现七、不定长二维数组的实现 某些情境需要定义一个二维数组,但二维数组的长度不定,因为这个长度是根据某些其他 条件确定的,这时我们需要定义一个长度不定的二维数组。如读取不同尺寸图像点的像素 值。 八、上机演示及学生操作八、上机演示及学生操作 在讲课的同时切换软件界面调试代码课后自我 总结分析备注CC 语言程序设计语言程序设计教案教案第第 25-2
15、625-26 课时课时 授课内容第 6 章(3) 字符数组教学目的 和要求字符数组定义、初始化、引用;字符串与字符数组;字符串处理函数;字符数组应用重点 难点重点:字符串与字符数组;字符串处理函数 难点:字符串与字符数组;字符串处理函数教 学 安 排引言引言 复习数组概念,数组定义、初始化、元素引用方法。引入字符数组(元素为字符) 。 讲授讲授 一、字符数组一、字符数组 1、字符数组的定义 2、字符数组的初始化 3、字符数组的引用 4、二维字符数组的应用举例 二、字符和字符串结束标志二、字符和字符串结束标志 1、字符串与字符数组的区别 2、字符串结束标记志 系统对字符串常量也自动加一个0作为结
16、束符。例如“C Program”共有 9 个字符,但在内 存中占 10 个字节,最后一个字节0是系统自动加上的。 (通过 sizeof()函数可验证) 三、字符数组的输入和输出三、字符数组的输入和输出 (1)逐个字符输入输出 (2)将整个字符串输出 (3)利用字符串的结束符批量输出 四、字符串概述四、字符串概述 1、字符串的输出 (1)“%s”格式符 (2)print 语句的输出项参数用字符数组名,而非数组元素名 2、字符串的引用 五、由字符数组来构造字符串五、由字符数组来构造字符串 根据定义,可由字符数组添加一个0符形成字符串。 六、二维字符数组六、二维字符数组 1、二维字符数组的定义 2、二维字符数组的初始化 3、二维字符数组的引用课后自我 总结分析备注CC 语言程序设计语言程序设计教案教案第第 27-2827-28 课时课时 授课内容第 6 章(4) 字符串函数的应用教学目的 和要求字