1.1 C语言的演变及特点 1
1.1.1 C语言的发展过程 1
1.1.2 C语言版本 1
1.1.3 C语言的特点 1
第1章 C语言概述 1
1.2 C源程序的结构特点 2
1.2.1 简单的C程序介绍 2
1.2.2 C源程序的结构特点 2
1.2.3 书写程序时应遵循的规则 3
1.3 数据输入和输出的常用方法 4
1.3.1 格式化输出函数printf 4
1.4.1 C语言的字符集 5
1.4.2 C语言词汇 5
1.4 C语言的字符集与C语言词汇 5
1.3.2 格式化输入函数scanf 5
1.5 Turbo C集成开发环境 7
1.5.1 Turbo C 2.0安装与启动 7
1.5.2 Turbo C 2.0菜单介绍 8
1.6 复习指南 16
习题一 17
2.1 C语言的数据类型 18
2.0 引例 18
第2章 数据类型、运算符与表达式 18
2.2 常量与变量 19
2.2.1 常量和符号常量 19
2.2.2 变量 20
2.3 整型数据 20
2.3.1 整型常量 20
2.3.2 整型变量 21
2.4.1 实型常量 24
2.4.2 实型变量 24
2.4 实型数据 24
2.5 字符型数据 26
2.5.1 字符常量 26
2.5.2 转义字符 26
2.5.3 字符变量 27
2.5.4 字符数据在内存中的存储形式及使用方法 27
2.5.5 字符串常量 28
2.6 C运算符及表达式 28
2.6.1 表达式 28
2.6.2 C运算符 29
2.6.3 算术运算符和算术表达式 29
2.6.4 赋值运算符和赋值表达式 30
2.6.5 逗号运算符和逗号表达式 31
2.6.6 关系运算符和关系表达式 32
2.6.9 自加与自减运算符 33
2.6.8 条件运算符和条件表达式 33
2.6.7 逻辑运算符和逻辑表达式 33
2.6.10 运算符优先级和结合性 34
2.7 变量赋初值 35
2.8 数据类型转换 35
2.9 复习指南 36
习题二 39
第3章 程序设计算法基础 41
3.0 引例 41
3.1 算法的概念 41
3.1.1 算法的概念 42
3.1.2 算法举例 42
3.2 算法的特性 44
3.3 算法的表示 44
3.3.1 用自然语言表示算法 44
3.3.2 用流程图表示算法 45
3.3.3 三种基本控制结构和改进的流程图 47
3.3.4 用N-S流程图表示算法 52
3.3.5 用伪代码表示算法 54
3.3.6 用PAD图描述算法 56
3.3.7 用计算机语言表示算法 58
3.4 结构化程序设计方法 58
3.5 复习指南 60
习题三 61
第4章 基本控制结构 63
4.0 引例 63
4.1 C语句概述 63
4.2 赋值语句 65
4.3 字符的输入与输出函数 65
4.3.1 putchar函数(字符输出函数) 66
4.3.2 getchar函数(键盘输入函数) 67
4.4 格式输入与输出函数 67
4.4.1 printf函数(格式输出函数) 67
4.4.2 scanf函数(格式输入函数) 71
4.5 顺序结构程序设计 73
4.5.1 顺序程序设计概念 73
4.5.2 顺序结构程序设计举例 73
4.6 分支结构程序设计 75
4.6.1 分支结构程序概述与引例 75
4.6.2 分支结构控制语句种类 75
4.7 if语句 76
4.7.1 if语句的3种形式 76
4.7.2 if语句的嵌套 79
4.8 switch语句 81
4.8.1 不带break语句的switch语句 82
4.8.2 带break语句的switch语句 83
4.9 分支结构程序举例 85
4.10 循环结构程序 87
4.10.1 循环结构程序概述及引例 87
4.10.2 循环结构控制语句种类 89
4.11 while语句 90
4.12 do while语句 91
4.13 for语句 93
4.13.1 for语句的一般形式及执行过程 94
4.13.2 for语句的几种形式 95
4.13.3 for语句举例 97
4.14 goto语句以及用goto语句构成循环 100
4.15 break和continue语句 101
4.15.1 break语句 101
4.15.2 continue语句 102
4.16 几种循环的比较 103
4.17 循环结构程序举例 103
4.18 循环的嵌套 105
4.18.1 几种循环嵌套形式 105
4.19 典型C程序举例 108
4.18.2 关于循环嵌套的几点说明 108
4.20 复习指南 111
习题四 113
第5章 数组 122
5.0 引例 122
5.1 一维数组的定义和引用 123
5.1.1 一维数组的定义 123
5.1.2 一维数组元素的引用 124
5.1.3 一维数组的初始化 125
5.1.4 一维数组程序举例 126
5.2 维数组的定义和引用 127
5.2.1 二维数组的定义 127
5.2.2 二维数组元素的引用 128
5.2.3 二维数组的初始化 128
5.2.4 二维数组程序举例 129
5.3.2 字符数组的初始化 131
5.3.1 字符数组的定义 131
5.3 字符数组 131
5.3.3 字符数组的引用 132
5.3.4 字符数组与字符串 133
5.3.5 字符数组的输入/输出 134
5.3.6 字符串处理函数 135
5.4 程序举例 138
5.5 复习指南 141
习题五 143
第6章 函数 149
6.0 引例 149
6.1 函数概述 150
6.2 函数定义的一般形式 152
6.3 函数的参数和函数的值 153
6.3.1 形式参数和实际参数 153
6.3.2 函数的返回值 154
6.3.3 数组作为函数参数 155
6.4 函数的调用 157
6.4.1 函数调用的一般形式 157
6.4.2 函数的调用举例 157
6.4.3 函数的嵌套调用 158
6.4.4 函数的递归调用 159
6.5 函数声明和函数原型 163
6.6 局部变量和全局变量 166
6.6.1 局部变量 166
6.6.2 全局变量 168
6.7 变量的存储类别 169
6.7.1 静态存储方式与动态存储方式 170
6.7.2 auto变量 170
6.7.3 用static声明局部变量 171
6.7.4 register变量 172
6.7.5 用extern声明外部变量 172
6.8 预处理命令 174
6.8.1 宏定义 175
6.8.2 文件包含 178
6.8.3 条件编译 179
6.8.4 库函数简介 180
6.9 复习指南 182
习题六 184
第7章 指针 192
7.0 引例 192
7.1 指针的基本概念 194
7.2 变量的指针和指向变量的指针变量 196
7.2.1 指针变量的定义 196
7.2.2 指针变量的引用 196
7.2.3 指针变量作为函数参数 197
7.3 数组与指针 198
7.3.1 指针与一维数组 198
7.3.2 数组名作为函数参数 201
7.3.3 指向多维数组的指针和指针变量 202
7.4 指针数组和指向指针的指针 205
7.4.1 指针数组的概念 205
7.4.2 指向指针的指针 209
7.4.3 main函数的参数 210
7.5 字符串与指针 212
7.5.1 字符串的表示形式 212
7.5.2 使用字符串指针变量与字符数组的区别 212
7.6 函数指针变量 214
7.7 指针型函数 216
7.8 复习指南 217
习题七 219
第8章 结构体、共用体与枚举 224
8.0 引例 224
8.1 定义结构的一般形式 225
8.2 结构类型变量的定义 226
8.3 结构变量成员的引用方法 227
8.4 结构变量的初始化 227
8.5 结构数组的定义 228
8.6 结构指针变量的定义和使用 231
8.6.1 指向结构变量的指针 231
8.6.2 指向结构数组的指针 232
8.6.3 结构指针变量作为函数参数 234
8.7 动态存储分配 237
8.7.1 malloc函数 237
8.7.2 calloc函数 238
8.7.3 free函数 238
8.7.4 realloc函数 238
8.8 链表 239
8.8.1 链表概述 239
8.8.2 创建并输出单链表 240
8.8.3 单链表的删除和插入 241
8.9 共用体类型 246
8.10 枚举类型 248
8.11 类型定义符typedef 250
8.12 复习指南 252
习题八 254
第9章 位运算 258
9.0 引例 258
9.1 位运算概述 258
9.2 位运算符 258
9.2.1 按位与运算 259
9.2.2 按位或运算 261
9.2.3 按位异或运算 262
9.2.4 求反运算 262
9.2.5 左移运算 262
9.2.6 右移运算 262
9.3 位域 263
9.4 复习指南 265
习题九 266
第10章 文件 268
10.0 引例 268
10.1 C文件概述 268
10.2 文件指针 269
10.3 文件的打开与关闭 270
10.3.1 文件的打开函数(fopen函数) 270
10.3.2 文件的关闭函数(fclose函数) 272
10.4 文件的读写 273
10.4.1 字符读写函数fgetc和fputc 273
10.4.2 字符串读写函数fgets和fputs 274
10.4.3 数据块读写函数fread和fwrite 276
10.4.4 格式化读写函数fscanf和fprintf 278
10.5.2 位置指针随机定位函数fseek 280
10.5.1 位置指针复位函数rewind 280
10.5 文件的随机读写 280
10.5.3 检测当前位置指针的位置函数ftell 282
10.5.4 文件随机读写应用举例 282
10.6 文件检测函数 284
10.6.1 文件结束检测函数feof 284
10.6.2 读写文件出错检测函数ferror 284
10.6.3 文件出错标志和文件结束标志置0函数 284
10.7 程序举例 284
10.8 复习指南 286
习题十 288
附录A ASCII码表 292
附录B C语言的关键字 294
附录C 运算符优先级和结合性 295
附录D C语言库函数 297
附录E C语言出错信息速查 305
参考文献 309