第1章 C语言简介 1
1.1 计算机语言的发展 1
1.1.1 机器语言 1
1.1.2 汇编语言 1
1.1.3 高级语言 2
1.1.4 计算机语言的概念 2
1.2 C语言的发展及其特点 2
1.2.1 C语言的发展 2
1.2.2 C语言的特点 3
1.3 C语言的程序格式和结构 4
1.3.1 最简单的C语言程序举例 4
1.3.2 C语言程序的结构 6
1.4 C语言程序的运行与调试 7
1.4.1 C语言程序的运行环境 7
1.4.2 C语言程序的几个概念 8
1.4.3 C语言程序的运行调试 8
1.5 C程序的设计开发流程 12
本章小结 13
习题 13
第2章 程序设计与算法 14
2.1 程序设计的基本概念 14
2.2 算法 15
2.2.1 算法的概念 15
2.2.2 简单算法举例 16
2.2.3 结构化算法的性质及结构 17
2.2.4 算法的表示方法 18
2.3 结构化程序设计方法 24
本章小结 25
习题 25
第3章 数据类型、运算符与表达式 26
3.1 计算机数据的存储与表示 26
3.1.1 整数的二进制表示 26
3.1.2 浮点型数据的二进制表示 27
3.2 C语言的数据类型与取值范围 27
3.2.1 数据类型 27
3.2.2 不同数据类型的取值范围 27
3.3 常量与变量 30
3.3.1 常量和符号常量 30
3.3.2 变量 33
3.3.3 变量类型的确定 35
3.4 C语言运算符 35
3.4.1 C语言运算符简介 35
3.4.2 算术运算符和算术表达式 36
3.4.3 赋值运算符和赋值表达式 38
3.4.4 复合赋值运算符 39
3.4.5 关系运算符和关系表达式 39
3.4.6 逻辑运算符和逻辑表达式 40
3.4.7 逗号运算符和逗号表达式 41
3.4.8 条件运算符和条件表达式 42
3.4.9 位运算符 42
3.4.10 数值类型数据间的混合运算 44
3.4.11 C语言运算符的运算顺序 45
本章小结 46
习题 47
第4章 顺序结构程序设计 52
4.1 顺序程序设计概述 52
4.2 C语句 52
4.2.1 C语句的分类 52
4.2.2 赋值语句 53
4.3 数据的格式输入/输出 54
4.3.1 printf格式输出函数 54
4.3.2 scanf格式输入函数 58
4.3.3 字符数据的输入/输出 60
4.4 顺序程序设计实例 61
本章小结 63
习题 63
第5章 选择结构程序设计 66
5.1 选择结构概述 66
5.2 用if语句实现选择结构 66
5.2.1 单分支if语句 66
5.2.2 双分支if-else语句 67
5.2.3 多分支 68
5.3 选择语句嵌套 69
5.4 switch语句 72
5.4.1 switch语句 72
5.4.2 break语句作用 74
5.5 综合实例 76
本章小结 77
习题 78
第6章 循环结构程序设计 82
6.1 while语句 82
6.2 do-while语句 85
6.3 for语句 87
6.4 goto语句 90
6.5 循环嵌套与几何图案 90
6.5.1 循环嵌套 90
6.5.2 几何图案 91
6.6 循环状态控制 93
6.6.1 break语句 93
6.6.2 continue语句 94
6.7 综合应用实例 95
本章小结 99
习题 99
第7章 数组 107
7.1 一维数组 107
7.1.1 一维数组的定义 107
7.1.2 一维数组的赋值 109
7.1.3 一维数组的引用 111
7.1.4 一维数组的应用 112
7.2 二维数组及多维数组 117
7.2.1 二维数组的定义 117
7.2.2 二维数组的存储与表示 118
7.2.3 二维数组的初始化 118
7.2.4 二维数组的引用 119
7.3 字符数组和字符串 121
7.3.1 字符数组 121
7.3.2 字符数组的初始化 121
7.3.3 字符数组的引用 122
7.3.4 字符串的存储与结束 122
7.3.5 字符数组的输入/输出 123
7.4 常用的字符串处理函数 124
7.4.1 字符串输出函数puts 124
7.4.2 字符串输入函数gets 125
7.4.3 字符串连接函数strcat 125
7.4.4 字符串拷贝函数strcpy和strncpy 126
7.4.5 字符串比较函数strcmp 127
7.4.6 字符串长度测试函数strlen 127
7.4.7 其他字符串函数 128
7.5 综合实例 128
本章小结 131
习题 131
第8章 函数 136
8.1 函数的概述 136
8.2 函数的定义 137
8.2.1 无参函数的定义 137
8.2.2 有参函数的定义 137
8.3 函数的调用 139
8.4 函数的声明 139
8.5 函数的传值方式 140
8.6 函数的嵌套调用和递归调用 141
8.6.1 函数的嵌套调用 141
8.6.2 函数的递归调用 142
8.7 数组作为函数参数 143
8.7.1 数组元素作为函数实参 143
8.7.2 一维数组名作为函数参数 144
8.7.3 多维数组名作为函数参数 145
8.8 局部变量和全局变量 147
8.8.1 局部变量 147
8.8.2 全局变量 147
8.9 变量的存储类型 149
8.9.1 自动型变量 149
8.9.2 寄存器型变量 150
8.9.3 静态型变量 150
8.9.4 外部型变量 152
8.10 内部函数和外部函数 154
8.10.1 内部函数 154
8.10.2 外部函数 155
8.11 综合应用实例 156
本章小结 157
习题 158
第9章 预处理命令 164
9.1 宏定义 164
9.1.1 不带参数的宏定义 165
9.1.2 带参数的宏定义 166
9.2 文件包含 167
9.3 条件编译 168
9.3.1 #if的使用 168
9.3.2 #ifdef的使用 170
9.3.3 #ifndef的使用 170
本章小结 171
习题 171
第10章 指针 174
10.1 指针的概念 174
10.1.1 地址的概念 174
10.1.2 指针 175
10.2 变量的指针和指向变量的指针变量 175
10.2.1 定义一个指针变量 176
10.2.2 指针变量的引用 177
10.2.3 指针变量作为函数参数 178
10.3 数组与指针 181
10.3.1 指向数组元素的指针 182
10.3.2 通过指针引用数组元素 182
10.3.3 用数组名作为函数参数 184
10.3.4 多维数组与指针 188
10.4 字符串与指针 192
10.4.1 字符串的表达形式 192
10.4.2 字符指针作为函数参数 194
10.5 指向函数的指针 196
10.5.1 用函数指针变量调用函数 196
10.5.2 用指向函数的指针作为函数参数 197
10.6 返回指针值的函数 198
10.7 指针数组和指向指针的指针 200
10.7.1 指针数组的概念 200
10.7.2 指向指针的指针 201
10.7.3 指针数组作为main函数的形参 202
本章小结 203
习题 205
第11章 结构体与共用体 208
11.1 定义和使用结构体变量 208
11.1.1 自己建立结构体类型 208
11.1.2 定义结构体类型变量 209
11.1.3 结构体变量的初始化和引用 210
11.2 使用结构体数组 212
11.2.1 定义结构体数组 212
11.2.2 结构体数组的应用举例 213
11.3 结构体指针 215
11.3.1 指向结构体变量的指针 215
11.3.2 指向结构体数组的指针 216
11.3.3 用结构体变量和结构体变量的指针作为函数参数 217
11.4 用指针处理链表 219
11.4.1 链表的定义 219
11.4.2 建立简单的静态链表 220
11.4.3 建立动态链表 220
11.4.4 输出链表 223
11.4.5 对链表的删除操作 223
11.4.6 对链表的插入操作 224
11.4.7 对链表的综合操作 226
11.5 共用体类型 226
11.5.1 共用体类型的定义 226
11.5.2 引用共用体变量的方式 228
11.5.3 共用体类型数据的特点 229
11.6 使用枚举类型 230
11.7 用typedef声明新类型名 232
11.8 综合实例 233
本章小结 238
习题 238
第12章 文件 242
12.1 C文件概述 242
12.2 文件类型指针 242
12.3 文件的打开与关闭 243
12.3.1 文件打开函数fopen 243
12.3.2 文件关闭函数fclose 244
12.4 文件的读写 245
12.4.1 字符读写函数fgetc和fputc 245
12.4.2 字符串读写函数fgets和fputs 247
12.4.3 数据块读写函数fread和fwtrite 249
12.4.4 格式化读写函数fscanf和fprintf 251
12.5 文件的定位和随机读写 252
12.5.1 文件定位 252
12.5.2 文件的随机读写 253
12.6 文件检测函数 253
12.7 文件程序设计实例 254
本章小结 256
习题 257
第13章 常见错误和程序调试 260
13.1 Visual C++6.0集成开发环境 260
13.2 常见程序错误分析 262
13.3 程序调试 276
附录A C语言的关键字 278
附录B ASCII码字符表 280
附录C 常用的C语言库函数 283
附录D 部分中英文关键词对照 287
参考文献 290