第一部分 C程序设计 3
第1章 C语言与程序设计 3
1.1 程序设计语言及其发展 3
1.1.1 程序设计语言的发展历程 3
1.1.2 程序处理方式 4
1.2 程序的基本结构及其表示 5
1.3 C语言概述 6
1.3.1 C语言发展简史 6
1.3.2 C语言的特点 6
1.3.3 简单的C程序介绍 7
1.3.4 C程序的上机步骤 10
习题1 14
第2章 基本类型数据及其运算 15
2.1 C语言的数据类型 15
2.2 常量与变量 16
2.2.1 标识符 16
2.2.2 常量 17
2.2.3 变量 18
2.3 整型数据 19
2.3.1 整型常量 19
2.3.2 整型变量 20
2.4 实型数据 22
2.4.1 实型常量 22
2.4.2 实型变量 22
2.5 字符型数据 23
2.5.1 字符常量 23
2.5.2 字符变量 24
2.5.3 字符串常量 26
2.6 运算符与表达式 26
2.6.1 运算符概述 26
2.6.2 表达式概述 27
2.6.3 算术运算符与算术表达式 27
2.6.4 赋值运算符与赋值表达式 29
2.6.5 自增、自减运算符 32
2.6.6 关系运算符与关系表达式 33
2.6.7 逻辑运算符与逻辑表达式 34
2.6.8 逗号运算符与逗号表达式 35
2.7 数据的类型转换 36
2.8 数据的输入与输出 36
2.8.1 格式化输入输出函数 37
2.8.2 字符输入输出函数 44
2.8.3 文件格式化读写函数 45
习题2 53
第3章 C程序控制结构 55
3.1 C语句 55
3.2 顺序结构程序举例 56
3.3 选择结构 57
3.3.1 if语句 57
3.3.2 switch语句 63
3.3.3 条件运算符与条件表达式 66
3.3.4 选择结构程序举例 66
3.4 循环结构 68
3.4.1 while语句 68
3.4.2 do-while语句 70
3.4.3 for语句 71
3.4.4 循环嵌套 73
3.4.5 break语句和continue语句 74
3.4.6 循环结构程序举例 75
3.5 文件字符读/写函数 78
3.5.1 文件读字符函数fgetc 78
3.5.2 文件写字符函数fputc 78
3.5.3 文件结束判断函数feof 80
习题3 81
第4章 数组 83
4.1 一维数组 83
4.1.1 一维数组的定义 83
4.1.2 一维数组元素的引用 84
4.1.3 一维数组的初始化 86
4.1.4 一维数组的指针 86
4.1.5 一维数组程序举例 87
4.2 二维数组 91
4.2.1 二维数组的定义 91
4.2.2 二维数组元素的引用 92
4.2.3 二维数组的指针 94
4.2.4 二维数组的初始化 95
4.2.5 二维数组程序举例 96
4.3 字符数组 99
4.3.1 字符数组的定义 99
4.3.2 字符数组的初始化 100
4.3.3 字符数组的输入与输出 101
4.3.4 字符串处理函数 107
4.3.5 字符数组应用举例 110
习题4 114
第5章 函数 117
5.1 C语言函数概述 117
5.2 函数的定义 118
5.2.1 函数定义的一般形式 118
5.2.2 函数参数与函数返回值 119
5.3 函数的调用 123
5.3.1 函数调用的一般形式 123
5.3.2 被调用函数的声明 124
5.4 函数的嵌套调用与递归调用 126
5.4.1 函数的嵌套调用 126
5.4.2 函数的递归调用 128
5.5 用数组做函数参数 130
5.5.1 用数组元素作函数参数 130
5.5.2 用一维数组名作函数参数 131
5.5.3 用二维数组名作函数参数 135
5.6 局部变量和全局变量 136
5.6.1 局部变量 136
5.6.2 全局变量 137
5.7 变量的存储类别 140
5.7.1 动态存储方式与静态存储方式 140
5.7.2 局部变量的存储类别 140
5.7.3 全局变量的存储类别 143
5.8 C语言预处理 145
5.8.1 宏定义 146
5.8.2 文件包含 148
习题5 149
第6章 指针 151
6.1 地址和指针 151
6.1.1 变量的地址和变量的值 151
6.1.2 间接寻址 152
6.2 指针变量的定义与引用 153
6.2.1 指针变量的类型 153
6.2.2 指向变量的指针变量的定义 153
6.2.3 指针变量的引用 154
6.2.4 指针运算符 154
6.2.5 指针运算 157
6.2.6 用指针变量作函数参数 158
6.3 指针与数组 160
6.3.1 指向一维数组的指针 160
6.3.2 指向二维数组的指针 163
6.3.3 用指向数组的指针变量作函数参数 168
6.4 指针与字符串 175
6.4.1 字符指针与字符数组 175
6.4.2 用指向字符的指针作函数参数 178
6.5 指针与函数 181
6.5.1 指向函数的指针 181
6.5.2 返回指针的函数 185
6.6 指向指针的指针 186
6.6.1 间接访问 186
6.6.2 指针数组 187
6.7 main函数的参数 189
习题6 190
第7章 结构体与共用体 192
7.1 结构体 192
7.1.1 结构体类型的定义 192
7.1.2 结构体类型变量定义 193
7.1.3 结构体变量的引用 195
7.1.4 结构体变量的赋值 196
7.1.5 结构体数组 197
7.1.6 文件结构体 200
7.1.7 文件数据块读写函数 201
7.1.8 结构体指针变量 204
7.1.9 用结构体数据作函数参数 207
7.2 共用体 209
7.2.1 共用体类型的定义 209
7.2.2 共用体变量的定义 209
7.2.3 共用体变量的引用和赋值 210
7.3 用typedef定义类型 212
7.4 动态链表 214
7.4.1 动态存储分配 214
7.4.2 动态链表概述 215
7.4.3 单链表的基本操作 215
习题7 226
第8章 位运算 228
8.1 位运算符及其运算 228
8.1.1 位运算符 228
8.1.2 位运算应用举例 231
8.2 位段及其应用 234
8.2.1 位段 234
8.2.2 位段应用举例 236
习题8 237
第二部分 C+基础 241
第9章 C++初步知识 241
9.1 从C到C+++ 241
9.2 简单的C+++程序 241
9.3 C+++的命名空间 242
9.4 C+++头文件 243
9.5 C+++基本输入输出 243
习题9 244
第10章 类和对象 245
10.1 类的定义 245
10.2 对象的定义 246
10.3 成员访问权限 248
10.4 成员函数重载 249
10.5 构造函数和析构函数 250
习题10 254
第11章 继承 256
11.1 类继承和派生的概念 256
11.2 类继承方式 258
习题11 261
第三部分 MFC编程入门 265
第12章 Windows编程 265
12.1 基于API的Windows编程 266
12.2 基于MFC的Windows编程 270
12.2.1 MFC应用程序框架类型 271
12.2.2 单文档应用程序创建 271
12.2.3 项目文件和项目配置 272
12.2.4 框架窗口、文档和视图 275
习题12 275
第13章 对话框和控件 276
13.1 对话框 276
13.1.1 基于对话框应用程序创建 276
13.1.2 设置对话框属性 277
13.2 控件 278
13.2.1 控件的添加和布局 278
13.2.2 添加控件变量 279
13.3 消息和消息映射 280
13.4 添加对话框代码 280
13.5 对话框调用 281
13.5.1 创建单文档应用程序 281
13.5.2 添加对话框 282
13.5.3 创建对话框类 282
13.5.4 在程序中调用对话框 283
习题13 284
第14章 菜单和工具栏 285
14.1 菜单 285
14.1.1 编辑菜单 285
14.1.2 菜单命令的消息映射 286
14.2 工具栏 287
14.2.1 编辑工具栏 288
14.2.2 工具栏按钮和菜单项相结合 288
14.3 综合应用 289
习题14 295
附录A C语言关键字 296
附录B 运算符和结合性 297
附录C C库函数 299
参考文献 305