第1章 C语言简单程序的编写和调试 1
1.1 C语言的特点 1
1.2 程序与程序设计 2
1.3 C程序的基本结构 2
1.4 C程序的调试 6
1.4.1 编辑 6
1.4.2 编译 9
1.4.3 连接 10
1.4.4 运行 10
1.4.5 程序的跟踪调试 10
习题 12
1.5 程序举例 12
第2章 C语言程序设计基础 13
2.1 基本数据类型 13
2.1.1 C程序数据分类 13
2.1.2 常量、符号常量与变量 14
2.2 常用数据类型 15
2.2.1 整型数据 15
2.2.2 实型 18
2.2.3 字符型 19
2.3 运算符和表达式 21
2.3.1 C程序的运算符和表达式的基本概念 21
2.3.2 算术运算符和算术表达式 23
2.3.3 关系运算符和关系表达式 24
2.3.4 逻辑运算符和逻辑表达式 25
2.3.5 赋值运算符和赋值表达式 27
2.3.6 自增、自减运算符及其表达式 29
2.3.7 逗号运算符和逗号表达式 30
2.3.8 位运算符 32
2.3.9 其他运算符 34
2.4 基本输入/输出函数 36
2.4.1 格式输出函数printf() 36
2.4.2 格式输入函数scanf() 42
2.4.3 字符输出函数putchar() 44
2.4.4 字符输入函数getchar() 44
2.5 程序举例 44
习题 46
3.1.1 C语句概述 49
第3章 控制结构 49
3.1 程序的3种基本控制结构 49
3.1.2 C程序的逻辑结构 51
3.2 if语句 52
3.2.1 简单if语句 52
3.2.2 if-else语句 52
3.2.3 elseif语句 53
3.2.4 if语句的嵌套 54
3.3 switch语句 56
3.4 while语句 59
3.5 do-while语句 60
3.6 for语句 62
3.7 几种循环语句的比较和循环嵌套 65
3.8 break语句和continue语句 66
3.8.1 break语句 66
3.8.2 continue语句 66
3.9 goto语句和语句标号 67
3.10 程序举例 68
习题 74
第4章 数组 80
4.1 一维数组 80
4.1.1 一维数组的引入 80
4.1.2 一维数组的定义和初始化 83
4.1.3 一维数组元素的引用 85
4.2 多维数组 88
4.2.1 二维数组的定义和初始化 89
4.2.2 二维数组元素的引用 90
4.3 字符数组 92
4.3.1 字符串与一维字符数组 92
4.3.2 二维字符数组 94
4.3.3 字符数组的输入和输出 94
4.3.4 字符串处理函数 96
4.4 程序举例 98
习题 102
第5章 指针 104
5.1 指针和地址 104
5.2 指针变量的定义和引用 106
5.3 指针运算 108
5.4.1 指向一维数组的指针 111
5.4 指针与数组 111
5.4.2 指向二维数组的指针 114
5.5 指针与字符串 117
5.6 指向指针的指针 120
5.7 用于动态内存分配的函数 122
5.8 程序举例 124
习题 131
第6章 函数 132
6.1 函数的定义和声明 132
6.1.1 函数的引入 132
6.1.2 函数的定义 134
6.2.1 函数的调用 136
6.2 函数的调用与返回 136
6.2.2 函数的返回 139
6.3 函数的参数 140
6.3.1 传值调用 141
6.3.2 传址调用 143
6.4 命令行参数 150
6.5 递归调用 151
6.6 程序举例 155
习题 158
第7章 编译预处理与变量的存储类型 162
7.1 宏定义 162
7.1.1 不带参数宏的定义 162
7.1.2 带参数宏的定义 165
7.2 文件包含 167
7.3 条件编译 169
7.4 变量的存储类型 172
7.4.1 自动变量 172
7.4.2 静态变量 173
7.4.3 寄存器变量 174
7.4.4 外部变量 175
7.5 多个源程序文件下的变量使用 177
7.6 程序举例 178
习题 180
8.1 文件的基本概念 181
第8章 文件 181
8.1.1 缓冲文件系统 182
8.1.2 非缓冲文件系统 182
8.1.3 文件指针和文件位置指针 183
8.2 文件的打开与关闭 183
8.2.1 文件的打开函数fopen() 183
8.2.2 文件的关闭函数fclose() 185
8.3 文件的输入/输出函数 185
8.3.1 按字符方式读/写文件的函数fgetc(),fputc() 185
8.3.2 按行方式读/写文件的函数fgets(),fputs() 187
8.3.3 按格式读/写文件的函数fprintf(),fscanf() 190
8.3.4 按块读/写文件的函数fread(),fwrite() 191
8.3.5 文件定位函数 193
8.4 非缓冲文件系统 196
8.5 程序举例 197
习题 201
第9章 结构体与共用体 203
9.1 结构体 203
9.1.1 结构体类型 203
9.1.2 结构体变量的定义 204
9.1.3 结构成员的引用 205
9.1.4 结构体变量的初始化 207
9.2 结构数组 209
9.3 结构指针 212
9.4 结构与函数 215
9.4.1 结构体变量作为函数的参数 215
9.4.2 结构体变量的地址作为函数的参数 216
9.4.3 结构数组作为函数的参数 218
9.5 共用体 220
9.6 枚举 222
9.7 用typedef定义类型 224
9.8 链表 225
9.8.1 单向链表 226
9.8.2 链表的建立 226
9.8.3 链表的插入和删除 228
9.9 程序举例 232
习题 237
第10章 图形程序设计基础 239
10.1 图形适配器的基本工作方式 239
10.2 常用图形函数 240
10.3 图形程序举例 247
习题 248
第11章 C++程序设计基础 251
11.1 C++程序结构 251
11.2 C++的输入/输出流 252
11.2.1 输出流(cout) 252
11.2.2 输入流(cin) 252
11.3 引用 254
11.4 函数的重载 255
11.5 带缺省参数的函数 257
11.6.1 作用域运算符 258
11.6 C++新增运算符 258
11.6.2 动态内存分配与撤消运算符 259
11.7 const修饰符 260
11.8 类和对象 260
11.8.1 类和对象的定义 261
11.8.2 构造函数和析构函数 266
11.8.3 类的友元 271
11.8.4 this指针 273
11.9 重载 274
11.9.1 类成员函数重载 274
11.9.2 类构造函数重载 276
11.9.3 运算符重载 276
11.10.1 基类与派生类 280
11.10 继承 280
11.10.2 public继承 282
11.10.3 private继承 286
11.10.4 protected继承 287
11.10.5 多继承 288
11.10.6 派生类的构造函数和析构函数 290
11.11 多态性和虚拟函数 296
11.11.1 多态性 297
11.11.2 虚拟函数 297
11.11.3 虚拟析构函数 305
习题 306
第2章 C语言程序设计基础 307
习题参考答案 307
第3章 控制结构 309
第4章 数组 312
第5章 指针 317
第6章 函数 322
第7章 编译预处理与变量的存储类型 328
第8章 文件 331
第9章 结构体与共用体 334
第10章 图形程序设计 340
第11章 C++程序设计基础 342
附录 345
附录A 常用字符与代码对照表 345
附录B C语言中的关键字 347
附录C 运算符的优先级与结合性 347