第1章 C语言概述 1
1.1程序设计方法 1
1.1.1程序设计概述 1
1.1.2程序设计的一般过程 2
1.1.3结构化程序设计思想 4
1.2C语言简介 5
1.2.1C语言的发展 5
1.2.2C语言的特点 5
1.3C语言程序基本结构及书写风格 6
1.3.1C语言程序的基本结构 6
1.3.2C语言程序的书写风格 7
1.4运行C程序的步骤与方法 7
1.4.1运行C程序的步骤 7
1.4.2上机运行C程序的方法 8
实训练习 15
习题 15
第2章 数据类型与表达式 17
2.1C语言的数据类型 17
2.2变量与常量 17
2.2.1变量 18
2.2.2常量 20
2.3整型数据 21
2.3.1整数在内存中的存放形式 21
2.3.2整型变量的分类 21
2.3.3整型变量的使用 23
2.3.4整型常量的表示方法 25
2.4实型数据 26
2.4.1实型常量的表示方法 26
2.4.2实数在内存中的存放形式 27
2.4.3实型变量的分类 28
2.4.4浮点型的舍入误差 28
2.5字符型数据 29
2.5.1字符常量和字符串常量的表示方法 29
2.5.2字符和字符串在内存中的存放 30
2.5.3字符变量的分类 31
2.5.4字符变量的使用 33
2.6运算符和表达式 34
2.6.1表达式 34
2.6.2运算符 35
2.6.3算术运算符 35
2.6.4关系与逻辑运算符 37
2.6.5条件运算符 39
2.6.6复合的赋值运算符 40
2.6.7求存储长度sizeof运算符 41
2.6.8逗号运算符 42
2.6.9表达式的求值 42
2.6.10表达式中的数据类型转换 43
实训练习 46
习题 48
第3章 C语言程序设计初步 49
3.1C语言语句概述 49
3.1.1控制语句 49
3.1.2表达式语句 49
3.1.3复合语句 51
3.2顺序结构程序设计 51
3.2.1顺序结构描述 51
3.2.2格式输出输入语句 52
3.2.3单个字符输入输出语句 60
3.3分支结构程序设计 61
3.3.1单分支结构 61
3.3.2多分支语句 69
3.4循环结构程序设计 72
3.4.1for循环语句 72
3.4.2while循环语句 73
3.4.3do…while循环语句 74
3.4.4几种循环语句的比较 75
实训练习 77
习题 77
第4章 数组 79
4.1一维数组的定义和引用 79
4.1.1一维数组的定义方式 79
4.1.2一维数组元素的引用 80
4.1.3一维数组的初始化 81
4.1.4一维数组程序举例 82
4.2二维数组的定义和引用 83
4.2.1二维数组的定义 83
4.2.2二维数组元素的引用 84
4.2.3二维数组的初始化 85
4.2.4二维数组程序举例 86
4.3字符数组 87
4.3.1字符数组的定义 87
4.3.2字符数组的初始化 88
4.3.3字符数组的引用 88
4.3.4字符串和字符串结束标志 89
4.3.5字符数组的输入输出 89
4.3.6常用字符串函数 91
4.4程序举例 94
实训练习 97
习题 98
第5章 函数与变量 100
5.1概述 100
5.2函数定义的一般形式 101
5.2.1定义无参函数的一般形式 101
5.2.2定义有参函数的一般形式 102
5.2.3空函数 102
5.3函数参数和函数的值 103
5.3.1函数参数 103
5.3.2函数的值 104
5.4函数的调用 105
5.4.1函数调用的一般形式 105
5.4.2对被调用函数的声明和函数原型 107
5.5函数的嵌套调用与递归调用 107
5.5.1函数的嵌套调用 107
5.5.2函数的递归调用 109
5.6数组作函数参数 112
5.6.1数据元素作函数实参 112
5.6.2数组名作函数参数 113
5.6.3用多维数组名作函数参数 115
5.7变量的作用域 116
5.7.1局部变量 116
5.7.2全局变量 117
5.8变量的存储方式 120
5.8.1动态存储方式和静态存储方式 120
5.8.2auto变量 121
5.8.3寄存器(register)变量 123
5.8.4静态变量(static) 124
5.8.5用extern声明外部变量 127
5.9内部函数和外部函数 128
5.9.1内部函数 128
5.9.2外部函数 129
实训练习 130
习题 131
第6章 指针 134
6.1指针简介 134
6.2指针变量 135
6.2.1指针的定义 135
6.2.2指针变量的引用 136
6.2.3指针运算 138
6.2.4指向指针的指针 140
6.2.5指针变量作函数参数 141
6.3数组和指针 142
6.3.1一维数组的指针表示方法 142
6.3.2数组名和数组指针变量作函数参数 145
6.3.3二维数组的指针表示方法 148
6.3.4指向数组的指针变量 150
6.3.5用指向数组的指针作函数参数 151
6.4指针与字符串 152
6.4.1指向字符串的指针 152
6.4.2字符串指针变量作函数参数 155
6.4.3使用字符串指针变量与字符数组的区别 156
6.5函数指针与指针函数 158
6.5.1用函数指针变量指向函数 158
6.5.2指针函数 159
6.6指针数组 160
6.7带参数的main函数 163
实训练习 164
习题 165
第7章 结构体、共用体与用户自定义类型 168
7.1结构体类型 168
7.1.1概述 168
7.1.2结构体类型的定义 168
7.1.3结构体变量的定义 169
7.1.4结构体变量的初始化 171
7.1.5结构体变量的引用 171
7.2结构体数组 172
7.2.1结构体数组定义 172
7.2.2结构体数组的初始化与赋值 173
7.2.3结构体数组的输入与输出 173
7.3指向结构体类型数据的指针 175
7.3.1指向结构体变量的指针变量 175
7.3.2指向结构体数组的指针变量 176
7.3.3结构体指针变量作函数参数 177
7.4链表与结构体 178
7.4.1链表概述 178
7.4.2动态分配内存空间的函数 179
7.4.3链表的基本操作 180
7.5共用体 185
7.5.1共用体概述 185
7.5.2共用体类型的定义 186
7.5.3共用体变量的定义 187
7.5.4共用体变量的赋值和使用 187
7.6用户自定义类型 188
实训练习 190
习题 190
第8章 C++初步认识 193
8.1面向对象的方法 193
8.1.1关于面向对象 193
8.1.2为什么使用面向对象 194
8.1.3面向对象的基本概念 194
8.2C++程序的框架结构 198
8.3Visual C++6.0集成环境使用 204
实训练习 206
习题 207
第9章 类与对象 208
9.1类和对象的基本概念 208
9.1.1从结构到类 208
9.1.2成员函数的定义 210
9.1.3对象的定义及引用 211
9.1.4类的作用域 213
9.2类的静态成员 215
9.2.1静态数据成员 215
9.2.2静态成员函数 216
9.3构造函数与析构函数 218
9.3.1构造函数 218
9.3.2缺省参数的构造函数 219
9.3.3重载构造函数 220
9.3.4拷贝构造函数 221
9.3.5析构函数 223
9.4友元 225
9.4.1友元函数 226
9.4.2友元类 227
实训练习 230
习题 230
第10章 派生类与继承 232
10.1基类与派生类 232
10.1.1基本概念 232
10.1.2面向对象设计中继承的必要性 232
10.1.3派生类的定义 233
10.2派生类的继承方式 235
10.2.1公有继承 235
10.2.2私有继承 236
10.2.3保护继承 237
10.2.4基类私有成员的访问 238
10.3派生类的构造函数和析构函数 243
10.3.1派生类构造函数和析构函数的执行顺序 243
10.3.2派生类构造函数和析构函数的构造规则 243
10.4多重继承 246
10.4.1多重继承的声明 246
10.4.2多重继承的构造函数 247
10.4.3多重继承的二义性 248
10.4.4虚基类 249
实训练习 253
习题 254
第11章 多态性 256
11.1编译时的多态性与运行时的多态性 256
11.2函数重载 256
11.3运算符重载 257
11.3.1类以外的运算符重载 257
11.3.2成员运算符函数 257
11.3.3友元运算符函数 258
11.3.4成员运算符函数与友元运算符函数的比较 259
11.3.5“++”和“--”的重载 260
11.3.6赋值运算符“=”的重载 262
11.4虚函数 263
11.4.1引入派生类后的指针 263
11.4.2虚函数的定义及使用 264
11.4.3纯虚函数和抽象类 267
实训练习 269
习题 269
第12章 模板 271
12.1模板的概念 271
12.2函数模板与模板函数 271
12.2.1多参数模板函数 272
12.2.2函数模板的重载 273
12.3类模板与模板类 274
12.3.1类模板的定义 274
12.3.2固定类型的类模板 276
实训练习 277
习题 278
第13章 C++的I/O流类库 279
13.1C++的流及流类库 279
13.1.1C++的流 279
13.1.2流类库 282
13.2输入输出的格式控制 283
13.2.1用ios类成员函数进行格式控制 284
13.2.2使用操作符进行输入输出格式控制 287
13.3文件输入输出 288
13.3.1文件的打开与关闭 289
13.3.2文本文件的读/写 290
13.3.3二进制文件的读/写 291
13.3.4随机访问文件 292
实训练习 294
习题 294
第14章 异常处理 295
14.1异常处理的概念 295
14.2异常处理的基本思想 296
14.3异常处理的实现 296
14.4函数的异常处理 298
14.5异常对象 299
实训练习 301
习题 302
参考文献 303