第一部分 入门 1
第1章 引论 1
1.1 C语言发展过程 1
1.2 C语言特点和用途 1
1.3 简单C语言程序 2
1.4 C语言程序结构 4
1.5 怎样执行一个C语言程序 4
1.6 习题 5
2.1 数据类型及取值范围 6
第2章 基本的程序语句 6
2.2 标识符、变量和常量 7
2.2.1 标识符 7
2.2.2 变量和常量 8
2.3 一维简单数组 14
2.4 基本运算符、表达式及运算优先级 15
2.4.1 算术运算符及算术表达式 15
2.4.2 关系运算符及关系表达式 18
2.4.3 逻辑运算符及逻辑表达式 18
2.4.4 位运算符及其表达式 19
2.4.5 三目运算符 20
2.4.6 复杂表达式计算顺序 21
2.4.8 逗号表达式 22
2.4.7 数据类型的转换 22
2.4.9 C语言基本语句结构 23
2.5 基本的输入输出函数简介 25
2.5.1 格式化输出函数Printf() 25
2.5.2 格式化输入函数scanf() 28
2.5.3 字符输出函数putchar() 30
2.5.4 字符输入函数getchar() 31
2.6 程序范例 32
2.8 习题 34
2.7 本章小结 34
第二部分 基本的程序设计 39
第3章 程序的简单算法制定 39
3.1 结构化程序算法制定 39
3.2 结构化程序算法描述 40
3.2.1 流程图 40
3.2.2 N-S图 43
3.2.3 PDA图 45
3.3 算法制定范例 47
3.4 本章小结 49
3.5 习题 50
4.1 if结构 51
4.1.1 if语句 51
第4章 分支语句 51
4.1.2 if~else语句 53
4.1.3 if语句的嵌套 54
4.2 switch语句 60
4.2.1 switch语句 60
4.2.2 break语句在switch结构中的作用 62
4.3 程序范例 65
4.5 习题 70
4.4 本章小结 70
第5章 循环结构 77
5.1 for语句 77
5.2 while语句 80
5.3 do~while语句 83
5.4 用于循环中的break和continue语句 85
5.5 循环结构嵌套 89
5.6 goto语句 90
5.7 程序范例 92
5.8 本章小结 93
5.9 习题 94
第6章 函数与宏定义 101
6.1 函数概念 101
6.1.1 函数定义 101
第三部分 模块化的程序设计 101
6.1.2 函数声明和调用 103
6.1.3 函数传值方式 103
6.2 变量作用域和存储类型 106
6.3 内部函数与外部函数 110
6.4 递归函数设计和调用 111
6.5.1 宏定义 115
6.5 预处理 115
6.5.2 文件包含 118
6.5.3 条件编译及其他 119
6.6 综合范例 122
6.7 本章小结 125
6.8 习题 126
第7章 多维数组 131
7.1 一维数组初始化 131
7.2 一维数组使用 132
7.3.2 二维数组定义 137
7.3.1 二维数组的概念 137
7.3 多维数组 137
7.3.3 多维数组定义 139
7.3.4 二维数组及多维数组的初始化 140
7.4 字符数组 143
7.4.1 字符数组初始化 144
7.4.2 字符串输入 146
7.4.3 字符串输出 147
7.4.4 二维字符数组 148
7.5.1 数组元素作为函数参数 153
7.5 数组作为函数的参数 153
7.5.2 数组名作为函数的参数 154
7.6 程序范例 156
7.7 本章小结 161
7.8 习题 161
第8章 指针 166
8.1 指针的概念 166
8.1.1 指针变量定义 167
8.1.2 指针变量使用 167
8.1.3 指针变量与简单变量的关系 168
8.2.1 指针的算术运算 169
8.2 指针的运算 169
8.2.2 指针的关系运算 170
8.3 指针与数组的关系 171
8.3.1 指向一维数组的指针 171
8.3.2 指向多维数组的指针 174
8.3.3 字符指针 180
8.3.4 指针数组 181
8.4 指针作为函数参数 183
8.5 返回值为指针型的函数 185
8.6 指向函数的指针 186
8.7 main函数参数 188
8.8 指向指针的指针 189
8.9 图形处理方式 190
8.10 程序范例 194
8.11 本章小结 196
8.12 习题 197
第9章 构造数据类型 202
9.1 结构体数据类型 202
9.1.1 结构体类型定义 202
9.1.2 结构体类型变量的定义 203
9.1.3 结构体变量初始化 204
9.1.4 结构型变量成员的引用 205
9.1.5 结构型变量成员的输入/输出 207
9.2 结构体数组 208
9.2.1 结构体数组的定义 208
9.2.2 结构体数组成员的初始化和引用 208
9.3 结构体变量与函数 209
9.4 链表的概念 212
9.4.1 动态分配内存 213
9.4.2 单链表的建立 214
9.4.3 从单链表中删除结点 219
9.4.4 向单链表中插入结点 223
9.5 联合体数据类型 227
9.6 枚举数据类型 230
9.7 程序范例 231
9.8 本章小结 235
9.9 习题 235
第10章 文件 241
10.1 文件概念 241
10.2 文件操作 241
10.2.1 文件的打开与关闭 241
10.2.3 顺序文件读写 244
10.2.2 文件操作错误检测 244
10.2.4 随机文件读写 250
10.3 程序范例 254
10.4 本章小结 256
10.5 习题 256
第11章 位运算操作 260
11.1 按位取反运算 260
11.2 按位左移运算 262
11.3 按位右移运算 264
11.4 按位与运算 266
11.5 按位或运算 269
11.6 按位异或运算 271
11.7 复合位运算符 274
11.8 程序范例 274
11.9 本章小结 276
11.10 习题 276
附录 279
附录一C语言的关键字 279
附录二ASCII码表 280
附录三常用C语言库函数 283
附录四中英文关键词对照 289