第1章 C语言概述 1
1.1 计算机硬件的组成和工作机制 1
1.1.1 计算机硬件的组成 1
1.1.2 二进制与计算机的工作机制 3
1.2 程序设计语言与计算机软件 4
1.2.1 程序设计语言概述 4
1.2.2 计算机软件 6
1.3 C语言的发展历程 7
1.4 C程序简介 8
1.4.1 C程序示例 8
1.4.2 C程序的加工和执行 10
1.5 C语言程序设计方法 11
1.5.1 分析问题,明确功能需求 11
1.5.2 设计解决问题的方案 12
1.5.3 使用C语言编程实现 13
1.5.4 程序的测试和维护 15
1.6 上机编写C程序 15
1.7 习题 16
第2章 数据 17
2.1 程序与内存 17
2.1.1 计算机的内存 17
2.1.2 程序的执行与内存分配 18
2.2 程序与数据 19
2.2.1 数据的分类 19
2.2.2 数据在程序中的表现形式——变量与常量 20
2.2.3 变量的命名与使用 21
2.2.4 数据的格式化输入和输出 24
2.2.5 C程序中的主要元素 30
2.3 整型数据 32
2.3.1 整型数据的分类和存储 32
2.3.2 整型变量的使用 33
2.4 浮点型数据 36
2.4.1 浮点型数据的分类和存储 36
2.4.2 浮点型变量的使用 37
2.5 字符型数据 39
2.5.1 字符型数据的存储 39
2.5.2 字符型变量的使用 41
2.5.3 关于字符串 44
2.6 指针型变量 44
2.6.1 指针型数据的含义和存储 44
2.6.2 指针型变量的使用 45
2.7 符号常量 47
2.8 数据使用过程中的类型转换 48
2.9 选择正确的数据类型 50
2.10 习题 52
第3章 程序设计初步 53
3.1 算法与程序设计 53
3.1.1 算法的概念 53
3.1.2 算法的描述方式 55
3.1.3 常见算法举例 57
3.2 C语言中的语句 59
3.2.1 C语句简述 59
3.2.2 函数调用语句 60
3.2.3 复合语句与空语句 62
3.3 程序设计的三种基本结构 62
3.4 结构化程序设计 65
3.4.1 “自顶向下、逐步求精”的分析方法 65
3.4.2 结构化程序设计实例 68
3.5 程序设计风格 71
3.6 习题 72
第4章 选择结构 73
4.1 条件的表示 73
4.1.1 关系运算符与单一条件的判断 73
4.1.2 逻辑运算符与复合条件的判断 75
4.1.3 运算符的优先级 77
4.2 使用if语句实现选择结构 78
4.2.1 基本的if语句——单选择方案 78
4.2.2 扩展的if语句——双选择方案 81
4.2.3 多选择方案的if语句 83
4.2.4 嵌套的if语句 86
4.3 选择结构的其他表示方法 88
4.3.1 switch结构 88
4.3.2 条件运算符 91
4.4 选择结构综合应用 92
4.5 习题 94
第5章 循环结构 96
5.1 循环结构概述 96
5.1.1 循环结构的使用时机 96
5.1.2 常见循环结构介绍 98
5.1.3 循环结构的构成要素 102
5.2 递增和递减运算符 104
5.3 while循环 105
5.3.1 while循环的一般语法 105
5.3.2 while循环的应用 106
5.3.3 无限循环 109
5.3.4 解决半途退出问题 110
5.4 for循环 114
5.4.1 for循环的一般语法 114
5.4.2 for循环的应用 116
5.4.3 for循环与while循环 119
5.5 do-while循环 121
5.5.1 do-while循环的一般语法 121
5.5.2 do-while循环的应用 123
5.5.3 do-while循环与while循环 125
5.6 循环的嵌套 126
5.7 break语句和continue语句 130
5.7.1 continue语句 130
5.7.2 break语句 131
5.8 循环结构综合实例 132
5.9 习题 138
第6章 函数 140
6.1 程序的函数分解 141
6.2 函数声明与库函数的使用 143
6.3 自己编写函数 145
6.3.1 函数定义的一般形式 145
6.3.2 如何定义函数 148
6.3.3 使用自定义函数 153
6.4 函数的调用机制 159
6.4.1 函数的调用过程 159
6.4.2 参数的值传递机制 162
6.5 带有指针型参数的函数定义 163
6.6 函数中的变量 169
6.6.1 变量的作用域和生存期 169
6.6.2 局部变量与全局变量 169
6.6.3 静态变量 172
6.7 函数的嵌套和递归 175
6.7.1 函数的嵌套调用 175
6.7.2 函数的递归调用 178
6.8 模块化编程实例 180
6.9 习题 185
第7章 数组 190
7.1 数组的定义和使用 191
7.1.1 数组变量的定义 191
7.1.2 数组的初始化 193
7.1.3 数组与循环 195
7.2 字符数组和字符串 197
7.2.1 字符数组 197
7.2.2 字符串 199
7.2.3 使用标准库函数处理字符串 202
7.3 数组与函数 206
7.3.1 函数的输入数据为数组类型 207
7.3.2 函数的返回结果为数组类型 208
7.3.3 函数的输入数据和输出结果为同一数组 210
7.4 多维数组 212
7.4.1 二维数组的定义和初始化 212
7.4.2 二维数组的使用 214
7.4.3 多维数组介绍 218
7.5 数组综合应用实例 219
7.6 习题 223
第8章 结构 226
8.1 结构类型与结构变量 226
8.1.1 结构类型定义与变量声明 226
8.1.2 结构变量的初始化和使用 229
8.1.3 结构变量的存储 231
8.2 结构类型的数组 234
8.3 指向结构的指针 238
8.4 结构与函数 239
8.4.1 结构变量作为函数的输入数据 240
8.4.2 函数的返回结果为结构类型 241
8.4.3 通过结构指针向函数传递参数 242
8.5 结构综合应用实例 245
8.6 习题 249
第9章 指针 252
9.1 指针变量概述 253
9.2 指针作为函数参数 255
9.2.1 通过指针实现函数间的数据共享 255
9.2.2 通过指针型参数返回多个结果 256
9.2.3 通过指针引用大型结构数据 257
9.3 指针与数组 258
9.3.1 通过指针访问数组元素 258
9.3.2 数组参数与指针 262
9.4 指针与动态存储管理 263
9.4.1 C语言的动态存储管理机制 264
9.4.2 动态管理程序实例 265
9.5 链式结构初步 267
9.6 习题 269
第10章 文件 271
10.1 文件概述 271
10.1.1 流和文件指针 271
10.1.2 文件中的位置 273
10.1.3 文件的分类 273
10.2 文件访问 274
10.2.1 打开文件 274
10.2.2 关闭文件 275
10.2.3 文件重命名 276
10.2.4 删除文件 276
10.3 文件读写 276
10.3.1 通过文件读写单个字符 277
10.3.2 通过文件读写字符串 279
10.3.3 文件的格式化读写 281
10.3.4 通过文件读写二进制形式的数据 283
10.3.5 文件的随机读写 285
10.4 文件操作的状态和出错检测 286
10.5 习题 288