第1章 概述 1
1.1 C语言简介 1
1.1.1 为什么要学习C语言 1
1.1.2 C语言的诞生 3
1.1.3 C语言的特点 4
1.1.4 C语言源程序的结构 4
1.1.5 C源程序的运行 6
1.2 程序与算法 7
1.2.1 程序与程序设计 8
1.2.2 算法 9
1.2.3 算法设计的基本方法 11
本章小结 18
习题1 19
第2章 基本数据类型 20
2.1 C语言的数据类型 20
2.2 常量与变量 22
2.2.1 标识符 22
2.2.2 常量 23
2.2.3 变量 24
2.3 整型数据 25
2.3.1 整型常量 25
2.3.2 整型数据在内存中的表示 25
2.3.3 整型变量 27
2.4 实型数据 30
2.4.1 实型常量 30
2.4.2 实型变量 30
2.5 字符型数据 31
2.5.1 字符型数据的表示 31
2.5.2 字符常量 32
2.5.3 字符变量 33
2.5.4 字符串常量 34
2.6 运算符和表达式 35
2.6.1 算术运算符及表达式 36
2.6.2 关系运算符及表达式 40
2.6.3 逻辑运算符及表达式 40
2.6.4 赋值运算符和赋值表达式 41
2.6.5 其他运算符及表达式 43
2.6.6 混合类型数据的运算 45
本章小结 46
习题2 49
第3章 数据的输入输出 52
3.1 概述 52
3.1.1 C语言的语句 52
3.1.2 C语言中数据输入输出的实现 54
3.2 数据的格式化输入与输出 54
3.2.1 数据的格式化输出 54
3.2.2 数据的格式化输入 62
3.3 字符型数据的输入与输出 70
3.3.1 字符串的输入与输出 70
3.3.2 单个字符的输入与输出 71
本章小结 76
习题3 80
第4章 程序的控制结构 84
4.1 程序的三种基本结构 84
4.2 顺序结构 85
4.3 分支结构 88
4.3.1 if语句 88
4.3.2 switch语句 95
4.4 循环结构 100
4.4.1 while语句 101
4.4.2 do-while语句 102
4.4.3 for语句 103
4.4.4 三种循环语句的比较 105
4.4.5 循环结构的嵌套 105
4.4.6 辅助控制语句 107
4.5 应用举例 109
本章小结 118
习题4 124
第5章 构造数据类型——数组 128
5.1 数组的概念 128
5.2 一维数组 129
5.2.1 一维数组的定义与初始化 129
5.2.2 一维数组的引用 131
5.2.3 一维数组的应用 132
5.3 二维及多维数组 137
5.3.1 二维数组的定义与初始化 137
5.3.2 二维数组的引用 140
5.3.3 二维数组的应用 140
5.3.4 多维数组的理解 142
5.4 字符型数组和字符串处理 142
5.4.1 字符型数组的概念与初始化 142
5.4.2 字符串的概念与初始化 143
5.4.3 字符型数组的输入和输出 146
5.4.4 字符串处理 148
5.5 应用举例 151
本章小结 158
习题5 161
第6章 函数 166
6.1 概述 166
6.1.1 函数概述 166
6.1.2 函数分类 167
6.2 函数的定义、调用及返回 169
6.2.1 函数的定义 169
6.2.2 函数的调用 172
6.2.3 函数的返回值 176
6.3 函数参数的传递 177
6.4 函数的嵌套与递归调用 180
6.4.1 函数的嵌套调用 180
6.4.2 函数的递归调用 181
6.5 变量的作用域和存储类别 186
6.5.1 内部变量 186
6.5.2 外部变量 187
6.5.3 变量的存储类型 189
6.5.4 变量类别小结 191
6.6 应用举例 192
本章小结 195
习题6 197
第7章 C的指针 201
7.1 指针的概念、定义及基本操作 201
7.1.1 指针和指针变量 205
7.1.2 利用指针变量访问基本变量 209
7.2 用指针变量访问一维数组元素 216
7.2.1 指针变量的关系运算、算术运算 216
7.2.2 用指针变量访问一维数组元素 217
7.2.3 指针变量的基类型必须与所指变量的类型一致 219
7.3 指针变量做函数参数 220
7.4 用指针处理字符串 229
7.5 指针的其他应用 237
7.5.1 指针数组和数组指针 237
7.5.2 指针与函数 241
7.5.3 多级指针 243
7.6 main函数的参数 244
7.7 应用举例 246
本章小结 249
习题7 252
第8章 构造数据类型:结构、共用和枚举 262
8.1 结构体 262
8.1.1 概述 262
8.1.2 结构体数组 269
8.1.3 结构体指针变量 271
8.2 共用体 275
8.2.1 概述 275
8.2.2 应用举例 278
8.3 枚举 279
8.4 动态存储分配及链表 282
8.4.1 动态存储分配 282
8.4.2 链表 284
8.4.3 类型别名定义——typedef 290
本章小结 291
习题8 291
第9章 预编译命令 295
9.1 概述 295
9.2 宏定义 296
9.2.1 无参数宏定义 296
9.2.2 带参数宏定义 297
9.2.3 宏定义的作用域 298
9.3 文件包含 298
9.3.1 概述 298
9.3.2 文件包含的作用 299
9.4 条件编译 299
9.4.1 第一种形式#if语句 300
9.4.2 第二种形式#ifdef语句 301
9.4.3 #ifndef语句 301
本章小结 302
习题9 302
第10章 位运算 305
10.1 位运算简介 305
10.2 移位运算 309
10.3 应用举例 311
本章小结 312
习题10 312
第11章 数据的永久保存——文件 313
11.1 概述 313
11.1.1 文件的概念 313
11.1.2 文件指针 314
11.2 文件的打开与关闭 315
11.2.1 fopen函数 316
11.2.2 fclose函数 318
11.3 文件的读写 319
11.3.1 读写文件中字符的函数 319
11.3.2 读写文件中字符串的函数 322
11.3.3 格式化读写函数 324
11.3.4 数据块读写函数 325
11.4 文件的定位 328
11.5 文件的出错检测 330
11.6 文件操作实例 331
本章小结 333
习题11 334
第12章 综合实例 336
12.1 概述 336
12.2 牛顿迭代法 336
12.3 穷举法求勾股数 337
12.4 回溯法求八皇后问题 338
12.5 一个简单的通讯录管理程序 340
本章小结 349
附录A 运算符优先级和结合性 350
附录B 常用字符ASCII码 352
附录C C程序集成开发环境——VC++6.0 354
附录D C常用标准库函数 365
参考文献 370