江苏广播电视大学
《 C语言程序设计》课程教学大纲
第一部分 大纲说明
一 .课程性质、任务与目的
《C语言程序设计》是江苏广播电视大学理工科专业的一门计算机基础教育课。主要任务是介绍C语言中的数据类型、运算符、表达式、数据结构、语法结构及其程序设计的基本方法。C语言是一种通用程序设计语言,其语言简洁、数据类型丰富、硬件控制能力强、使用方便灵活、应用领域广泛、具有结构化的控制语句、适合于模块化程序设计、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。开设《C语言程序设计》课程的目的是让学生学习一门高级程序设计语言,掌握高级程序设计的基本概念、基本思想、基本方法和基本技能,进而学会利用C语言解决一般实际应用问题,培养学生分析问题和解决问题的能力,并为后续的专业课程奠定程序设计基础。
二.与其他课程的关系
本课程原则上与其它程序设计语言课程没有先后关系。但是,考虑到实际教学效果和教学效率,在学习本课程之前要对计算机的相关硬件和软件基础知识有所掌握。因此,这个教学大纲是在学生已掌握一定软硬件基础知识的前提下制定的。
三.课程的主要特点
《C语言程序设计》是一门实践性很强的课程,要求在教学过程中必须十分重视实践环节。尤其是要注重上机实验的重要性,必须通过上机操作才能真正掌握所学的知识和技能,所以要特别强调讲授与上机操作相结合,要保证学生有充分的上机条件,实验也将作为考核成绩的依据。
四.课程的基本教学要求
1.了解 C语言的特点、用途以及上机运行C语言程序的基本步骤;
2.掌握 C语言各种数据类型的定义与使用方法;
3.掌握 C语言的三种基本结构,并能编制简单程序;
4.掌握 C语言函数的定义、调用及说明的方法;
5.掌握 C语言指针、结构与共用体变量的使用方法,能正确运用它们。
6.掌握 C语言中文件的操访问作方法,能正确应用它们。
教学具体要求在每一章教学内容之后给出,大体分为三个层次:了解、理解、掌握。它们的含义大致为:了解就是熟悉相关基础知识,懂得基本概念和基本方法;理解就是能够正确领悟课程内容,对各知识点有一定深度的见解;掌握就是在理解课程内容的前提下能够运用所学知识解决实际问题,并具有一定的创造性。
第二部分 媒体使用和教学过程建议
一.学时分配
本课程共 90 学时 , 5 学分。 其中课内学时 68,实验学时22,具体学时大致分配如下(供参考):
章节 |
教学内容 |
课内学时 |
实验学时 |
第一章 |
C语言概述 |
2 |
3 |
第二章 |
程序的灵魂 — 算法 |
2 |
|
第三章 |
数据类型、运算符与表达式 |
5 |
|
第四章 |
简单的 C程序设计-顺序程序设计 |
4 |
3 |
第五章 |
选择结构程序设计 |
4 |
|
第六章 |
循环控制 |
6 |
3 |
第七章 |
数组 |
5 |
3 |
第八章 |
函数 |
8 |
3 |
第九章 |
编译预处理 |
2 |
|
第十章 |
指针 |
9 |
4 |
第十一章 |
结构体与共用体 |
6 |
|
第十二章 |
位运算 |
2 |
3 |
第十三章 |
文件 |
5 |
|
第十四章 |
C++对C的扩充 |
3 |
|
第十五章 |
C++的面向对象基础 |
4 |
|
第十六章 |
常见错误和程序调试 |
1 |
|
合 计 |
68 |
22 |
|
二.多种媒体教材的说明及教学环节
本课程目前主要采用文字教材和配套指导教材(《C程序设计》(第二版) 清华大学出版社),以音像教材及其它媒体为辅。文字教材应包含所有教学内容,叙述要条理清楚,详略得当,注意对C语言内容的取舍,所有程序都要上机调试通过,内容组织要深入浅出,适合自学;音像教材应突出重点和难点,二者可以相互补充配合,但其仍应以文字教材为主要依据。
面授应指导和帮助学生掌握重点,突破难点,分析编程的思路与方法,指出常见的错误。上机操作应有实验教师指导。
三.教学过程建议
由于理工科专业的教学计划中第一门高级程序设计语言就是《 C 语言程序设计》,而目前多数 C 语言教材是基于学过一门高级程序设计语言后编写的。故教材中缺乏有关程序设计的基础知识,而一些内容又有一定的深度,因此在教学过程中首先要着眼于程序设计的基础知识、基本概念、基本理论的熟练掌握以及阅读和分析 C 语言程序等基本技能的锻炼,然后再逐步提高编制简单 C 语言程序的能力,要做到“四多”,即:多阅读、多分析、多思考、多编程。
四.考核及成绩
本课程考核成绩包括笔试成绩和平时成绩两部分。其中平时成绩应是作业和实验两部分的综合成绩。相关事宜具体说明如下:
1. 笔试由省电大统一命题及组织考试。
2. 平时作业要按时保质保量地完成。
3. 做实验要写实验报告,实验未完成者不得参加考试,成绩以 0 分处理。
4. 实践环节由各教学点组织考查,并由认课老师在笔试前将平时成绩上报教务处。
5. 总成绩:笔试成绩占 80% ,平时成绩占 20% 。
第三部分 教学内容和教学要求
第一章 C语言概述
(一) 教学内容
1 C 语言出现的历史背景
2 C 语言的特点
3 简单的 C 程序介绍与分析
4 C 程序的上机步骤
( 二 ) 教学要求
了解 C 语言的特点及 C 语言简单程序的构成,掌握 C 程序的编辑、编译、链接和运行的过程。
第二章 程序的灵魂 ---- 算法
(一) 教学内容
1 算法的概念
2 简单算法举例
3 算法的特性
4 怎样表示一个算法
5 结构化(过程化)程序设计方法
( 二 ) 教学要求
了解算法的概念和特性,掌握常用的算法表示方法,了解结构化程序设计方法的概念。
第三章 数据类型、运算符与表达式
( 一 ) 教学内容
1 C 的数据类型概述
2 常量与变量
3 整型数据
5 字符型数据
6 变量赋初值
7 各类数值型数据间的混合运算
8 算术运算符和算术表达式
9 赋值运算符和赋值表达式
10 逗号运算符和逗号表达式
( 二 ) 教学要求
理解整型、实型、字符型、等基本数据类型的概念,掌握这些类型的常量和变量的使用及其运算操作,掌握算术运算符和赋值运算符的使用、算术表达式和赋值表达式的求值,了解运算符的优先级和结合性,以及表达式使用中的副作用。
第四章 最简单的 C 程序设计 --- 顺序程序设计
( 一 ) 教学内容
1 C 语句概述和程序的三种基本结构
2 赋值语句
3 数据输入输出的概念及在 C 语言中的实现
4 字符数据的输入输出 putchar 函数和 getchar 函数
5 格式输入与输出 printf 和 scanf
( 二 ) 教学要求
了解 C 语言程序的构成及语句的分类,理解 C 语言自顶向下的结构化程序设计方法及其特点,掌握 C 语言程序的顺序、选择、循环等三种基本结构及其特征,掌握 C 语言程序中数据输入、数据输出的常用控制方法并能灵活运用到程序设计中。
第五章 选择结构程序设计
( 一 ) 教学内容
1 关系运算符和算术表达式
2 逻辑运算符和逻辑表达式
3 if 语句
4 switch 语句
5 C 语言程序举例
( 二 ) 教学要求
理解关系运算符和逻辑运算符的功能和作用,掌握关系表达式和逻辑表达式的求值,掌握 if 语句和 switch 语句的使用,会在程序中利用它们实现单分支或多分支控制,掌握选择结构的基本程序设计方法。
第六章 循环控制
( 一 ) 教学内容
1 概述
2 goto 语句以及用 goto 语句构成循环
3 while 语句
4 do-while 语句
5 for 语句
6 循环的嵌套
7 几种循环的比较
8 break 语句和 continue 语句
9 程序举例
( 二 ) 教学要求
了解 goto 语句的用法以及用 goto 语句构成循环的程序举例,掌握 while , do...while 和 for 这三种循环语句的结构和执行过程,会在程序中利用它们实现单重或多重循环控制,理解 continue 语句和 break 语句的作用。
第七章 数组
( 一 ) 教学内容
1 一维数组的定义和引用
2 二维数组的定义和使用
3 字符数组
( 二 ) 教学要求
理解数组的基本概念,掌握一维数组和二维数组的使用,掌握字符数组与字符串的关系以及字符串的简单处理,会分析、编写利用数组进行数据存储和处理的简单程序。
第八章 函数
( 一 ) 教学内容
1 概述
2 函数定义的一般形式
3 函数参数和函数的值
4 函数的调用
5 函数的嵌套调用
6 函数的递归调用
7 数组作为函数参数
8 局部变量和全局变量
9 动态存储变量和静态存储变量
10 内部函数和外部函数
( 二 ) 教学要求
掌握函数的定义,函数的原形,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系,理解全局变量和局部变量及动态存储变量和静态存储变量的概念,掌握变量的作用域与生存期,了解函数的作用域。
第九章 编译预处理
( 一 ) 教学内容
1 宏定义
2 “文件包含”处理
3 条件编译
( 二 ) 教学要求
理解编译预处理的功能和作用,掌握宏定义和“文件包含”预处理的使用方法,了解条件编译的作用和用法。
第十章 指针
( 一 ) 教学内容
1 指针的概念
2 变量的指针和指向变量的指针变量
3 数组的指针和指向数组的指针变量
4 字符串的指针和指向字符串的指针变量
5 函数的指针和指向函数的指针变量
6 返回指针值的函数
7 指针数组和指向指针的指针
8 有关指针的数据类型和指针运算的小结
( 二 ) 教学要求
理解指针、地址、指针类型、 void 指针类型、空指针等概念,掌握指针变量的定义和初始化、指针的间接访问、指针的加减运算和指针表达式,掌握指针与数组、函数、字符串、自由空间等的联系,了解引用变量、值传送、引用传送的概念,掌握引用参数的使用。
第十一 章 结构体与共用体
(一)教学内容
1 概述
2 定义结构体类型变量的方法
3 结构体类型变量的引用
4 结构体变量的初始化
5 结构体数组
6 指向结构体类型数据的指针
7 用指针处理链表
8 共用体
9 枚举类型
10 用 typedef定义类型
(二)教学要求
理解结构体的概念,掌握结构体类型变量的定义、引用和初始化,掌握结构体数组的定义和初始化,了解指向结构体类型指针的概念,理解用指针处理链表的基本思想和方法,理解共用体的概念,掌握共用体类型和变量的定义及其引用方式,了解枚举类型和 typedef 的使用方法。
第十二章 位运算
(一)教学内容
1 概述
2 位运算符
3 位运算举例
4 位段
(二) 教学要求
了解位运算的概念及其作用,了解数据在计算机中的表示和存在形式(原码、反码、补码),掌握常用位运算符的作用及其应用举例,了解位段的概念。
第十三章 文件
(一) 教学内容
1 C文件概述
2 文件类型指针
3 文件的打开与关闭
4 文件的读写
5 文件的定位
6 出错的检测
7 非缓冲文件系统
8 文件输入输出小结
(二) 教学要求
了解文件的概念及 C语言对文件处理的基本思想和方法,理解文件类型指针的概念,掌握文件类型指针变量的定义,掌握打开、关闭、读写等文件操作的相应函数的使用方法,会利用相应的函数编制出简单的文件访问程序。
第十四章 C++对C的扩充
(一)教学内容
1 C++的特点
2 最简单的 C++程序
3 C++的输入输出
4 函数的重载
5 带缺省参数的函数
6 变量的引用类型
7 内联函数
8 作用域运算符
9 动态分配 /释放运算符new和delete
(二)教学要求
了解C++对C的扩充和C++的特点以及简单的C++的程序和结构,掌握C++的标准输入输出、函数的重载、带缺省参数的函数、变量的引用、内联函数和操作符new和delete的使用方法。
第十五章 C++的面向对象基础
(一)教学内容
1 面向对象的概述
2 类和对象
3 构造函数和析构函数
4 继承与派生
(二)教学要求
理解面向对象的概念,类和对象的概念;掌握构造函数和析构函数的定义和调用;理解继承与派生的相关概念。
第十六章 常见错误和程序调试
(一)教学内容
1 常见错误分析
2 程序调试
(二)教学要求
了解C语言程序常见的错误类型,理解其错误原因,掌握程序调试的一般步骤。
第四部分 实验部分
实验是学习该课程时非常重要的教学环节,通过上机实验能够加深理解和巩固书本上所学的知识,能够提高动手操作的能力以及分析问题和解决问题的能力。具体实验环境、实验内容、实验要求和实验安排在该课程的实验教材中已经给出,请各地教学班按照实验教材及教学大纲中所给的学时分配具体安排学生上机实验。