计算机系教学大纲
C语言程序设计
《C语言程序设计》教学大纲
课程代码:8613
课程名称:C语言程序设计
课程性质:计算机应用各专业中一门非常重要的专业基础课,是必修的核心课程之一。它是“汇编语言程序设计”、“数据结构”、“编译原理”、“操作系统”等其它核心课程必要的先行课。因此该课程在整个教学计划中占有重要的地位。
教学目的:目的是让学生学习一门高级程序设计语言,掌握高级程序设计的基本概念、基本思想、基本方法和基本技能,进而学会利用C语言编制一些程序以解决一般实际应用问题,培养学生分析问题和解决问题的能力,并为后续的专业课程奠定程序设计基础。 课程的教学原则和方法:
1、理论与上机实践相结合的原则;
2、在课堂教学中主要使用传统的讲解法,并适当采用电子讲义相结合的原则;
3、讲解法与自学相结合的原则;
4、考虑到实际教学效果和教学效率,在学习本课程之前要对计算机的相关硬件和软件基础知识有所掌握;
5、所有例题都要上机调试通过。
课程总学时:总学时为96学时,其中讲授64学时,实验32学时。 课程教学内容要点及建议学时分配:
C语言概述(讲授2学时,实验2学时) (1)C语言的历史背景 (2)C语言的特点
(3)简单的C程序介绍 (4)C程序的上机步骤 具体教学要求:
①了解C语言的特点及C语言简单程序的构成;
②掌握源程序、目标程序和可执行程序的概念。通过不断练习,达到熟练掌握一种编程环境下的编辑、编译、连接和运行等四阶段的操作命令。 数据类型、运算符和表达式(讲授6学时,实验3学时) (5)C的数据类型 (6)常量与变量 (7)整型数据 (8)实型数据 (9)字符型数据
计算机系教学大纲
C语言程序设计
(10)变量赋初值
(11)各类数值型数据间的运算 (12)算术运算符和算术表达式 (13)赋值运算符和赋值表达式 (14)逗号运算符和逗号表达式 具体教学要求:
①对C语言提供的数据类型有一全局性的了解; ②掌握C语言的基本数据类型的存储和取值范围;
③掌握各种数据类型的常量和变量的使用及其运算操作;会灵活使用符号常量的定义;
④熟练掌握算术运算符及其表达式,赋值运算符及其表达式和自增自减运算符的使用规则和运算;
⑤掌握运算数类型的自动(隐含)转换和强制(显示)转换规则;能正确判定出运算式的结果的类型;
⑥了解运算符的优先级和结合性。
最简单的C程序设计(讲授5学时,实验3学时) (15)C语句概述
(16)程序的三种基本结构 (17)数据输出 (18)数据输入 (19)程序举例 具体教学要求:
①了解C语言程序的构成及语句的分类;
②理解C语言自顶向下的结构化程序设计方法及特点;
③掌握C语言程序中数据输入、数据输出的常用控制方法,并能灵活运用到程序设计中去;
④能够编写、调试和运行最简单的顺序结构程序。 逻辑运算和判断选取控制(讲授5学时,实验3学时) (20)关系运算符和关系表达式 (21)逻辑运算符和逻辑表达式 (22)IF语句
(23)SWITCH语句 (24)程序举例 具体教学要求:
①理解关系运算符、逻辑运算符的功能和作用及其表达式的求值;
②掌握if语句、switch语句的句法、语义和正确使用规则,并在程序中利用计算机系教学大纲
C语言程序设计
它们实现单分支或多分支控制;
③掌握选择结构的基本程序设计方法; ④掌握条件运算符的应用。
循环控制(讲授6学时,实验3学时) (25)概述
(26)GOTO语句以及用GOTO构成循环 (27)WHILE语句、DO—WHILE语句 (28)FOR语句 (29)循环的嵌套
(30)break语句和continue语句 具体教学要求:
①了解goto语句的句法和使用;了解if语句配合goto语句构成的循环结构的缺点;
②掌握for语句、while语句和do-while语句的句法结构和执行过程,会灵活使用它们编写简单循环结构程序,从而在程序中实现单重或多重循环控制;
③掌握正确组织嵌套循环结构的规则;
④理解break、continue语句在循环结构中的不同作用。 数组(讲授5学时,实验3学时) (31)一维数组的定义和引用 (32)二维数组的定义和引用 (33)字符数组
(34)字符数组的输入输出 (35)字符串处理函数 (36)程序举例 具体教学要求:
①理解数组的基本概念;
②掌握一维数组的定义和数组元素引用的方法,并能用数组解决实际编程问题(如排序问题);
③掌握二维数组的定义和数组元素引用的方法,并能用二维数组解决实际编程问题(如矩阵运算等);
④理解字符数组与字符串的异同;掌握处理字符串相关函数使用规则。 函数(讲授8学时,实验3学时) (37)概述
(38)函数定义的一般形式 (39)函数参数和函数的值 (40)函数的调用
计算机系教学大纲
C语言程序设计
(41)函数的嵌套调用 (*) (42)函数的递归调用
(*) (43)数组作为函数参数
(*) (44)局部变量和全局变量
(*)
(45)动态存储变量与静态存储变量
(*) (46)内部函数和外部函数
(*) 具体教学要求:
①理解函数在结构化程序设计中的重要作用,掌握C语言中函数分类; ②掌握函数的定义、调用函数和被调用函数的概念及书写规则;
③了解函数形参和实参的特点;掌握在调用时它们的对应规则及参数传递,并能熟练编写具有一定功能的函数;
④理解递归的概念,能编写和阅读简单的递归函数;
⑤掌握局部变量和全局变量的特点和作用域,了解变量存储类型的定义和使用方法;
⑥了解main()函数参数的正确定义与使用。 编译预处理(讲授2学时,实验1学时) (47)宏定义 (48)文件包含
(49)条件编译
(*) 具体教学要求:
①理解编译预处理的功能和作用;
②掌握用#define定义符号常量和宏(包括不带参数和带参数的宏)的编写技术;正确理解宏替换过程和函数的区别;
③掌握文件包含预处理的使用方法和能正确使用.h文件; ④了解条件编译的作用和用法。 指针(讲授9学时,实验4学时) (50)指针的概念
(51)变量的指针和指向变量的指针变量 (52)数组的指针和指向数组的指针变量 (53)字符串的指针和指向字符串的指针变量 (54)函数的指针和指向函数的指针变量
(*) (55)返回指针值的函数
(*)
(56)指针数组和指向指针的指针
(*) (57)指针小结 具体教学要求:
①掌握指针变量、指针和地址的概念;
计算机系教学大纲
C语言程序设计
②掌握指针变量的定义和初始化;指针的间接访问的含义;指针的加减运算和指针表达式的应用;
③掌握指针与数组、函数、字符串、自由空间等的联系;
④理解指针数组和多级指针的概念,要求初步掌握二级指针的使用。 结构体与共用体(讲授8学时,实验3学时) (58)概述
(59)定义结构体类型变量的方法 (60)结构体类型变量的引用 (61)结构体变量的初始化 (62)结构体数组
(63)指向结构体类型数据的指针
(*) (64)用指针处理链表
(*) (65)共用体
(66)枚举类型
(*)
(67)用typedef定义类型
(*) 具体教学要求:
①理解结构体的概念;
②掌握结构体类型变量的定义、引用和初始化; ③掌握结构体数组的定义、初始化和应用;
④了解指向结构体类型对象的指针变量的定义和引用方法; ⑤理解用指针处理链表的基本思想和方法;
⑥理解共用体的概念及其共用体变量的定义和引用方式; ⑦了解枚举类型和typedef的使用方法。 位运算(讲授2学时,实验1学时)(**) (68)概述 (69)位运算符 (70)位运算举例 (71)位段
具体教学要求:
①了解位运算的概念及其作用;
②了解数据在计算机中的表示和存在形式(原码、反码、补码); ③掌握常用位运算符的作用及其简单应用; ④了解位段的概念。
文件(讲授5学时,实验3学时) (**) (72)C文件概述 (73)文件类型指针
计算机系教学大纲
C语言程序设计
(74)文件的打开和关闭 (75)文件的读写 (76)文件的定位 (77)出错的检测 (78)非缓冲文件系统 (79)文件输入输出小结 具体教学要求:
①了解文件的概念和C语言对文件处理的基本思想和方法; ②理解文件类型指针的概念;掌握文件类型指针变量的定义;
③掌握文件打开、关闭、读写等操作的相应函数的使用方法,并会利用相应的函数编制出简单的文件访问程序。
常见错误和程序调试(讲授1学时)
(80)常见错误分析 (81)程序调试 具体教学要求:
①了解C语言程序常见的错误类型; ②理解其错误原因;
③掌握程序调试的一般步骤。 教材和教学参考书:
教材
(82)谭浩强 编《C程序设计(第二版)清华大学出版社 (83)谭浩强 编《C程序设计》高职类 电子工业出版社 教学参考书
(84)谭浩强等编《C语言程序设计教程》高等教育出版社 (85)钱能 编《C++程序设计》清华大学出版社 (86)严蔚敏等编《数据结构(C语言版)》清华大学出版社 课程考试与评估方法:
课程考试与评估方法:本课程考核成绩包括平时成绩和期末考核成绩两大部分。相关事宜具体说明如下:
1、平时成绩是作业、考勤和期中考试三部分的综合成绩。
①平时作业分为练习作业和记分作业,其作业内容可由各任课教师根据教学大纲和实际情况具体划定,但记分作业不得少于四次;
②期中考试由任课教师根据学生学习情况自行命题,自行组织考试。
2、期末考核成绩是笔试成绩与上机实践成绩相结合,由系相关教师统一组织命题及组织考试。
3、总成绩:平时成绩占30%(具体对30%如何划分,可由任课教师根据实计算机系教学大纲
C语言程序设计
际情况决定),期末考核成绩占70%(对70%划分,可各占一半或
6、4划分)。 补充说明:
1、教学内容中凡未作标记的,均为必讲内容。
2、标有(*)的内容可以作为了解部分。
3、标有(**)的内容可不讲。
4、最后内容(80)、(81)可以作为自学部分。
大纲编写修改时间:2004年12月21日
教学大纲编写教师:任国英 计算机系审查教师;王顺利 教务处审查人签字:梁政 分管教学校长签字:田智