![河北师范大学软件学院](./image/logo.png)
# 程序设计基础C语言
>(2019~2020学年 第二学期)
- [课程大纲](materials/outline.docx)
- [进度计划](materials/schedule.docx)
## 课程内容
| 章节 | 名称 | 内容 | 课件 |
|:---:|:---|:---|:---|
|第0章|C语言简介|1. 语言与程序的关系。</br>2. C语言与标准演化史。</br>3. 标准与实现的关系。</br>4. 程序的编辑、编译、连接、运行。|[<img src="./image/presentation.png" height="15" />查看](./ch00/chapt00.pdf) <br/>[<img src="./image/download.png" height="15" />下载](./materials/slides/chapt00.pptx)|
|第1章|构成C语言程序的单词|1. 详解第一个程序。</br>2. 程序与“单词”。</br>3. 一种特殊的“单词”:关键词。</br>4. 源文件、头文件、编译单元的概念。</br>5. 注释的作用。</br>6. main函数的作用及常见形式。|[<img src="./image/presentation.png" height="15" />查看](./ch01/chapt01.pdf) <br/>[<img src="./image/download.png" height="15" />下载](./materials/slides/chapt01.pptx)|
|第2章|从问题求解到程序设计|1. 问题求解与算法。</br>2. 程序与算法的关系。</br>3. 算法的好坏如何评价?</br>4. 算法的本质是处理数据。</br>5. 数据与数据类型。</br>6. 数据类型与标识符,标识符的声明。</br>7. 常量与字面值。</br>8. 数据的输入输出。|[<img src="./image/presentation.png" height="15" />查看](./ch02/chapt02.pdf) <br/>[<img src="./image/download.png" height="15" />下载](./materials/slides/chapt02.pptx)|
|第3章|运算符与表达式|1. 左值与右值。</br>2. 运算符总揽及运算符优先级。</br>3. 运算符与表达式。</br>4. 表达式副作用、括号运算符与表达式。</br>5. 类型转换。</br>6. 内存溢出简介。|[<img src="./image/presentation.png" height="15" />查看](./ch03/chapt03.pdf) <br/>[<img src="./image/download.png" height="15" />下载](./materials/slides/chapt03.pptx)|
|第4章|流程控制|1. 算法及基本结构:顺序结构、选择结构、循环结构。</br>2. 算法流程图的画法。</br>3. 语句的定义与分类。</br>4. 顺序语句、选择语句、循环语句。</br>5. 面向过程的程序设计简介。|[<img src="./image/presentation.png" height="15" />查看](./ch04/chapt04.pdf) <br/>[<img src="./image/download.png" height="15" />下载](./materials/slides/chapt04.pptx)|
|第5章|数组|1. 数组的声明。</br>2. 一维数组的存储、初始化方法及使用。</br>3. 二维数组的存储、初始化方法及使用。</br>4. 一维字符数组与字符串。|[<img src="./image/presentation.png" height="15" />查看](./ch05/chapt05.pdf) <br/>[<img src="./image/download.png" height="15" />下载](./materials/slides/chapt05.pptx)|
|第6章|指针|1. 单重、多重指针变量的声明。</br>2. 指针变量本身的存储单元与指针变量所指的存储单元。</br>3. 变量名、存储地址、存储空间大小、指针变量之间关系。</br>4. 特殊指针:const指针、空指针、void指针。</br>5. 指针变量的运算。<br>6. 指向数组的指针与元素为指针的数组。</br>7. 指针的运算(针对指向数组的指针)。</br>8. 二维数组与指针的关系|[<img src="./image/presentation.png" height="15" />查看1](./ch06/chapt06.pdf) <br/>[<img src="./image/download.png" height="15" />下载1](./materials/slides/chapt06.pptx)</br>[<img src="./image/presentation.png" height="15" />查看2](./ch06/chapt06_2.pdf) <br/>[<img src="./image/download.png" height="15" />下载2](./materials/slides/chapt06_2.pptx)|
|第7章|函数|1. 面向过程的程序设计与函数的关系。</br>2. 函数的概念。</br>3. 函数的定义、声明。函数原型的概念。</br>4. 参数传递:值传递与地址传递。</br>5. 嵌套调用与递归调用。</br>6. 生存期与声明作用域。</br>7. 存储类说明符。</br>8. 类型限制符。</br>9. 动态内存分配标准库函数。</br>10. 指向函数的指针。</br>11. typedef的高级用法。|[<img src="./image/presentation.png" height="15" />查看](./ch07/chapt07.pdf) <br/>[<img src="./image/download.png" height="15" />下载](./materials/slides/chapt07.pptx)|
|第8章|自定义数据类型|1. 枚举类型及使用。</br>2. 结构体类型的声明。</br>3. 结构体对象、结构体对象数组。</br>4. 结构体对象成员的访问。</br>5. 结构体与动态链表。</br>6. 共同体。|[<img src="./image/presentation.png" height="15" />查看1](./ch08/chapt08.pdf) <br/>[<img src="./image/download.png" height="15" />下载1](./materials/slides/chapt08.pptx)</br>[<img src="./image/presentation.png" height="15" />查看2](./ch08/chapt08_2.pdf) <br/>[<img src="./image/download.png" height="15" />下载2](./materials/slides/chapt08_2.pptx)|
|第9章|预处理|1. 预处理器与预处理指令。</br>2. 文件包含。</br>3. 宏定义与宏替换。</br>4. 条件编译。|[<img src="./image/presentation.png" height="15" />查看](./ch09/chapt09.pdf) <br/>[<img src="./image/download.png" height="15" />下载](./materials/slides/chapt09.pptx)|
|第10章|标准库函数|1. 标准库与非标准库。</br>2. 字符与字符串处理函数。</br>3. 文件及相关函数。</br>4. 标准语言补充。|[<img src="./image/presentation.png" height="15" />查看](./ch10/chapt10.pdf) <br/>[<img src="./image/download.png" height="15" />下载](./materials/slides/chapt10.pptx)|