第一章 C程序设计基础 1
1.1 二进制基础 1
1.1.1 为什么采用二进制 1
1.1.2 二进制、十六进制和八进制 2
1.1.3 原码、反码与补码 5
1.1.4 模216原则 8
1.1.5 浮点小数的二进制表示 9
1.2 程序员眼中的计算机 11
1.2.1 数据在计算机中的存储形式 11
1.2.2 计算机的运行方式与特点 13
1.3 程序设计的方法 14
1.3.1 程序设计的两大要素 14
1.3.2 算法的描述 16
1.3.3 流程的跟踪执行 19
1.4 C程序初步 21
1.4.1 计算机语言分类 21
1.4.2 C语言简史及特点 21
1.4.3 C程序示例及组成 22
1.5 C程序解题分析 27
1.5.1 详解判断素数程序 27
1.5.2 综合示例 35
1.5.3 C程序书写风格 37
1.6 编程学习方法总结 40
习题 41
第二章 上机指导与解题分析 43
2.1 上机编程环境 43
2.2 Turbo C集成开发环境 44
2.2.1 Turbo C集成开发环境介绍 44
2.2.2 文本编辑 46
2.2.3 编译和连接 48
2.2.4 程序运行与调试 50
2.2.5 Turbo C环境设置 54
2.3 常见的变量类型、运算符及输入输出格式 55
2.4 程序举例 57
2.5 Turbo C上机实验 64
习题 70
第三章 基本数据类型、运算符与输入输出函数 72
3.1 基本数据类型 72
3.2 常量 73
3.2.1 整型常量 73
3.2.2 实型常量 73
3.2.3 字符常量 73
3.2.4 字符串常量 74
3.2.5 符号常量 75
3.3 变量 75
3.3.1 C标识符 75
3.3.2 整型变量 76
3.3.3 实型变量 76
3.3.4 字符型变量 77
3.3.5 变量的初始化 77
3.4 C语言的运算符和表达式 77
3.4.1 算术运算符和算术表达式 78
3.4.2 赋值运算符和赋值表达式 79
3.4.3 关系运算符和关系表达式 80
3.4.4 逻辑运算符和逻辑表达式 80
3.4.5 条件运算符和条件表达式 82
3.4.6 逗号运算符和逗号表达式 83
3.4.7 指针运算符 83
3.4.8 sizeo运算符 84
3.4.9 不同类型数据之间的转换 84
3.4.10 运算符优先级和结合性 85
3.5 输入输出函数 85
3.5.1 格式化输入输出函数 86
3.5.2 字符输入输出函数 89
习题 90
第四章 语句与程序控制结构 94
4.1 语句总述 94
4.1.1 说明语句、表达式语句和空语句 94
4.1.2 控制语句 95
4.1.3 复合语句 95
4.2 顺序结构 95
4.3 选择结构 96
4.3.1 if语句 96
4.3.2 switch语句 100
4.4 循环结构 105
4.4.1 while语句 105
4.4.2 do-while语句 107
4.4.3 for语句 108
4.4.4 break语句 110
4.4.5 continue语句 112
4.4.6 goto语句 113
4.4.7 多重循环 114
4.5 程序举例 117
习题 122
第五章 数组与字符串 123
5.1 一维数组 123
5.1.1 一维数组的定义和引用 123
5.1.2 一维数组初始化 125
5.1.3 程序举例 126
5.2 二维数组 133
5.2.1 二维数组的定义和引用 133
5.2.2 二维数组初始化 135
5.2.3 程序举例 136
5.3 字符串处理 139
5.3.1 字符数组与字符串 139
5.3.2 字符串的输入和输出 140
5.3.3 字符串处理函数 143
5.3.4 程序举例 145
习题 149
第六章 函数 151
6.1 模块化程序设计思想 151
6.2 模块设计举例 151
6.3 函数概念 152
6.3.1 函数定义 152
6.3.2 函数说明和函数调用 153
6.3.3 形参与实参 156
6.3.4 函数返回值 157
6.3.5 传值与传址 158
6.3.6 数组作为函数的参数的例子 159
6.4 函数的嵌套 161
6.5 函数的递归 161
6.6 变量作用域和存储类别 167
6.6.1 局部变量和全局变量 167
6.6.2 变量存储类别 168
6.7 使用库函数 169
6.8 程序举例 172
习题 176
第七章 指针 177
7.1 指针概念 177
7.2 指针变量的定义和使用 180
7.3 指针与一维数组 182
7.3.1 一维数组的内存安排 182
7.3.2 指向数组的指针运算 183
7.3.3 下标法与指针法表示的等价性 186
7.3.4 程序举例 187
7.4 指针与函数 189
7.4.1 指针作为函数参数 189
7.4.2 指针作为函数返回类型 192
7.4.3 动态内存分配与释放函数 193
7.4.4 函数指针 195
7.5 指针数组、多级指针与指向一维数组的指针 197
7.5.1 指针数组与多级指针 197
7.5.2 二维数组与指向一维数组的指针 199
7.5.3 二维数据的构造举例 201
7.6 指针与字符串 202
7.6.1 字符串的内存安排 202
7.6.2 字符串处理程序举例 203
7.6.3 多字符串的表示与处理 206
7.6.4 程序举例 210
7.6.5 命令行参数 216
习题 217
第八章 结构体、联合与枚举 219
8.1 概述 219
8.2 结构体类型定义 219
8.3 结构体变量 221
8.3.1 结构体变量的定义 221
8.3.2 结构体变量的引用 222
8.3.3 结构体变量初始化 224
8.4 结构体数组 225
8.4.1 结构体数组的定义 225
8.4.2 结构体数组初始化与引用 226
8.4.3 结构体数组的输入和输出 226
8.5 指向结构体类型数据的指针 227
8.5.1 定义和初始化 228
8.5.2 用结构体指针引用结构体成员 228
8.5.3 指向结构体数组的指针 228
8.6 结构体与函数 230
8.6.1 向函数传递结构信息 230
8.6.2 结构体指针作为函数返回值 233
8.7 单链表 234
8.7.1 概述 234
8.7.2 结点定义 235
8.7.3 建立链表 235
8.7.4 输出链表 243
8.7.5 插入结点 243
8.7.6 删除结点 246
8.7.7 程序举例 248
8.7.8 其他链表结构 251
8.8 联合与枚举 253
8.8.1 联合类型 253
8.8.2 枚举类型 255
8.8.3 复杂类型举例 257
8.9 用typedef定义类型 259
习题 260
第九章 文件 261
9.1 文件概述 261
9.2 文件打开和关闭 262
9.3 文本文件的输入与输出 264
9.3.1 读写一个字符的函数 264
9.3.2 字符串读写函数 266
9.3.3 格式化读写函数 267
9.4 二进制文件的输入与输出 270
9.5 其他文件库函数 273
9.5.1 文件的定位函数 273
9.5.2 出错监测函数 275
习题 275
第十章 预处理与位运算 276
10.1 预处理 276
10.1.1 概述 276
10.1.2 宏定义 276
10.1.3 文件包含 279
10.1.4 条件编译 280
10.2 位运算 282
习题 285
附录Ⅰ 常用ASCII码对照表 287
附录Ⅱ C语言关键字表 289
附录Ⅲ C语言运算符表 290
附录Ⅳ C常用库函数 291
参考文献 295