第1章 C语言概述 1
1.1 C语言的发展简史和特点 1
1.1.1 计算机语言的发展过程 1
1.1.2 C语言的发展简史 2
1.1.3 C语言的特点 3
1.2 认识C语言 3
1.2.1 C语言程序的结构 3
1.2.2 C语言的标识符 5
1.2.3 C语言语句 6
1.2.4 系统库函数 7
1.2.5 C语言源程序的书写规则 8
1.3 Turbo C V2.0的运行环境及基本操作 9
1.3.1 Turbo C V2.0系统简介 9
1.3.2 TC的启动与退出 10
1.3.3 TC主屏幕 11
1.3.4 编辑一个C语言源程序 12
1.3.5 编译、连接单个源程序文件 13
1.3.6 运行一个C语言程序并查看运行结果 13
习题1 14
第2章 程序设计基础知识 16
2.1 算法与程序 16
2.1.1 计算机解题过程 16
2.1.2 算法与程序 17
2.2 结构化程序设计 18
2.2.1 程序设计基本概念 19
2.2.2 结构化程序的3种基本结构 19
2.2.3 结构化程序设计方法 19
2.3 结构化程序算法描述 20
2.3.1 程序流程图 20
2.3.2 N-S图 21
2.3.3 PAD图 22
2.3.4 结构化程序算法描述实例 23
2.4 面向对象程序设计简介 24
2.4.1 对象 24
2.4.2 类 24
习题2 25
第3章 C语言数据类型 26
3.1 数据类型 26
3.1.1 数据类型的种类 26
3.1.2 常量与变量 27
3.2 整型数据 28
3.2.1 整型变量 28
3.2.2 整型常量 29
3.3.1 实型变量 30
3.3 实型数据 30
3.3.2 实型常量 31
3.4 字符型数据 32
3.4.1 字符常量 32
3.4.2 字符变量 33
3.4.3 字符串常量 34
习题3 34
第4章 数据运算 37
4.1 数据运算的基本概念 37
4.1.1 运算符 37
4.1.2 表达式 38
4.2 算术运算 39
4.2.1 算术运算符 39
4.2.2 算术表达式与运算规则 39
4.3.2 赋值表达式 41
4.3.1 赋值运算符 41
4.3 赋值运算 41
4.3.3 复合赋值运算 43
4.4 关系运算 44
4.4.1 关系运算符 44
4.4.2 关系表达式 44
4.5 逻辑运算 45
4.5.1 逻辑运算符 45
4.5.2 逻辑运算表达式 45
4.6 自增自减运算 47
4.6.1 自增、自减运算符 47
4.6.2 自增、自减运算符的用法与运算规则 47
4.7 其他运算 48
4.7.1 条件运算 48
4.7.2 逗号运算 49
4.7.3 求字节数运算 50
习题4 51
第5章 顺序结构程序设计 53
5.1 顺序结构程序 53
5.2 字符输入输出函数 54
5.2.1 字符输入函数getchar 54
5.2.2 字符输出函数putchar 55
5.3 格式输入输出函数 56
5.3.1 格式输出函数printf 56
5.3.2 格式输入函数scanf 58
5.4 顺序结构程序设计应用实例 61
习题5 62
第6章 选择结构程序设计 65
6.1 if语句 65
6.1.1 if语句的3种形式 65
6.1.3 if语句的嵌套 69
6.1.2 if语句与条件运算符 69
6.2 switch语句 72
6.2.1 switch语句 72
6.2.2 switch语句中break语句的使用 74
6.3 选择结构程序举例 75
习题6 78
第7章 循环结构程序设计 82
7.1 goto语句 82
7.2 while语句 83
7.3 do-while语句 84
7.4 for语句 86
7.5 break和continue语句 89
7.6 循环的嵌套 91
7.7 循环结构程序举例 92
习题7 94
第8章 函数 99
8.1 概述 99
8.1.1 函数的分类 99
8.1.2 函数的作用 100
8.2 函数定义 100
8.2.1 函数的定义 100
8.2.2 函数的定义说明 101
8.3 函数的返回值 103
8.4 函数的调用 104
8.4.1 函数的调用方式 104
8.4.2 函数的形参与实参 105
8.4.3 函数的嵌套调用 107
8.4.4 函数的递归调用 109
8.5.1 变量的作用域 111
8.5 变量的作用域与存储类别 111
8.5.2 变量存储类别 114
8.6 函数的存储类别 116
习题8 118
第9章 预处理 121
9.1 宏定义 121
9.1.1 不带参数的宏定义 121
9.1.2 带参数的宏定义 123
9.2 文件包含 125
9.3 条件编译 126
习题9 128
第10章 数组与字符串处理 131
10.1 数组的概念 131
10.2 一维数组 132
10.2.1 一维数组的定义 132
10.2.3 一维数组的初始化 133
10.2.2 一维数组元素的引用 133
10.2.4 一维数组程序举例 134
10.3 多维数组 136
10.3.1 二维数组的定义 136
10.3.2 二维数组元素的引用 136
10.3.3 二维数组的初始化 137
10.3.4 二维数组程序举例 137
10.4 字符数组与字符串 138
10.4.1 字符数组 138
10.4.2 字符串和字符串结束标志 138
10.5 字符串处理函数 139
10.5.1 几个最常用的字符串函数 140
10.5.2 应用举例 142
10.6 数组作为函数参数 143
习题10 145
第11章 指针 150
11.1 指针的概念 150
11.1.1 地址 150
11.1.2 指针的类型和指针的值 150
11.2 变量和指针 151
11.2.1 变量的指针 151
11.2.2 指向变量的指针变量 151
11.2.3 指向变量的指针变量应用举例 152
11.3 指针和数组 154
11.3.1 数组中地址的概念 154
11.3.2 指向一维数组的指针变量 154
11.3.3 指向二维数组的指针变量 157
11.4 字符串和指针变量 160
11.5.1 函数的指针和指向函数的指针变量 163
11.5 函数和指针 163
11.5.2 指向函数的指针变量作为函数的参数 164
11.5.3 返回指针值的函数 165
11.6 指针数组和指向指针变量的指针 166
11.6.1 指针数组 166
11.6.2 指向指针的指针变量 167
11.6.3 main函数的形参 168
习题11 169
第12章 结构体与共用体 175
12.1 概述 175
12.2 结构类型与结构变量的定义 175
12.2.1 结构类型的定义 175
12.2.2 声明结构体类型变量 176
12.3 结构体变量的初始化和引用 178
12.4.2 结构体数组的初始化 181
12.4 结构体数组 181
12.4.1 结构体数组的定义 181
12.4.3 结构体数组应用 182
12.5 结构体指针 185
12.5.1 结构体指针定义 185
12.5.2 结构体指针引用 185
12.5.3 用结构体变量的指针作函数参数 187
12.6 结构体指针与链表 189
12.6.1 链表概述 189
12.6.2 单链表的建立 190
12.6.3 用于动态存储分配的函数 191
12.6.4 动态申请结点,建立单链表 192
12.6.5 链表的删除 193
12.6.6 链表的插入 194
12.6.7 单链表的应用实例 195
12.7 共用体 198
12.7.1 共用体的定义 198
12.7.2 共用体变量的引用 199
12.7.3 共用体类型数据的特点 200
12.8 枚举类型 201
12.8.1 枚举型变量的定义和引用 202
12.8.2 枚举类型变量的应用实例 203
12.9 typedef类型定义 204
习题12 205
第13章 文件 208
13.1 文件及其分类 208
13.2 文件指针 209
13.3 文件的打开和关闭 210
13.3.1 文件的打开 210
13.3.2 文件的关闭 211
13.4 文件的读写 212
13.4.1 字符读写函数fgetc和fputc 212
13.4.2 字符串读写函数fgets和fputs 214
13.4.3 数据块读写函数fread和fwrite 215
13.4.4 格式化读写函数fscanf和fprintf 217
13.4.5 putw和getw函数 219
13.5 文件的随机读写和出错检测 219
13.5.1 文件的定位 219
13.5.2 文件检测函数 221
习题13 221
第14章 位运算 224
14.1 位逻辑运算 224
14.1.1 按位与运算 224
14.1.2 按位或运算 225
14.1.3 按位异或运算 226
14.1.4 按位取反运算 227
14.2 位移位运算 228
14.2.1 按位左移运算 228
14.2.2 按位右移运算 228
14.3 复合位赋值运算 230
14.3.1 复合位赋值运算符 230
14.3.2 复合位赋值运算规则 231
14.4 位段 231
14.4.1 位段的概念与定义 231
14.4.2 位段的引用 232
习题14 233
附录1 常用字符与ASCII码对照表 236
附录2 编译错误信息 238
参考文献 242