第1章 C语言程序设计概述 1
1.1 程序与程序设计 1
1.2 C语言简介 2
1.2.1 C语言的发展历程 2
1.2.2 C语言的特色 3
1.3 简单的C语言程序 4
1.4 C语言程序的上机步骤 4
1.4.1 在Turbo C环境下运行C程序的步骤 5
1.4.2 在Visual C++6.0环境下运行C程序的步骤 6
1.5 C语言的基本词法 7
1.6 C语言程序的基本结构 8
本章小结 9
习题 10
第2章 算法及算法设计简介 12
2.1 算法的概念 12
2.2 C语言基本语句类型及算法的表示方式 14
2.3 简单的算法实例 16
2.4 结构化程序设计方法简介 20
本章小结 21
习题 21
第3章 数据描述与基本操作 23
3.1 基本数据类型 23
3.1.1 整型 23
3.1.2 实型 26
3.1.3 字符型 27
3.2 常用的运算符和表达式 30
3.2.1 赋值运算符 30
3.2.2 算术运算符 32
3.2.3 位运算符 35
3.2.4 条件运算符和逗号运算符 39
3.2.5 长度测试运算符 41
3.2.6 数值型数据的混合运算 41
3.3 表达式及赋值语句 41
3.4 基本输入输出操作的实现 42
3.4.1 基本输入输出的概念 42
3.4.2 字符、字符串数据的输入输出 43
3.4.3 格式化输入输出函数 45
3.5 顺序结构程序设计实例 51
本章小结 54
习题 54
第4章 选择结构程序设计 60
4.1 关系运算符与关系表达式 60
4.1.1 关系运算符及其优先次序 60
4.1.2 关系表达式 61
4 2 逻辑运算符与逻辑表达式 61
4.2.1 逻辑运算符及其优先次序 61
4.2.2 逻辑表达式 62
4.3 if语句 63
4.3.1 if语句的三种形式 63
4.3.2 if语句的嵌套 66
4.4 switch语句 69
4.5 选择结构程序设计实例 74
本章小结 78
习题 78
第5章 循环结构程序设计 85
5.1 循环结构的应用场合 85
5.2 while语句 85
5.3 do-while语句 87
5.4 for语句 90
5.5 多重循环 93
5.6 几种循环语句的比较 95
5.7 转移控制语句 95
5.7.1 break语句 95
5.7.2 continue语句 96
5.7.3 goto语句 97
5.8 循环结构程序设计实例 98
本章小结 99
习题 99
第6章 数组 111
6.1 概述 111
6.2 一维数组的定义、初始化和引用 112
6.2.1 一维数组的定义 112
6.2.2 一维数组的初始化 112
6.2.3 一维数组的引用 113
6.2.4 一维数组程序举例 114
6.3 二维数组的定义、初始化和引用 118
6.3.1 二维数组的定义 118
6.3.2 二维数组的初始化 119
6.3.3 二维数组的引用 120
6.3.4 二维数组程序举例 120
6.4 字符数组 123
6.4.1 字符数组的定义 123
6.4.2 字符数组的初始化 123
6.4.3 字符数组的引用 124
6.4.4 字符串 124
6.4.5 字符数组的输入和输出 125
6.4.6 字符串处理函数 126
6.4.7 字符数组应用举例 129
本章小结 130
习题 131
第7章 指针 138
7.1 地址与指针的概念 138
7.2 指针的定义与引用 139
7.2.1 指针的定义 139
7.2.2 指针有关的运算符 140
7.2.3 指针的引用 141
7.3 指针与数组 142
7.3.1 指向一维数组的指针 142
7.3.2 指向多维数组的指针 148
7.4 字符串的指针 151
7.5 指针数组和数组指针 154
7.5.1 指针数组 154
7.5.2 数组指针 156
7.6 指向指针的指针 156
本章小结 157
习题 158
第8章 函数与模块化程序设计 166
8.1 模块化程序设计与C程序结构 166
8.1.1 模块化程序设计方法的指导思想 166
8.1.2 模块分解的原则 166
8.1.3 C程序的一般结构 167
8.2 函数定义与函数声明 168
8.2.1 函数定义 168
8.2.2 函数声明 170
8.3 参数的返回与参数传递 171
8.3.1 函数的返回 171
8.3.2 形参与实参 172
8.4 函数的调用 173
8.4.1 函数调用的一般形式 173
8.4.2 函数的传值调用 174
8.4.3 按地址传送方式传递数据 175
8.4.4 库函数的调用 176
8.5 函数的嵌套与递归调用 176
8.5.1 函数的嵌套调用 176
8.5.2 函数的递归调用 179
8.6 变量的存储类别 181
8.6.1 动态存储和静态存储 182
8.6.2 变量的作用域 182
8.6.3 动态变量 185
8.6.4 寄存器变量 186
8.6.5 局部静态变量 187
8.6.6 外部变量 189
8.7 内部函数与外部函数 193
8.7.1 内部函数 193
8.7.2 外部函数 193
8.8 数组与函数参数 195
8.8.1 数组元素作为函数实参 195
8.8.2 数组名作为函数实参 195
8.9 指针与函数 201
8.9.1 指向函数的指针 201
8.9.2 返回指针的函数 203
本章小结 205
习题 205
第9章 结构体和共用体 215
9.1 结构体类型概述 215
9.2 结构体变量的定义、初始化和引用 216
9.2.1 结构体变量的定义 216
9.2.2 结构体变量的初始化 217
9.2.3 结构体变量的引用 217
9.3 结构体数组 220
9.3.1 结构体数组的定义 220
9.3.2 结构体数组的初始化 221
9.3.3 结构体数组的引用 221
9.4 结构体和指针 222
9.4.1 指向结构体变量的指针 222
9.4.2 指向结构体数组的指针 223
9.4.3 指向结构体的指针作为函数参数 224
9.5 共用体类型 227
9.5.1 共用体类型的定义 227
9.5.2 共用体类型变量的特点 227
9.5.3 共用体类型变量的引用方式 228
9.6 枚举类型 231
9.7 用typedef定义类型 233
9.7.1 位域结构 233
9.7.2 typedef的使用 234
本章小结 237
习题 237
第10章 编译预处理 241
10.1 宏定义 241
10.1.1 简单宏定义 241
10.1.2 带参数的宏定义 243
10.2 文件包含 246
10.3 条件编译 248
10.4 行控制 250
10.5 带参数的主函数 250
本章小结 252
习题 252
第11章 文件 256
11.1 C文件系统的分类 256
11.2 文件的打开与关闭 257
11.2.1 文件类型指针 257
11.2.2 打开文件 258
11.2.3 关闭文件 259
11.3 文件的读写 260
11.3.1 字符输入/输出函数 260
11.3.2 格式输入/输出函数 262
11.3.3 字符串输入/输出函数 263
11.3.4 记录方式的输入和输出 263
11.4 文件处理的其他常用函数 270
11.4.1 文件的定位 270
11.4.2 出错检测 272
本章小结 273
习题 274
第12章 常用程序设计方法 277
12.1 排序及应用 277
12.1.1 排序算法的种类 277
12.1.2 冒泡排序法 278
12.1.3 选择排序法 279
12.1.4 插入排序法 280
12.1.5 希尔排序法 281
12.2 查找 282
12.2.1 顺序查找 282
12.2.2 折半查找 283
12.3 迭代法 284
12.4 递推法 286
12.5 穷举搜索法 287
本章小结 288
习题 288
第13章 C++介绍 290
13.1 C++的特点 290
13.1.1 C转入C++时不需改变的内容 290
13.1.2 C转入C++时一些与类无关的新特性 291
13.2 C++的核心新特性:类 293
13.2.1 类和对象 293
13.2.2 类成员的访问 294
13.2.3 构造函数和析构函数 295
本章小结 297
附录 298
附录A ASCII码表 298
附录B C语言中的关键字 300
附录C 运算符和结合性 300
附录D Visual C++6.0上机操作指南 301
附录E 常用词汇中英文对照表 307
参考文献 309