第1章 C语言基础知识 1
1.1 C语言概述 1
1.1.1 程序设计语言及程序设计 1
1.1.2 C语言的特点 2
1.1.3 怎样学习C语言 3
1.2 C语言程序的基本结构 3
1.3 C语言程序的执行和集成开发环境 6
1.3.1 C语言程序执行的过程 6
1.3.2 Microsoft Visual C++6.0集成开发环境 7
1.3.3 程序的调试 9
1.3.4 Visual C++ 2010集成开发环境 12
1.4 算法和流程图 15
习题与思考 17
第2章 数据类型和运算 19
2.1 数据类型 19
2.1.1 字符型数据 19
2.1.2 整型数据 20
2.1.3 实型数据 22
2.2 常量 23
2.2.1 字符常量 23
2.2.2 字符串常量 24
2.2.3 整型常量 25
2.2.4 实型常量 25
2.2.5 符号常量 25
2.3 变量 26
2.3.1 变量的命名规则 26
2.3.2 变量的定义 27
2.3.3 变量的初始化与赋值 28
2.4 运算符和表达式 29
2.4.1 算术运算 30
2.4.2 关系运算 32
2.4.3 逻辑运算 32
2.4.4 自增自减运算 34
2.4.5 赋值运算 35
2.4.6 条件运算 37
2.4.7 逗号运算 38
2.4.8 各种运算中数据类型的转换 39
2.5 常用数学函数 41
习题与思考 43
第3章 顺序结构程序设计 48
3.1 数据的输入与输出 48
3.1.1 数据输出函数 48
3.1.2 数据输入函数 53
3.2 顺序结构的流程 56
3.2.1 C语言的基本语句 56
3.2.2 C语言程序的一般结构 58
3.3 顺序结构综合应用实例 59
习题与思考 62
第4章 分支结构程序设计 66
4.1 if结构语句 66
4.1.1 单分支结构 67
4.1.2 双分支结构 68
4.1.3 多分支结构 69
4.1.4 if语句的嵌套 71
4.2 多路分支——switch结构语句 73
4.3 分支结构综合应用实例 75
习题与思考 77
第5章 循环结构程序设计 82
5.1 循环的概念 82
5.2 while语句 82
5.3 do_while语句 85
5.4 for语句 87
5.5 break语句和continue语句 90
5.6 循环的嵌套 92
5.7 循环结构综合应用实例 94
习题与思考 97
第6章 数组 101
6.1 一维数组 101
6.1.1 一维数组的定义 101
6.1.2 数组元素的引用 102
6.1.3 一维数组的存储结构与初始化 103
6.1.4 一维数组综合举例 106
6.2 二维数组 112
6.2.1 二维数组的定义及引用 112
6.2.2 二维数组的存储结构及初始化 113
6.3 字符数组与字符串 116
6.3.1 字符数组的定义、初始化及处理 116
6.3.2 字符数组的处理 117
6.3.3 字符串的概念及存储 118
6.3.4 字符串的输入输出函数 119
6.3.5 字符串处理函数 121
6.3.6 数组综合应用实例 124
习题与思考 127
第7章 函数 132
7.1 模块化程序设计与函数 132
7.2 函数定义与调用 133
7.2.1 函数概述 133
7.2.2 函数的定义 135
7.2.3 函数的调用 136
7.2.4 函数的参数和函数的返回值 138
7.2.5 数组作为函数的参数 142
7.2.6 函数的嵌套和递归调用 144
7.2.7 函数设计举例 146
7.3 变量作用域与存储方式 149
7.3.1 变量的作用域 149
7.3.2 变量的存储方式 153
7.4 编译预处理 156
7.4.1 文件包含 156
7.4.2 宏定义 157
习题与思考 161
第8章 指针 166
8.1 指针和指针变量 166
8.1.1 指针 166
8.1.2 指针变量 167
8.1.3 指针变量的赋值与运算 167
8.1.4 多级指针 170
8.1.5 用指针变量处理一般变量综合举例 171
8.2 指针与数组 173
8.2.1 指针变量处理一维数组 173
8.2.2 指针变量处理二维数组 175
8.2.3 指针数组 177
8.3 指针变量处理字符串 178
8.4 指针变量与函数 181
8.5 指针综合应用实例 185
习题与思考 187
第9章 结构体类型与链表 193
9.1 结构体类型的定义 193
9.2 结构体变量 194
9.2.1 结构体变量的定义和初始化 195
9.2.2 结构体变量的使用 196
9.3 结构体数组 199
9.3.1 结构体数组的定义和初始化 199
9.3.2 结构体数组的使用 199
9.4 结构体类型指针 200
9.4.1 结构体类型指针的概念 201
9.4.2 结构体类型指针作为函数参数 201
9.5 链表 203
9.5.1 链表的概念 203
9.5.2 用指针实现内存动态分配 204
9.5.3 单向链表的常用操作 206
9.5.4 链表综合应用实例 211
习题与思考 212
第10章 共用体与枚举类型 216
10.1 共用体 216
10.1.1 共用体类型和共用体变量 216
10.1.2 共用体变量的引用 217
10.1.3 共用体变量的应用 218
10.2 枚举类型 220
10.2.1 枚举类型和枚举变量 220
10.2.2 枚举类型变量的应用 221
10.3 类型标识符的重定义 223
10.4 位运算 224
10.4.1 位运算符和位运算 225
10.4.2 位段结构 227
习题与思考 228
第11章 文件 231
11.1 文件概述 231
11.1.1 文件的概念 231
11.1.2 文本文件和二进制文件 232
11.1.3 缓冲文件系统 232
11.2 文件类型及其指针 233
11.2.1 文件类型 233
11.2.2 文件类型指针 234
11.3 文件的打开和关闭 234
11.3.1 文件打开函数 234
11.3.2 文件关闭函数 235
11.4 文件的输入和输出 236
11.4.1 字符读写函数fgetc()和fputc() 237
11.4.2 字符串读写函数fgets()和fputs() 238
11.4.3 格式化读写函数fscanf()和fprintf() 240
11.4.4 数据块读写函数fread()和fwrite() 242
11.4.5 文件的其他相关函数 243
习题与思考 246
第12章 C++面向对象基础 248
12.1 C++的开发环境 248
12.1.1 Visual Studio 2010 248
12.1.2 Code::Blocks For Windows 248
12.2 C++的输入/输出 251
12.2.1 数据流 252
12.2.2 流类库 252
12.2.3 标准命名空间(std) 252
12.2.4 标准输出流对象(cout) 253
12.2.5 操纵符控制输出格式 253
12.2.6 标准输入流对象(cin) 254
12.3 面向对象基本概念 255
12.3.1 对象(object) 255
12.3.2 类(class) 255
12.3.3 封装(encapsulation) 255
12.3.4 继承(inheritance) 255
12.3.5 多态(polymorphism) 256
12.4 面向对象基本原则 256
12.4.1 单一责任原则(single responsibility principle) 257
12.4.2 开闭原则(opened closed principle) 257
12.4.3 Liscov替换原则(liscov substitution principle) 257
12.4.4 接口隔离原则(interface segregation principle) 257
12.4.5 依赖倒置原则(dependency inversion principle) 258
12.5 类与对象 258
12.5.1 类的定义 258
12.5.2 类的使用 259
12.5.3 构造函数(constructor) 260
12.5.4 析构函数(destructor) 260
12.6 对象指针 260
12.7 派生类与继承类 262
习题与思考 264
附录 265
附录A ASCII码表完整版 265
附录B C语言的32个关键字 267
附录C 运算符优先级和结合性 269
附录D C语言常用函数 270
附录E 章节习题解答 276
参考文献 318