第1章 C语言与程序设计 1
1.1 C语言发展简史 2
1.2 C语言的特点 3
1.3 计算机解题过程 4
1.4 算法及其表示 5
1.4.1 算法的概念 7
1.4.2 算法的表示 8
1.5 常用算法介绍 10
1.5.1 枚举法 10
1.5.2 递推法 10
1.5.3 递归法 11
1.6 结构化程序设计方法 11
1.6.1 结构化程序设计基本思想 11
1.6.2 三种基本程序结构 12
本章小结 12
习题一 13
第2章 C语言基本概念 15
2.1 简单的C语言程序 15
2.2 关键字和标识符 17
2.2.1 字符集 18
2.2.2 关键字 18
2.2.3 标识符 19
2.3 数据类型 19
2.3.1 C语言的数据类型 19
2.3.2 整数类型 20
2.3.3 浮点类型 22
2.3.4 字符类型 22
2.4 常量和变量 24
2.4.1 常量 24
2.4.2 变量 26
2.5 运算符和表达式 28
2.5.1 算术运算符 28
2.5.2 赋值运算符 30
2.5.3 其他运算符 32
2.5.4 运算符的优先级和结合性 35
2.6 数据类型转换 35
本章小结 37
习题二 38
第3章 程序控制结构 40
3.1 C语言语句 40
3.2 顺序结构 41
3.2.1 赋值语句 41
3.2.2 数据输出 42
3.2.3 数据输入 46
3.2.4 程序举例 49
3.3 选择结构 50
3.3.1 关系运算符与关系表达式 50
3.3.2 逻辑运算符与逻辑表达式 51
3.3.3 if语句 52
3.3.4 switch语句 56
3.3.5 程序举例 59
3.4 循环结构 60
3.4.1 while循环语句 60
3.4.2 do-while循环语句 62
3.4.3 for循环语句 64
3.4.4 循环的嵌套 66
3.4.5 goto、break和continue语句 67
3.4.6 程序举例 70
本章小结 74
习题三 75
第4章 数组和字符串 88
4.1 一维数组 88
4.1.1 一维数组的定义 88
4.1.2 一维数组的初始化 89
4.1.3 一维数组元素的引用 90
4.1.4 一维数组应用举例 91
4.2 二维数组及多维数组 97
4.2.1 二维数组的定义 97
4.2.2 二维数组的初始化 97
4.2.3 二维数组元素的引用 98
4.2.4 二维数组应用举例 99
4.2.5 多维数组 100
4.3 字符数组和字符串 100
4.3.1 用字符数组存放字符序列 101
4.3.2 用字符数组存放字符串 101
4.3.3 字符串处理函数 104
4.3.4 字符数组应用举例 106
本章小结 110
习题四 110
第5章 指针 115
5.1 指针的概念及运算 115
5.1.1 指针的概念 115
5.1.2 指针变量的定义和初始化 115
5.1.3 与指针有关的运算 117
5.2 指针与数组 119
5.2.1 指针与一维数组 119
5.2.2 指针与二维数组 122
5.3 指针与字符串 125
5.4 指针数组和指针的指针 127
5.4.1 指针数组 127
5.4.2 指向指针的指针 129
5.5 程序举例 131
本章小结 132
习题五 132
第6章 函数 135
6.1 模块化的程序设计方法 135
6.2 函数的定义、调用和声明 137
6.2.1 函数定义 138
6.2.2 函数调用 140
6.2.3 函数声明 142
6.3 函数参数及其传递方式 144
6.3.1 函数的参数 144
6.3.2 函数参数的传递方式 146
6.4 函数的嵌套调用和递归调用 153
6.4.1 函数的嵌套调用 154
6.4.2 函数的递归调用 156
6.5 函数指针和指向函数的指针变量 159
6.5.1 指向函数的指针变量 159
6.5.2 指向函数的指针作函数的参数 161
6.6 main()函数的参数 162
6.7 变量的作用域规则与存储类别 165
6.7.1 局部变量和全局变量 165
6.7.2 变量的存储类别 169
6.7.3 内部函数和外部函数 175
6.8 程序举例 176
本章小结 180
习题六 181
第7章 结构体、共用体和枚举 187
7.1 结构体 187
7.1.1 结构体类型 187
7.1.2 结构体变量 188
7.1.3 结构体应用举例 192
7.1.4 结构体指针与函数 194
7.1.5 位域 197
7.2 动态存储分配 198
7.2.1 内存的分配与释放 198
7.2.2 内存动态分配应用举例 201
7.3 共用体 207
7.3.1 共用体类型 208
7.3.2 共用体变量 208
7.4 枚举类型 210
7.4.1 枚举类型的定义 210
7.4.2 枚举类型数据的使用 211
7.5 自定义数据类型 212
本章小结 213
习题七 213
第8章 文件 216
8.1 文件概述 216
8.1.1 文件的基本概念 216
8.1.2 文件类型和常用函数 217
8.1.3 文件类型指针 218
8.2 文件的打开与关闭 219
8.2.1 文件的打开 219
8.2.2 文件的关闭 220
8.3 文件的读/写 220
8.3.1 顺序文件的读/写 221
8.3.2 随机文件的读/写 227
8.4 程序举例 230
本章小结 233
习题八 233
第9章 编译预处理 236
9.1 宏定义 236
9.1.1 不带参数的宏定义 237
9.1.2 带参数的宏定义 239
9.2 文件包含 242
9.3 条件编译 244
本章小结 246
习题九 247
第10章 实验指导 249
实验一 C语言的运行环境和运行过程 249
实验二 C语言运算符和表达式 259
实验三 复合结构程序设计 259
实验四 数组程序设计 260
实验五 指针程序设计 261
实验六 函数程序设计 261
实验七 结构体程序设计 262
实验八 文件程序设计 263
附录A ASCⅡ码字符表 264
附录B C语言运算符 265
附录C 位运算 266
附录D 常用的C库函数 268
参考文献 274