第1章 程序设计基础 1
1.1程序设计语言 1
1.1.1什么是程序 1
1.1.2语言的分类 1
1.1.3 C语言简介 2
1.1.4 C语言组成 3
1.2计算机的组成与程序设计的本质 3
1.2.1计算机系统结构 4
1.2.2程序设计的本质 4
1.2.3程序设计的过程 4
1.3算法的概念和特性 5
1.3.1什么是算法 5
1.3.2算法举例 6
1.3.3算法的特性 7
1.4算法的表示方法 7
1.4.1自然语言 7
1.4.2伪代码 7
1.4.3传统流程图 7
1.4.4 N-S流程图 8
1.5结构化的程序设计方法 8
1.5.1结构化程序设计 9
1.5.2结构化程序设计方法 10
习题 10
第2章Visual C++ 6.0简介 12
2.1 Visual C++ 6.0简介 12
2.2 Visual C++6.0的安装与启动 12
2.2.1安装过程 12
2.2.2 Visual C++6.0的启动 14
2.3 Visual C++ 6.0的集成开发环境 15
2.4 Visual C++ 6.0的帮助 18
2.5 Visual C++ 6.0中的C语言程序设计 19
习题 23
第3章 数据类型、运算符与表达式 25
3.1 C语言的数据类型 25
3.2常量与变量 25
3.2.1变量 25
3.2.2常量 28
3.3整型数据 29
3.3.1整型常量与变量 29
3.3.2整型数据的输入和输出 30
3.3.3整型数据在内存中的存储方式 36
3.4实型数据 37
3.4.1实型常量与变量 37
3.4.2实型数据的输入和输出 38
3.4.3实型数据在内存中的存储方式 39
3.5字符型数据 41
3.5.1字符型常量、转义字符与变量 41
3.5.2字符型数据的输入和输出 43
3.6字符串 45
3.7算术运算符和算术表达式 45
3.7.1 C语言运算符简介 45
3.7.2算术运算符和表达式 46
3.7.3自增自减运算符 47
3.7.4赋值运算符和赋值表达式 49
3.7.5逗号运算符和表达式 51
3.8数据类型的转换 52
3.8.1隐式类型转换 52
3.8.2强制类型转换运算符 52
习题 53
第4章 顺序结构程序设计 57
4.1 C语句概述 57
4.2 C程序的注释 58
4.3顺序结构程序设计 58
4.4常见的编程错误及其调试 63
4.4.1语法错误 63
4.4.2运行时错误 65
4.4.3未检测到的错误 65
4.4.4逻辑错误 66
4.4.5程序调试方法 67
习题 68
第5章 选择结构程序设计 69
5.1选择结构算法设计 69
5.2关系运算与逻辑运算 72
5.2.1关系运算符和关系表达式 72
5.2.2逻辑运算符和逻辑表达式 74
5.3 if语句 76
5.4 switch语句 80
5.5选择结构的嵌套 84
5.6条件运算符 88
习题 89
第6章 循环结构程序设计 94
6.1循环结构概述 94
6.2循环结构算法设计 95
6.2.1当型循环和直到型循环 95
6.2.2循环算法的设计 97
6.3循环结构编程 99
6.3.1 while语句(当型循环) 99
6.3.2 do while语句(直到型循环) 101
6.3.3 for循环语句 103
6.3.4 break语句和continue语句 105
6.3.5循环的嵌套 107
6.4循环结构程序举例 109
6.5 goto语句 120
习题 121
第7章 数组 128
7.1数组 128
7.1.1数组的引出 128
7.1.2多维数组 128
7.2一维数组算法设计 129
7.3一维数组程序设计 131
7.3.1一维数组的定义 131
7.3.2数组元素引用 131
7.3.3一维数组初始化 132
7.3.4一维数组程序设计 132
7.4二维数组算法设计 137
7.5二维数组程序设计 139
7.5.1二维数组的定义 139
7.5.2数组元素引用 140
7.5.3二维数组初始化 140
7.5.4二维数组程序设计 140
7.6字符数组 145
7.6.1字符数组的定义和使用 145
7.6.2字符串数组 147
7.6.3字符串处理函数 149
7.6.4字符串处理算法和程序设计 152
习题 155
第8章 函数 162
8.1函数的定义和调用 162
8.1.1函数定义 162
8.1.2函数调用 163
8.1.3参数的传递 166
8.1.4函数返回值 168
8.2数组作为参数 169
8.3函数的嵌套调用 174
8.4函数的递归调用 176
8.5局部变量和全局变量 178
8.6变量的存储类别和生存期 181
8.7程序的模块化设计 183
习题 185
第9章 编译和编译预处理 192
9.1宏定义 192
9.1.1不带参数的宏定义 192
9.1.2带参数的宏定义 195
9.2文件包含 198
9.3条件编译 200
习题 203
第10章 指针 207
10.1地址和指针 207
10.2变量的指针和指向变量的指针变量 207
10.2.1定义指针变量 208
10.2.2指针变量的引用 208
10.2.3指针变量作为函数参数 210
10.3数组的指针和指向数组的指针变量 212
10.3.1指向数组元素的指针 212
10.3.2通过指针引用数组元素 213
10.3.3数组和指向数组的指针变量作函数参数 215
10.3.4指向多维数组的指针和指针变量 218
10.4字符串的指针和指向字符串的指针变量 220
10.4.1字符串的表示形式 220
10.4.2字符串指针作函数参数 222
10.4.3字符指针变量和字符数组的讨论 223
10.5函数的指针和指向函数的指针变量 224
10.5.1用函数指针变量调用函数 224
10.5.2用指向函数的指针作函数参数 225
10.6返回指针值的函数 226
10.7指针数组和指向指针的指针 227
10.7.1指针数组 227
10.7.2指向指针的指针 230
10.7.3指针数组作main函数的形参 232
习题 234
第11章 其他数据类型 239
11.1结构体 239
11.1.1结构体类型的声明 239
11.1.2定义结构体类型变量 240
11.1.3结构体变量的引用 242
11.1.4结构体变量的初始化 243
11.2结构体数组 245
11.2.1定义结构体数组 245
11.2.2结构体数组的初始化 245
11.2.3结构体数组应用举例 247
11.3指向结构体类型数据的指针 248
11.3.1指向结构体变量的指针 248
11.3.2指向结构体数组的指针 249
11.3.3用结构体变量和指向结构体的指针作函数参数 250
11.4链表 251
11.4.1链表概述 251
11.4.2处理动态链表所需的函数 253
11.4.3建立动态链表 255
11.4.4输出链表 257
11.4.5删除链表的结点 258
11.4.6插入链表结点 261
11.4.7链表的综合操作 265
11.5共用体 266
11.5.1共用体的概念 266
11.5.2共用体变量的引用 267
11.6枚举类型 270
11.7用typedef定义类型 272
习题 274
第12章 位运算 281
12.1位运算符和位运算 281
12.2按位取反(~)运算符 281
12.3按位与(&)运算符 282
12.4按位或(|)运算符 283
12.5按位异或(^)运算符 284
12.6左移(<<)运算符 285
12.7右移(>>)运算符 286
12.8位运算赋值运算符 287
12.9不同长度的运算数之间的运算规则 287
12.10位运算程序实例 287
习题 289
第13章 文件 291
13.1文件概述 291
13.2文件指针 292
13.3文件的打开与关闭 293
13.3.1 fopen函数 293
13.3.2 fclose函数 294
13.4文件的读写 295
13.4.1 fputc函数 295
13.4.2 fgetc函数 297
13.4.3fputs函数 298
13.4.4 fgets函数 299
13.4.5 fprintf函数 299
13.4.6 fscanf函数 301
13.4.7 fwrite函数 301
13.4.8 fread函数 303
13.4.9 rewind函数 304
13.4.10 fseek函数 304
13.4.11 ftell函数 305
13.4.12 feof函数 306
13.4.13 ferror函数 306
习题 307
第14章C++及面向对象程序设计基础 309
14.1类与对象的定义 309
14.1.1类的定义 309
14.1.2对象的定义与使用 310
14.2对象的初始化、构造函数和析构函数 311
14.2.1构造函数 312
14.2.2析构函数 313
14.3对象的使用 314
14.3.1类的包含和子对象的初始化 314
14.3.2对象指针 314
14.3.3对象数组 315
14.4对象在函数间的传递 316
14.4.1对象作为函数的返回值 316
14.4.2对象作为函数参数 316
14.5对象的作用域与生命周期 317
14.6静态数据成员和静态成员函数 317
14.7友元 319
14.7.1友元函数 319
14.7.2友元成员 320
14.7.3友元类 321
14.8常对象 322
习题 323
第15章 继承性与派生类 326
15.1基类与派生类 326
15.2单一继承 326
15.2.1单一继承派生类的定义 326
15.2.2公有继承、私有继承和保护继承 328
15.2.3单一继承派生类的构造函数和析构函数 332
15.3多重继承 333
15.3.1多重继承派生类的定义 333
15.3.2多重继承派生类的构造函数和析构函数 335
15.3.3多重继承中的歧义 336
15.4虚基类 338
15.4.1虚基类的概念 338
15.4.2虚基类及其派生类的构造函数和析构函数 339
习题 341
第16章 多态性与虚函数 345
16.1多态性与虚函数 345
16.2运算符重载 345
16.2.1运算符重载为成员函数 346
16.2.2运算符重载为友元函数 347
16.3静态联编和动态联编 349
16.3.1静态联编 350
16.3.2动态联编 351
16.4虚函数 351
16.5纯虚函数和抽象类 356
16.5.1纯虚函数 356
16.5.2抽象类 358
习题 358
第17章 综合程序设计 364
17.1排序算法比较 364
17.2个人通讯录 369
17.3万年历 375
习题 379
附录Ⅰ Visual C++ 6.0常见错误提示 380
附录Ⅱ ANSI C常用库函数 382
参考文献 388