1、难点:while语句;do-while语句;for语句;循环的嵌套;break与continue语句。六、数组一维数组、二维数组的定义与引用;字符数组的定义与引用、常用字符串处理函数及字符处理函数;数组的应用二维数组的定义与引用;字符数组;七、函数函数的定义;函数的参数和函数的值;函数的调用;函数的嵌套调用;函数的递归调用;数组作为函数参数;变量作用域;量存储类别; 难点:函数定义、函数调用、函数声明等基本基本概念;函数的嵌套调用与递归调用; 数组作为函数的参数、变量的存储类别与作用域。八、指针重点和难点:指针与地址的基本概念、指针与变量的关系;指针与数组;指针与字符串、指针数组与二级指针;指
2、针的应用九、建立自己的数据类型 重点和难点:定义和使用结构体变量、用指针处理链表、共用体类型十、文件 重点:文件的基本知识、fopen、fclose函数打开与关闭文件、顺序读写数据文件、随机读写数据文件用二进制方式向文件读写一组数据。十一、常见错误分析 文件的基本概念;文件的打开、关闭、常用读写方法。十二、数组高级应用不定长数组与二维数组的应用十三、综合应用数组、if语句、循环语句、函数知识的综合应用二维数组、指针教材、参考书教材:C程序设计(第四版) 谭浩强著 清华大学出版社 2010年6月参考书:C程序设计语言Kernighan&Ritchie 机械工业出版社第 1-2课时 授课内容第1章
3、 C语言概述教学目的和要求了解C历史,名称来源、C特点,掌握C程序基本结构;C语言的版本、C语言的关键字;重点难点C语言的关键字;安排引言语言:人人语言交流;聋哑人手势语;人机计算机语言C语言是一种流行的计算机高级语言,C语言适合于编写系统软件,也可以编写应用程序。讲授一、语言出现的历史背景(1)C语言的发展源于人们希望用高级语言编写操作系统。(C-BCPL第二字母)ALGOL60(高级语言)-CPL(硬件支持)- BCPC-B-C-标准C- ANSI C - ISO C(2) 语言既具有高级语言特性,又具有低级语言特性-中级语言。二、C语言的特点C语言既具有一般高级语言特性,又具有低级语言特
4、性。8个特点。1、C语言简洁、紧凑。2、运算符丰富。3、数据结构类型丰富。4、具有结构化的控制语句。5、语法限制不太严格,程序设计自由度大。6、C语言允许直接访问物理地址,能实现汇编语言的大部分功能,可以直接对硬件进行操作。7、生成目标代码质量高,程序执行效率高。8、与汇编语言相比,用C语言写的程序可移植性好。三、C语言的关键字附录C(书本378页)四、C语言的版本和关键字auto、inline、restrict、_bool、_Complex、_Imaginary是后来扩充的,有些编译器也扩充了关键词。五、Turbo C编译器的安装与使用课后自我总结分析备注第 3-4 课时 第1章 VC+6.
5、0、VS2015的安装和使用了解C语言常用的编译器;掌握VC+6.0、VS2015的下载与安装;掌握VC+6.0、VS2015的使用VC+6.0、VS2015的使用一、C语言常用的编译器(1)32位的WINDOWS操作系统与64位的WINDOWS操作系统(2)VC+6.0 (2)VS2015二、文件夹与压缩包1、文件夹2、文件的压缩与解压3、软件的下载4、软件安装的一般流程5、产品id号、序列号与破解补丁三、VC+6.0、VS2015的下载与安装四、VC+6.0、VS2015的使用五、c4droid编译器的使用1、基于安卓手机操作系统的C语言编译器2、c4droid编译器的安装3、c4droi
6、d编译器的使用六、上机演示及实践操作在win7电脑上示范VC+6.0、VS2015的编译器的安装和使用同学们对计算机基础知识比较缺乏,安装VC+6.0时,不知道如何解压,也不知道如何下载和计算机操作系统版本匹配的VC+6.0或VS2015第 5-6 课时 第2章 算法的基本概念和简单算法举例了解算法的基本概念、程序设计的一般流程、掌握书写简单的算法流程、了解算法的特性掌握书写简单的算法流程。引言(5分钟)什么是算法?菜谱、拳谱、歌谱都是广义的算法。以湘潭去北京开会为例解释算法的优劣。1+2+3+100的常规算法和高斯的首尾相加快递算法一、简单算法举例(37分钟)(1)求5!(10分钟)常规求解
7、方式的烦琐引出用循环方式求解的方法。分析用循环方式求5!的C语言代码(2)求13457911(10分钟)询问同学此题与5!的异同,引每项是2n-1的通项,在上题的基础上改动少量代码可实现本题的C语言编程。(3)求2000-2500年间的闰年(10分钟)图示方式给学生解说闰年要满足的条件,引出要做多次判断的较复杂流程提问:能被4整除,也能被100整除,是不是等同能被400整除这一认识误区再次提问:2000年是不是闰年,为什么?2060年是不是闰年,为什么?检测学生是否了解闰年判断流程。(4)素数的求法(7分钟)根据素数的定义来循环判断是否能被一系列数整除,最后判断是不是素数,请学生尝试写出求解流
8、程。二、算法的特性(3分钟)1、有穷性。2、确定性。3、0个或多少输入。4、1个或多个输出。5、有效性。三、上机演示及实践操作在讲课的同时切换软件界面调试代码通过提问可以了解同学们对知识的掌握程序,互动性的教学设计更有益于教学第 7-8 课时 第2章 算法的表示掌握用流程图表示算法;了解传统流程图的弊端;掌握N-S流程图表示方法。掌握N-S流程图表示方法一、用流程图表示算法(15分钟)1、介绍流程图的图框及含义起止框、输入输出框、判断框、处理框、流程线、连接点、注释框2、示范用流程图表示两个分支的if语句3、将例2.1的算法用流程图表示并分析4、将例2.2的算法用流程图表示并分析5、将例2.3
9、的算法用流程图表示并分析总结:流程图表示算法比较直观2、将例2.4多项式求和用流程图表示(1)、书本求解本题算法的流程图表示(2)、其它算法的流程图表示二、三种基本结构和改进的流程图 (15分钟)1、统流程图的弊端2、三种基本结构(1)顺序(2)选择(3)循环 分当型和直到型两种二、用NS流程图表示算法(15分钟)1、N-S流程图的符号2、将例2.1的算法用N-S流程图表示并分析3、将例2.2的算法用N-S流程图表示并分析4、将例2.3的算法用N-S流程图表示并分析三、实践环节对“分时问候”的算法绘制N-S流程图第 9-10课时 第3章 最简单的C程序设计顺序程序设计举例说明顺序程序调序的基本
10、流程、整型数据类型、整型数据的溢出。整型数据类型;整型数据的溢出一、顺序程序设计举例 (10分钟)1、绘制例3.1算法的N-S流程图2、根据N-S流程图编写代码并调试二、常量与变量 (15分钟)1、常量概念。(1)整型常量、整型常量、字符常量、字符串常量(2)ASCII字符(3)转义字符2、变量概念、变量名(1)先定义,后使用(2)变量名与变量值概念的异同三、数据类型概述 (5分钟)1、不同类型的数据在内存中占用的存储单位长度是不同的VC+6.0为字符型数据分配一个字节长度;为int型(基本型)分配4个字节的长度。2、存储不同数据类型的方法也是不同的。四、整型数据 (15分钟)1、整型数据的分
11、类:(1)基本整型(int 型) (2)短整型(short int); (3)长整型(long int)2、整型变量的符号属性 (1)有符号型和无符号型 (2)整型数据常见的存储空间和值的范围3、整型数据的溢出五、上机演示及实践操作在讲课的同时切换编译界面调试整型数据溢出第11-12 课时 举例说明顺序程序调序的基本流程、数据的表现形式及运算、不同数据类型的混合运算。整型数据类型long int和short int数据类型、运算符的优级先级、不同数据类型的混合运算一、浮点型数据1、浮点型数据的存储方式2、浮点型数据的表现形式 浮点数据的指数形式3、浮点型数据的类型(1)单精度 (2)双精度 (
12、3)长双精度二、字符型数据1、 字符常量表示。直接表示/转义表示(特殊的转义字符,一般字符也可以转义表示)。特殊转义字符对显示/打印的控制作用2、 字符变量1个字节,char关键词。3、 字符数据的存储ASCII码/二进制存储C语言可以将字符看做很短的整数处理。例2-7A,例2-8A可以看出字符数据的具有整数特性。三、怎样确定常量的类型1、从常量的表示形式,如精度2、只要看到单撇号括起来的单个字符或转义字符即字符常量四、运算符与表达式1、基本的算术运算符 2、自增、自减运算符3、算术表达式和运算符的优先级与结合性五、数值型数据混合运算1、自动隐式转换。2、强制类型转换。六、C语句 1、控制语句
13、 2、函数调用语句 3、表达式语句4、空语句 5、复合语句七、上机演示及实践操作第 13-14 课时 第4章(1) 选择结构程序设计理解条件-产生逻辑值的表达式; 熟练绘制选择语句算术的流程图掌握关系运算符、关系表达式;逻辑运算符、逻辑表达式关系运算符、关系表达式;逻辑运算符、关系表达式熟练绘制选择语句算术的流程图一、选择结构的条件判断1、理解条件-产生逻辑值的表达式2、选择结构的流程图绘制3、二元二次方程求根的算法及程序编写二、关系运算符与关系表达式“关系运算”(比较运算)即,将两个值进行比较,判断是否符合或满足给定的条件。1、 关系运算符及其优先次序a) C语言提供6种关系运算符。表5-1
14、。b) 关于优先次序:前4种高于后两种;关系低于算术;关系高于赋值例5-2。2、 关系表达式关系表达式的值是逻辑值,即“真”“假”。C语言没有逻辑型数据,1“真”,0“假”。例5-3。三、逻辑运算符和逻辑表达式“关系运算”(比较运算)即,两个逻辑值的运算。1、 逻辑运算符。(1)& 逻辑与,(2)| 逻辑或,(3)! 逻辑非2、 逻辑运算符的优先顺序:3、 逻辑表达式四、条件运算符与条件表达式1、单目运算符、双目运算符、三目运算符的概念2、C语言唯一的三目运算符构成的条件表达式 第15-16 课时 第4章(2) 选择结构程序设计选择结构的嵌套;switch语句实现多分支选择结构一、if语句的嵌
15、套1、在if语句中又包含一个或多个if语句称为if语句的嵌套。2、如果if与else的数目不一致,为了体现程序设计者的思想,可加花括号来确定配对的关系。3、利用代码缩进增强代码的可读性,养成良好的编程风格4、例4.5阶跃函数用if语句的嵌套实现(1)绘制流程图 (2)将流程图编写成程序二、用switch语句实现多分支选择结构如果条件分支较多,利用if语句显得程序冗长,且可读性降低。因此,C语言设计了switch语句。1、switch语句的一般形式2、例4.6 输出考试成绩的ABCD段等级3、例4.7 用switch语句处理菜单命令三、选择结构程序设计综合举例例4.8 判断某一年是否是闰年例4.
16、9 求二元二次方程的实根四、上机演示及实践操作第 17-18 课时 第5章(1) 循环结构程序设计掌握while当型循环、do while直到型循环、for循环while当型循环、do while直到型循环、for循环的形式、执行过程、使用注意问题重复执行就是循环。重复工作是计算机特别擅长工作之一。重复执行不是简单地重复,每次重复,操作的数据(状态、条件)都可能发生变化。重复的动作是受控制的,C语言提供三种循环控制语句,构成了三种基本的循环结构。一、while语句(当型循环)1、while语句的一般形式是:2、执行过程是:(流程图、N-S图)3、使用while注意的问题。例5-1:利用whil
17、e语句,编写程序计算1+2+3+100。二、do-while语句(直到型循环)1、do-while语句的一般形式2、do-while执行过程(流程图)3、do-while说明:例5-4:利用do-while语句计算机1+1/2+1/4+1/50。三、for语句(当型循环)1、 for语句的一般形式(给出while循环的对应结构)2、 for循环执行过程(流程图)例5-6:写一个程序,计算半径为0.5,1.5,2.5,3.5,4.5,5.5mm时圆的半径。例5-7:求正整数n的阶乘n!,其中n由用户输入。3、 for语句最容易理解、最常用的形式4、 for语句说明(6点)。C语言的for语句功能
18、强大,使用灵活。第19-20 课时 第5章(2) 循环结构程序设计掌握条件运算符、条件表达式掌握switch-case语句switch-case语句a) 复习关系运算、逻辑运算、if语句b) 引入简单的条件运算符及表达式、以及开关语句一、条件运算符、条件表达式在if语句中,在表达式为“真”和“假”时,都只执行一个赋值语句给同一个变量赋值时,可以使用简单的条件运算符来处理。例如:if(ab)max=a;else max=b; max=ab?a:b;(1) 条件表达式的一般形式:表达式1?表达式2:表达式3(2) 条件表达式说明(5点)例5-4.二、switch-case语句(多分支选择语句/开关
19、语句)3、 switch一般形式4、 switch语句说明。(1)-(7)三、分支程序例子例5.5 写程序,判断某一年是否是闰年。例5.6 求一元二次方程ax2+bx+c=0的根。例5.7 运输公司对用户计算运费。六、应用举例例6-14:从键盘输入一个大于2的整数n,判断是不是素数。例6-15:求100-200之间的所有素数。例6-16:输出下三角99乘法表七、上机演示及学生操作第21-22课时 第6章(1) 一维组的应用数组的基本概念;一维数组定义、初始化、引用;最大值、冒泡排序、选择排序算法。求最大值、冒泡排序、选择排序算法;矩阵操作冒泡排序、选择排序算法基本数据类型构造类型的数据数组数组
20、、数组元素、数组的下标、数组的维数int a10; 一维数组可以看作一个数列,向量。float b33; 二维数组可以看作一个矩阵。一、定义和引用一维数组1、一维数组的定义 类型说明 数组名整型常量表达式2、一维数组定义说明 下标从0开始3、数组元素的引用例6.1 利用数组输出1-10(1)循环语句 (2) 数组下标越界4、一维数组的初始化的几种形式(1)定义时赋初值 (2)部分赋初值(3)数组元素全部置0 (4)数组元素如全部赋值可不指定长度5、给数组元素赋初值和给数组集合赋初值的异同(1) 给数组元素赋初值 int temp1=9;(2) 给数组集合赋初值 int temp10=(1,2,
21、3);二、一维数组的应用例子例6-2:用数组来处理斐波那契数列例6-3:采用“冒泡法”对任意输入的10个整数按由小到大的顺序排序。例6-4:采用“选择法” 对任意输入的10个整数按由大到小的顺序排序。三、动态内存分配法实现不定长一维数组某些情境需要定义一个数组,但数组的长度不定,因为这个长度是根据某些其他条件确定的,这时我们需要定义一个长度不定的数组。如读取不同声音的语音数据序列。第23-24 课时 第6章(2) 二维数组和多维数组的应用二维数组定义、初始化、引用;多维数组二维数组定义、初始化、;双重for循环读取二维数组;二维数组1维和2维的分辨;双重for循环读取二维数组、二维数组1维和2
22、维的分辨二、二维数组(注意:类比一维数组)1、二维数组的应用场景2、二维数组的定义3、二维数组元素的内存分布二、二维数组元素的引用例6-5:二维数组元素的引用的例子(自学)-构造、打印单位矩阵。思考:下标是从1开始使用的,哪些元素在此例子中未使用?它们的值是多少?(随机值)三、二维数组的初始化的几种形式(1)分行给二维数组赋值(2)将所有数组写在一个花括号内(3)对部分元素赋值(4)对全部元素赋初值,二维数组的1维长度可以省略,2维长度不能省略四、双重for循环法读取二维数组比较抽象,图解较直观五、二维数组应用举例将二维数组的行和列互换,存到另一个数组里。找出矩阵所有元素中的最大值。例6-附加 分别计算矩阵的两条对角线(主、辅对角线)上的元素之和。六、多维数组的应用1、多维数组的定义2、多维数组元素的引用3、多维数组的初始化七、不定长二维数组的实现某些情境需要定义一个二维数组,但二维数组的长度不定,因为这个长度是根据某些其他条件确定的,这时我们需要定义一个长度不定的二维数组。如读取不同尺寸图像点的像素值。八、上机演示及学生操作第25-26 课时 第6章(3) 字符数组字符数组定义、初始化、引用;字符串与字符数组;字符串处理函数;字符数组应
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1