第一章 C语言概述 1
1.1 C语言的由来与发展 1
1.1.1 C语言的由来 1
1.1.2 C语言的发展 1
1.2 C语言的特点和应用 2
1.2.1 C语言的特点 2
1.2.2 C语言的应用 5
1.3 C语言的词法及其规则 6
1.3.1 字符集 6
1.3.2 单词及词法规则 6
1.4.1 常用的输入函数 9
1.4 C语言常用的输入输出函数 9
1.4.2 常用的输出函数 10
1.5 C语言程序实例及其实现 12
1.5.1 C语言程序实例 12
1.5.2 C语言程序书写格式 14
1.5.3 C语言程序实现 15
练习题 17
作业题 17
第二章 常量、变量和类型转换 19
2.1 常量 19
2.1.1 数字常量 19
2.1.2 字符常量和字符串常量 20
2.1.3 符号常量 22
2.2 变量 23
2.2.1 变量的名字 23
2.2.2 变量的类型 24
2.2.3 变量的值 25
2.3 数组 27
2.3.1 数组的定义 27
2.3.2 数组的赋值 28
2.3.3 字符数组 31
2.4 类型转换 34
2.4.1 自动转换 34
练习题 35
2.4.2 强制转换 35
作业题 36
第三章 运算符和表达式 38
3.1 常用运算符的功能 38
3.1.1 算术运算符 38
3.1.2 增1减1运算符 39
3.1.3 关系运算符 40
3.1.4 逻辑运算符 40
3.1.5 位操作运算符 41
3.1.6 赋值运算符 42
3.1.7 其他运算符 43
3.2.2 运算符的结合性 45
3.2 运算符的优先级和结合性 45
3.2.1 运算符的优先级 45
3.3 表达式 47
3.3.1 表达式和表达式的种类 47
3.3.2 表达式的值和类型 56
3.3.3 表达式求值中值得注意的两个问题 57
练习题 60
作业题 61
第四章 语句 63
4.1 表达式语句和空语句 63
4.1.1 表达式语句 63
4.2.1 复合语句 64
4.1.2 空语句 64
4.2 复合语句和分程序 64
4.2.2 分程序 65
4.3 分支语句 65
4.3.1 条件语句 65
4.3.2 开关语句 70
4.4 循环语句 76
4.4.1 while循环语句 76
4.4.2 do-while循环语句 77
4.4.3 for循环语句 79
4.5.1 goto语句 85
4.5 转向语句 85
4.5.2 break语句 86
4.5.3 continue语句 87
4.5.4 return语句 88
练习题 89
作业题 89
第五章 函数和存储类 95
5.1 函数的定义和说明 95
5.1.1 函数的定义 95
5.2 函数的参数和返回值 97
5.2.1 函数的参数 97
5.1.2 函数的说明 97
5.2.2 函数的返回值 99
5.3 函数的调用 100
5.3.1 传值调用的特点 100
5.3.2 传址调用的特点 101
5.3.3 数组名作参数的函数调用 103
5.3.4 函数的嵌套调用 105
5.3.5 函数的递归调用 106
5.4 作用域规则 110
5.4.1 标识符的作用域规则 110
5.4.2 重新定义变量的作用域规定 111
5.5 存储类 112
5.5.1 变量的存储类 112
5.5.2 函数的存储类 118
作业题 122
练习题 122
第六章 预处理功能和类型定义 129
6.1 预处理功能概述 129
6.2 宏定义 129
6.2.1 简单宏定义 130
6.2.2 带参数的宏定义 132
6.2.3 宏定义的应用 135
6.3 文件包含 136
6.3.1 文件包含命令的格式和功能 136
6.3.2 使用文件包含命令时应注意事项 137
6.4.1 条件编译的常用命令格式 139
6.4 条件编译 139
6.4.2 条件编译命令的应用 140
6.5 类型定义 142
6.5.1 类型定义的含意和类型定义语句 142
6.5.2 类型定义的应用 144
练习题 144
作业题 145
第七章 指针 150
7.1 指针的概念 150
7.1.1 什么是指针 150
7.1.2 指针的表示 151
7.1.3 指针的赋值 153
7.1.4 指针所指向变量的值 155
7.2 指针的运算 157
7.2.1 指针的赋值运算 157
7.2.2 指针加减整数的运算 157
7.2.3 两个指针相减的运算 157
7.2.4 两个指针比较的运算 158
7.2.5 指针运算与地址运算的区别 159
7.3 指针与数组 160
7.3.1 数组名是一个常量指针 160
7.3.2 数组元素的指针表示 161
7.3.3 字符数组、字符指针和字符串处理函数 168
7.3.4 指向数组的指针和指针数组 173
7.4 指针与函数 179
7.4.1 指针作函数参数 180
7.4.2 指针函数和指向函数的指针 185
练习题 190
作业题 190
第八章 结构 198
8.1 结构的概念 198
8.1.1 结构和结构变量的定义 198
8.1.2 结构变量成员的表示 200
8.1.3 结构变量的赋值 201
8.1.4 结构变量的运算 203
8.2.1 数组与结构成员 204
8.2 结构与数组 204
8.2.2 结构数组 205
8.3 结构与函数 209
8.3.1 结构变量与指向结构变量的指针作函数参数 209
8.3.2 结构变量和指向结构变量的指针作函数返回值 212
8.4 链表 213
8.4.1 链表的概念 213
8.4.2 链表的操作 214
8.5 位段 224
8.5.1 位段的概念 224
8.5.2 使用位段时应注意的事项 226
作业题 227
练习题 227
第九章 联合和枚举 233
9.1 联合的概念 233
9.1.1 联合变量的定义和赋值 233
9.1.2 联合与结构的区别 234
9.2 联合的应用 236
9.3 枚举的概念 239
9.3.1 枚举变量的定义和赋值 239
9.3.2 使用枚举变量时应注意的事项 240
9.4 枚举的应用 241
作业题 243
练习题 243
第十章 文件和读写函数 246
10.1 C语言中文件的概念 246
10.1.1 文件和文件指针 246
10.1.2 标准文件和一般文件 247
10.1.3 高级读写函数和低级读写函数 248
10.2 标准文件的读写操作 248
10.2.1 标准文件读写函数介绍 248
10.2.2 标准文件读写函数应用 251
10.3 一般文件的操作 255
10.3.1 打开文件函数和关闭文件函数 255
10.3.2 一般文件读写函数及其使用 256
10.3.3 文件定位函数及其使用 263
10.4 介绍常用的其他函数 266
10.4.1 动态存储分配函数 266
10.4.2 系统调用函数 267
10.4.3 字符函数 268
10.4.4 常用数学函数 269
练习题 269
作业题 270
附录 276
附录1 ASCII编码表 276
附录2 ctype.h文件中所包含的字符函数 278
附录3 math.h文件中所包含的数学函数 279