《C语言程序设计》课程教学大纲 (C Language Programming) 学时数:64 其中:实验学时:32 课外学时:0 学分数:4 适用专业:非计算机专业 执笔者:林冬梅 编写日期:2010年12月 一、课程的性质、目的和任务 本课程是非计算机专业的公共基础课程,通过本课程的学习,应使学生掌握传统的结构 化程序设计的一般方法,以C语言为基础,培养学生严谨的程序设计思想、灵活的思维方 式及较强的动手能力,在此基础上,让学生逐渐掌握复杂软件的设计和开发手段,为后续专 业课程的学习打下扎实的理论和实践基础,因此,本课程是一门理论性和实践性均较强的课 程。 二、课程教学的基本要求 (一)了解C语言的特点、用途以及上机运行C语言程序的基本步骤: (二)掌握C语言各种数据类型的定义与使用方法: (三)掌握C语言的三种基本结构,并能编制简单程序: (四)掌握C语言函数的定义、调用及说明的方法: (五)掌握C语言结构体、文件的概念及使用方法: (六)了解C语言指针、位运算的概念及使用。 教学具体要求在每一章教学内容之后给出,大体分为三个层次:了解、理解、掌握。它 们的含义大致为:了解就是熟悉相关基础知识,懂得基本概念和基本方法:理解就是能够正 确领悟课程内容,对各知识点有一定深度的见解:掌握就是在理解课程内容的前提下能够运 用所学知识解决实际问题,并具有一定的创造性。 三、课程的教学内容、重点和难点 第一章C语言概述(1学时) 一、C语言出现的历史背景 了解C语言的发展历史背景以及C语言的各种标准。 二、C语言的特点 了解C语言的主要特点以及和其他高级语言的简单比较。 三、简单的C程序介绍与分析 通过对简单C程序的分析,了解C语言程序的基本构成。 四、运行C程序的步骤与方法
《C 语言程序设计》课程教学大纲 (C Language Programming) 学 时 数:64 其中:实验学时:32 课外学时:0 学 分 数:4 适用专业:非计算机专业 执 笔 者:林冬梅 编写日期:2010 年 12 月 一、课程的性质、目的和任务 本课程是非计算机专业的公共基础课程,通过本课程的学习,应使学生掌握传统的结构 化程序设计的一般方法,以 C 语言为基础,培养学生严谨的程序设计思想、灵活的思维方 式及较强的动手能力,在此基础上,让学生逐渐掌握复杂软件的设计和开发手段,为后续专 业课程的学习打下扎实的理论和实践基础,因此,本课程是一门理论性和实践性均较强的课 程。 二、课程教学的基本要求 (一)了解 C 语言的特点、用途以及上机运行 C 语言程序的基本步骤; (二)掌握 C 语言各种数据类型的定义与使用方法; (三)掌握 C 语言的三种基本结构,并能编制简单程序; (四)掌握 C 语言函数的定义、调用及说明的方法; (五)掌握 C 语言结构体、文件的概念及使用方法; (六)了解 C 语言指针、位运算的概念及使用。 教学具体要求在每一章教学内容之后给出,大体分为三个层次:了解、理解、掌握。它 们的含义大致为:了解就是熟悉相关基础知识,懂得基本概念和基本方法;理解就是能够正 确领悟课程内容,对各知识点有一定深度的见解;掌握就是在理解课程内容的前提下能够运 用所学知识解决实际问题,并具有一定的创造性。 三、课程的教学内容、重点和难点 第一章 C 语言概述(1 学时) 一、C 语言出现的历史背景 了解 C 语言的发展历史背景以及 C 语言的各种标准。 二、C 语言的特点 了解 C 语言的主要特点以及和其他高级语言的简单比较。 三、简单的 C 程序介绍与分析 通过对简单 C 程序的分析,了解 C 语言程序的基本构成。 四、运行 C 程序的步骤与方法
(一)运行C程序的步骤 掌握C程序运行的基本步骤:源程序的编辑、编译、链接和运行。 (二)上机运行C程序的方法 掌握在TC和VC编译环境中运行程序的基本方法。 重点:C程序的编辑、编译、链接和运行的过程 难点:理解C程序和C+程序的编译、链接的作用 第二章数据类型、运算符与表达式(3学时) 一、C的数据类型 (一)数据类型的概述 概述C语言中的所有基本数据类型。 (二)常量与变量 掌握C语言中常量和变量的基本概念、符号常量的定义及使用、合法的标识符 的定义。 (三)整型数据 掌握整型类型的常量和变量的使用及其运算操作 (四)实型数据 掌握实型类型的常量和变量的使用及其运算操作 (五)字符型数据 掌握字符型的常量和变量的使用及其运算操作 二、变量赋初值以及数据间的混合运算 (一)变量赋初值 掌握变量赋初值的基本方法。 (二)各类型数据间的混合运算 掌握各类型数据间混合运算时的转换规则。 三、常用运算符和表达式 (一)算术运算符和算术表达式 掌握算术运算符的使用和算术表达式的求值,了解运算符的优先级和结合性。 (二)赋值运算符和赋值表达式 掌握赋值运算符的使用和赋值表达式的求值,了解运算符的优先级和结合性。 (三)逗号运算符和逗号表达式 掌握逗号运算符的使用和逗号表达式的求值,了解运算符的优先级和结合性。 重点:C的数据类型、常量与变量、算术运算符和算术表达式、赋值运算符和赋 值表达式、运算符的优先级和结合性 难点:自增、自减运算符 第三章 顺序程序设计(2学时) 一、C语句概述
(一)运行 C 程序的步骤 掌握 C 程序运行的基本步骤:源程序的编辑、编译、链接和运行。 (二)上机运行 C 程序的方法 掌握在 TC 和 VC 编译环境中运行程序的基本方法。 重点:C 程序的编辑、编译、链接和运行的过程 难点:理解 C 程序和 C++程序的编译、链接的作用 第二章 数据类型、运算符与表达式(3 学时) 一、C 的数据类型 (一)数据类型的概述 概述 C 语言中的所有基本数据类型。 (二)常量与变量 掌握 C 语言中常量和变量的基本概念、符号常量的定义及使用、合法的标识符 的定义。 (三)整型数据 掌握整型类型的常量和变量的使用及其运算操作 (四)实型数据 掌握实型类型的常量和变量的使用及其运算操作 (五)字符型数据 掌握字符型的常量和变量的使用及其运算操作 二、变量赋初值以及数据间的混合运算 (一)变量赋初值 掌握变量赋初值的基本方法。 (二)各类型数据间的混合运算 掌握各类型数据间混合运算时的转换规则。 三、常用运算符和表达式 (一)算术运算符和算术表达式 掌握算术运算符的使用和算术表达式的求值,了解运算符的优先级和结合性。 (二)赋值运算符和赋值表达式 掌握赋值运算符的使用和赋值表达式的求值,了解运算符的优先级和结合性。 (三)逗号运算符和逗号表达式 掌握逗号运算符的使用和逗号表达式的求值,了解运算符的优先级和结合性。 重点:C 的数据类型、常量与变量、算术运算符和算术表达式、赋值运算符和赋 值表达式、运算符的优先级和结合性 难点:自增、自减运算符 第三章 顺序程序设计(2 学时) 一、C 语句概述
了解C语言程序的构成及语句的分类,初步了解C语言程序的顺序、选择、循 环等三种基本结构及特征。 二、几种顺序执行的语句 (一)赋值语句 掌握C语言中赋值语句的基本特点和功能。 (二)数据的输入和输出 掌握C语言程序中数据输入、数据输出的常用控制方法,以及格式的输入和输 出方法。 三、程序举例 通过程序举例,理解C语言自顶向下的结构化程序设计方法及特点,并能将几 种顺序执行的语句灵活运用到程序设计中。 重点:顺序结构中赋值语句、数据输出、输入 难点:格式的输入和输出 第四章分支程序设计(3学时) 一、关系运算符和算术表达式 理解关系运算符的功能和作用,掌握关系表达式的求值。 二、逻辑运算符和逻辑表达式 理解逻辑运算符的功能和作用,掌握逻辑表达式的求值。 三、if语句、条件运算符和switch语句 掌握if语句、条件运算符和switch语句的基本形式和使用方法。 四、C语言程序举例 通过程序举例,学会在程序中利用if、switch语句实现单分支或多分支控制,掌 握选择结构的基本程序设计方法。 重点:关系表达式和逻辑表达式、if语句、switch语句 难点:在程序中实现单分支或多分支控制 第五章 循环程序设计(4学时) 一、概述 了解使用循环结构的必要性和实现循环结构有几种基本语句。 二、实现循环结构的语句 (一)while语句 掌握while循环语句的结构和执行过程。 (二)do…while语句 掌握do..while的结构和执行过程。 (三)for语句 掌握for循环语句的结构和执行过程
了解 C 语言程序的构成及语句的分类,初步了解 C 语言程序的顺序、选择、循 环等三种基本结构及特征。 二、几种顺序执行的语句 (一)赋值语句 掌握 C 语言中赋值语句的基本特点和功能。 (二)数据的输入和输出 掌握 C 语言程序中数据输入、数据输出的常用控制方法,以及格式的输入和输 出方法。 三、程序举例 通过程序举例,理解 C 语言自顶向下的结构化程序设计方法及特点,并能将几 种顺序执行的语句灵活运用到程序设计中。 重点:顺序结构中赋值语句、数据输出、输入 难点:格式的输入和输出 第四章 分支程序设计(3 学时) 一、关系运算符和算术表达式 理解关系运算符的功能和作用,掌握关系表达式的求值。 二、逻辑运算符和逻辑表达式 理解逻辑运算符的功能和作用,掌握逻辑表达式的求值。 三、if 语句、条件运算符和 switch 语句 掌握 if 语句、条件运算符和 switch 语句的基本形式和使用方法。 四、C 语言程序举例 通过程序举例,学会在程序中利用 if、switch 语句实现单分支或多分支控制,掌 握选择结构的基本程序设计方法。 重点:关系表达式和逻辑表达式、if 语句、switch 语句 难点:在程序中实现单分支或多分支控制 第五章 循环程序设计(4 学时) 一、概述 了解使用循环结构的必要性和实现循环结构有几种基本语句。 二、实现循环结构的语句 (一)while 语句 掌握 while 循环语句的结构和执行过程。 (二)do…while 语句 掌握 do…while 的结构和执行过程。 (三)for 语句 掌握 for 循环语句的结构和执行过程
三、循环的其他知识 (一)循环的嵌套 掌握几种循环的嵌套形式和含义。 (二)break语句和continue语句 理解continue语句和break语句的作用。 四、程序举例 通过程序举例,学会在程序中利用循环语句实现单重或多重循环控制,掌握循环 结构的基本程序设计方法。 重点:while语句、do.while语句、for语句、break语句和continue语句、循 环的嵌套 难点:循环的嵌套 第六章 函数(6学时) 一、函数的概述 (一)函数定义的一般形式 掌握函数定义的一般形式。 (二)函数参数和函数的值 掌握函数的形式参数和实际参数之间的关系,函数的原形,函数的返回值。 二、函数的调用 (一)函数调用的一般形式 掌握函数调用的一般形式,对被调用函数的声明和函数的原型。 (二)函数的嵌套调用 掌握函数嵌套调用的一般形式和调用关系。 (三)函数的递归调用 掌握函数递归调用的形式、调用关系以及执行流程。 三、数组作为函数参数 掌握数组元素和数组名作为函数参数的形式和参数传递的实质。 四、局部变量和全局变量 (一)局部变量 理解局部变量的概念以及作用范围。 (二)全局变量 理解全局变量的概念以及作用范围。 重点:函数的定义、函数的返回值、函数的调用、函数的形式参数和实际参数之 间的关系、函数的嵌套调用、函数的递归调用、局部变量和全局变量 难点:函数的递归调用、局部变量和全局变量
三、循环的其他知识 (一)循环的嵌套 掌握几种循环的嵌套形式和含义。 (二)break 语句和 continue 语句 理解 continue 语句和 break 语句的作用。 四、程序举例 通过程序举例,学会在程序中利用循环语句实现单重或多重循环控制,掌握循环 结构的基本程序设计方法。 重点:while 语句、do…while 语句、for 语句、break 语句和 continue 语句、循 环的嵌套 难点:循环的嵌套 第六章 函数(6 学时) 一、函数的概述 (一)函数定义的一般形式 掌握函数定义的一般形式。 (二)函数参数和函数的值 掌握函数的形式参数和实际参数之间的关系,函数的原形,函数的返回值。 二、函数的调用 (一)函数调用的一般形式 掌握函数调用的一般形式,对被调用函数的声明和函数的原型。 (二)函数的嵌套调用 掌握函数嵌套调用的一般形式和调用关系。 (三)函数的递归调用 掌握函数递归调用的形式、调用关系以及执行流程。 三、数组作为函数参数 掌握数组元素和数组名作为函数参数的形式和参数传递的实质。 四、局部变量和全局变量 (一)局部变量 理解局部变量的概念以及作用范围。 (二)全局变量 理解全局变量的概念以及作用范围。 重点:函数的定义、函数的返回值、函数的调用、函数的形式参数和实际参数之 间的关系、函数的嵌套调用、函数的递归调用、局部变量和全局变量 难点:函数的递归调用、局部变量和全局变量
第七章数组(4学时) 一、数组的定义和引用 (一)一维数组的定义和引用 掌握一维数组的定义、引用和初始化方法。 (二)二维数组的定义和使用 掌握二维数组的定义、引用和初始化方法。 二、字符数组 (一)字符数组的定义和使用 掌握字符数组的定义、使用方法,掌握字符数组与字符串的关系。 (二)字符串处理函数 掌握使用字符串处理函数进行字符串的简单处理。 重点: 一维数组和二维数组的使用、字符数组 难点: 二维数组的使用 第八章 结构体(3学时) 一、结构体 (一)定义结构体类型变量的方法 理解构造类型的概念,掌握结构体类型变量定义的几种基本形式。 (二)结构体类型变量的引用 掌握结构体类型变量的引用形式。 (三)结构体变量的初始化 掌握结构体类型变量初始化的方式。 (四)结构体数组 掌握结构体数组的定义和初始化。 二、用typedef定义类型 了解用typedef定义类型的使用方法。 重点:结构体类型变量的定义、引用和初始化 难点:结构体数组 第九章编译预处理(1学时) 一、宏定义 理解编译预处理的功能和作用,掌握宏定义的使用方法。 二、“文件包含”处理 掌握“文件包含”处理的使用方法
第七章 数组(4 学时) 一、数组的定义和引用 (一)一维数组的定义和引用 掌握一维数组的定义、引用和初始化方法。 (二)二维数组的定义和使用 掌握二维数组的定义、引用和初始化方法。 二、字符数组 (一)字符数组的定义和使用 掌握字符数组的定义、使用方法,掌握字符数组与字符串的关系。 (二)字符串处理函数 掌握使用字符串处理函数进行字符串的简单处理。 重点:一维数组和二维数组的使用、字符数组 难点:二维数组的使用 第八章 结构体(3 学时) 一、结构体 (一)定义结构体类型变量的方法 理解构造类型的概念,掌握结构体类型变量定义的几种基本形式。 (二)结构体类型变量的引用 掌握结构体类型变量的引用形式。 (三)结构体变量的初始化 掌握结构体类型变量初始化的方式。 (四)结构体数组 掌握结构体数组的定义和初始化。 二、用 typedef 定义类型 了解用 typedef 定义类型的使用方法。 重点:结构体类型变量的定义、引用和初始化 难点:结构体数组 第九章 编译预处理(1 学时) 一、宏定义 理解编译预处理的功能和作用,掌握宏定义的使用方法。 二、“文件包含”处理 掌握“文件包含”处理的使用方法
重点:宏定义、“文件包含”处理 难点:带参数的宏定义 第十章文件(3学时) 一、C文件概述 了解文件的概念及C语言对文件处理的基本思想和方法,理解文件类型指针的 概念,掌握文件类型指针变量的定义方法。 二、文件的操作 (一)文件的打开与关闭 掌握打开、关闭等文件操作的相应函数的使用方法。 (二)文件的读写 掌握读写等文件操作的相应函数的使用方法。 (三)文件的定位 理解文件的定位等文件操作的相应函数的使用方法。 重点:文件类型指针的概念、文件类型指针变量的定义、打开、关闭、读写等文 件操作的相应函数的使用方法 难点:文件类型指针的概念 第十一章 位运算(1学时) 一、 位运算符 了解位运算的概念及其作用,掌握常用位运算符的作用及其应用举例。 重点:位运算的概念及其作用 难点:位运算的概念 第十二章指针(2学时) 一、指针的概念 理解指针、地址、指针类型、void指针类型、空指针等概念。 二、变量的指针和指向变量的指针变量 理解变量的指针的概念,掌握指向变量的指针变量的定义和使用。 重点:指针的概念、变量的指针和指向变量的指针变量、 难点:指针的概念
重点:宏定义、“文件包含”处理 难点:带参数的宏定义 第十章 文件(3 学时) 一、C 文件概述 了解文件的概念及 C 语言对文件处理的基本思想和方法,理解文件类型指针的 概念,掌握文件类型指针变量的定义方法。 二、文件的操作 (一)文件的打开与关闭 掌握打开、关闭等文件操作的相应函数的使用方法。 (二)文件的读写 掌握读写等文件操作的相应函数的使用方法。 (三)文件的定位 理解文件的定位等文件操作的相应函数的使用方法。 重点:文件类型指针的概念、文件类型指针变量的定义、打开、关闭、读写等文 件操作的相应函数的使用方法 难点:文件类型指针的概念 第十一章 位运算(1 学时) 一、位运算符 了解位运算的概念及其作用,掌握常用位运算符的作用及其应用举例。 重点:位运算的概念及其作用 难点:位运算的概念 第十二章 指针(2 学时) 一、指针的概念 理解指针、地址、指针类型、void 指针类型、空指针等概念。 二、变量的指针和指向变量的指针变量 理解变量的指针的概念,掌握指向变量的指针变量的定义和使用。 重点:指针的概念、变量的指针和指向变量的指针变量、 难点:指针的概念
四、课程各教学环节要求 (一)理论课:要求学生课前预习,认真听课。要求教师要突出重点,突破难点,分析编程 的思路与方法,指出常见的错误,从而使学生深刻理解和牢固掌握程序设计的一般方 法。 (二)实验课:要求学生按照教师的要求,上机完成实验任务。上机结束后,应整理出实验 报告,实验报告的内容应包括:题目、程序清单、运行结果及对运行情况的分析和上 机体会。要求教师能快速准确找出学生程序出错的原因,并启发学生逐步找出错误并 纠正错误。 (三)考核及成绩:本课程考核成绩包括上机考试、平时成绩两部分。其中平时成绩应是作 业和实验两部分的综合成绩。相关事宜具体说明如下: 1.机试统一命题及组织考试。 2.平时作业要按时保质保量地完成。 3.实验完成后要提交源程序。 4.总成绩:机试成绩占70%,平时成绩占30%。 五、学时分配 本课程4学分,共64学时,其中理论32学时,实验32学时,具体学时大致分配如下 (供参考): 各教学环节学时分配 章节 主要内容 作业 备 讲 实 讨习课其 小 题量 注 授 验论 题外他计 第一章 C语言概述 1 第二章 数据类型、运算符与表达式 3 8 第三章 顺序程序设计 2 该 8 作 第四章 分支程序设计 3 15 业 题 第五章 循环程序设计 3 20 部 第六章 函数 6 18 分 第七章 数组 4 22 在 第八章 结构体 3 10 上 第九章 编译预处理 1 25 机 课 第十章 文件 3 12 第十一章 位运算 1 5 调 试 第十二章 指针 2 8 合 计 32 155 六、课程与其它课程的联系 本课程的先修课为《大学计算机基础》,在学习本课程之前要对计算机的相关硬件和软
四、课程各教学环节要求 (一)理论课:要求学生课前预习,认真听课。要求教师要突出重点,突破难点,分析编程 的思路与方法,指出常见的错误,从而使学生深刻理解和牢固掌握程序设计的一般方 法。 (二)实验课:要求学生按照教师的要求,上机完成实验任务。上机结束后,应整理出实验 报告,实验报告的内容应包括:题目、程序清单、运行结果及对运行情况的分析和上 机体会。要求教师能快速准确找出学生程序出错的原因,并启发学生逐步找出错误并 纠正错误。 (三)考核及成绩:本课程考核成绩包括上机考试、平时成绩两部分。其中平时成绩应是作 业和实验两部分的综合成绩。相关事宜具体说明如下: 1. 机试统一命题及组织考试。 2. 平时作业要按时保质保量地完成。 3. 实验完成后要提交源程序。 4. 总成绩:机试成绩占 70%,平时成绩占 30% 。 五、学时分配 本课程 4 学分,共 64 学时,其中理论 32 学时,实验 32 学时,具体学时大致分配如下 (供参考): 各教学环节学时分配 章 节 主要内容 讲 授 实 验 讨 论 习 题 课 外 其 他 小 计 作业 题量 备 注 第一章 C 语言概述 1 4 第二章 数据类型、运算符与表达式 3 8 第三章 顺序程序设计 2 8 第四章 分支程序设计 3 15 第五章 循环程序设计 3 20 第六章 函数 6 18 第七章 数组 4 22 第八章 结构体 3 10 第九章 编译预处理 1 25 第十章 文件 3 12 第十一章 位运算 1 5 第十二章 指针 2 8 合 计 32 155 该 作 业 题 部 分 要 在 上 机 课 上 调 试 六、课程与其它课程的联系 本课程的先修课为《大学计算机基础》,在学习本课程之前要对计算机的相关硬件和软
件基础知识有所掌握。因此,这个教学大纲是在学生己掌握一定软硬件基础知识的前提下制 定的。 七、教材与教学参考书 (一)教材: 谭浩强.C程序设计.第三版.北京:清华大学出版社,2005 (二)教学参考书: [1]何钦铭,颜晖.C语言程序设计.北京:高等教育出版社,2008 [2]高福成.C语言程序设计.北京:天津大学出版社,2004
件基础知识有所掌握。因此,这个教学大纲是在学生已掌握一定软硬件基础知识的前提下制 定的。 七、教材与教学参考书 (一)教材: 谭浩强. C 程序设计. 第三版. 北京:清华大学出版社,2005 (二)教学参考书: [1] 何钦铭,颜晖. C 语言程序设计. 北京:高等教育出版社,2008 [2] 高福成. C 语言程序设计. 北京:天津大学出版社,2004