C语言教学大纲1
龙岩学院
教学大纲
2010~2011学年度第一学期
课程名称C程序设计
授课对象2010级计算机专业大一学生
授课教师王雯娟
授课学时108学时(理论72,实践36)
使用教材《C程序设计》谭浩强清华大学出版社1999年12月第2版
《C程序设计(第二版)》教学大纲
一、本课程性质、任务及开课对象
(一)课程的性质:
《C程序设计(第二版)》(以下简称《C语言》)属于高等学校计算机类各专业的毕修课程,其修业年限为一学年。
C语言是近年来国内外得到迅速推广使用的一种现代计算机语言。C语言功能丰富、表达能力强,使用方便、应用面广,目标程序效率高,可移植性好,既有高级语言的优点,又有低级语言的许多特点,特别适合于编写系统软件。本课程的任务是使学生学会C语言的基本结构、编程方法和上机操作,以便为后续计算机课程和应用打下必要的基础。
(二)课程的任务:
1、介绍C语言中的数据类型,运算,语句结构;
1、掌握基本的程序设计的基本方法、过程和技巧;
2、具备熟练应用TURBO C集成环境进行C语言的编写、编译与调试的能力;
3、具备初步的高级语言程序设计能力;
4、培养严肃,认真一丝不苟的工作作风。
(三)开课对象
计算机各专业大学一年级学生。
二、课程教学目标
(一)知识教学目标
1、了解程序设计的基本知识;
2、了解C程序的基本特点、初步知识和构成;
3、掌握顺序结构、选择结构、循环结构的C程序的构成及编程技巧;
4、掌握函数定义、调用和编程技巧;
5、掌握数组的定义和使用;
6、掌握指针的定义和使用;
7、掌握结构体和共用体的定义和变量的使用;
9、了解编译预处理;
10、了解位运算符及运算规律;
11、了解并熟悉文件操作。
(二)能力培养目标
1、具备熟练应用TURBO C集成环境进行C语言的编写、编译与调试的能力;
2、具备初步的高级语言程序设计能力;
3、能够掌握一定软件开发技术,具备一定的软件开发能力;
4、培养严肃,认真一丝不苟的工作作风。
三、课程重点与难点
(一)课程的重点:
1、了解结构化程序设计的基本方法;
2、理解整型、字符型、实型等基本数据类型的概念;
3、理解C程序的基本结构,掌握输入输出函数scanf()和printf()的基本
使用方法;
4、理解数组的基本概念;
5、掌握字符数组与字符串的关系以及字符串的简单处理;
6、理解函数的定义,熟练掌握几种函数的调用方式;
7、理解指针的概念和指针变量的定义;
8、了解结构体类型、共用体类型和枚举类型的变量的定义;
9、了解文件的概念及文件的打开、关闭和读写操作等。
(二)课程的难点:
1、关系运算符和逻辑运算符的使用、关系表达式和逻辑表达式的求值;
2、if语句和switch语句的使用;
3、while,do...while和for这三种循环语句的结构和执行过程;
4、一维数组和二维数组的使用;
5、指针及文件的应用。
四、教学内容和要求
第一章C语言概述(2学时)
理论教学(2学时):
(一)教学内容
1、C语言的历史背景
2、C语言的特点
3、C语言源程序的结构
4、掌握算法的基本概念与特征
5、掌握结构化程序设计的基本概念
重点:C语言程序设计结构和书写风格、C语言程序的编译和执行。(二)教学目标
通过本部分的学习,使学生:
1、了解C语言的背景
2、掌握C语言程序的结构
3、理解C语言程序设计的风格
第二章程序的灵魂—算法(2学时)
理论教学(2学时):
(一)教学内容
1、算法的概念
2、简单算法举例
3、算法的特性
4、怎样表示一个算法
5、结构化程序设计方法
重点:如何用流程图来表示算法。
(二)教学目标
通过本部分的学习,使学生:
1、了解什么是算法
2、熟练掌握用流程图表示一个算法
第三章数据类型、运算符与表达式(8学时)
理论教学(6学时):
(一)教学内容
1、常量与变量
2、整型数据
3、实型数据
4、字符型数据
5、变量赋初值
6、各类数据之间的混合运算
7、算述运算符与算术表达式
8、赋值运算符与赋值表达式
9、逗号运算符与逗号表达式
重点:C语言的数据类型、C语言的常量、C语言变量类型定义和初始化、C语言数据类型之间的转换与运算、算术运算符和表达式、算术运算符的优先级及其结合性。
难点:增1、减1运算符,运算符的优先级及其结合性。
(二)教学目标
通过本部分的学习,使学生:
1、了解基本类型及其常量的表示法
2、掌握变量的定义及初始化方法
3、掌握运算符与表达式的概念
4、理解C语言的自动类型转换和强制类型转和赋值的概念。
实践教学(2学时):
属性:实训
时间:2学时
(一)实践教学内容:
1、Turbo C的启动以及工作环境介绍;
2、掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符;
3、学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和
4、熟悉C程序的编辑、编译、连接和运行的过程;
设备要求:日常实训无分组需求,每人一台电脑,随课实验,个人独立完成任务。
(二)实践考核办法:
1、实验报告占20%,实验过程占50%,实验结果占30%;
2、每单元实验结束为每个同学打出成绩,整个学期的平均成绩作为该同学的技能考核成绩;
3、要求在规定时间内独立完成。
第四章顺序程序设计(6学时)
理论教学(4学时):
(一)教学内容
1.C语句概述
2.赋值语句
3.字符数据的输入与输出
4.格式输入与输出
5.顺序结构程序设计举例
重点:putchar、getchar、printf、scanf函数的使用。
(二)教学目标
通过本部分的学习,使学生:
1.了解C语句的概念及种类;
2.掌握C语言常用的输入输出方式;
3.掌握顺序结构程序设计。
实践教学(2学时):
属性:实训
时间:2学时
(一)实践教学内容:
1.理解C语言程序的顺序结构;
2.掌握常用的C语言语句,熟练应用赋值、输入、输出语句;
设备要求:日常实训无分组需求,每人一台电脑,随课实验,个人独立完成任务。
2、每单元实验结束为每个同学打出成绩,整个学期的平均成绩作为该同学的技能考核成绩;
3、要求在规定时间内独立完成。
第五章选择结构程序设计(10学时)
理论教学(6学时):
(一)教学内容
1、关系运算符与关系表达式
2、逻辑运算符与逻辑表达式
3、if语句
4、switch语句
重点:关系运算符及其优先次序;逻辑运算符及其优先次序;三种类型的if语句结构;switch开关分支语句。
难点:关系运算符和逻辑运算符的使用、关系表达式和逻辑表达式的求值;if语句的嵌套。
(二)教学目标
通过本部分的学习,使学生:
1、熟练掌握if…else的三种语法
2、理解switch语句与break语句的作用
实践教学(4学时):
属性:实训
时间:4学时
(一)实践教学内容:
1、了解C语句表示逻辑量的方法(以0代表“假”以1代表“真”);
2、学会正确使用逻辑运算符和逻辑表达式;
3、熟练掌握if语句和switch语句。
4、掌握选择结构程序设计方法。
设备要求:日常实训无分组需求,每人一台电脑,随课实验,个人独立完成任务。
2、每单元实验结束为每个同学打出成绩,整个学期的平均成绩作为该同学的技能考核成绩;
3、要求在规定时间内独立完成。
第六章循环控制(12学时)
理论教学(8学时):
(一)教学内容
1、概述
2、goto语句以及用goto语句构成循环
3、while语句
4、do-while语句
5、for语句
6、循环的嵌套
7、几种循环的比较
8、break语句和continue语句
9、程序举例
重点:四类循环语句的构造;break语句与continue语句在循环构造中的作用。
难点:while,do...while和for这三种循环语句的结构和执行过程;各类循环语句的嵌套。
(二)教学目标
通过本部分的学习,使学生:
1、熟练掌握用goto、while、do-while、for语句构造循环结构;
2、掌握三种循环(while、do-while、for)语句的互相嵌套;
3、理解break语句和continue语句在循环体中的运用。
实践教学(4学时):
属性:实训
时间:4学时
(一)实践教学内容:
2、掌握for、while、do-while语句的用法
3、了解break、continue在循环语句中的作用
4、掌握循环结构程序设计。
设备要求:日常实训无分组需求,每人一台电脑,随课实验,个人独立完成任务。
(二)实践考核办法:
1、实验报告占20%,实验过程占50%,实验结果占30%。
2、每单元实验结束为每个同学打出成绩,整个学期的平均成绩作为该同学的技能考核成绩;
3、要求在规定时间内独立完成。
第七章函数(10学时)
理论教学(6学时)
(一)教学内容
1、函数的定义
2、函数的参数和函数的值
3、函数的调用
4、函数的嵌套调用
5、函数的递归调用
6、数组作为函数参数
7、变量作用域
8、变量存储类别
重点:函数的概念;函数定义和调用;函数的参数及其传递方式(传值、传址);变量的作用域及其存储类型;函数的返回值及其类型。
难点:变量的作用域及其存储类型。
(二)教学目标
通过本部分的学习,使学生:
1、掌握函数的定义与调用
2、掌握函数参数的传递方式
3、理解变量存储类型的概念及各种存储类型变量的生存期和有效范围
5、了解带参数的main函数
实践教学(4学时):
属性:实训
时间:4学时
(一)实践教学内容:
1、掌握C语言函数的定义方法、函数的声明及函数的调用方法。
2、了解主调函数和被调函数之间的参数传递方式。
设备要求:日常实训无分组需求,每人一台电脑,随课实验,个人独立完成任务。
(二)实践考核办法:
1、实验报告占20%,实验过程占50%,实验结果占30%。
2、每单元实验结束为每个同学打出成绩,整个学期的平均成绩作为该同学的技能考核成绩;
3、要求在规定时间内独立完成。
设备要求:日常实训无分组需求,每人一台电脑,随课实验,个人独立完成任务。
第八章指针(12学时)
理论教学(8学时):
(一)教学内容
1、指针与地址的概念
2、量的指针和指针变量的指针变量
3、数组的指针与指向数组的指针变量
4、字符串的指针与指向字符串的指针变量
5、指针与函数
6、指针数组
7、二级指针
重点:指针的概念;指针变量;指针与数组;指针与函数(指向函数的指针、指针数组)。
难点:指针的概念、多级指针。
(二)教学目标
通过本部分的学习,使学生:
2、掌握指针变量的定义、初始化及指针的运算
3、掌握指针与数组、指针数组、二级指针等知识
4、了解指针与函数的概念
5、掌握指针作为函数参数的应用
实践教学(4学时):
属性:实训
时间:4学时
(一)实践教学内容:
1.掌握指针变量的定义与引用。
2.熟练使用函数指针、数组指针、字符串指针编写应用程序。
设备要求:日常实训无分组需求,每人一台电脑,随课实验,个人独立完成任务。
(二)实践考核办法:
1、实验报告占20%,实验过程占50%,实验结果占30%。
2、每单元实验结束为每个同学打出成绩,整个学期的平均成绩作为该同学的技能考核成绩;
3、要求在规定时间内独立完成。
第九章数组(14学时)
理论教学(8学时):
(一)教学内容
1、一维数组的定义与引用及初始化;
2、一维数组程序设计及应用;
3、二维数组的定义与引用及初始化;
4、二维数组的简单程序设计;
5、字符数组的定义、引用及初始化;
6、字符串的存储及程序设计;
重点:一维数组;二维数组;字符数组;字符串(输入、输出以及处理函数)。
难点:一维数组及二维数组的应用;二维数组的初始化。
(二)教学目标
1.了解一维数组、二维数组的基本概念
2.掌握数组类型变量的定义与引用
3.掌握数组元素的引用
实践教学(4学时):
属性:实训
时间:4学时
(一)实践教学内容:
1、掌握数组的定义、赋值和输入输出的方法;
2、掌握字符数组的使用;
3、掌握与数组有关的算法(例如排序算法)。
设备要求:日常实训无分组需求,每人一台电脑,随课实验,个人独立完成任务。
(二)实践考核办法:
1、实验报告占20%,实验过程占50%,实验结果占30%。
2、每单元实验结束为每个同学打出成绩,整个学期的平均成绩作为该同学的技能考核成绩;
3、要求在规定时间内独立完成。
第十章编译预处理(6学时)
理论教学(4学时):
(一)教学内容
1、宏定义
2、“文件包含”处理
重点:宏定义;文件。
难点:带参数的宏。
(二)教学目标
通过本部分的学习,使学生:
1、了解预处理的概念及特点
2、掌握有参宏与无参宏的定义及使用
3、理解文件包含的使用及效果
实践教学(2学时):
属性:实训
时间:2学时
(一)实践教学内容:
1、了解预处理的概念及特点
2、掌握有参宏与无参宏的定义及使用
3、理解文件包含的使用及效果
设备要求:日常实训无分组需求,每人一台电脑,随课实验,个人独立完成任务。
(二)实践考核办法:
1、实验报告占20%,实验过程占50%,实验结果占30%。
2、每单元实验结束为每个同学打出成绩,整个学期的平均成绩作为该同学的技能考核成绩;
3、要求在规定时间内独立完成。
第十一章结构体与共用体(12学时)
理论教学(8学时):
(一)教学内容
1、结构体类型的说明及结构体类型变量的定义
2、结构体变量的引用
3、结构体变量的初始化
4、结构体数组
5、指针与结构体数组
6、链表
7、共用体
8、typedef
重点:结构体类型及其变量定义;结构变量体的引用和初始化;结构与数组、指针;指针与函数(指向函数的指针、指针数组)。
难点:结构类型定义和结构变量定义的区别。
(二)教学目标
1、掌握结构体和共用体类型的说明、结构体和共用体变量的定义及初始化方法
2、掌握结构体与共用体变量成员的引用
3、领会存储动态分配和释放
4、理解链表的基本概念,掌握基本操作
5、了解枚举类型变量的定义
6、了解typedef的作用
实践教学(4学时):
属性:实训
时间:8学时
(一)实践教学内容:
1、掌握结构体类型和结构体变量的定义。
2、掌握结构类型变量的定义和使用;
3、掌握链表的概念,初步学会对链表进行操作;
4、掌握共用体的概念和使用。
设备要求:日常实训无分组需求,每人一台电脑,随课实验,个人独立完成任务。
(二)实践考核办法:
1、实验报告占20%,实验过程占50%,实验结果占30%。
2、每单元实验结束为每个同学打出成绩,整个学期的平均成绩作为该同学的技能考核成绩;
3、要求在规定时间内独立完成。
第十二章位运算(4学时)
理论教学(2学时):
(一)教学内容
1、常用位运算;
2、位运算符;
3、位运算与位段;
4、位结构;
重点:二进制位运算;位复合赋值运算符。
(二)教学目标
通过本部分的学习,使学生:
1、掌握常用位运算的类型和位运算符的种类和优先级;
2、了解位运算与位段;
3、掌握位结构定义的一般形式和用法;
实践教学(2学时):
属性:实训
时间:2学时
(一)实践教学内容:
1、掌握常用位运算的类型和位运算符的种类和优先级;
2、了解位运算与位段;
3、掌握位结构定义的一般形式和用法;
设备要求:日常实训无分组需求,每人一台电脑,随课实验,个人独立完成任务。
(二)实践考核办法:
1、实验报告占20%,实验过程占50%,实验结果占30%。
2、每单元实验结束为每个同学打出成绩,整个学期的平均成绩作为该同学的技能考核成绩;
3、要求在规定时间内独立完成。
第十三章文件(8学时)
理论教学(6)学时:
(一)教学内容
1、文件类型指针
2、文件的打开与关闭
3、文件的读写
重点:文件的概念;缓冲文件系统。
难点:非缓冲文件系统。
(二)教学目标
通过本部分的学习,使学生:
2、掌握缓冲文件系统的使用
实践教学(2学时):
属性:实训
时间:2学时
(一)实践教学内容:
1、掌握文件和文件指针的概念以及文件的定义方法。
2、了解文件打开和关闭的概念和方法。
3、掌握有关文件的函数。
设备要求:日常实训无分组需求,每人一台电脑,随课实验,个人独立完成任务。
(二)实践考核办法:
1、实验报告占20%,实验过程占50%,实验结果占30%。
2、每单元实验结束为每个同学打出成绩,整个学期的平均成绩作为该同学的技能考核成绩;
3、要求在规定时间内独立完成。
五、总课时及按章课时划分表
序号课程内容
学时数
合计
理论
教学
实践
教学
实训
教学
教学实习
1C语言概述22 2程序的灵魂—算法22
3数据类型、运算符与表
达式
862
4顺序结构642 5选择结构664 6循环结构1284 7数组1286 8函数1264
9预处理命令642
10指针1884
11结构体、共用体1284
12位运算422
13文件862
总计1087236
六、补充说明
1、本课程与其他课程的联系
《计算机应用基础》是《C语言》的先修课。本课程是后续课程《数据结构》及《visual c++程序设计》、《JAVA程序设计》的重要基础,为今后高质量完成毕业设计打下坚实的基础。
2、考核要求
本课程为考试课。
(1)考核包括,期末考核80%(其中理论考核60%,技能考核40%),平时20%
(2)理论考核采用闭卷形式,时间60分钟
(3)题型为填空、选择、程序设计
(4)考试内容分配:基础60%,综合40%
(5)试卷难度分配:基本内容60%,适中内容30%,难度内容10%
(6)技能考核方式是上机操作,主要考核程序改错和编程。
3、教材及教学参考书目
(一)教材:《C程序设计》谭浩强清华大学出版社1999年12月第2版
(二)教学参考书目:
《全国计算机等级考试二级教程—C语言程序设计》教育部考试中心高等教育出版社《C程序设计习题解答与上机指导》谭浩强清华大学出版社
《C语言解析教程》AlKelley等机械工业出版社,
《C语言程序设计思想与实践》肖炜等冶金工业出版社
《上机考试典型逼真试题及精解》,全国计算机等级考试,中国宇航出版社