第1章 数据编码与存储 1
1.1 计算机的一般知识 1
1.1.1 计算机的诞生 1
1.1.2 计算机的发展阶段 1
1.1.3 计算机的特点 3
1.1.4 计算机的用途 4
1.1.5 计算机的分类 6
1.2 计算机中的数制与编码 6
1.2.1 数据在计算机内的存储形式 6
1.2.2 数制 7
1.2.3 不同进制数的转换 11
1.2.4 二进制数的算术运算与逻辑运算 15
1.3 机器数的概念及表示 17
1.3.1 机器数的概念 17
1.3.2 机器数的范围 18
1.3.3 机器数的符号 18
1.3.4 机器数中小数点的位置 18
1.4 常用的几种编码 19
1.4.1 十进制数字的二进制编码 19
1.4.2 ASCII码 20
1.5 计算机系统的组成 21
1.5.1 计算机的硬件系统 21
1.5.2 微型计算机硬件系统组成 23
1.5.3 软件系统组成 24
1.6 小结 26
习题 27
第2章 C语言基础 29
2.1 C语言的发展及特点 29
2.1.1 C语言的发展 29
2.1.2 C语言的特点 30
2.2 C程序的基本结构 30
2.3 C程序的实现 33
2.3.1 C程序的实现步骤 33
2.3.2 用Turbo C运行C程序的步骤 34
2.4 小结 36
习题 36
第3章 数据类型. 运算符与表达式 37
3.1 数据类型 37
3.1.1 基本数据类型 37
3.1.2 类型修饰符 38
3.2 常量和变量 39
3.2.1 常量 39
3.2.2 符号常量 41
3.2.3 变量 41
3.2.4 整型变量 42
3.2.5 实型变量 43
3.2.6 字符型变量 43
3.3 数据类型转换 44
3.3.1 隐式类型转换 44
3.3.2 显示类型转换 44
3.4 运算符和表达式 45
3.4.1 基本概念 45
3.4.2 算术运算符和算术表达式 46
3.4.3 赋值运算符和赋值表达式 48
3.4.4 关系运算符和关系表达式 49
3.4.5 逻辑运算符和逻辑表达式 49
3.4.6 条件运算符和条件表达式 51
3.4.7 逗号运算符和逗号表达式 51
3.5 小结 51
习题 51
第4章 顺序结构程序设计 53
4.1 C语言语句 53
4.2 C程序的3种基本结构 54
4.3 数据输入 55
4.3.1 字符输入函数getchar() 55
4.3.2 格式输入函数scanf() 56
4.4 数 据 输 出 58
4.4.1 字符输出函数putchar() 58
4.4.2 格式输出函数printf() 59
4.5 程序设计举例 62
4.6 小结 63
习题 64
第5章 选择结构程序设计 66
5.1 if语句 66
5.1.1 单分支if语句 68
5.1.2 双分支if语句 69
5.1.3 多分支if语句 70
5.2 switch语句 71
5.3 程序设计举例 75
5.4 小结 78
习题 79
第6章 循环结构程序设计 82
6.1 for循环 82
6.1.1 for循环的一般形式 83
6.1.2 for循环的执行过程 83
6.1.3 注意事项 84
6.2 while循环 85
6.2.1 while循环的一般形式 85
6.2.2 while循环的执行过程 85
6.2.3 注意事项 86
6.3 do-while循环 86
6.3.1 do-while循环的一般形式 86
6.3.2 do-while循环的执行过程 87
6.4 goto语句 88
6.5 循环的嵌套 88
6.6 break语句和continue语句 90
6.6.1 break语句 90
6.6.2 continue语句 92
6.7 几种循环的比较 93
6.8 程序举例 94
6.9 小结 103
习题 103
第7章 数组 105
7.1 一维数组 105
7.1.1 一维数组的定义 106
7.1.2 一维数组元素的引用 107
7.1.3 一维数组的初始化 108
7.1.4 一维数组程序举例 109
7.2 二维数组 117
7.2.1 二维数组的定义 117
7.2.2 二维数组元素的引用 118
7.2.3 二维数组的初始化 118
7.2.4 二维数组程序举例 120
7.3 字符数组 121
7.3.1 字符数组的定义. 初始化和引用 121
7.3.2 用一维字符数组存放字符串 123
7.3.3 字符串的输入和输出 124
7.3.4 字符串处理函数 127
7.3.5 字符数组程序举例 130
7.4 小结 132
习题 132
第8章 函数 134
8.1 概述 134
8.2 函数的定义和函数调用方法 135
8.2.1 函数定义的一般形式 135
8.2.2 函数参数和函数调用 136
8.2.3 函数的返回值 138
8.2.4 函数的声明 139
8.3 函数的调用 141
8.3.1 函数调用的一般形式 141
8.3.2 函数调用的方式 142
8.3.3 函数调用的过程 142
8.3.4 函数的嵌套调用 144
8.3.5 函数的递归调用 145
8.4 局部变量和全局变量 146
8.4.1 局部变量 147
8.4.2 全局变量 148
8.5 变量的存储类别 150
8.5.1 变量的生存期 150
8.5.2 存储类别 151
8.6 内部函数和外部函数 157
8.6.1 内部函数 157
8.6.2 外部函数 157
8.7 处理较大的程序 158
8.8 小结 161
习题 161
第9章 编译预处理 164
9.1 宏定义 164
9.1.1 符号常量的定义 164
9.1.2 带参数的宏定义 166
9.2 文件包含 169
9.3 条件编译 171
9.4 小结 174
习题 174
第10章 指针 176
10.1 指针基本概念 176
10.2 指针变量的声明和初始化 177
10.2.1 指针变量 177
10.2.2 指针的声明 177
10.3 对指针变量的引用 178
10.3.1 指针运算符 179
10.3.2 使用指针处理数据 179
10.3.3 指针的算术运算 181
10.4 指针变量作为函数参数 183
10.5 数组的指针和指向数组的指针变量 186
10.5.1 数组的指针 186
10.5.2 指向数组的指针变量 186
10.6 用指向数组的指针作函数的参数 189
10.7 指针和多维数组 192
10.8 字符串与指针 194
10.8.1 字符数组的初始化 195
10.8.2 字符数组的引用 196
10.8.3 字符数组的输入 196
10.8.4 字符数组的输出 197
10.8.5 字符串运算函数 198
10.9 函数的指针和指向函数的指针 变量的定义与赋值方法 200
10.9.1 函数指针 200
10.9.2 函数指针作函数的参数 202
10.9.3 字符串指针作函数的参数 207
10.10 指针数组和指向指针的指针 212
10.10.1 指针数组 212
10.10.2 指向指针的指针 215
10.10.3 命令行参数 215
10.11 小结 217
习题 217
第11章 结构体与共用体 220
11.1 结构体的定义和说明 220
11.2 结构体变量的初始化及引用 224
11.2.1 结构体变量的初始化 224
11.2.2 结构体变量的引用 226
11.2.3 运算 228
11.2.4 结构体变量整体赋值给另一结构体变量 230
11.3 结构体数组及使用 231
11.4 指向结构体变量的指针 235
11.5 共用体. 枚举 237
11.5.1 共用体类型 237
11.5.2 枚举类型 240
11.5 小结 243
习题 243
第12章 位运算 246
12.1 概述 246
12.1.1 位与字节 246
12.1.2 数的表达方式 247
12.2 位运算 248
12.2.1 “按位与”运算符(&) 248
12.2.2 “按位或”运算符(|) 250
12.2.3 “异或”运算符(Λ) 251
12.2.4 “取反”运算符(~) 253
12.2.5 左移运算符( ) 253
12.2.6 右移运算符( ) 254
12.2.7 位运算赋值运算符 255
12.2.8 不同长度的数据进行位运算 255
12.3 位段 255
12.3.1 位段的定义 255
12.3.2 位段的引用 256
12.4 小结 258
习题 258
第13章 文件 261
13.1 概述 261
13.1.1 文件的概念 261
13.1.2 文件的分类 262
13.1.3 与文件有关的两个常量NULL和EOF 263
13.1.4 标准函数库的引用 264
13.2 文件类型指针 264
13.3 文件的打开. 关闭及结束检测函数 264
13.3.1 文件打开的格式 265
13.3.2 文件打开方式 265
13.3.3 文件的关闭 266
13.4 按字符方式读写文件函数fputc()/fgetc() 266
13.4.1 fputc()函数 266
13.4.2 fgetc()函数 267
13.4.3 fputc()/fgetc()函数使用实例 267
13.5 按数据块方式读写文件fread()/fwrite() 271
13.5.1 fread( ) 函数 271
13.5.2 fwrite( ) 函数 271
13.5.3 fread()/fwrite()函数使用实例 271
13.6 按格式化方式读写文件 274
13.7 其他读写磁盘函数 275
13.8 文件的定位 276
13.8.1 rewind()函数 277
13.8.2 fseek()函数 277
13.8.3 ftell()函数 278
13.9 出错的检测 278
13.10 非缓冲文件系统 279
13.11 小结 280
习题 280
附录 七位ASCII码编码表 283
参考文献 284