第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.2.3 良好的程序设计风格 8
1.3 程序设计语言编译系统 9
1.4 C语言的发展及特点 12
1.4.1 C语言的发展 12
1.4.2 C语言的特点 14
1.4.3 C语言的应用领域 15
1.5 简单C语言程序 15
1.5.1 C语言实例 15
1.5.2 C程序构成简介 17
1.6 C语言程序的执行 18
1.6.1 C程序的运行步骤 18
1.6.2 C程序的集成开发工具 19
本章小结 20
习 题 21
第2章 数据结构与算法概述 22
2.1 引 言 22
2.2 数据结构概述 23
2.3 几种常见的数据结构 24
2.3.1 线性表 24
2.3.2 栈和队列 25
2.3.3 树 26
2.3.4 图 28
2.4 算法概述 29
2.4.1 什么是算法 29
2.4.2 算法的性质 29
2.4.3 算法的描述 30
2.5 常用算法介绍 36
2.5.1 递 归 37
2.5.2 枚举法 38
2.5.3 查 找 38
2.5.4 排 序 39
2.6 算法的评价 40
本章小结 41
习 题 41
第3章 基本数据类型、运算符和表达式 44
3.1 计算机中数的表示 44
3.1.1 各种进制数的表示 44
3.1.2 进制转换 45
3.1.3 原码、反码和补码 49
3.1.4 采用补码表示有符号整数的原因 51
3.2 C语言的基本数据类型 52
3.2.1 为什么要有数据类型的产生 52
3.2.2 C语言有哪些数据类型 53
3.2.3 练习与思考 57
3.3 常量和变量 57
3.3.1 标识符与关键字 57
3.3.2 常量与符号常量 58
3.3.3 变量与变量的定义 59
3.4 运算符和表达式 61
3.4.1 算术运算符及其表达式 61
3.4.2 关系运算符及其表达式 62
3.4.3 逻辑运算符及其表达式 63
3.4.4 位运算符及其表达式 63
3.4.5 赋值运算符及其表达式 66
3.4.6 条件运算符及其表达式 67
3.4.7 逗号运算符及其表达式 67
3.4.8 求字节运算符 68
3.5 运算符的优先级及结合性 68
3.5.1 运算符的结合性 68
3.5.2 运算符的优先级 68
3.5.3 表达式的书写规则 70
3.6 各种数据类型的转换 70
3.6.1 数据类型自动转换 71
3.6.2 赋值转换 71
3.6.3 强制类型转换 73
3.7 程序举例 73
本章小结 75
习题 76
第4章 顺序结构 79
4.1 C语句的描述 79
4.2 数据输入/输出 81
4.2.1 格式化输出函数 81
4.2.2 格式化输入函数 82
4.2.3 字符输出函数 83
4.2.4 字符输入函数 83
4.3 较复杂的输入输出格式控制 84
4.3.1 输出数据格式控制 84
4.3.2 输入数据格式控制 87
4.4 程序举例 90
本章小结 94
习 题 94
第5章 选择结构 100
5.1 用条件表达式实现选择结构 100
5.2 if语句 104
5.2.1 if语句的3种形式 104
5.2.2 嵌套的if语句 113
5.3 switch语句 115
5.3.1 语句的定义 115
5.4 程序举例 117
本章小结 124
习 题 124
第6章 循环结构 130
6.1 while语句 130
6.1.1 语句格式 130
6.1.2 执行过程 131
6.1.3 注意事项 132
6.2 do-while语句 133
6.2.1 定义格式 133
6.2.2 执行过程 133
6.3 for语句 135
6.3.1 定义格式 135
6.3.2 执行过程 136
6.4 break和continue语句 138
6.4.1 break语句 138
6.4.2 continue语句 140
6.5 几种循环的比较 141
6.5.1 goto语句实现循环 141
6.5.2 几种循环比较 142
6.6 循环的嵌套 143
6.7 程序举例 145
本章小结 148
习题 149
第7章 数组 157
7.1 数组的基本概念 157
7.2 一维数组 158
7.2.1 一维数组的定义 158
7.2.2 一维数组元素的引用 159
7.2.3 一维数组的初始化 161
7.3 二维数组 162
7.3.1 二维数组的定义 162
7.3.2 二维数组元素的引用 163
7.3.3 二维数组的初始化 166
7.3.4 多维数组的定义 168
7.4 字符数组 169
7.4.1 字符数组的定义及初始化 169
7.4.2 字符串的输入/输出 170
7.4.3 常用的字符串处理函数 171
7.5 数组的应用举例 176
本章小结 186
习题 186
第8章 函数与编译预处理 194
8.1 函数的基本概念 194
8.2 函数的定义与声明 196
8.2.1 函数的定义 196
8.2.2 函数的声明方法 198
8.3 函数的调用 198
8.3.1 函数调用语句的一般形式 199
8.3.2 函数的返回值 199
8.4 函数的传值方式 201
8.5 函数的嵌套调用和递归调用 205
8.5.1 函数的嵌套调用 205
8.5.2 函数的递归调用 207
8.6 数组名作为函数的实参 209
8.7 变量的作用域与存储类型 212
8.7.1 变量的作用域 212
8.7.2 变量的存储类型 214
8.8 内部函数和外部函数 216
8.8.1 内部函数 216
8.8.2 外部函数 216
8.9 编译预处理 218
8.9.1 宏定义命令 218
8.9.2 文件包含命令 223
8.9.3 条件编译命令 224
8.10 程序举例 225
本章小结 232
习 题 232
第9章 指针 237
9.1 指针的基本概念 237
9.1.1 指针变量的定义及初始化 238
9.1.2 指针变量与普通变量的区别 239
9.2 指针运算 240
9.2.1 指针的赋值运算 240
9.2.2 指针的算术运算 241
9.2.3 指针的关系运算 243
9.3 指针与数组 243
9.3.1 指向一维数组的指针 243
9.3.2 指向二维数组的指针 246
9.3.3 指向字符串指针 251
9.3.4 指针数组和指向指针的指针 255
9.4 指针作为函数的参数 260
9.5 指针的应用举例 263
本章小结 270
习 题 271
第10章 构造型数据类型 279
10.1 结构体类型 279
10.1.1 结构体定义 279
10.1.2 结构体变量的定义 280
10.1.3 结构体变量的初始化 280
10.1.4 结构体变量成员的引用 282
10.2 结构体数组 283
10.2.1 结构体数组的定义 283
10.2.2 结构体数组成员的初始化和引用 284
10.3 结构体指针 286
10.4 链 表 289
10.4.1 链表的基本概念 289
10.4.2 内存动态管理函数 290
10.4.3 链表的基本操作 291
10.5 共用体 298
10.5.1 共用体及共用体变量的定义 298
10.5.2 共用体变量的初始化和成员的引用 299
10.5.3 共用体的应用 301
10.6 枚举型 304
10.7 类型定义 305
10.8 程序举例 307
本章小结 312
习题 312
第11章 文件 319
11.1 文件的相关概念 319
11.2 文件的相关操作 320
11.2.1 文件的打开与关闭 320
11.2.2 文件的顺序读写 325
11.2.3 文件的随机读写 334
11.2.4 文件操作的错误检测 337
11.3 程序举例 337
本章小结 339
习题 340
附录 C语言常用的库函数 342
参考文献 350