第1章 C语言概述 1
1.1 C语言的发展概况 1
1.2 C语言的特点 1
1.3 C程序的工作环境Visual C++6.0 2
1.3.1 启动Visual C++6.0 2
1.3.2 C程序的编译、连接和执行 6
1.4 简单的C程序 7
1.5 打地鼠游戏程序之一 11
1.6 习题一 13
第2章 数据类型、运算符及表达式 15
2.1 C语言的数据类型 15
2.2 常量和变量 15
2.2.1 常量 15
2.2.2 变量 19
2.3 变量的初始化 26
2.4 各类数值型数据间的混合运算 26
2.4.1 自动转换 26
2.4.2 强制类型转换 27
2.5 算术运算符和算术表达式 27
2.5.1 C语言运算符简介 27
2.5.2 算术运算符和算术表达式 28
2.6 赋值运算符和赋值表达式 31
2.6.1 简单赋值运算符 31
2.6.2 复合赋值运算符 31
2.7 逗号运算符和逗号表达式 33
2.8 求字节运算符 34
2.9 习题二 35
第3章 顺序结构程序设计 38
3.1 C语句概述 38
3.2 流程图 39
3.3 顺序结构程序设计 40
3.4 字符数据的输入输出 41
3.4.1 putchar()函数 41
3.4.2 getchar()函数 41
3.5 格式输入输出 42
3.5.1 printf()函数 42
3.5.2 scanf()函数 44
3.5.3 使用printf()函数和scanf()函数时的注意事项 46
3.6 程序举例 46
3.7 习题三 47
第4章 选择结构程序设计 50
4.1 关系运算符与关系表达式 50
4.1.1 关系运算符 50
4.1.2 关系表达式 50
4.1.3 关系表达式的值 50
4.2 逻辑运算符与逻辑表达式 51
4.2.1 逻辑运算符 51
4.2.2 逻辑表达式 51
4.2.3 逻辑表达式的值 52
4.3 if语句 53
4.3.1 单分支if语句 53
4.3.2 双分支if...else...语句 55
4.3.3 多分支if...else if语句 58
4.3.4 if语句的嵌套 59
4.3.5 条件运算符与条件表达式 60
4.4 switch语句 61
4.5 程序举例 64
4.6 习题四 67
第5章 循环结构程序设计 71
5.1 循环语句 71
5.1.1 for语句 72
5.1.2 while语句 76
5.1.3 do while语句 77
5.1.4 while语句和do while语句的比较 77
5.2 循环的嵌套 78
5.3 两种转移控制语句 80
5.3.1 break语句 80
5.3.2 continue语句 81
5.4 程序举例 82
5.5 习题五 85
第6章 数组 90
6.1 一维数组 90
6.1.1 一维数组的定义 91
6.1.2 一维数组元素的引用 92
6.1.3 一维数组的初始化 93
6.2 二维数组 100
6.2.1 二维数组的定义 100
6.2.2 二维数组元素的引用 101
6.2.3 二维数组的初始化 103
6.3 字符数组 106
6.3.1 字符数组的定义 107
6.3.2 字符数组元素的引用 107
6.3.3 字符数组的初始化 108
6.3.4 字符串处理函数 111
6.4 程序举例 119
6.5 打地鼠游戏程序之二 122
6.6 习题六 125
第7章 函数 130
7.1 函数简述 130
7.2 函数定义的一般形式 132
7.2.1 无参函数定义的一般形式 132
7.2.2 有参函数定义的一般形式 133
7.3 函数参数和函数返回值 133
7.4 函数的嵌套调用 136
7.5 函数的递归调用 138
7.6 数组名作函数参数 141
7.7 局部变量和全局变量 142
7.7.1 局部变量 142
7.7.2 全局变量 143
7.8 变量的存储类别 145
7.8.1 动态存储方式与静态存储方式 145
7.8.2 auto变量 145
7.8.3 用static声明局部变量 146
7.8.4 register变量 147
7.8.5 用extern声明外部变量 148
7.8.6 用static声明外部变量 150
7.9 内部函数和外部函数 151
7.9.1 内部函数 151
7.9.2 外部函数 151
7.10 程序举例 153
7.11 打地鼠游戏程序之三 154
7.12 习题七 157
第8章 预处理命令 161
8.1 宏定义 161
8.1.1 不带参数的宏定义 161
8.1.2 带参数的宏定义 163
8.2 “文件包含”处理 166
8.3 条件编译 167
8.4 习题八 169
第9章 指针 171
9.1 指针的概念 171
9.2 变量的指针和指向变量的指针变量 173
9.2.1 指针变量的定义 173
9.2.2 指针变量作为函数参数 175
9.3 数组的指针和指向数组的指针变量 176
9.3.1 数组的指针 176
9.3.2 数组元素的指针 176
9.3.3 通过指针引用数组元素 177
9.3.4 用数组名作函数参数 179
9.4 字符串的指针和指向字符串的指针变量 183
9.4.1 字符串的表示形式 183
9.4.2 用字符数组和字符串指针作函数参数 184
9.5 函数的指针和指向函数的指针变量 186
9.5.1 函数的指针 186
9.5.2 指向函数的指针变量 186
9.6 返回指针值的函数 187
9.7 指针数组和指向指针的指针 188
9.7.1 指针数组 188
9.7.2 指向指针的指针 190
9.7.3 指针数组作main函数的形参 190
9.8 指向一维数组的指针变量 192
9.9 习题九 193
第10章 结构体、共用体及枚举 197
10.1 结构体的概念 197
10.2 结构体类型的定义 198
10.3 结构体变量的定义 199
10.4 结构体变量的引用 201
10.5 结构体变量的初始化 203
10.6 结构体数组 204
10.6.1 结构体数组的定义 205
10.6.2 结构体数组的初始化 206
10.7 指向结构体类型数据的指针 208
10.7.1 指向结构体变量的指针 208
10.7.2 指向结构体数组的指针 210
10.7.3 指向结构体的指针作函数参数 211
10.8 用指针处理链表 214
10.8.1 建立简单链表 214
10.8.2 处理动态链表所需的函数 217
10.8.3 建立动态链表 218
10.8.4 对链表的删除 221
10.8.5 对链表的插入 224
10.9 共用体 229
10.9.1 共用体的概念 229
10.9.2 共用体类型的定义 230
10.9.3 共用体变量的定义 230
10.9.4 共用体变量的引用 232
10.10 枚举类型 233
10.10.1 枚举类型的定义 233
10.10.2 枚举变量的定义 234
10.10.3 枚举变量的引用 234
10.11 用typedef定义类型 238
10.12 电动车电池管理程序之一 238
10.13 习题十 244
第11章 位运算 249
11.1 位运算的概念 249
11.2 位运算符 249
11.2.1 位逻辑运算符 249
11.2.2 移位运算符 252
11.3 位运算的常用用法 254
11.4 位运算复合赋值运算符 254
11.5 位段 254
11.6 习题十一 256
第12章 文件 258
12.1 文件概述 258
12.1.1 文件的概念与文件的存储 258
12.1.2 文件的存取方式 259
12.1.3 C语言的设备文件 259
12.2 文件指针 259
12.2.1 FILE类型 259
12.2.2 文件指针 260
12.3 文件的打开与关闭 260
12.3.1 文件的打开 260
12.3.2 文件的关闭 261
12.4 文件的读写 261
12.4.1 单个字符的读写 261
12.4.2 字符串的读写 264
12.4.3 数据块的读写 266
12.4.4 格式化读写 270
12.5 文件的定位 271
12.5.1 rewind函数 272
12.5.2 fseek函数 273
12.5.3 ftell函数 273
12.6 出错的检测 274
12.6.1 ferror函数 274
12.6.2 clearerr函数 275
12.7 电动车电池管理程序之二 276
12.8 习题十二 282
实验部分 285
实验一 熟悉C语言 285
实验二 数据类型、运算符及表达式 285
实验三 顺序结构程序设计 285
实验四 选择结构程序设计 286
实验五 循环结构程序设计 286
实验六 一维数组 287
实验七 二维数组 287
实验八 字符数组 288
实验九 函数 288
实验十 指针 288
实验十一 结构体 288
实验十二 文件 289
附录 290
附录Ⅰ 常用字符与ASCII代码对照表 290
附录Ⅱ 运算符的优先级和结合性 292
附录Ⅲ 常用C库函数 293
附录Ⅳ C语言中的关键字 297
参考文献 298