第1章 C语言概述 1
1.1 概述 1
1.1.1 C语言及其特点 1
1.1.2 C语言程序的组成和结构特点 3
1.2 基本符号 5
1.2.1 基本符号集 5
1.2.2 标识符 6
1.3 算法及其描述方法 7
1.3.1 算法的概念 7
1.3.2 算法的描述方法 8
1.4 程序设计方法简介 11
小结 13
习题一 14
第2章 数据类型及其表达式 15
2.1 数据类型 15
2.2 常量 16
2.2.1 整型常量 16
2.2.2 实型常量 17
2.2.3 字符常量 18
2.2.4 字符串 19
2.2.5 符号常量 20
2.2.6 转义字符 21
2.3.1 变量的概念 22
2.3 变量 22
2.3.2 变量说明 23
2.3.3 变量地址 23
2.3.4 变量的初始化 24
2.3.5 数据类型 25
2.4 运算符和表达式 27
2.4.1 运算符和表达式 27
2.4.2 赋值运算 28
2.4.3 算术运算 30
2.4.4 逗号运算 32
2.4.5 关系运算 33
2.4.6 逻辑运算 34
2.4.7 条件表达式 35
2.4.8 运算符的结合律和优先级 36
小结 37
习题二 39
第3章 顺序结构的程序设计 43
3.1 顺序结构的语句 43
3.1.1 表达式语句、空语句和赋值语句 43
3.1.2 复合语句 44
3.2 字符数据的输入和输出 45
3.2.1 字符输出函数putchar() 45
3.2.2 字符输入函数getchar() 46
3.3 输出函数printf() 48
3.4 输入函数scanf() 51
小结 53
习题三 54
第4章 选择结构的程序设计 57
4.1 条件选择结构 57
4.2 条件分支的嵌套 60
4.3 开关选择结构 63
4.4 无条件选择结构 70
小结 71
习题四 71
5.1 用goto语句循环结构 74
第5章 循环结构的程序设计 74
5.2 while语句 75
5.3 do...while语句 78
5.4 for语句 80
5.5 循环嵌套结构 84
5.6 循环结构中使用break和continue语句 85
5.6.1 break语句 85
5.6.2 continue语句 87
5.7 循环语句小结 88
5.8 程序举例 88
小结 90
习题五 91
第6章 数组 94
6.1 数组和数组元素 94
6.2 一维数组 95
6.2.1 一维数组的定义和使用 95
6.2.2 一维数组的初始化 97
6.2.3 一维数组程序举例 97
6.3 多维数组 102
6.3.1 二维数组的定义和使用 102
6.3.2 二维数组的初始化 104
6.3.3 二维数组程序举例 106
6.4.2 字符数组的初始化 108
6.4.1 字符数组的定义和使用 108
6.4 字符数组 108
6.4.3 字符串的输入和输出 109
6.4.4 用于字符处理的库函数 111
小结 112
习题六 114
第7章 函数 118
7.1 C语言程序的组成 118
7.1.1 概述 118
7.1.2 C语言程序的组成 119
7.1.3 存储类型和变量的作用域 120
7.2.1 带参数函数定义的一般形式 123
7.2 函数的参数 123
7.2.2 形式参数和实际参数 124
7.2.3 数组作为函数的参数 125
7.3 函数的调用 130
7.3.1 函数的原型 130
7.3.2 函数调用的一般形式 132
7.3.3 函数的值 133
7.3.4 函数的递归调用 134
7.4 程序编译预处理 138
7.4.1 宏定义 138
7.4.3 条件编译 140
7.4.2 文件包含 140
小结 143
习题七 144
第8章 构造数据类型 148
8.1 结构体 148
8.1.1 结构体类型定义及结构体类型变量说明 148
8.1.2 结构体类型变量的使用 152
8.1.3 结构体变量的初始化 154
8.1.4 结构体数组 155
8.1.5 结构体和函数 157
8.2 共用体 158
8.2.1 共用体类型的定义和共用体变量的说明 158
8.2.2 共用体成员的使用 159
8.3 枚举类型 161
8.3.1 枚举类型的定义和枚举变量的说明 161
8.3.2 枚举类型数据的使用 162
8.4 用typedef定义类型 163
小结 165
习题八 166
第9章 指针 171
9.1 指针变量的概念 171
9.1.1 变量和地址 171
9.2.1 指针变量的定义及使用 172
9.2 变量的指针与指针变量 172
9.1.2 指针变量和指针的类型 172
9.2.2 指针变量的初始化 175
9.2.3 指针运算 176
9.3 指针与数组 178
9.3.1 指向数组的指针 179
9.3.2 字符指针与字符数组 183
9.3.3 多级指针及指针数组 186
9.3.4 指针与多维数组 190
9.4 指针与函数 194
9.4.1 函数参数为指针 194
9.4.2 函数的返回值为指针 197
9.4.3 指向函数的指针 198
9.4.4 命令行参数 202
9.5 指针与结构体 205
9.5.1 结构体指针与函数 205
9.5.2 结构体指针与指向结构体数组的指针 207
9.6 链表 209
9.6.1 链表和动态存储分配 209
9.6.2 用包含指针项的结构体变量构成结点 211
9.6.3 用于动态存储分配的函数 214
9.6.4 链表应用举例 215
小结 221
习题九 223
10.1.1 文件概述 229
第10章 文件 229
10.1 概述 229
10.1.2 缓冲文件系统和非缓冲文件系统 230
10.1.3 标准输入输出库函数 230
10.1.4 标准设备文件及I/O改向 233
10.2 缓冲型文件输入输出系统 234
10.2.1 文件(FILE)类型结构及文件指针 234
10.2.2 文件的打开与关闭 235
10.2.3 文件的读写 236
10.2.4 文件的定位 243
10.3 非缓冲型文件输入输出系统 245
10.2.5 出错的检测 245
小结 249
习题十 250
第11章 位运算 253
11.1 基本位运算符与位运算 253
11.1.1 按位与运算符(&) 253
11.1.2 按位或运算符(|) 254
11.1.3 按位异或运算符(^) 255
11.1.4 按位取反运算符(~) 256
11.2 位移运算符与位移运算 257
1 1.2.1 左移运算符(<<) 257
1 1.3 位运算的复合赋值运算符 258
11.2.2 右移运算符(>>) 258
11.4 位段 259
11.4.1 位段的定义 259
11.4.2 位段的引用 261
11.5 位运算应用举例 262
小结 264
习题十一 265
附录A C语言常用库函数 267
附录B ASCII码表 272
参考文献 273