C语言》教学大纲

 

一、 总则

1.本课程的教学目的和要求:

通过学习本课程,学生能够比较熟练地掌握C语言的语法规则,能够掌握一些较为简单的算法,并初步积累编程经验,自己解决一些比较简单的程序课题。

2.本课程的主要内容:

C语言的各种数据类型,运算符,表达式;结构化程序设计语句;函数的概念和用法;编译预处理命令;位运算;文件的操作;算法的基本表示方法及结构化程序设计方法

3.教学重点与难点:

C语言的高级数据类型,如数组,指针,结构体;函数的概念和用法

4.本课程的知识范围及与相关课程的关系:

    本课程是一门专业基础课,该课的后续课有数据结构,操作系统,其他关系较密切的课程有编译原理等。本课程为后续课提供了语言结构模板,类C的伪代码算法表示等。

5. 教材的选用:

    《C程序设计》 第二版  谭浩强编   清华大学出版社

二、 课程内容及学时分配

第一章  C语言概述

1.   教学内容:

§1.1 C 语言出现的历史背景   

§1.2 C 语言的特点          

§1.3 简单的C程序介绍      

§1.4 C 程序的上机步骤      

2. 教学目的及要求:

1)了解C语言的历史、特点

2)掌握C语言的运行环境,初步了解运行一个C语言程序的过程

3. 教学重点:

1)C语言的特点

2)C程序的上机步骤

                                                        

4. 教学难点:

1)C语言的特点

2)C程序的上机步骤

5. 教学时间分配及进度安排:

§1.1 C 语言出现的历史背景   0.5 学时

§1.2 C 语言的特点           0.5 学时

§1.3 简单的C程序介绍       0.5 学时

§1.4 C 程序的上机步骤       0.5 学时 

2学时 

6. 主要教学环节的组织:

    结合上机掌握C语言的运行环境,并运行一些简单的C程序

第二章  程序的灵魂--算法

1. 教学内容:

    §2.1 算法的概念

    §2.2 简单算法举例

    §2.3 算法的特性

    §2.4 怎样表示一个算法

    §2.5 结构化程序设计方法

2.教学目的及要求:

1) 掌握用流程图、N-S流程图、伪代码表示算法

2) 理解结构化程序设计方法的概念

3.教学重点:

用流程图、N-S流程图、伪代码表示算法

4.教学难点:

用流程图、N-S流程图、伪代码表示算法

5.教学时间分配及进度安排:

§2.1 算法的概念            0.25学时

§2.2 简单算法举例          0.5 学时

    §2.3 算法的特性            0.25学时

    §2.4 怎样表示一个算法      0.75学时

  §2.5 结构化程序设计方法    0.25学时

  共2学时

6.主要教学环节的组织:

    结合幻灯、课堂练习掌握算法的基本表示方法

第三章  数据类型、运算符与表达式

1. 教学内容:                                           

§3.1  C的数据类型

  §3.2  常量与变量

§3.3  整型数据

§3.4  实型数据

§3.5  字符型数据

§3.6  变量赋初值

§3.7  各类数值型数据间的混合运算

§3.8  算术运算符和算术表达式

§3.9  赋值运算符和赋值表达式

§3.10 逗号运算符和逗号表达式

2. 教学目的及要求:

1) 掌握几种基本数据类型的存储方式,表示方法

2) 掌握不同类型间数据转换的原则与方法

3) 掌握有关运算符与表达式的运用

3. 教学重点:

1) 整型、实型、字符型数据

2) 运算符和表达式的运用

4. 教学难点:

1) 整型、实型、字符型数据

2) 运算符和表达式的运用

5. 教学时间分配及进度安排:

§3.1  C 的数据类型                     0.25学时

  §3.2  常量与变量                       0.25学时

§3.3  整型数据                         0.5 学时

§3.4  实型数据                         0.5 学时

§3.5  字符型数据                       0.5学时

§3.6  变量赋初值                       0.25学时

§3.7  各类数值型数据间的混合运算       0.5学时

§3.8  算术运算符和算术表达式           0.5学时

§3.9  赋值运算符和赋值表达式           0.5学时

§3.10 逗号运算符和逗号表达式           0.25学时

4学时

6. 主要教学环节的组织:

    结合习题、上机掌握C的基本数据类型,和不同数据类型间的混合运算

