第1章 引言 1
1.1 C语言的发展过程及特点 2
1.1.1 C语言的发展过程 2
1.1.2 C语言的特点 2
1.2 简单的C语言程序 3
1.3 C语言程序的结构 5
1.4 C语言程序的执行 6
1.4.1 编译源程序 6
1.4.2 链接目标程序 6
1.4.3 C语言开发工具简介 7
本章小结 12
习题 13
第2章 C语言基础知识 15
2.1 C语言的数据类型 16
2.1.1 整型数据 16
2.1.2 浮点型数据 18
2.1.3 字符型数据 19
2.2 标识符、常量和变量 20
2.2.1 标识符 20
2.2.2 常量 21
2.2.3 变量 23
2.3 运算符与表达式 24
2.3.1 概述 24
2.3.2 算术运算符及算术表达式 25
2.3.3 赋值运算符及赋值表达式 26
2.3.4 自增、自减运算符 27
2.3.5 关系运算符及关系表达式 28
2.3.6 逻辑运算符及逻辑表达式 29
2.3.7 位运算符及位运算 30
2.3.8 条件运算符及条件表达式 31
2.3.9 逗号运算符及逗号表达式 32
2.3.10 数据类型的转换 32
2.4 小型实训案例 33
本章小结 34
习题 34
第3章 顺序结构程序设计 37
3.1 算法 38
3.1.1 算法的概念 38
3.1.2 算法的表示 39
3.2 结构化程序设计的三种基本结构 40
3.3 C语言的基本语句 40
3.4 数据的输入/输出 42
3.4.1 格式输出函数printf() 42
3.4.2 格式输入函数scanf() 43
3.4.3 格式字符 44
3.4.4 字符输入/输出函数 47
3.5 程序应用实例 48
3.6 小型实训案例 50
本章小结 51
习题 51
第4章 选择结构程序设计 55
4.1 if结构 56
4.1.1 if语句 56
4.1.2 if…else语句 57
4.1.3 if语句的嵌套 58
4.2 switch语句 60
4.2.1 switch语句的一般格式 60
4.2.2 break语句在switch语句中的应用 62
4.3 程序应用实例 63
4.4 小型实训案例 65
本章小结 66
习题 66
第5章 循环结构程序设计 71
5.1 概述 72
5.2 while语句 72
5.3 do…while语句 76
5.4 for语句 77
5.5 循环的嵌套 79
5.6 break语句与continue语句 80
5.6.1 break语句 80
5.6.2 continue语句 81
5.6.3 break语句与continue的比较 83
5.7 几种循环的比较 83
5.8 程序应用实例 83
5.9 小型实训案例 89
本章小结 90
习题 90
第6章 函数 95
6.1 函数概述 96
6.1.1 函数的定义 97
6.1.2 函数的声明和调用 100
6.1.3 函数的参数传递 105
6.2 变量的作用域和存储类型 107
6.2.1 变量的作用域 108
6.2.2 变量的存储类型 110
6.3 内部函数与外部函数 114
6.4 函数的递归调用 116
6.5 程序应用实例 117
6.6 小型实训案例 119
本章小结 120
习题 121
第7章 预处理 127
7.1 宏定义 128
7.2 文件包含 130
7.3 条件编译 131
本章小结 133
习题 133
第8章 数组 137
8.1 概述 138
8.2 一维数组 139
8.2.1 一维数组的定义 139
8.2.2 一维数组的初始化 140
8.2.3 一维数组元素的引用 140
8.2.4 一维数组的应用 142
8.3 二维数组 147
8.3.1 二维数组的定义 147
8.3.2 二维数组的初始化 148
8.3.3 二维数组的引用 149
8.3.4 二维数组的应用 149
8.4 字符数组与字符串 152
8.4.1 字符数组 152
8.4.2 字符串 153
8.4.3 字符串处理函数 155
8.4.4 字符数组的应用 159
8.5 数组作函数参数 160
8.5.1 数组元素作函数实参 160
8.5.2 数组名作函数实参 161
8.6 小型实训案例 162
本章小结 163
习题 164
第9章 指针 171
9.1 指针概述 172
9.1.1 指针变量的定义 172
9.1.2 指针变量的初始化 173
9.1.3 指针变量的引用 174
9.1.4 指针的运算 174
9.2 指针变量与简单变量的关系 175
9.3 指针与数组 177
9.3.1 指向一维数组的指针 177
9.3.2 指向多维数组的指针 178
9.3.3 字符指针 182
9.3.4 指针数组 185
9.4 指针作为函数的参数 186
9.5 函数的返回值为指针 188
9.6 指向函数的指针 189
9.6.1 指向函数的指针变量定义 189
9.6.2 函数指针变量的使用 190
9.7 指向指针的指针 191
9.8 程序应用实例 192
9.9 小型实训案例 194
本章小结 195
习题 196
第10章 结构体与共用体 201
10.1 结构体类型 202
10.1.1 结构体的概念 202
10.1.2 结构体类型的定义 202
10.1.3 结构体变量的定义 204
10.1.4 结构体变量的初始化 205
10.1.5 结构体变量成员的引用 206
10.2 结构体数组 208
10.2.1 结构体数组的定义 208
10.2.2 结构体数组的初始化 208
10.2.3 结构体数组的引用 209
10.3 结构体变量与函数 210
10.4 共用体数据类型 212
10.4.1 共用体类型的声明 212
10.4.2 共用体变量的定义、初始化及引用 213
10.5 枚举数据类型 215
10.5.1 枚举类型的定义 215
10.5.2 枚举变量的定义 215
10.5.3 有关枚举型数据的操作 216
10.6 链表的概念 216
10.6.1 动态分配内存 217
10.6.2 单链表的建立 218
10.6.3 从单链表中删除节点 220
10.6.4 向链表中插入节点 220
10.7 小型实训案例 222
本章小结 223
习题 223
第11章 文件 229
11.1 C语言文件的基本概念与分类 230
11.1.1 文件的基本概念 230
11.1.2 文件的分类 230
11.2 文件的基本操作 231
11.2.1 文件类型指针 231
11.2.2 打开文件函数fopen() 232
11.2.3 关闭文件函数fclose() 233
11.3 文件的读写 233
11.3.1 字符读/写函数 234
11.3.2 字符串读/写函数 237
11.3.3 数据块读/写函数 237
11.3.4 格式化读/写函数 238
11.4 文件的定位 239
11.4.1 rewind()函数 239
11.4.2 fseek()函数 239
11.4.3 ftell()函数 240
11.5 出错的检测 241
11.6 小型实训案例 242
本章小结 243
习题 243
第12章 位运算 247
12.1 按位取反运算 248
12.2 按位左移运算 249
12.3 按位右移运算 249
12.4 按位与运算 250
12.5 按位或运算 251
12.6 按位异或运算 252
12.7 复合位运算符 253
本章小结 254
习题 254
附录A C语言的关键字 257
附录B ASCII码表 259
附录C 常用库函数 260
附录D C运算符的优先级与结合性 267