第1章 程序设计基础 1
1.1 计算机的逻辑结构 1
1.2 数字信息量的度量单位 3
1.3 计算机中数据的表示和运算 3
1.3.1 二进制、八进制和十六进制 3
1.3.2 二进制的算数运算 4
1.3.3 二进制、八进制、十六进制和十进制之间的转换 5
1.3.4 原码和补码 7
1.4 计算机语言 9
1.4.1 计算机语言的分类 9
1.4.2 程序的概念 10
1.5 算法 10
1.5.1 简单算法举例 10
1.5.2 算法的特性 11
1.5.3 算法的表示 12
1.6 程序设计须知 16
本章小结 17
习题 17
第2章 C语言概述 21
2.1 C语言简史 21
2.2 C语言的特点 22
2.3 C语言的词汇 23
2.3.1 C的字符集 23
2.3.2 标识符 23
2.3.3 关键字 24
2.3.4 注释 24
2.4 简单的C程序介绍 24
2.5 C程序的生成 30
2.5.1 源代码文件 30
2.5.3 C编程流程 31
2.5.2 目标文件、可执行文件以及库函数 31
2.6 Turbo C 2.0集成开发环境简介 32
2.6.1 TC 2.0软件的获取、安装/卸载与启动 33
2.6.2 TC 2.0的窗口介绍 35
2.6.3 TC 2.0的菜单介绍 36
2.6.4 TC 2.0工作目录的配置 41
2.6.5 TC 2.0中开发程序的步骤及方法 42
本章小结 43
上机练习 43
习题 45
第3章 数据类型与表达式 47
3.1 C的数据类型 47
3.2 变量与常量 47
3.2.1 变量 48
3.2.2 常量 50
3.3.2 整型变量的分类 51
3.3 整型数据 51
3.3.1 整数在内存中的存放形式 51
3.3.3 整型变量的使用 54
3.3.4 整型常量的表示方法 56
3.4 实型数据 57
3.4.1 实型常量的表示方法 57
3.4.2 实数在内存中的存放形式 58
3.4.3 实型变量的分类 58
3.4.4 浮点型的舍入误差 59
3.5 字符型数据 59
3.5.1 字符常量和字符串常量的表示方法 59
3.5.2 字符和字符串在内存中的存放 61
3.5.3 字符变量的分类 62
3.5.4 字符变量的使用 63
3.6 访问修饰符 64
3.6.2 volatile 65
3.6.1 const 65
3.7.1 表达式 66
3.7 运算符和表达式 66
3.7.2 运算符 67
3.7.3 算术运算符 67
3.7.4 关系与逻辑运算符 70
3.7.5 条件运算符 72
3.7.6 复合的赋值运算符 73
3.7.7 求存储长度sizeof运算符 74
3.7.8 逗号运算符 74
3.7.9 表达式的求值 75
3.7.10 表达式中的数据类型转换 76
本章小结 79
上机练习 79
习题 81
4.1.1 控制语句 89
4.1.2 表达式语句 89
第4章 C语言程序设计初步 89
4.1 C语言语句概述 89
4.1.3 复合语句 91
4.2 顺序结构程序设计 91
4.2.1 顺序结构描述 91
4.2.2 格式输出输入语句 93
4.2.3 单个字符输入输出语句 101
4.3 分支结构程序设计 102
4.3.1 单分支结构 102
4.3.2 多分支语句 111
4.4 循环结构程序设计 114
4.4.1 for循环语句 114
4.4.2 while循环语句 116
4.4.4 几种循环语句的比较 118
4.4.3 do-while循环语句 118
4.4.5 循环语句的嵌套 119
4.4.6 转移控制语句 121
本章小结 124
上机练习 125
习题 125
第5章 数组 131
5.1 一维数组的定义和引用 131
5.1.1 一维数组的定义方式 131
5.1.2 一维数组元素的引用 132
5.1.3 一维数组的初始化 133
5.1.4 一维数组程序举例 134
5.2 二维数组的定义和引用 135
5.2.1 二维数组的定义 135
5.2.2 二维数组元素的引用 136
5.2.3 二维数组的初始化 137
5.2.4 二维数组程序举例 138
5.3 字符数组 141
5.3.1 字符数组的定义 141
5.3.2 字符数组的初始化 141
5.3.3 字符数组的引用 142
5.3.4 字符串和字符串结束标志 142
5.3.5 字符数组的输入输出 143
5.3.6 常用字符串函数 144
5.4 程序举例 147
本章小结 151
上机练习 151
习题 151
第6章 函数与变量 154
6.1 概述 154
6.2.1 定义无参函数的一般形式 155
6.2 函数定义的一般形式 155
6.2.2 定义有参函数的一般形式 156
6.2.3 空函数 157
6.3 函数参数和函数的值 157
6.3.1 函数参数 157
6.3.2 函数的值 159
6.4 函数的调用 160
6.4.1 函数调用的一般形式 160
6.4.2 对被调用函数的声明和函数原型 161
6.5 函数的嵌套调用与递归调用 162
6.5.1 函数的嵌套调用 162
6.5.2 函数的递归调用 164
6.6 数组作函数参数 167
6.6.1 数据元素作函数实参 167
6.6.2 数组名作函数参数 169
6.6.3 用多维数组名作函数参数 171
6.7 变量的作用域 172
6.7.1 局部变量 173
6.7.2 全局变量 174
6.8 变量的存储方式 177
6.8.1 动态存储方式和静态存储方式 177
6.8.2 auto变量 178
6.8.3 寄存器(register)变量 181
6.8.4 静态变量(static) 182
6.8.5 用extern来声明外部变量 185
6.9 内部函数和外部函数 187
6.9.1 内部函数 187
6.9.2 外部函数 187
本章小结 188
习题 189
上机练习 189
第7章 指针 193
7.1 指针简介 193
7.2 指针变量 194
7.2.1 指针的定义 194
7.2.2 指针变量的引用 195
7.2.3 指针运算 197
7.2.4 指向指针的指针 199
7.2.5 指针变量作函数参数 200
7.3 数组和指针 202
7.3.1 一维数组的指针表示方法 202
7.3.2 数组名和数组指针变量作函数参数 206
7.3.3 二维数组的指针表示方法 209
7.3.4 指向数组的指针变量 211
7.3.5 用指向数组的指针作函数参数 212
7.4.1 指向字符串的指针 214
7.4 指针与字符串 214
7.4.2 字符串指针变量作函数参数 216
7.4.3 使用字符串指针变量与字符数组的区别 218
7.5 函数指针与指针函数 220
7.5.1 用函数指针变量指向函数 220
7.5.2 指针函数 221
7.6 指针数组 223
7.7 带参数的main函数 225
本章小结 226
上机练习 227
习题 228
第8章 结构体、共用体与用户自定义类型 231
8.1 结构体类型 231
8.1.1 概述 231
8.1.2 结构体类型的定义 231
8.1.3 结构体变量的定义 233
8.1.5 结构体变量的引用 234
8.1.4 结构体变量的初始化 234
8.2 结构体数组 236
8.2.1 结构体数组定义 236
8.2.2 结构体数组的初始化与赋值 236
8.2.3 结构体数组的输入与输出 237
8.3 指向结构体类型数据的指针 239
8.3.1 指向结构体变量的指针变量 239
8.3.2 指向结构体数组的指针变量 241
8.3.3 结构体指针变量作函数参数 242
8.4 链表与结构体 243
8.4.1 链表概述 243
8.4.2 动态分配内存空间的函数 243
8.4.3 链表的基本操作 245
8.5.1 共用体概述 252
8.5 共用体 252
8.5.2 共用体类型的定义 253
8.5.3 共用体变量的定义 253
8.5.4 共用体变量的赋值和使用 254
8.6 用户自定义类型 255
本章小结 256
上机练习 256
习题 257
第9章 预处理 261
9.1 概述 261
9.2 宏定义 261
9.2.1 无参宏定义 261
9.2.2 带参宏定义 263
9.3 文件包含 267
9.4 条件编译 269
本章小结 271
上机练习 272
习题 272
第10章 文件 275
10.1 概述 275
10.1.1 文件的概念 275
10.1.2 文件指针 276
10.2 文件打开与关闭 277
10.2.1 文件打开函数(fopen函数) 277
10.2.2 文件关闭函数(fclose函数) 279
10.3 文件的读写 280
10.3.1 字符读写函数fgetc和fputc 280
10.3.2 字符串读写函数fgets和fputs 285
10.3.3 数据块读写函数fread和fwrite 287
10.3.4 格式化读写函数fscanf和fprintf 290
10.3.5 字(整数)读写函数getw和putw 292
10.4 文件的定位 293
10.4.1 rewind函数 293
10.4.2 fseek函数 294
10.4.3 ftell函数 296
10.5 文件检测函数 296
10.6 C库文件 297
本章小结 298
上机练习 299
习题 299
附录Ⅰ 常用字符与ASCII代码对照表 302
附录Ⅱ 关键字及其用途 304
附录Ⅲ 运算符的优先级和结合性 305
附录Ⅳ Turbo C 2.0常用库函数 306
附录Ⅴ Turbo C 2.0编译错误信息 311
参考文献 317