第1章 C程序概述 1
1.1 什么是程序 1
1.2 什么是计算机程序 1
1.3 简单的C程序结构 3
1.4 上机指导1 4
习题1 6
第2章 C语言基本知识 8
2.1 常量与变量 8
2.2 整型数据 9
2.2.1 整型常量的表示方法 9
2.2.2 整型变量的类型 9
2.2.3 整型常量的类型 11
2.3 实型数据 11
2.3.1 实型常量的表示方法 11
2.3.2 实型变量的类型 12
2.4 字符型数据 13
2.4.1 ASCII标准字符 13
2.4.2 字符常量的表示方法 14
2.4.3 字符变量的类型 15
2.5 符号常量 16
2.6 算术运算符 16
2.6.1 基本算术运算符 17
2.6.2 负号运算符 18
2.6.3 自增与自减运算符 18
2.6.4 算术表达式 19
2.7 赋值运算符 20
2.7.1 基本赋值运算符 20
2.7.2 算术赋值运算符 20
2.7.3 赋值表达式 20
2.8 强制类型转换运算符 22
2.9 关系运算符 23
2.9.1 关系运算符 23
2.9.2 关系表达式 23
2.10 逻辑运算符 24
2.10.1 逻辑运算符 24
2.10.2 逻辑表达式 25
2.11 条件运算符 26
2.12 逗号运算符 28
2.13 长度运算符 29
2.14 数学函数 30
2.15 上机指导2 31
习题2 32
第3章 顺序结构程序设计 36
3.1 基本语句 36
3.2 格式化输入输出函数 37
3.2.1 格式化输入函数scanf 37
3.2.2 格式化输出函数printf 39
3.3 字符输入输出函数 42
3.3.1 字符输入函数getchar 42
3.3.2 字符输出函数putchar 43
3.4 上机指导3 44
习题3 45
第4章 选择结构程序设计 48
4.1 什么是选择结构 48
4.2 条件语句 48
4.2.1 基本格式 48
4.2.2 简化格式 49
4.3 条件语句的嵌套 51
4.3.1 条件语句嵌套示例 51
4.3.2 else if格式 52
4.4 开关语句 54
4.5 上机指导4 56
习题4 58
第5章 循环结构程序设计 61
5.1 什么是循环结构 61
5.2 while语句 61
5.3 do~while语句 66
5.4 for语句 68
5.5 循环的终止与继续 71
5.5.1 break语句 71
5.5.2 continue语句 74
5.6 循环语句的嵌套 75
5.7 用goto语句构造循环 78
5.8 结构化程序设计 79
5.9 上机指导5 81
习题5 83
第6章 数组 89
6.1 数组的由来 89
6.2 一维数组 89
6.2.1 一维数组的定义与引用 89
6.2.2 一维数组的初始化 91
6.3 二维数组 95
6.3.1 二维数组的定义与引用 95
6.3.2 二维数组的初始化 98
6.4 字符串及其处理 100
6.4.1 字符串常量 100
6.4.2 字符数组 101
6.4.3 字符串的输入输出 104
6.4.4 字符串处理函数 107
6.5 上机指导6 110
习题6 112
第7章 函数结构程序设计 118
7.1 什么是函数结构 118
7.2 函数定义 119
7.2.1 函数定义的一般形式 119
7.2.2 函数的返回值 120
7.3 函数调用 122
7.3.1 函数调用的一般形式 122
7.3.2 函数参数的传递 122
7.3.3 对被调函数的声明 124
7.3.4 函数的嵌套调用 126
7.4 函数的递归调用 127
7.4.1 尾递归 128
7.4.2 一般递归 129
7.5 数组名作函数参数 134
7.5.1 一维数组名作参数 134
7.5.2 二维数组名作参数 139
7.5.3 字符数组名作参数 140
7.6 变量的作用域和生存期 142
7.6.1 局部变量 142
7.6.2 全局变量 144
7.6.3 变量的存储属性 148
7.7 模块化程序设计 148
7.8 上机指导7 152
习题7 153
第8章 编译预处理 162
8.1 宏定义命令 162
8.1.1 简单的宏定义 162
8.1.2 带参的宏定义 163
8.2 文件包含命令 165
8.3 条件编译命令 166
8.4 上机指导8 168
习题8 169
第9章 指针 173
9.1 什么是指针 173
9.2 指向变量的指针变量 174
9.3 指向一维数组的指针变量 176
9.3.1 一维数组的地址 176
9.3.2 指针变量的定义和使用 178
9.3.3 指针变量的运算 179
9.3.4 指针变量可以带下标 181
9.3.5 指针变量作函数参数 182
9.3.6 指向字符串的指针变量 184
9.4 指针数组 187
9.4.1 指针数组的定义与使用 187
9.4.2 指向指针的指针变量 191
9.4.3 带参数的main函数 193
9.5 二维数组的指针变量 196
9.5.1 二维数组的地址 196
9.5.2 指向二维数组的指针变量 199
9.5.3 指向二维数组的指针变量作函数参数 200
9.6 指向函数的指针变量 202
9.7 返回指针的函数 204
9.8 动态内存分配 208
9.8.1 指针转换 208
9.8.2 void型指针 209
9.8.3 动态内存分配 210
9.9 共享数据的保护 213
9.10 上机指导9 214
习题9 215
第10章 结构、联合与枚举 227
10.1 结构的含义 227
10.2 结构及其变量的定义 228
10.2.1 结构的一般形式 228
10.2.2 引用结构变量成员的方法 228
10.2.3 定义结构变量的其他方法 230
10.3 结构数组 231
10.4 指向结构数据的指针变量 232
10.4.1 指向结构变量的指针变量 232
10.4.2 指向结构数组的指针变量 233
10.5 向函数传递结构数据 234
10.6 结构成员的类型 237
10.7 单向链表 243
10.7.1 单向链表的概念 243
10.7.2 单向链表的建立 244
10.7.3 单向链表的其他操作 245
10.8 联合 249
10.9 枚举 250
10.10 数据类型重命名 252
10.11 上机指导10 254
习题10 256
第11章 位运算 260
11.1 二进制数 260
11.1.1 无符号十进制整数转换成二进制整数 260
11.1.2 二进制整数转换成十进制整数 261
11.1.3 二进制与八、十六进制间的对应关系 262
11.2 位运算符 263
11.2.1 位与运算符 263
11.2.2 位或运算符 263
11.2.3 位异或运算符 264
11.2.4 位左移运算符 265
11.2.5 位右移运算符 265
11.2.6 位反运算符 267
11.2.7 位赋值运算符 267
11.3 位域 269
11.4 实型数据的存储格式 270
11.5 上机指导11 273
习题11 274
第12章 文件 276
12.1 什么是文件 276
12.2 磁盘文件 276
12.2.1 文件的组织方式 276
12.2.2 文件的处理过程 277
12.3 磁盘文件的打开与关闭 278
12.3.1 文件的打开 278
12.3.2 文件的关闭 279
12.4 磁盘文件的输入输出 280
12.4.1 以字符为单位的读写 280
12.4.2 以字符串为单位的读写 284
12.4.3 以格式化数据为单位的读写 286
12.4.4 以数据块为单位的读写 288
12.5 磁盘文件的定位和随机处理 291
12.5.1 fseek函数 292
12.5.2 ftell函数 294
12.5.3 rewind函数 294
12.6 磁盘文件的出错检测 296
12.6.1 ferror函数 296
12.6.2 clearerr函数 296
12.7 设备文件 297
12.7.1 设备文件的处理 297
12.7.2 标准设备文件的重定向 299
12.8 面向过程的程序设计 300
12.9 上机指导12 302
习题12 303
附录A ASCII标准字符集 309
附录B C运算符 310
附录C C语言关键字 311
附录D C常用库函数 312
D1 数学函数 312
D2 输入输出函数 312
D3 字符函数 314
D4 字符串函数 314
D5 动态存储分配函数 315
D6 其他函数 315
附录E Turbo C 2.0集成开发环境 316
E1 从Windows进入DOS 316
E2 安装TC 316
E3 启动TC 317
E4 TC菜单 318
E5 编辑窗口与常用编辑键 319
E6 信息窗口与快速参考行 320
参考文献 322