第一部分 理论教学篇 1
第1章 C语言概览 1
1.1 C语言的生命力 1
1.1.1 C语言的发展历程和趋势 1
1.1.2 C语言的特点 2
1.2 开发第一个C程序 2
1.2.1 编写第一个C程序 2
1.2.2 运行C程序的方法 6
1.3 小结 9
1.4 习题 10
第2章 C数据揭秘 11
2.1 计算机中数据的表示 11
2.1.1 位、字节和字 11
2.1.2 数据的机内表示 11
2.2 恒定不变——C常量数据 12
2.3 再探C常用数据类型 14
2.3.1 整型数据 14
2.3.2 浮点型数据 16
2.3.3 字符型数据 19
2.3.4 各种类型数据之间的转换和混合运算 23
2.3.5 数据类型的大小——sizeof运算符 26
2.4 小结 26
2.5 习题 27
第3章 C语言流程控制 28
3.1 格式化输入/输出函数 28
3.1.1 printf()函数 28
3.1.2 scanf()函数 30
3.2 程序流程图 33
3.3 顺序结构程序设计 35
3.3.1 算术运算符 36
3.3.2 算术表达式 36
3.3.3 赋值表达式 37
3.4 选择结构程序设计 38
3.4.1 关系运算符和关系表达式 39
3.4.2 逻辑运算符和逻辑表达式 40
3.4.3 if语句与switch语句 41
3.4.4 选择结构程序举例 46
3.5 循环结构程序设计 50
3.5.1 从while语句学自增和自减运算符 50
3.5.2 do…while语句 53
3.5.3 灵活强大的循环语句——for语句 55
3.5.4 逗号运算符和逗号表达式 56
3.5.5 循环结构程序举例 57
3.6 小结 62
3.7 习题 62
第4章 初识指针类型 64
4.1 地址与指针变量 64
4.2 取地址运算符与间接运算符 65
4.2.1 取地址运算符 65
4.2.2 间接运算符 65
4.3 指针变量的声明与赋值 66
4.4 变量与指针变量 70
4.5 小结 72
4.6 习题 72
第5章 数组与指针 74
5.1 一维数组 74
5.1.1 前导实例 74
5.1.2 一维数组与指针 78
5.2 字符数组与字符串 80
5.2.1 字符数组与指针 80
5.2.2 运用字符串处理函数编程 84
5.3 指针的运算与比较 86
5.3.1 指针的运算 86
5.3.2 指针比较 88
5.3.3 数组名与指针 88
5.4 多维数组 89
5.4.1 二维数组 89
5.4.2 指针数组 92
5.5 小结 94
5.6 习题 95
第6章 函数与模块化程序设计 97
6.1 函数概述 97
6.1.1 前导实例——定义函数 97
6.1.2 形式参数和实际参数 98
6.2 变量的作用域和存储方式 102
6.2.1 局部变量和全局变量 102
6.2.2 变量的存储类别 104
6.3 函数嵌套调用与递归 108
6.3.1 函数的嵌套调用 108
6.3.2 函数的递归 112
6.4 函数、数组与指针 114
6.4.1 使用数组名作为函数参数 114
6.4.2 使用指针作为函数参数 118
6.5 C预处理器和库函数 121
6.5.1 宏定义#define 121
6.5.2 文件包含#include 125
6.5.3 C库函数 126
6.6 模块化程序设计概述 127
6.6.1 模块化程序设计思想 127
6.6.2 模块化程序设计原则 128
6.6.3 模块化编程步骤 128
6.7 小结 130
6.8 习题 131
第7章 文件操作 135
7.1 文件概述 135
7.1.1 文件 135
7.1.2 文件指针 136
7.2 文件常用操作 136
7.2.1 开始第一个文件操作程序 136
7.2.2 文件格式化读写 139
7.2.3 文件的随机读写 147
7.2.4 常用文件检测函数 149
7.3 小结 150
7.4 习题 151
第8章 结构体与共用体 153
8.1 结构体——复合数据类型 153
8.1.1 前导实例 154
8.1.2 使用结构体存储复杂数据形式 156
8.1.3 结构体数组 158
8.1.4 利器登场——结构体指针 160
8.1.5 结构体应用——链表操作 164
8.1.6 用typedef进行类型定义 166
8.2 共用体介绍 167
8.2.1 共用体的概念 167
8.2.2 共用体变量的引用 169
8.3 枚举类型介绍 170
8.4 小结 172
8.5 习题 172
第9章 指针的高级应用 175
9.1 动态存储空间的分配与释放 175
9.1.1 内存分配函数 175
9.1.2 空指针 177
9.1.3 释放空间函数 177
9.1.4 “悬空”指针问题 178
9.2 链表 179
9.2.1 声明结点类型 180
9.2.2 建立单链表 180
9.2.3 链表结点的插入与删除 181
9.3 小结 185
9.4 习题 185
第二部分 实践教学篇 187
实验一 Visual C++ 6.0集成开发环境的使用 187
实验二 数据类型 192
实验三 选择结构程序设计 195
实验四 循环结构程序设计 199
实验五 指针的基础应用 203
实验六 数组 205
实验七 函数与模块化程序设计 207
实验八 数组、函数与指针的综合运用 208
实验九 读写文件 212
实验十 链表的创建与维护 215
综合实验 C语言课程设计 218
附录一 ASCII码表 239
附录二 C关键字 240
附录三 C运算符 241
附录四 常用库函数 242
附录五 C语言程序设计常见算法 247
参考文献 251