第1章 C语言概述 1
1.1 程序与程序设计语言 1
1.1.1 程序 1
1.1.2 程序设计语言 2
1.1.3 程序设计 3
1.1.4 结构化程序及设计步骤 4
1.2 算法概述 4
1.2.1 算法的含义 5
1.2.2 算法的特性 6
1.2.3 算法的表示 7
1.3 C语言概况 8
1.4 C程序的开发过程与开发环境 11
1.4.1 C程序的开发过程 11
1.4.2 C程序的调试 11
1.4.3 Turbo C开发程序方法 12
1.4.4 Visual C++6.0开发程序方法 13
本章小结 16
习题1 17
第2章 C程序设计基础 19
2.1 C语言语法基础 19
2.1.1 基本字符集 19
2.1.2 C语言词汇 19
2.1.3 语句 21
2.1.4 标准库函数 22
2.2 数据与数据类型 23
2.3 常量 24
2.3.1 数值常量 24
2.3.2 字符常量 26
2.3.3 字符串常量 27
2.3.4 符号常量 27
2.4 变量 28
2.4.1 变量的定义 28
2.4.2 整型变量 29
2.4.3 实型变量 30
2.4.4 字符变量 31
2.5 各类数值型数据间的混合运算及数据类型转换 32
2.6 数据的输入与输出 34
2.6.1 格式输出函数printf 34
2.6.2 格式输入函数scanf 38
2.6.3 单字符输入输出函数 41
2.7 基本运算符和表达式 43
2.7.1 运算符、表达式、优先级和结合性 43
2.7.2 算术运算符与算术表达式 45
2.7.3 赋值运算符与赋值表达式 46
2.7.4 自增、自减运算符与表达式 49
2.7.5 关系运算符与关系表达式 50
2.7.6 逻辑运算符与逻辑表达式 51
2.7.7 逗号运算符及逗号表达式 53
2.7.8 条件运算符与条件表达式 54
2.7.9 sizeof运算符 54
本章小结 55
习题2 56
第3章 程序流程控制 59
3.1 顺序结构程序设计 59
3.2 选择结构程序设计 59
3.2.1 if语句 59
3.2.2 switch语句 64
3.3 循环结构程序设计 66
3.3.1 while语句 66
3.3.2 do-while语句 69
3.3.3 for循环 69
3.3.4 循环的嵌套 71
3.3.5 几种循环的比较 73
3.4 几种控制语句 73
3.4.1 break语句 73
3.4.2 continue语句 74
3.4.3 return语句 75
3.4.4 goto语句 75
3.5 程序设计举例 76
本章小结 81
习题3 82
第4章 数组 86
4.1 一维数组 86
4.1.1 一维数组的定义、初始化 86
4.1.2 一维数组元素的引用 87
4.2 二维数组与多维数组 90
4.2.1 二维数组定义、初始化 90
4.2.2 二维数组元素的引用 92
4.2.3 多维数组 94
4.3 字符串数组和字符串 95
4.3.1 字符数组的定义与初始化 95
4.3.2 字符串与字符数组 96
4.3.3 字符数组的输入和输出 97
4.3.4 字符串处理函数 99
4.4 程序设计举例 103
本章小结 105
习题4 106
第5章 模块设计 112
5.1 函数的概念 112
5.2 模块的实现——函数 114
5.2.1 函数的定义 114
5.2.2 函数的调用 118
5.2.3 函数的声明 118
5.3 函数调用中参数的传递 119
5.3.1 值传递方式 120
5.3.2 地址传递方式 121
5.3.3 数组作为函数参数 121
5.4 变量的存储类别与作用域 125
5.4.1 变量的作用域:局部变量和全局变量 125
5.4.2 变量的存储类别 129
5.5 函数的嵌套调用与递归调用 134
5.5.1 函数的嵌套调用 134
5.5.2 函数的递归调用 136
5.6 程序设计举例 137
5.7 编译预处理 139
5.7.1 文件包含 139
5.7.2 条件编译 140
5.7.3 宏定义与宏替换 141
本章小结 145
习题5 145
第6章 指针 149
6.1 地址与指针的概念 149
6.2 指针变量的定义与引用 151
6.2.1 指针变量的定义 151
6.2.2 指针变量的引用 151
6.3 指针的运算 153
6.4 指针变量作为函数参数 155
6.5 指针与数组 158
6.5.1 指向一维数组的指针变量 158
6.5.2 数组指针作函数参数 161
6.5.3 指向二维数组的指针变量 164
6.5.4 内存的动态分配 167
6.6 指针与字符串 169
6.6.1 字符串的指针表示 169
6.6.2 字符串指针作函数参数 171
6.6.3 字符串指针变量与字符数组的区别 172
6.7 指针数组 173
6.7.1 指针数组的概念 173
6.7.2 带参数的main函数 175
6.8 指针与函数 177
6.8.1 指针型函数 177
6.8.2 指向函数的指针变量 178
6.8.3 指向函数的指针变量作函数参数 179
6.9 程序设计举例 181
本章小结 187
习题6 190
第7章 结构体与共用体 196
7.1 结构体类型的定义 196
7.2 结构体类型变量的定义及其初始化 197
7.2.1 结构体变量的定义 197
7.2.2 结构体变量的初始化 199
7.3 结构体类型变量的引用 200
7.4 结构体数组 202
7.4.1 结构体数组的定义与初始化 202
7.4.2 对结构体数组元素的操作 203
7.4.3 结构体数组作为函数参数 204
7.5 指向结构体的指针 206
7.5.1 指向结构体变量的指针 206
7.5.2 指向结构体数组的指针 207
7.6 结构体与函数 209
7.7 链表 212
7.7.1 链表的概念 212
7.7.2 单链表的建立 212
7.7.3 单链表的基本操作 216
7.8 共用体类型 221
7.8.1 共用体的定义与引用 221
7.8.2 共用体与结构体的不同 223
7.9 枚举类型 224
7.10 用typedef重定义类型名 226
7.11 程序设计举例 227
本章小结 234
习题7 234
第8章 位运算 241
8.1 几个基本概念 241
8.2 位运算符和位运算 242
8.3 位域(位段) 245
8.4 程序设计举例 246
本章小结 248
习题8 249
第9章 文件 250
9.1 文件及文件指针 250
9.1.1 文件的概念 250
9.1.2 文件指针 251
9.2 文件的打开与关闭 252
9.3 文件的读写 253
9.3.1 字符读写函数fgetc和fputc 253
9.3.2 字符串读写函数fgets和fputs 256
9.3.3 数据块读写函数fread和fwrite 257
9.3.4 格式化读写函数fscanf和fprintf 258
9.4 文件的随机读写 260
9.4.1 文件定位 260
9.4.2 文件的随机读写 261
9.5 文件检测函数 262
9.6 程序设计举例 263
本章小结 265
习题9 265
第10章 综合实训 269
10.1 通讯录管理程序 269
10.1.1 项目要求及分析 269
10.1.2 总体设计 269
10.1.3 代码实现 270
10.1.4 测试结果 277
10.2 学生成绩管理系统 278
10.2.1 项目要求及分析 278
10.2.2 总体设计 278
10.2.3 代码实现 279
10.2.4 测试结果 291
本章小结 292
第11章 C++语言概述 293
11.1 面向过程和面向对象编程概述 293
11.2 C++语言的发展过程 295
11.3 将C源程序简单改写成C++源程序 295
11.4 面向过程和面向对象的程序设计方法比较 296
本章小结 298
习题11 298
附录A 标准ASCII码表 300
附录B 运算符的优先级和结合性 301
附录C C语言的库函数 303
参考文献 308