第1章 C语言概述 1
1.1 C语言的发展及特点 1
1.1.1 C语言的发展 1
1.1.2 C语言的特点 2
1.2 C语言程序的基本结构 3
1.3 算法及其描述 5
1.3.1 算法的概念 5
1.3.2 算法的描述方法 7
1.4 程序设计方法 11
1.4.1 程序设计的一般步骤 11
1.4.2 结构化程序设计方法 11
本章小结 13
习题 13
第2章 基本数据类型、运算符与表达式 15
2.1 C语言的数据类型 15
2.2 常量和变量 16
2.2.1 常量 16
2.2.2 变量 17
2.3 整型数据 18
2.3.1 整型常量的表示 18
2.3.2 整型变量 18
2.3.3 整型常量的类型 20
2.4 实型数据 20
2.4.1 实型常量的表示 20
2.4.2 实型变量 21
2.4.3 实型常量的类型 22
2.5 字符型数据 22
2.5.1 字符型常量 22
2.5.2 字符变量 24
2.6 算术运算符与算术表达式 25
2.6.1 基本算术运算符 25
2.6.2 算术表达式及算术运算符的优先级和结合性 26
2.6.3 自增、自减运算符 27
2.7 赋值运算符与赋值表达式 28
2.7.1 赋值运算符 28
2.7.2 复合赋值运算符 28
2.7.3 赋值表达式 29
2.8 逗号运算符与逗号表达式 29
2.9 位运算符 30
2.9.1 位运算符 30
2.9.2 位运算复合赋值运算符 31
2.10 数据类型转换与计算类型长度运算符 32
2.10.1 自动类型转换 32
2.10.2 强制类型转换 33
2.10.3 计算类型长度运算符 34
本章小结 34
习题 34
第3章 顺序结构程序设计 38
3.1 C语言语句概述 38
3.1.1 简单语句 38
3.1.2 复合语句 39
3.2 字符数据的输入/输出 39
3.2.1 字符输出函数(putchar) 40
3.2.2 字符输入函数(getchar) 40
3.3 格式化输入/输出函数 41
3.3.1 格式输出函数(printf) 41
3.3.2 格式输入函数(scanf) 44
3.4 顺序结构程序设计举例 47
本章小结 48
习题 49
第4章 选择结构程序设计 52
4.1 关系运算符和关系表达式 52
4.1.1 关系运算符 52
4.1.2 关系表达式 53
4.2 逻辑运算符和逻辑表达式 53
4.2.1 逻辑运算符 53
4.2.2 逻辑表达式 54
4.3 if语句及其构成的选择结构 55
4.3.1 if语句的形式 55
4.3.2 if语句的嵌套 57
4.3.3 条件运算符和条件表达式 59
4.4 switch语句及其构成的选择结构 60
4.4.1 switch语句的形式 60
4.4.2 在switch语句中使用break语句 61
4.5 选择结构程序设计举例 62
本章小结 64
习题 65
第5章 循环结构程序设计 70
5.1 概述 70
5.2 while语句 71
5.3 do-while语句 72
5.4 for语句 74
5.5 break语句和continue语句 76
5.5.1 break语句 76
5.5.2 continue语句 77
5.6 循环的嵌套 77
5.7 循环结构程序设计举例 78
本章小结 81
习题 81
第6章 数组 89
6.1 一维数组 89
6.1.1 一维数组的定义 89
6.1.2 一维数组元素的引用 90
6.1.3 一维数组的存储与初始化 91
6.1.4 一维数组程序设计举例 92
6.2 二维数组与多维数组 93
6.2.1 二维数组的定义 93
6.2.2 二维数组元素的引用 95
6.2.3 二维数组的初始化 95
6.2.4 二维数组程序设计举例 96
6.2.5 多维数组概述 97
6.3 字符数组与字符串 98
6.3.1 字符数组的定义 98
6.3.2 字符数组的初始化 98
6.3.3 字符数组元素的引用 98
6.3.4 字符串与字符数组 99
6.3.5 字符串处理函数 101
6.3.6 字符数组程序设计举例 103
本章小结 105
习题 105
第7章 函数 112
7.1 模块化程序设计 112
7.1.1 模块化程序设计概念 112
7.1.2 函数概述 113
7.2 函数的定义 114
7.2.1 函数定义的一般形式 114
7.2.2 函数的返回 115
7.3 函数的调用 115
7.3.1 函数调用的一般方式 115
7.3.2 函数参数的传递 116
7.3.3 函数的声明 117
7.3.4 函数的嵌套调用 117
7.4 函数的递归调用 119
7.5 数组作为函数参数 121
7.5.1 数组元素作函数实参 121
7.5.2 数组名作为函数参数 122
7.5.3 多维数组名作为函数参数 123
7.6 变量的作用域 124
7.6.1 局部变量 124
7.6.2 全局变量 125
7.7 变量的存储类别 126
7.7.1 变量的生存期 126
7.7.2 局部变量的存储类别 126
7.7.3 全局变量的存储类别 128
7.8 内部函数和外部函数 130
本章小结 131
习题 131
第8章 编译预处理 138
8.1 宏定义 138
8.1.1 无参宏定义 138
8.1.2 带参宏定义 141
8.2 条件编译 144
8.3 文件包含 146
本章小结 148
习题 148
第9章 指针 150
9.1 地址和指针的概念 150
9.2 指针变量 151
9.2.1 指针变量的定义与赋值 151
9.2.2 指针变量的引用 152
9.3 指针与数组 154
9.3.1 指针与一维数组 154
9.3.2 指针与二维数组 157
9.4 指针与字符串 160
9.4.1 指向字符数组的指针变量 160
9.4.2 指向字符串常量的指针变量 161
9.5 指针与函数 162
9.5.1 指针作为函数的参数 162
9.5.2 指向函数的指针(函数指针) 166
9.5.3 返回指针值的函数(指针函数) 168
9.6 指针数组和多级指针 169
9.6.1 指针数组的定义 169
9.6.2 指针数组与字符串 170
9.6.3 多级指针 171
9.6.4 指针数组作为函数参数 172
9.6.5 带参main函数 172
本章小结 174
习题 174
第10章 结构体、共用体及枚举类型 182
10.1 结构体变量的定义 182
10.1.1 结构体类型的定义 182
10.1.2 结构体变量的定义 183
10.2 结构体变量的引用和初始化 184
10.2.1 结构体变量的引用 184
10.2.2 结构体变量的初始化 185
10.3 结构体数组 185
10.3.1 结构体数组的定义 185
10.3.2 结构体数组的初始化 186
10.3.3 结构体数组的引用 186
10.4 结构体指针变量 187
10.4.1 指向结构体变量的指针 187
10.4.2 指向结构体数组的指针 189
10.5 结构体与函数 190
10.5.1 结构体变量作为函数参数 190
10.5.2 返回结构体类型数据的函数 190
10.5.3 结构体指针作为函数参数 191
10.6 位段结构体 192
10.6.1 位段结构体类型及其变量的定义 192
10.6.2 位域的引用 193
10.7 链表 194
10.7.1 链表概述 194
10.7.2 内存动态管理 194
10.7.3 创建链表 196
10.7.4 顺序访问链表中的结点 197
10.7.5 在链表中插入结点 197
10.7.6 在链表中删除结点 200
10.8 共用体 202
10.8.1 共用体类型及其变量的定义 202
10.8.2 共用体变量的引用 203
10.9 枚举类型 204
10.9.1 枚举类型和枚举变量的定义 204
10.9.2 枚举类型变量的赋值和使用 205
10.10 用typedef定义类型 206
本章小结 207
习题 207
第11章 文件 212
11.1 文件概述 212
11.1.1 文件的概念 212
11.1.2 文件的分类 212
11.2 文件类型指针和文件位置指针 214
11.2.1 文件类型指针 214
11.2.2 文件位置指针 214
11.3 文件的打开和关闭 214
11.3.1 文件打开函数 215
11.3.2 文件关闭函数 216
11.4 文件的读写 217
11.4.1 读写一个字符的函数 217
11.4.2 块读写函数 218
11.4.3 其他读写函数 221
11.5 文件的定位和出错检测 221
11.5.1 文件的定位函数 221
11.5.2 出错检测函数 223
本章小结 223
习题 224
第12章 C++基础 229
12.1 概述 229
12.1.1 C++的发展历程 229
12.1.2 面向对象程序设计 230
12.2 C++对C的扩充 231
12.2.1 C++的输入/输出 231
12.2.2 重载函数与缺省参数的函数 233
12.2.3 变量的引用 234
12.2.4 内联函数 236
12.2.5 作用域运算符 236
12.2.6 new和delete 237
12.3 类与对象 238
12.3.1 类的定义 238
12.3.2 对象 239
12.3.3 构造函数 240
12.3.4 析构函数 243
12.4 继承与派生 243
12.4.1 继承与派生的方式 243
12.4.2 派生类的三种继承方式 244
12.4.3 派生类的构造和析构函数 246
12.5 多态性与虚函数 248
12.5.1 多态性 248
12.5.2 虚函数 249
本章小结 251
习题 251
第13章 VC++6.0开发环境及程序测试与调试 254
13.1 VC++6.0的主窗口界面 254
13.2 编辑C语言源程序文件 255
13.2.1 新建C源程序文件 256
13.2.2 编辑已存在的文件 258
13.3 编译、连接和运行程序 258
13.3.1 编译 259
13.3.2 连接 260
13.3.3 运行 261
13.4 建立和运行多个文件的方法 261
13.5 程序测试与调试 263
13.5.1 程序测试 263
13.5.2 程序调试 265
13.6 常见编译、连接出错信息 267
第14章 上机实验内容 274
14.1 上机实验总目的和要求 274
14.1.1 上机实验总目的 274
14.1.2 上机实验总要求 274
14.2 实验一 基本数据类型、运算符与表达式 275
14.2.1 实验目的和要求 275
14.2.2 实验内容及操作步骤 275
14.2.3 选做题 277
14.3 实验二 顺序和选择程序设计 278
14.3.1 实验目的和要求 278
14.3.2 实验内容及操作步骤 278
14.3.3 选做题 280
14.4 实验三 循环程序设计 281
14.4.1 实验目的和要求 281
14.4.2 实验内容及操作步骤 281
14.4.3 选做题 283
14.5 实验四 数组 283
14.5.1 实验目的和要求 283
14.5.2 实验内容及操作步骤 283
14.5.3 选做题 285
14.6 实验五 函数(1) 286
14.6.1 实验目的和要求 286
14.6.2 实验内容及操作步骤 286
14.6.3 选做题 289
14.7 实验六 函数(2)与编译预处理 289
14.7.1 实验目的和要求 289
14.7.2 实验内容及操作步骤 289
14.7.3 选做题 290
14.8 实验七 指针 290
14.8.1 实验目的和要求 290
14.8.2 实验内容及操作步骤 290
14.8.3 选做题 292
14.9 实验八 结构体、共用体与枚举类型 293
14.9.1 实验目的和要求 293
14.9.2 实验内容及操作步骤 293
14.9.3 选做题 296
14.10 实验九 文件 296
14.10.1 实验目的和要求 296
14.10.2 实验内容及操作步骤 297
14.10.3 选做题 298
14.11 实验十 C++基础 298
14.11.1 实验目的和要求 298
14.11.2 实验内容及操作步骤 298
14.11.3 选做题 298
14.12 实验十一 综合程序设计 299
14.12.1 实验目的和要求 299
14.12.2 实验内容及步骤 299
14.12.3 选做题 300
附录Ⅰ ASCII代码对照表 301
附录Ⅱ C语言中的关键字 302
附录Ⅲ 运算符优先级和结合方向 303
附录Ⅳ 常用库函数 305
参考文献 310