第四章  最简单的C程序设计----顺序程序设计

1. 教学内容:                                            

  §4.1 C语句概述

  §4.2 赋值语句

§4.3 数据输入输出的概念及在C语言中的实现

§4.4 字符数据的输入输出

§4.5 格式输入与输出

§4.6 顺序结构程序设计举例

2. 教学目的及要求:

1) 掌握语句的概念

2) 掌握字符数据输入输出函数

3) 格式输入输出函数的用法

3. 教学重点:

1)字符数据输入输出函数

2)格式输入输出函数

4. 教学难点:

1)字符数据输入输出函数

2)格式输入输出函数

5. 教学时间分配及进度安排:

§4.1 C 语句概述                            0.25学时

  §4.2 赋值语句                              0.25学时

§4.3 数据输入输出的概念及在C语言中的实现  0.5 学时

§4.4 字符数据的输入输出                    0.25学时

§4.5 格式输入与输出                        0.5学时

§4.6 顺序结构程序设计举例                  0.25学时

2学时

6. 主要教学环节的组织:

结合习题、上机掌握语句的概念,基本输入输出语句的用法

第五章 选择结构程序设计

1. 教学内容:

  §5.1 关系运算符和关系表达式   

§5.2 逻辑运算符和逻辑表达式   

§5.3 if语句

§5.4 switch语句

§5.5 程序举例

2. 教学目的及要求:

1) 熟练掌握关系、逻辑表达式的用法

2)    熟练掌握选择型程序设计语句的用法

3. 教学重点:                                            

1)表达式

2)选择型程序设计语句

4. 教学难点:

    逻辑表达式

5. 教学时间分配及进度安排

§5.1 关系运算符和关系表达式       0.5学时

§5.2 逻辑运算符和逻辑表达式       0.5学时

§5.3 if 语句                      0.25学时

§5.4 switch 语句                  0.25学时

§5.5 程序举例                     0.5学时

2学时

6.主要教学环节的组织:

    结合上机掌握逻辑表达式,条件判断语句的用法

第六章 循环控制

1.教学内容:

  §6.1 概述

§6.2 goto语句以及用goto语句构成循环

§6.3 while语句

§6.4 do-while语句

§6.5 for语句

§6.6 循环的嵌套

§6.7 几种循环的比较

§6.8 break语句和continue语句

§6.9 程序举例

2.教学目的及要求:

1)熟练掌握三种循环语句的运用

2)掌握break和continue语句的运用

3.教学重点:

1)循环语句

2)循环的嵌套

3)break和continue语句

4.教学难点:

1)循环语句

2)循环的嵌套

3)break和continue语句

5.教学时间分配及进度安排:

§6.1 概述                               

§6.2 goto语句以及用goto 语句构成循环  

§6.3 while 语句                        

§6.4 do-while 语句                     

§6.5 for 语句                          

§6.6 循环的嵌套                        

§6.7 几种循环的比较                    

§6.8 break语句和continue 语句         

§6.9 程序举例                          

2学时

6.主要教学环节的组织:

结合习题、上机掌握循环语句的用法

第七章 数组

1.教学内容:

  §7.1 一维数组的定义和引用     

§7.2 二维数组的定义和引用

§7.3 字符数组

2.教学目的及要求:

1) 掌握数组的概念和使用

2) 掌握数组初始化的方法

3) 掌握字符数组和字符串的应用

3.教学重点:

1)一维数组

2)二维数组和多维数组

3)字符数组

4.教学难点:

1)二维数组和多维数组

2)字符数组

5.教学时间分配及进度安排:

  §7.1 一维数组的定义和引用           1学时

§7.2 二维数组的定义和引用           1学时

§7.3 字符数组                       2学时

4学时

6.主要教学环节的组织:

    结合习题、上机掌握数组的用法

第八章 函数

1. 教学内容:

§8.1  概述                       

§8.2  函数定义的一般形式        

§8.3  函数参数和函数的值         

§8.4  函数的调用                 

§8.5  函数的嵌套调用            

§8.6  函数的递归调用             

§8.7  数组作为函数参数           

§8.8  局部变量和全局变量         

§8.9  变量的存储类别             

§8.10 内部函数和外部函数         

§8.11 如何运行一个多文件的程序   

2.教学目的及要求:

