第1章 C语言程序设计概述 1
1.1 C语言的发展历史 1
1.2 C语言特点 2
1.3 算法 3
1.3.1 算法特性 3
1.3.2 算法描述 3
1.4 结构化程序设计和模块化结构 4
1.4.1 结构化程序设计 4
1.4.2 模块化程序设计 6
1.5 C语言程序的编辑与运行 7
本章小结 9
习题一 9
第2章 C语言程序设计基础 11
2.1 简单C语言程序的构成 11
2.2 标识符 12
2.3 常量 13
2.3.1 直接常量 14
2.3.2 符号常量 15
2.4 变量 15
2.4.1 整型变量 16
2.4.2 实型变量 17
2.4.3 字符型变量 17
2.4.4 强制类型转换 18
2.5 运算符和表达式 18
2.5.1 算术运算符和算术表达式 18
2.5.2 关系运算符和关系表达式 19
2.5.3 逻辑运算符和逻辑表达式 20
2.5.4 赋值运算符和赋值表达式 21
2.5.5 自增、自减运算符 22
2.5.6 逗号运算符和逗号表达式 23
2.5.7 其他运算符 23
2.6 应用举例 23
本章小结 24
习题二 25
第3章 顺序结构程序设计 28
3.1 赋值语句 28
3.2 输入/输出 29
3.2.1 printf函数(格式输出函数) 29
3.2.2 scanf()函数(格式输入函数) 32
3.2.3 字符型输入/输出函数(getchar/putchar) 35
3.2.4 字符串输入/输出函数(gets/puts) 35
3.3 空语句 36
3.4 复合语句 36
3.5 顺序结构程序举例 37
本章小结 39
习题三 39
第4章 选择结构程序设计 44
4.1 if语句 44
4.1.1 简单的if语句 44
4.1.2 if-else语句 45
4.1.3 复杂的if-else语句 46
4.1.4 if语句的嵌套 48
4.1.5 条件表达式 49
4.2 switch语句 51
4.3 选择结构程序举例 53
本章小结 55
习题四 55
第5章 循环结构程序设计 58
5.1 while语句 58
5.2 do-while语句 61
5.3 for语句 64
5.4 循环嵌套 66
5.5 break、continue语句 69
5.6 goto语句和标号语句 70
5.7 几种循环比较 71
5.8 循环结构程序举例 72
本章小结 76
习题五 76
第6章 数组 80
6.1 一维数组 80
6.1.1 一维数组的定义 80
6.1.2 一维数组的初始化 81
6.1.3 数组元素的引用 82
6.2 二维数组 84
6.2.1 二维数组的定义 85
6.2.2 二维数组的初始化 85
6.2.3 二维数组元素的引用 86
6.3 字符数组与字符串 88
6.3.1 字符数组的定义、初始化及引用 88
6.3.2 字符串和字符串结束标志 90
6.3.3 字符数组的输入/输出 91
6.3.4 常用字符串处理函数 91
6.4 数组应用举例 92
本章小结 94
习题六 95
第7章 函数 98
7.1 函数分类 98
7.2 函数定义 99
7.3 函数调用 101
7.3.1 函数调用的一般形式 101
7.3.2 函数调用方式 101
7.3.3 函数的参数和函数的值 102
7.3.4 数组作为函数参数 104
7.3.5 函数的嵌套调用 109
7.3.6 函数的递归调用 111
7.4 变量的作用域 113
7.4.1 局部变量 113
7.4.2 全局变量 114
7.5 变量的存储类型 116
7.5.1 自动变量 117
7.5.2 外部变量 119
7.5.3 静态变量 119
7.5.4 寄存器变量 121
7.6 内部函数和外部函数 121
7.6.1 内部函数 122
7.6.2 外部函数 122
7.7 函数应用举例 122
本章小结 124
习题七 124
第8章 指针 128
8.1 指针简介 128
8.2 指针变量的操作 129
8.2.1 指针变量的赋值 129
8.2.2 指针变量的运算 130
8.3 数组与指针 133
8.3.1 一维数组与指针 133
8.3.2 字符串与指针 135
8.3.3 用数组名作函数参数 138
8.4 二维数组与指针 139
8.4.1 二维数组的地址 139
8.4.2 行指针变量 140
8.4.3 指针数组 141
8.4.4 main()函数的参数 142
8.5 指针应用举例 143
本章小结 145
习题八 146
第9章 结构体、联合体、枚举 149
9.1 结构体 149
9.1.1 结构体类型定义和结构体变量说明 149
9.1.2 结构体成员的引用 152
9.1.3 结构体变量的初始化 152
9.1.4 结构体变量的赋值 153
9.1.5 结构体数组 154
9.1.6 结构体指针变量 156
9.1.7 结构体指针变量作为函数参数 159
9.2 利用结构体变量构成链表 160
9.2.1 动态存储分配 160
9.2.2 链表概述 162
9.2.3 链表的基本操作 162
9.3 联合体 167
9.3.1 联合体的定义 167
9.3.2 联合体变量的说明 168
9.3.3 联合体变量的赋值和使用 169
9.4 枚举 170
9.4.1 枚举类型的定义和枚举变量的说明 170
9.4.2 枚举类型变量的赋值和使用 171
9.5 类型定义符typedef 172
9.6 结构体综合应用举例 175
本章小结 178
习题九 179
第10章 位运算 182
10.1 位运算符 182
10.2 位运算符的运算功能 182
10.3 位运算应用举例 185
本章小结 186
习题十 187
第11章 编译预处理 188
11.1 宏定义 188
11.1.1 无参宏定义 188
11.1.2 带参宏定义 191
11.2 文件包含 194
11.3 条件编译 195
11.4 编译预处理应用举例 197
本章小结 199
习题十一 199
第12章 文件 201
12.1 文件概述 201
12.1.1 文件的分类 201
12.1.2 文件的处理 202
12.1.3 文件类型指针 203
12.2 文件的打开与关闭 204
12.2.1 文件打开(fopen()函数) 204
12.2.2 文件关闭(fclose函数) 206
12.3 文件的读/写操作 207
12.3.1 文件的字符读/写函数 207
12.3.2 文件的字符串读/写函数 209
12.3.3 格式化读/写函数 211
12.3.4 文件的数据块输入/输出函数 213
12.4 文件定位函数 215
12.5 文件应用举例 217
本章小结 219
习题十二 219
附录A 常用ASCII码字符对照表 221
附录B 运算符的优先级和结合性 222
附录C C语言中的关键字 224
附录D C语言中的头文件 225
附录E C语言中的库函数 227
参考文献 231