第1章 绪论 1
1.1 什么是计算机程序 1
1.2 程序设计语言的发展 1
1.3 C语言的发展及其特点 4
1.4 最简单的C语言程序 6
1.4.1 最简单的C语言程序举例 6
1.4.2 C语言程序的结构 10
1.5 C语言程序的运行 12
1.6 本章小结 19
习题1 20
第2章 算法与程序设计 23
2.1 程序的灵魂——算法 23
2.2 程序设计的基本过程 28
2.3 程序设计的基本方法 31
2.3.1 结构化程序设计 31
2.3.2 模块化程序设计 33
2.3.3 “自顶向下、逐步细化”的设计过程 34
2.4 本章小结 35
习题2 35
第3章 最简单的C语言程序设计——顺序程序设计 37
3.1 顺序程序设计举例 37
3.2 数据的表现形式及其运算 38
3.2.1 数据类型 38
3.2.2 常量和变量 40
3.2.3 运算符和表达式 56
3.3 C语句 68
3.3.1 C语句的作用和分类 68
3.3.2 最基本的语句——赋值语句 70
3.4 数据的输入输出 70
3.4.1 数据输入输出的概念 70
3.4.2 用printf函数输出数据 71
3.4.3 用scanf函数输入数据 73
3.4.4 字符数据的输入输出 76
3.5 本章小结 78
习题3 79
第4章 选择结构程序设计 82
4.1 选择结构和条件判断 82
4.2 用if语句实现选择结构 82
4.3 用switch语句实现选择结构 91
4.4 关系运算符和关系表达式 95
4.4.1 关系运算符及其优先次序 95
4.4.2 关系表达式 96
4.5 逻辑运算符和逻辑表达式 96
4.5.1 逻辑运算符及其优先次序 96
4.5.2 逻辑表达式 97
4.6 条件运算符和条件表达式 98
4.7 本章小结 99
习题4 100
第5章 循环结构程序设计 103
5.1 为什么需要循环 103
5.2 用while语句实现循环 104
5.3 用do-while语句实现循环 106
5.4 用for语句实现循环 109
5.5 循环的嵌套 112
5.6 几种循环的比较 113
5.7 改变循环执行的状态 114
5.7.1 break语句 114
5.7.2 continue语句 115
5.8 循环程序举例 117
5.9 本章小结 120
习题5 121
第6章 数组 128
6.1 一维数组 129
6.1.1 一维数组的定义 129
6.1.2 一维数组元素的引用 129
6.1.3 一维数组的初始化 130
6.1.4 一维数组的应用 130
6.2 二维数组 136
6.2.1 二维数组的定义 136
6.2.2 二维数组元素的引用 137
6.2.3 二维数组的初始化 137
6.2.4 二维数组的应用 137
6.3 使用字符数组处理字符串 139
6.3.1 为字符数组初始化一个字符串 139
6.3.2 存有字符串的字符数组的输入输出 140
6.3.3 字符串处理函数 141
6.3.4 字符数组应用举例 142
6.4 使用typedef定义数据类型 144
6.5 本章小结 145
习题6 145
第7章 函数 155
7.1 函数的定义 155
7.2 函数的参数及函数的返回值 156
7.2.1 形式参数和实际参数 156
7.2.2 函数的返回值 157
7.3 函数的调用 157
7.3.1 函数的调用格式和执行过程 157
7.3.2 函数的调用方式 158
7.4 函数的声明 159
7.4.1 对被调函数的声明格式 159
7.4.2 对被调函数的声明位置 159
7.5 函数之间的数据传递 160
7.6 函数的嵌套调用和递归调用 161
7.6.1 函数的嵌套调用 161
7.6.2 函数的递归调用 163
7.7 局部变量与全局变量 164
7.7.1 局部变量 165
7.7.2 全局变量 166
7.8 变量的存储类别 167
7.8.1 动态存储类别与静态存储类别 167
7.8.2 局部变量的存储类别 168
7.8.3 全局变量的存储类别 169
7.9 内部函数与外部函数 171
7.9.1 内部函数 171
7.9.2 外部函数 171
7.10 程序举例 173
7.11 本章小结 174
习题7 175
第8章 指针 178
8.1 概述 178
8.2 指针变量的定义及指针的操作 178
8.2.1 指针变量的定义 178
8.2.2 指针的操作 179
8.3 指针与一维数组 182
8.3.1 指向一维数组元素的指针 182
8.3.2 通过指针引用一维数组元素 182
8.4 数组作为函数的参数 183
8.4.1 数组元素作为函数实参 183
8.4.2 数组名作为函数参数 183
8.5 指针与二维数组 187
8.5.1 二维数组中的地址 187
8.5.2 指向二维数组元素的指针 188
8.5.3 指向一个含有N个元素的一维数组的指针 189
8.5.4 二维数组名作为函数参数 191
8.6 返回地址值的函数 192
8.7 函数的指针及指向函数的指针变量 192
8.7.1 函数指针的概念 192
8.7.2 函数指针的定义 193
8.7.3 使用函数指针变量调用函数 193
8.8 指针数组与指向指针的指针 193
8.8.1 指针数组 193
8.8.2 指向指针的指针 195
8.8.3 指针数组作为主函数的形参 196
8.9 本章小结 196
习题8 197
第9章 结构体与共用体 209
9.1 定义和使用结构体变量 209
9.1.1 结构体类型的定义 209
9.1.2 定义结构体变量 210
9.1.3 结构体变量的引用及初始化 212
9.2 使用结构体数组 214
9.2.1 结构体数组的定义 215
9.2.2 结构体数组的使用 215
9.3 结构体指针 216
9.3.1 指向结构体变量的指针 216
9.3.2 指向结构体数组的指针变量 218
9.3.3 结构体变量和指向结构体的指针作函数的参数 219
9.4 用指针处理链表 220
9.4.1 链表的结构及定义 220
9.4.2 动态存储分配 221
9.4.3 链表的使用及操作 223
9.5 共用体类型 226
9.5.1 共用体类型的定义 226
9.5.2 共用体变量的定义及引用 226
9.5.3 共用体的特点 228
9.6 使用枚举类型 228
9.7 本章小结 229
习题9 230
第10章 文件 238
10.1 C文件概述 238
10.2 文件指针 238
10.3 文件的打开与关闭 239
10.3.1 文件的打开 239
10.3.2 文件的关闭 240
10.4 文件的读写 241
10.4.1 字符读写函数——fgetc()和fputc() 241
10.4.2 数据块读写函数——fread()和fwrite() 242
10.4.3 格式读写函数——fscanf()和fprintf() 243
10.4.4 字符串读写函数——fgets()和fputs() 244
10.5 文件定位 244
10.5.1 位置指针复位函数rewind() 244
10.5.2 随机读写与fseek()函数 244
10.6 本章小节 245
习题10 246
第11章 C++入门 251
11.1 从C语言到C++语言 251
11.2 面向对象程序设计的相关概念 251
11.3 C++程序的组成及基本要素 253
11.3.1 C++程序的基本组成 253
11.3.2 C++程序的基本要素 255
11.4 C++程序设计基础 255
11.4.1 函数重载及函数参数缺省 255
11.4.2 引用 256
11.4.3 变量的作用域、new、delete 256
11.4.4 类和对象的定义 257
11.4.5 构造函数和析构函数 258
11.4.6 继承和派生 258
11.5 本章小结 260
习题11 260
附录A 在Visual C++6.0环境下运行C程序的方法 262
附录B 常用字符与ASCII代码对照表 269
附录C C语言中的关键字列表 270
附录D 运算符和结合性表 271
附录E C语言常用语法题要 273
附录F C库函数 277
参考文献 283