1) 掌握函数的定义和调用方法

2) 理解变量的存储属性,作用范围

3.教学重点:

1)函数的定义

2)函数的参数及返回值

3)函数的调用

4)数组作为函数参数

5)局部变量和全局变量

6)变量的存储类别

4.教学难点:

1)函数的参数及返回值

2)函数的调用

3)数组作为函数参数

4)变量的存储类别

5.教学时间分配及进度安排:

§8.1  概述                        0.5学时

§8.2  函数定义的一般形式          0.5学时

§8.3  函数参数和函数的值          1 学时

§8.4  函数的调用                  1 学时

§8.5  函数的嵌套调用              1 学时

§8.6  函数的递归调用              1 学时

§8.7  数组作为函数参数            1 学时

§8.8  局部变量和全局变量          0.5学时

§8.9  变量的存储类别              1 学时

§8.10 内部函数和外部函数          0.25学时

§8.11 如何运行一个多文件的程序    0.25学时

8学时

6. 主要教学环节的组织:

     结合习题、上机掌握函数的定义、调用,掌握不同的存储类别的变量的用法;结合幻灯的动态演示掌握递归函数调用的过程

第九章 预处理命令

1.教学内容:

  §9.1 宏定义

  §9.2 “文件包含”处理

  §9.3 条件编译

2.教学目的及要求:

掌握使用宏替换编写程序

3.教学重点:

宏定义

4.教学难点:

宏定义

5.教学时间分配及进度安排:

  §9.1 宏定义                  1 学时

  §9.2 “文件包含”处理        0.5学时

  §9.3 条件编译                0.5学时

    2学时

6.主要教学环节的组织:

    结合习题、上机掌握宏定义的方法

第十章 指针

1. 教学内容:

§10.1 地址和指针的概念

§10.2 变量的指针和指向变量的指针变量

§10.3 数组的指针何指向数组的指针变量

§10.4 字符串的指针和指向字符串的指针变量

§10.5 函数的指针和指向函数的指针变量

§10.6 返回指针值的函数

§10.7 指针数组和指向指针的指针

§10.8 有关指针的数据类型和指针运算的小结

2.教学目的及要求:

1) 掌握指针变量的定义与引用

2) 掌握指针与变量,指针与数组,指针与字符串的关系

3) 掌握用指针作为函数参数的方法,有关指针的算法

3.教学重点:

1)指针的定义、引用

2)指针与变量

3)指针与数组

4)指针与函数

4.教学难点:

1)指针的定义、引用

2)指针与数组

3)指针与函数

5.教学时间分配及进度安排:

§10.1 地址和指针的概念                    0.5学时

§10.2 变量的指针和指向变量的指针变量      1.5学时

§10.3 数组的指针何指向数组的指针变量      4 学时

§10.4 字符串的指针和指向字符串的指针变量  1 学时

§10.5 函数的指针和指向函数的指针变量      1学时

§10.6 返回指针值的函数                    1学时

§10.7 指针数组和指向指针的指针            0.5学时

§10.8 有关指针的数据类型和指针运算的小结  0.5学时

10学时

6.主要教学环节的组织:

    结合习题、上机、幻灯动态演示掌握指针的定义和用法

第十一章  结构体与共用体

1. 教学内容:

§11.1  概述

§11.2  定义结构体类型变量的方法

§11.3  结构体变量的引用

§11.4  结构体变量的初始化

§11.5  结构体数组

§11.6  指向结构体类型数据的指针

§11.7  用指针处理链表

§11.8  共用体

§11.9  枚举类型

§11.10 用typedef定义类型

2.教学目的及要求:

1) 掌握结构体类型的概念和定义方法以及结构体变量的定义和引用

2) 掌握指向结构体变量的指针变量的概念和应用,掌握链表的概念和应用

3) 共用体的概念和应用

3.教学重点:

结构体变量的定义和引用;结构体变量与指针

4.教学难点:

结构体变量的定义和引用;结构体变量与指针

5.教学时间分配及进度安排:

§11.1  概述                           

§11.2  定义结构体类型变量的方法       

§11.3  结构体变量的引用               

§11.4  结构体变量的初始化             

§11.5  结构体数组                     

§11.6  指向结构体类型数据的指针       

§11.7  用指针处理链表                 

§11.8  共用体                         

§11.9  枚举类型