1、C语言详细教学大纲装订线C语言教学大纲课程名称:C语言 英语名称:课程代码:0130211 课程性质:专业支持必修课学分学时数:4/64 适用专业:高职高专计算机应用技术专业、计算机网络技术专业修(制)订人: 修(制)订日期:2008年9月审核人: 审核日期: 审定人: 审定日期: 一、课程的性质和目的(一)课程性质C语言是高职高专计算机应用技术专业、计算机网络技术专业的一门专业支持必修课课程。C语言是一种通用程序设计语言,具有语言简洁、类型丰富、结构完整、表达力强、适用于模块化结构等特点。C语言既具有高级语言的优点,又具有低级语言的许多特点。为了培养学生使用C语言解决实际应用问题的能力,开设
2、C语言课程。(二)课程目的通过本课程的学习,使学生能够熟悉C语言,了解它们的特点,初步掌握利用C语言编程解决各种实际应用问题的基本方法,为今后正确运用它打下基础。(一)知识教学目标1、了解程序设计的基本知识。 2、了解C程序的基本特点、初步知识和构成。 3、掌握顺序结构、选择结构、循环结构的C程序的构成及编程技巧;。 4、掌握函数定义、调用和编程技巧。 5、掌握数组的定义和使用。 6、掌握指针的定义和使用。 7、掌握结构体和共用体的定义和变量的使用。 8、了解并掌握变量的存储分类、作用域和生存期。 9、了解编译预处理。 10、了解位运算符及运算规律。 11、了解并熟悉文件操作。(二)能力培养目
3、标1、具备熟练应用 TURBO C集成环境进行C语言的编写、编译与调试的能力。 2、具备初步的高级语言程序设计能力。3、能够掌握一定软件开发技术,具备一定的软件开发能力4、培养严肃,认真一丝不苟的工作作风二、教学内容、重(难)点、教学要求及学时分配第一章:C语言概述(2学时)1、讲授内容:第一节、C语言出现的历史背景第二节、C语言的特点第三节、简单的C程序介绍第四节、C程序的上机步骤2、教学要求:了解:C语言出现的历史背景理解:C 语言程序设计的风格掌握:掌握 C 语言程序的结构3、教学重点:C语言的特点及其上机步骤4、难点:C程序的上机步骤第二章:程序的灵魂-算法(2学时)1、讲授内容:第一
4、节、算法的概念1.算法的概念2.算法的类别第二节、简单算法举例第三节、算法的特性第四节、算法的表示1.用自然语言表示算法2.用流程图表示算法3.三种基本结构和改进的流程图4.用N-S流程图表示算法5.用伪代码表示算法6.用计算机语言表示算法第五节、结构化程序设计方法 2、教学要求:了解:算法的举例理解:算法的概念、算法的特性掌握:用流程图表示算法、三种基本结构和改进的流程图、用N-S流程图表示算法、用伪代码表示算法3、教学重点: 用自然语言表示算法、用流程图表示算法、三种基本结构和改进的流程图、用N-S流程图表示算法、用伪代码表示算法4、难点:用流程图表示算法、三种基本结构和改进的流程图、用N
5、-S流程图表示算法、用伪代码表示算法第三章:数据类型、运算符与表达式(4学时) 1、讲授内容:第一节、C的数据类型第二节、 常量与变量1.常量和符号常量2.变量第三节、 整型数据1.整形常量的表示方法2.整形常量3.整形常量的类型第四节、 实型数据1.实型常量的表示方法2.实型变量3.实型常量的类型第五节、 字符型数据1.字符常量2.字符变量3.字符数据在内存中的存储形式及其使用方法4.字符串常量第六节、 变量赋初值第七节、 各类数值型数据间的混合运算第八节、 算术运算符和算术表达式1.C运算符简介2.算术运算法和算术表示式第九节、 赋值运算符和赋值表达式第十节、 逗号运算符和逗号表达式2、教
6、学要求:了解:C数据类型理解:赋值运算符和赋值表达式、逗号运算符和逗号表达式掌握:常量与变量、整型数据、实型数据、字符型数据3、教学重点:常量与变量、整型数据、实型数据、字符型数据4、难点:算术运算符和算术表达式第四章:最简单的C程序设计(6学时)1、讲授内容:第一节、C语句概述第二节、赋值语句第三节、字符数据的输入输出Putchar函数(字符输出函数)Getchar函数(字符输入函数)第四节、格式输入与输出Printf函数(格式输出函数) Scanf函数(格式输入函数)第五节、程序举例2、教学要求:了解:C语句概述理解:赋值语句、数据输入输出的概念及在C语言中的实现掌握:Putchar函数、
7、Getchar函数、Printf函数、Scanf函数3、教学重点:字符数据的输入输出 Putchar函数 Getchar函数格式输入与输出 Printf函数 Scanf函数4、难点:Putchar函数、Getchar函数、Printf函数、Scanf函数第五章:逻辑运算和判断选取控制(4学时)1、讲授内容:第一节、关系运算符和关系表达式1.关系运算符及其有限次序2.关系表达式第二节、逻辑运算符和逻辑表达式1.逻辑运算法及其优先次序2.逻辑表达式第三节、IF 语句1.If语句的三种形式2.If语句的嵌套3.条件运算符第四节、SWITCH 语句第五节、程序举例2、教学要求:了解:程序举例理解:关系
8、运算符和关系表达式、逻辑运算符和逻辑表达式掌握:if语句的三种形式、if语句的嵌套、条件运算符、SWITCH 语句3、教学重点:关系运算符和关系表达式、逻辑运算符和逻辑表达式、if语句的三种形式、if语句的嵌套、条件运算符、SWITCH 语句4、难点:if语句的三种形式、if语句的嵌套、条件运算符、SWITCH 语句第六章:循环控制(4学时)1、讲授内容:第一节、概述第二节、GOTO 语句以及GOTO 语句构成循环1.Goto语句标号2.Goto语句循环第三节、WHILE 语句1.While(表达式)语句2.While的流程图第四节、DO WHILE 语句第五节、FOR 语句1.For语句2.
9、For(循环变量赋值初值;循环条件;循环变量增值)语句第六节、循环的嵌套第七节、几种循环的比较 第八节、BREAK 语句和CONTINUE 语句1.Break语句2.Continue语句第九节、程序举例2、教学要求:了解:概述、程序举例理解:循环的嵌套和几种循环的比较掌握:GOTO 语句以及GOTO 语句构成循环、WHILE 语句、DO WHILE 语句FOR 语句3、教学重点:GOTO 语句以及GOTO 语句构成循环、WHILE 语句、DO WHILE 语句FOR 语句、BREAK 语句和CONTINUE 语句4、难点:BREAK 语句和CONTINUE 语句第七章:数组(4学时)1、讲授内
10、容:第一节、一维数组的定义和引用1.一维数组的定义2.一维数组元素的引用3.一维数组的初始化4.一维数组程序举例第二节、二维数组的定义和引用1.二维数组的定义2.二维数组的引用3.二维数组的初始化4.二维数组程序举例第三节、字符数组1.字符数组的定义2.字符数组的初始化3.字符数组的引用4.字符串和字符串结束标志5.字符数组的输入输出6.字符串处理函数7.字符数组应用举例2、教学要求:了解:一维数组、二维数组及其字符数组的定义理解:一维数组程序举例、二维数组程序举例、字符数组应用举例掌握:一维数组的定义和引用、二维数组的定义和引用、字符数组3、教学重点:一维数组元素的引用及其初始化、二维数组的
11、定义和初始化4、难点:字符数组的引用、字符串处理函数第八章:函数(10学时)1、讲授内容:第一节、概述第二节、函数定义的一般形式第三节、函数参数和函数的值1.形式参数和实际参数2.函数的返回值第四节、函数的调用1.函数调用的一般形式2.函数调用的方式3.对被调用函数的声明和函数原型第五节、函数的嵌套调用第六节、函数的递归调用第七节、数组作为函数参数第八节、局部变量和全局变量1.局部变量2.全局变量第九节、动态存储变量和静态存储变量1.动态存储方式与静态存储方式2.Anto变量3.用static声明局部变量4.Register变量5.用extern声明外部变量6.用static声明外部变量7.关
12、于变量的声明和定义8.存储类别小结第十节、内部函数和外部函数1.内部函数2.外部函数第十一节、如何运行一个多文件的程序2、教学要求:了解:概述、函数定义的一般形式及其如何运行一个多文件的程序理解:函数的嵌套调用、函数的递归调用、数组作为函数参数掌握:函数参数和函数的值、函数的调用、局部变量和全局变量、变量的存储类别3、教学重点:函数参数和函数的值、函数的调用、局部变量和全局变量、变量的存储类别4、难点:函数的调用、变量的存储类别第九章:编译预处理(2学时)1、讲授内容:第一节、宏定义1.不带参数的宏定义2.带参数的宏定义第二节、“文件包含”处理第三节、条件编译2、教学要求:了解: 条件编译理解
13、:“文件包含”处理掌握:宏定义3、教学重点:宏定义4、难点:“文件包含”处理第十章:指针(10学时)1、讲授内容:第一节、指针的概念第二节、变量的指针和指向变量的指针变量1.定义一个指针变量2.指针变量的引用3.指针变量作为函数参数第三节、数组的指针和指向数组的指针变量1.指向数组元素的指针2.通过指针引用数组元素3.数组名作函数参数4.多维数组与指针第四节、字符串的指针和指向字符串的指针变量1.字符串的表示形式2.字符串的指针作函数参数3.对使用字符指针变量和字符数组的讨论第五节、函数的指针和指向函数的指针变量1.用函数指针变量调用函数2.用指向函数的指针作函数参数第六节、返回指针值的函数第
14、七节、指针数组和指向指针的指针1.指针数组的概念2.指向指针的指针3.指针数组作main函数的形参第八节、有关指针的数据类型和指针运算的小结1.有关指针的数据类型的小结2.指针运算小结3.Void指针类型2、教学要求:了解:有关的数据类型和指针运算的小结理解:地址和指针的概述、变量的指针和指向变量的掌握:数组与指针、字符串与指针、指向函数的指针、指针数组和指向指针的指针3、教学重点:数组与指针、字符串与指针、指向函数的指针4、难点:指针数组和指向指针的指针第十一章:结构体与共用体(6学时)1、讲授内容:第一节、 概述第二节、定义结构体类型变量的方法第三节、结构体类型变量的引用第四节、结构变量的
15、初始化第五节、结构体数组1.定义结构体数组2.结构体数组的初始化3.结构体数组应用举例第六节、指向结构体类型数据的指针1.指向结构体变量的指针2.指向结构体数组的指针3.用结构体变量和指向结构体的指针作函数参数第七节、用指针处理链表1.链表概述2.简单链表3.处理动态链表所需的函数4.简历动态链表5.输出链表6.对链表的删除操作7.对链表的插入操作8.对链表的综合操作第八节、共用体1.共用体的概念2.共用体变量的引用方式3.共用体类型数据的特点第九节、枚举类型第十节、 用typedef 定义类型2、教学要求:了解:概述、用typedef 定义类型理解:定义结构体类型变量的方法、结构体类型变量的
16、引用、结构变量的初始化、结构体数组掌握:结构体数组、指向结构体类型数据的指针、用指针处理链表、共用体3、教学重点:结构体数组、指向结构体类型数据的指针4、难点:用指针处理链表、共用体第十二章:位运算(4学时)1、讲授内容:第一节、概述第二节、位运算符1.按位与运算符2.按位或运算符3.异或运算符4.取反运算符5.左移运算符6.右移运算符7.位运算赋值运算符8.不同长度的数据进行位运算第三节、位运算举例第四节、位段2、教学要求:了解:概述、位段理解:位运算举例掌握: 位运算符3、教学重点:位运算符4、难点:位运算符第十三章:文件(6学时)1、讲授内容:第一节、C文件概述第二节、文件类型指针第三节
17、、文件的打开与关闭1.文件的打开(fopen函数)2.文件的关闭(fclose函数)第四节、文件的读写1.Fputc函数和fgetc函数(putc函数和getc函数)2.Fread函数和fwrite函数3.Fprintf函数和fscanf函数4.其他读写函数第五节、文件的定位1.Rewind函数2.Fseek函数和随机读写3.Ftell函数第六节、出错的检测1.Ferror函数2.Clearerr函数第七节、非缓冲文件系统第八节、文件输入输出小结2、教学要求:了解:C文件概述、文件输入输出小结理解:文件类型指针掌握:3、教学重点:文件的打开与关闭、文件的读写、文件的定位、出错的检测4、难点:文
18、件的打开与关闭、文件的读写三、各教学环节的基本要求(一)课堂讲授1、教学方法讲授、上机 2、教学手段板书、多媒体、机房3、教学辅助资料有关的c程序设计相关书籍及其他的资料(二)作业、答疑和质疑1、作业作业名称作业目的题目C程序的运行环境1了解C语言程序的特点2学会编辑、编译、运行一个C语言程序简单C程序设计1学会C中变量的类型和定义2熟悉变量的简单算术运算3学会数据的输入/出45,48条件程序设计1了解C中表示真假的方法2正确使用逻辑表达式3熟练掌握if和switch语句55,56,57循环程序设计1掌握各种循环语句的使用2掌握用循环实现的一些算法5.3,5.6,5.8,5.14数组1学会数组
19、的定义和数组元素的使用2学会与数组有关的排序和顺序查找算法3掌握字符串操作7.5,7.6,7.15函数1学会函数的定义和调用2掌握形参与实参之间的数据传递3掌握嵌套调用和递归调用的方法4掌握局部变量与全局变量的概念83,88,815指针1掌握指针的概念2学会利用指针对各种数据进行操作10.3, 10.15,10.16, 10.18结构体与共用体1学会结构体变量的定义和使用2掌握链表的概念,初步学会简单的链表操作3了解共用体的概念11.8, 11.9,11.12文件1掌握文件的概念2学会打开、关闭和读写文件2、答疑和质疑通过习题的形式进行内容的讲解,学生在解题的过程中如有出现问题,或者对程序、算法及某个程序段有问题则就当场进行问题的解答。(三)考核方式1.考核方式及形式方式:考试;形式:笔试2.总评成绩的组成及评定标准:期末考试70%,平时成绩30%四 、与其他课程的联系与分工C语言的先修课主要是计算机文化基础,为数据结构的学习打下基础,数据结构将以C语言作为算法描述和上机实践的工具。同时,本课程又是软件开发与设计等课程的基础。五、建议教材及教学参考书(一)建议教材教 材:C语言,谭浩强编著,清华大学出版社,2004年,第1版。(二)教学参考书C程序设计题解与上机指导(第二版),谭浩强编著,清华大学出版社,2004年。