1、C 程序设计课程教学大纲一、 C 程序设计课程说明(一)课程代码:(二)课程英文名称:C Language Program Design(三)开课对象:非计算机专业专科学生(四)课程性质:C 语言以其灵活方便的特点,成为培养学生计算机语言思维,了解计算机编程思想的最佳语言,它已被当今国内外众多主要高校列为各理工科专业必修课程。本课程是我校非计算机专业本科学生的综合教育课,是一门实践性较强的课程。(五)教学目的:本课程的教学目的在于掌握 C 语言的基本结构、各种数据类型和控制流程的语法、语义和语用。 学习运用计算机语言进行程序设计的思想和方法,初步受到程序设计方法、技巧、风格和素养的训练。 熟悉
2、并掌握一些常用基本算法和 C 语言程序设计技术,培养学生利用 C 语言解决一般问题的程序设计能力,使学生初步具备软件开发的能力,为顺利通过计算机等级考试打下良好、扎实的理论基础。(六)教学内容:本课程主要通过适当的示例,系统、详细地讲解程序设计的基础知识、C 语言程序设计语言的基本语法、编程方法和常用算法。通过教学的各个环节使学生达到各章中所提的基本要求。讲授时应以培养学生的程序设计实际软件开发能力和实践应用能力为侧重点。(七)学时数、学分数及学时数具体分配学时数: 68 学时分数: 3 学分学时数具体分配:教 学 内 容 讲授 实验/实践 合 计第一章 C 语言程序设计概述 2 5第二章 C
3、 语言的基本数据类型与表达式 4 2 8第三章 顺序结构程序设计 4 5第四章 选择结构程序设计 8 2 6第五章 循环结构程序设计 6 4 10第六章 函数与编译预处理 8 2 9第七章 数组 6 2 8第八章 指针 6 2 8第九章 结构体数据类型与链表 2 4第十章 共用体与枚举类型 2 2第十一章 文件 2综合程序设计:综合运用 C 语言基本知识设计程序 2 3合 计 52 16 68(八)教学方式以黑板讲学和多媒体教学手段相结合的课堂教学。通过典型的示例讲解、必要的现场实际操作演示、适量的课堂练习、课后的上机编程调试以及及时地辅导答疑,在教学过程中增强师生之间的互动性,充分发挥学生在
4、学习过程中的自主性、能动性和创造性。(九)考核方式和成绩记载说明考核方式为考试。严格考核学生出勤情况,达到学籍管理规定的旷课量取消考试资格。综合成绩根据平时成绩、实验成绩和期末成绩评定,平时成绩占 20% ,实验成绩占 20%,期末成绩占 60% 。二 、讲授大纲与各章的基本要求第一章 C 语言程序设计概述教学要点:通过本章的教学使学生初步了解要求学生了解程序语言及算法的概念,C 语言特点,C 程序开发过程,简单 C 程序结构;熟悉 C 语言上机的具体步骤。1、使学生了解程序语言及算法的概念。2、使学生了解 C 语言不同于其他语言的特点。3、通过简单的 C 程序,领会并分析 C 程序的特性,掌
5、握其基本结构框架。4、通过简单程序介绍,熟悉 C 源程序的书写格式。5、在学习了简单的程序之后,掌握在 Turbo C 集成开发环境下建立和运行 C 程序的方法,熟悉 C 程序的运行环境及上机步骤。教学时数: 2 学时 教学内容:1.1 程序与程序设计语言1.1.1 程序的基本概念1.1.2 程序设计语言1.2 算法及其描述1.2.1 算法的概念1.2.2 算法的描述方法1.3 C 语言的发展及特点1.3.1 C 语言的发展概况1.3.2 C 语言的特点1.4 C 语言程序的基本结构(介绍简单的 C 程序,讲解 C 程序的组成和结构形式)1.5 C 语言字符集、标识符与关键字1.5.1 C 语
6、言字符集1.5.2 标识符与关键字1.6 C 语言程序的开发环境1.6.1 Turbo C 2.0 介绍1.6.2 源程序输入1.6.3 编译、连接与运行第二章 C 语言的基本数据类型与表达式教学要点:要求学生理解数据类型与变量、常量的关系,掌握各种常量的性质和定义,掌握表达式中各种运算符的功能和特点,了解数据类型的相互转换规则。通过本章的学习掌握 C 语言的各种基本数据类型及它们的定义、赋值、使用。1、使学生了解 C 语言的数据类型的种类。2、使学生理解 C 语言常量与变量的定义,符号常量的使用及合法标识符的定名规则。3、掌握各种基本数据类型常量的表示方法以及他们各自变量的定义。4、熟练掌握
7、 C 语言的各种运算符(优先级、结合方向)及相应的表达式。掌握各类数值型数据间的混合运算。5、了解数据类型的相互转换规则教学时数: 4 学时 教学内容:2.1 C 语言的基本数据类型2.1.1 数据类型概述2.1.2 整数类型2.1.3 实数类型2.1.4 字符类型2.2 常量与变量2.2.1 常量与符号常量2.2.2 变量与变量定义2.3 运算符与表达式2.3.1 算术运算符与算术表达式2.3.2 赋值运算符与赋值表达式2.3.3 逗号运算符和求字节运算符2.3.4 条件运算符2.4 数据类型转换2.4.1 类型自动转换2.4.2 赋值转换2.4.3 强制类型转换第三章 顺序结构程序设计教学
8、要点:通过本章的学习了解 C 语句的概念及种类,尤其是复合语句、空语句等的概念和使用场合,掌握字符输入 getchar、字符输出 putchar 函数以及熟练掌握格式输入 scanf 函数和格式输出 printf 函数的调用格式,功能和使用方法。1、使学生对语言的基本语句有一定的认识(尤其是复合语句、空语句等的概念和使用场合)。2、了解数据输入输出的概念及在 C 语言中的实现。3、掌握字符数据的输入输出。4、熟练掌握格式输入与输出函数的调用格式,功能和使用方法。尤其注意输入函数scanf 的格式要求(初学者很容易犯错)。5、通过实例让学生了解三大结构中的顺序结构程序设计方法,学会简单的编程。教
9、学时数:4 学时 教学内容:3.1 C 语言的基本语句3.1.1 简单语句3.1.2 复合语句3.2 数据输入与输出3.2.1 字符输入输出函数(putchar 和 getchar 函数)3.2.2 格式输出函数 printf3.2.3 格式输入函数 scanf3.3 程序举例(顺序结构程序设计举例,让学生知道分析问题并写出简单程序的方法)第四章 选择结构程序设计教学要点: 通过本章的学习掌握关系运算符及关系表达式;掌握逻辑运算符及逻辑表达式;重点掌握 if 语句的多种形式;熟练掌握 if 语句的嵌套使用和多分支 switch 语句的格式、功能及其使用。1、掌握关系、逻辑运算符及其优先次序以及
10、关系表达式的使用2、重点掌握 if 语句的多种形式(让学生区分清楚)3、熟练掌握 if 语句的嵌套,使得学生对 ifelse 的配对有清晰的认识4、掌握选择结构程序设计,嵌套程序设计。5、熟练掌握多分支 switch 语句的格式、功能及其使用。教学时数:8 学时 教学内容:4.1 关系运算符与关系表达式4.1.1 关系运算符4.1.2 关系表达式4.2 逻辑运算符与逻辑表达式4.2.1 逻辑运算符4.2.2 逻辑表达式(逻辑表达式值的判断,尤其要掌握(a&b&c)与(a|b|c) 这样特殊的式子的运算规则)4.3 if 语句4.3.1 单分支 if 语句4.3.2 双分支 if 语句4.3.3
11、 多分支选择结构4.3.4 if 语句的嵌套(阐明 ifelse 的配对关系(本节的重点)4.4 switch 语句(注意 switch 语句格式和执行过程及配合 break 的使用)4.5 结构嵌套程序举例第五章 循环结构程序设计教学要点:通过本章的学习领会循环结构程序设计。掌握各种循环语句应用的特点及异同点,掌握循环嵌套及复合结构。 了解 break、continue 在循环语句中的作用。1、了解 goto 语句以及用 goto 语句构成循环2、掌握 while 语句和 dowhile 语句实现的循环的用法和两者区别3、重点掌握用 for 语句实现循环(形式最为灵活)4、for、while
12、、do-while 三循环之间的嵌套也是本章的重点5、了解 break、continue 在循环语句中的作用,能灵活使用。教学时数:6 学时 教学内容:5.1 while 语句5.2 dowhile 语句(重点讲解 while 语句和 dowhile 语句实现的循环的区别)5.3 for 语句5.3.1 for 语句的一般形式5.3.2 for 语句中的各表达式含义5.3.3 for 语句与 while 语句的比较5.3.4 for 语句的变形5.4 break、continue 和 goto 语句5.4.1 break 语句5.4.2 continue 语句5.4.3 goto 语句5.5
13、循环的嵌套(本章的重点,要深刻领会)5.6 复合结构程序举例(这是本章重点,一定要将例子透彻,使学生能灵活地应用循环进行编程)第六章 函数与编译预处理教学要点: 要求学生了解模块化程序设计的思想,掌握函数的定义及调用,了解形式参数与实际参数的概念;熟练掌握参数传递、函数值的返回;理解变量的作用域与存储方式的概念,理解编译预处理的概念。 1、领会模块化程序设计的思想2、掌握函数的基本结构及定义方式3、熟练掌握函数调用,函数嵌套调用和参数传递(本章重点)4、掌握函数的递归调用和递归函数设计5、了解变量的作用域与存储方式的概念6、重点掌握带参数的宏定义(尤其注意参数括号的使用,了解带参函数调用与带参
14、数宏定义的区别)教学时数: 8 学时教学内容:6.1 模块化程序设计与函数6.1.1 模块与函数6.1.2 模块设计原则6.1.3 算法描述简介6.2 函数的定义与调用6.2.1 标准库函数6.2.2 函数的定义6.2.3 函数的调用6.2.4 参数的传递6.3 函数的递归调用(一般递归函数的程序段的设计(用 if 语句实现),要求掌握 n!这一类问题的递归解法)6.4 变量作用域与存储方式6.4.1 变量的作用域6.4.2 变量的存储方式6.5 编译预处理6.5.1 宏定义(重点阐明宏定义中替换的形参使用括号与否的区别,带参函数调用与带参数宏定义的区别)6.5.2 文件包含 6.5.3 条件
15、编译6.6 函数设计举例第七章 数组教学要点:要求学生理解数组下标,掌握初始化数组的方法,学会参数传递数组,并基本掌握二维数组及字符数组的使用。 1、熟练掌握一维数组、二维数组、字符数组的定义、初始化和引用方法2、起泡(冒泡)排序和选择排序、折半查找算法及杨辉三角等数组的应用实例要作详细讲解3、重点掌握数组作为函数的参数4、掌握字符数组的输入输出以及字符串处理函数教学时数: 6 学时教学内容:7.1 一维数组7.1.1 一维数组的定义(阐明 C 不允许对数组的大小作动态定义及最小下标从 0 开始等概念)7.1.2 一维数组元素的引用7.1.3 一维数组的存储结构与初始化7.2 二维数组7.2.
16、1 二维数组的定义7.2.2 二维数组元素的引用7.2.3 二维数组的存储7.2.4 二维数组的初始化7.3 数组的应用7.4 字符数组与字符串7.4.1 字符数组的定义与初始化7.4.2 字符串的概念及存储7.4.3 字符串的输入与输出7.4.4 字符串处理函数(puts(),gets(),串连接 strcat(),串复制 strcpy(),串比较strcmp(),求串长 strlen()等 )7.5 数组作为函数的参数7.6 程序举例第八章 指针教学要点: 通过本章的学习重点掌握指针与指针变量的概念,指针与地址运算符的关系;掌握变量、数组、函数、字符串的指针以及指向变量、数组、函数、字符串
17、的指针变量,并能通过指针灵活引用这些类型的数据;掌握多级指针和指针数组的概念及使用。1、重点掌握指针与指针变量的概念,指针与地址运算符的关系及指针运算。2、重点掌握指针变量的定义、初始化、赋值和引用方法。明确取地址运算符&和指针运算符*的使用。3、熟练掌握函数、数组、字符串的指针以及指向函数、数组、字符串的指针变量,并能通过指针灵活引用这些类型的数据4、掌握指针数组和多级指针变量的定义和引用教学时数: 6 学时教学内容:8.1 指针与指针变量8.1.1 指针的概念8.1.2 指针变量的定义与初始化8.1.3 指针运算8.1.4 多级指针8.2 指针与函数8.2.1 指针作为函数参数(阐明指针变
18、量与普通变量作为函数参数的异同,并能灵活应用)8.2.2 指针函数8.2.3 指向函数的指针(注意与指针函数的区别)8.3 指针与数组8.3.1 指向一维数组的指针8.3.2 二维数组与多维数组的指针表示法8.4 指针与字符串8.4.1 字符串的指针表示法8.4.2 字符串数组(明确 C 语言对字符串常量按字符数组处理,掌握字符串指针变量的用法)8.5 指针数组与命令行参数8.5.1 指针数组8.5.2 指针数组与命令行参数8.6 程序举例第九章 结构体数据类型与链表教学要点: 通过本章的学习了解自定义数据类型;熟练掌握结构体变量和结构体数组的定义、使用、初始化;了解指向结构体类型数据的指针的
19、用法;掌握结构体与函数及链表。1、使学生了解自定义数据类型以及引入结构体的目的2、熟练掌握结构体变量和结构体数组的定义、使用、初始化方法3、熟练掌握指向结构体类型数据的指针的用法4、掌握结构体变量及指向结构体变量的指针作函数参数的用法5、了解链表的概念、建立、输出及常用的操作。教学时数: 2 学时教学内容:9.1 结构体类型的定义9.2 结构体类型变量9.2.1 结构体类型变量的定义9.2.2 结构体变量的使用(引用结构体变量中成员的方式等)9.2.3 结构体变量的初始化9.2.4 结构体变量的输入与输出9.3 结构体类型数组9.3.1 结构体类型数组的定义9.3.2 结构体类型数组的初始化9
20、.3.3 结构体数组的使用9.4 结构体类型指针9.4.1 指向结构体变量的指针9.4.2 指向结构体数组元素的指针(结合实例阐明 “-”运算符和指针的自增自减运算相结合的使用情况)9.5 结构体与函数9.5.1 结构体变量作为函数参数9.5.2 指向结构体变量的指针作为函数参数9.5.3 函数的返回值为结构体类型9.6 链表9.6.1 链表概述9.6.2 内存动态管理函数9.6.3 链表的基本操作9.7 程序举例第十章 共用体与枚举类型教学要点: 通过本章的学习掌握共用体类型和共用体变量的定义与引用。了解位运算的基本概念,掌握位运算符的用法和表达式的使用;了解位段的使用。了解枚举类型和类型定
21、义。教学时数:2 学时教学内容:10.1 共用体类型与共用体变量(共用体类型变量的一般形式,共用体类型变量的定义方式)10.2 共用体变量的引用10.3 共用体变量的应用10.4 位运算与位段结构10.4.1 位运算10.4.2 位段结构10.5 枚举类型(定义形式,枚举类型变量的定义,枚举元素的初值等)10.6 类型定义第十一章 文件教学要点: 通过本章的学习熟练掌握文件类型指针,了解文件定义、打开、读写、定位及关闭基本操作的实现。1、熟练掌握文件类型指针2、了解文件定义、打开、读写、定位及关闭基本操作的实现教学时数:2 学时教学内容:11.1 文件概述11.1.1 文件11.1.2 数据文
22、件的存储形式11.1.3 标准文件与非标准文件11.1.4 文件存取方式11.2 标准文件操作11.2.1 标准文件 FILE 结构指针11.2.2 标准文件的打开操作11.2.3 关闭标准文件11.2.4 标准文件读写操作11.2.5 标准文件的随机读写11.3 非标准文件操作11.3.1 建立非标准文件11.3.2 非标准文件打开和关闭11.3.3 非标准文件的读写考核要求: 第 1 章 C 语言程序设计概述 1.1 程序与程序设计语言(了解)1.1.1 程序的基本概念1.1.2 程序设计语言1.2 算法及其描述(了解)1.2.1 算法的概念1.2.2 算法的描述方法1.3 C 语言的发展
23、及特点(了解)1.3.1 C 语言的发展概况1.3.2 C 语言的特点1.4 C 语言程序的基本结构(领会)1.5 C 语言字符集、标识符与关键字(识记)1.5.1 C 语言字符集1.5.2 标识符与关键字1.6 C 语言程序的开发环境(应用)1.6.1Turbo C 2.0 介绍1.6.2 源程序输入1.6.3 编译、连接与运行习题 1第 2 章 C 语言的基本数据类型与表达式2.1 C 语言的基本数据类型(识记)2.1.1 数据类型概述2.1.2 整数类型2.1.3 实数类型2.1.4 字符类型2.2 常量与变量(领会)2.2.1 常量与符号常量2.2.2 变量与变量定义2.3 运算符与表
24、达式(应用)2.3.1 算术运算符与算术表达式2.3.2 赋值运算符与赋值表达式2.3.3 逗号运算符和求字节运算符2.3.4 条件运算符2.4 数据类型转换(领会)2.4.1 类型自动转换2.4.2 赋值转换2.4.3 强制类型转换习题 2第 3 章 顺序结构程序设计3.1 C 语言的基本语句(领会)3.1.1 简单语句3.1.2 复合语句3.2 数据输入与输出(应用)3.2.1 字符输入输出函数3.2.2 格式输出函数 printf、3.2.3 格式输入函数 scanf3.3 程序举例(应用)习题 3第 4 章 选择结构程序设计4.1 关系运算符与关系表达式(应用)4.1.1 关系运算符4
25、.1.2 关系表达式4.2 逻辑运算符与逻辑表达式(应用)4.2.1 逻辑运算符4.2.2 逻辑表达式4.3 if 语句(应用)4.3.1 单分支 if 语句4.3.2 双分支 if 语句4.3.3 多分支选择结构4.3.4 if 语句的嵌套4.4 switch 语句(领会)4.5 结构嵌套程序举例(应用)习题 4第 5 章 循环结构程序设计5.1 while 语句(应用)5.2 dowhile 语句(领会)5.3 for 语句(应用)5.3.1 for 语句的一般形式5.3.2 for 语句中的各表达式含义5.3.3 for 语句与 while 语句的比较5.3.4 for 语句的变形5.4
26、 break、continue 和 goto 语句5.4.1 break 语句(领会)5.4.2 continue 语句(识记)5.4.3 goto 语句(了解)5.5 循环的嵌套(应用)5.6 复合结构程序举例(应用)习题 5第 6 章 函数与编译预处理6.1 模块化程序设计与函数(了解)6.1.1 模块与函数6.1.2 模块设计原则6.1.3 算法描述简介6.2 函数的定义与调用(应用)6.2.1 标准库函数6.2.2 函数的定义6.2.3 函数的调用6.2.4 参数的传递6.3 函数的递归调用(领会)6.4 变量作用域与存储方式(领会)6.4.1 变量的作用域6.4.2 变量的存储方式6
27、.5 编译预处理6.5.1 宏定义(领会)6.5.2 文件包含 (了解)6.5.3 条件编译(了解)6.6 函数设计举例习题 6第 7 章 数组7.1 一维数组(应用)7.1.1 一维数组的定义7.1.2 一维数组元素的引用7.1.3 一维数组的存储结构与初始化7.2 二维数组(应用)7.2.1 二维数组的定义7.2.2 二维数组元素的引用7.2.3 二维数组的存储7.2.4 二维数组的初始化7.3 数组的应用(应用)7.4 字符数组与字符串(领会)7.4.1 字符数组的定义与初始化7.4.2 字符串的概念及存储7.4.3 字符串的输入与输出7.4.4 字符串处理函数7.5 数组作为函数的参数
28、(应用)7.6 程序举例(应用)习题 7第 8 章 指针8.1 指针与指针变量8.1.1 指针的概念(应用)8.1.2 指针变量的定义与初始化(应用)8.1.3 指针运算(应用)8.1.4 多级指针(了解)8.2 指针与函数(领会)8.2.1 指针作为函数参数8.2.2 指针函数8.2.3 指向函数的指针8.3 指针与数组(领会)8.3.1 指向一维数组的指针8.3.2 二维数组与多维数组的指针表示法(了解)8.4 指针与字符串(领会)8.4.1 字符串的指针表示法8.4.2 字符串数组8.5 指针数组与命令行参数8.5.1 指针数组(领会)8.5.2 指针数组与命令行参数(了解)8.6 程序
29、举例习题 8第 9 章 结构体数据类型与链表9.1 结构体类型的定义(应用)9.2 结构体类型变量(应用)9.2.1 结构体类型变量的定义9.2.2 结构体变量的使用9.2.3 结构体变量的初始化9.2.4 结构体变量的输入与输出9.3 结构体类型数组(领会)9.3.1 结构体类型数组的定义9.3.2 结构体类型数组的初始化9.3.3 结构体数组的使用9.4 结构体类型指针(领会)9.4.1 指向结构体变量的指针9.4.2 指向结构体数组元素的指针9.5 结构体与函数(领会)9.5.1 结构体变量作为函数参数9.5.2 指向结构体变量的指针作为函数参数9.5.3 函数的返回值为结构体类型(了解
30、)9.6 链表(了解)9.6.1 链表概述9.6.2 内存动态管理函数9.6.3 链表的基本操作9.7 程序举例习题 9第 10 章 共用体与枚举类型10.1 共用体类型与共用体变量(领会)10.2 共用体变量的引用(领会)10.3 共用体变量的应用(领会)10.4 位运算与位段结构(了解)10.4.1 位运算10.4.2 位段结构10.5 枚举类型(了解)10.6 类型定义(了解)习题 10第 11 章 文件(了解)11.1 文件概述11.1.1 文件11.1.2 数据文件的存储形式11.1.3 标准文件与非标准文件11.1.4 文件存取方式11.2 标准文件操作11.2.1 标准文件 FI
31、LE 结构指针11.2.2 标准文件的打开操作11.2.3 关闭标准文件11.2.4 标准文件读写操作11.2.5 标准文件的随机读写11.3 非标准文件操作11.3.1 建立非标准文件11.3.2 非标准文件打开和关闭11.3.3 非标准文件的读写习题 11三、推荐教材和参考书目1、 C 语言程序设计教程 ,杨路明主编,第 2 版,北京邮电大学出版社, 20052、 C 语言程序设计上机指导与习题选解杨路明主编,第 2 版,北京邮电大学出版社,20053、C 语言程序设计(第三版) ,谭浩强编,清华大学出版社, 20054、 C 语言程序设计题解与上机指导(第 3 版),谭浩强编,清华大学出版社,20055、 C 语言程序设计试题汇编(第二版) ,谭浩强编,清华大学出版社, 20066、 C 语言课程设计案例精编 ,郭翠英等编,中国水利水电出版社, 2004