第1章 C语言概论 1
1.1 C语言的产生与发展 1
1.2 C语言的特点 1
1.3 Turbo C介绍 2
1.3.1 Turbo C的产生与发展 2
1.3.2 Turbo C 2.0集成环境 2
1.3.3 Turbo C 2.0菜单功能介绍 4
1.4 C程序举例及上机操作步骤 8
1.4.1 简单C程序举例 8
1.4.2 上机操作步骤 9
1.5 Microsoft Visual C++ 6.0上机操作与调试 11
1.5.1 Microsoft Visual C++ 6.0环境概述 11
1.5.2 启动Microsoft Visual C++ 6.0开发环境 11
1.5.3 系统界面简介 12
1.5.4 文本编辑区及文本编辑 18
1.5.5 消息提示区 23
1.5.6 运行程序 23
1.5.7 程序调试 25
本章小结 30
习题1 30
第2章 数据类型、运算符与表达式 32
2.1 C语言的数据类型概述 32
2.2 标识符、常量和变量 32
2.2.1 标识符 32
2.2.2 常量 33
2.2.3 变量 34
2.3 C语言的简单数据类型 35
2.3.1 整型数据 35
2.3.2 实型数据 38
2.3.3 字符型数据 39
2.4 C运算符和表达式 43
2.4.1 C运算符和表达式概述 43
2.4.2 算术运算符和算术表达式 44
2.4.3 位运算符和位运算 45
2.4.4 赋值运算符和赋值表达式 47
2.4.5 自增、自减运算符 48
2.4.6 求字节运算符 50
2.4.7 关系运算符和关系表达式 50
2.4.8 逻辑运算符和逻辑表达式 51
2.4.9 条件运算符和条件表达式 52
2.4.10 逗号运算符和逗号表达式 53
2.5 数据的类型转换 54
2.5.1 系统自动进行的类型转换 54
2.5.2 强制类型转换 56
本章小结 56
习题2 57
第3章 顺序结构程序设计 59
3.1 C语句概述 59
3.1.1 表达式语句 59
3.1.2 函数调用语句 59
3.1.3 复合语句 60
3.1.4 流程控制语句 60
3.1.5 空语句 61
3.2 C程序的三种基本结构 61
3.2.1 算法 61
3.2.2 流程图与三种基本控制结构 62
3.3 数据的输入输出 65
3.3.1 格式输出函数 65
3.3.2 格式输入函数 69
3.3.3 字符数据的输入输出 73
3.4 顺序结构程序设计举例 74
本章小结 77
习题3 78
第4章 选择结构程序设计 80
4.1 条件语句 80
4.1.1 单分支if语句 80
4.1.2 双分支if语句 81
4.2 if语句的嵌套 83
4.3 switch语句 85
4.4 程序举例 89
本章小结 92
习题4 93
第5章 循环结构 95
5.1 循环的构成 95
5.2 循环语句 96
5.2.1 while语句 96
5.2.2 do~while语句 99
5.2.3 for语句 101
5.2.4 break和continue语句 104
5.2.5 三种语句的选用 108
5.3 循环的嵌套 110
5.4 循环应用实例 113
本章小结 121
习题5 122
第6章 数组 127
6.1 数组的引入与概念 127
6.1.1 数组的引入 127
6.1.2 数组的概念 128
6.2 一维数组 129
6.2.1 一维数组的定义 129
6.2.2 一维数组元素的引用 131
6.3 二维数组 136
6.3.1 二维数组的定义 136
6.3.2 二维数组元素的表示方法 137
6.3.3 二维数组的初始化 137
6.3.4 二维数组的引用 138
6.4 多维数组 140
6.4.1 多维数组的定义 140
6.4.2 多维数组的初始化 140
6.4.3 多维数组的引用 140
6.5 字符数组 141
6.5.1 字符数组的定义 141
6.5.2 字符数组的初始化 141
6.5.3 字符串常用函数 143
6.6 综合例题 146
本章小结 150
习题6 150
第7章 指针 156
7.1 变量的地址和指针变量 156
7.1.1 变量的地址以及变量的存取方式 156
7.1.2 指针变量的定义和指针变量的基类型 157
7.1.3 指针变量赋值 158
7.1.4 指针变量引用 158
7.2 数组的指针与指向数组的指针变量 161
7.2.1 指向数组的指针变量 161
7.2.2 通过指针引用数组元素 161
7.2.3 指向多维数组的指针和指针变量 165
7.3 字符串的指针和指向字符串的指针变量 168
7.3.1 字符串的表示形式 168
7.3.2 字符数组与字符串指针的区别 169
7.4 指针数组与指向指针的指针 172
7.4.1 指针数组的概念 172
7.4.2 指向指针的指针 174
7.5 指针与动态内存分配初步 175
本章小结 180
习题7 181
第8章 函数 187
8.1 函数概述 187
8.1.1 模块化程序设计 187
8.1.2 C函数的分类 188
8.2 函数的定义 189
8.2.1 无参函数的定义 189
8.2.2 有参函数的定义 190
8.3 数据在函数之间的传递 191
8.3.1 形参与实参 191
8.3.2 函数值的返回 193
8.4 函数的调用 195
8.4.1 函数调用的形式和执行过程 195
8.4.2 函数调用的方式 196
8.4.3 对被调用函数的声明和函数原型 198
8.5 数组作为函数的参数 199
8.6 指针作为函数的参数 203
8.6.1 基本数据类型的指针作为函数的参数 203
8.6.2 指向数组的指针作为函数参数 205
8.6.3 字符串指针作为函数参数 207
8.7 函数与指针 208
8.7.1 用函数指针变量调用函数 208
8.7.2 用指向函数的指针作为函数参数 209
8.7.3 返回指针值的函数 210
8.7.4 main函数的参数和返回值 211
8.8 函数的嵌套调用 213
8.9 函数的递归调用 214
8.10 变量的作用域 216
8.10.1 内部变量 216
8.10.2 外部变量 217
8.11 变量的存储类别 219
8.11.1 自动变量 219
8.11.2 用extern声明外部变量 220
8.11.3 静态变量 222
8.11.4 寄存器变量 224
8.12 内部函数和外部函数 225
8.13 多个源文件的C程序的链接 225
本章小结 226
习题8 228
第9章 预处理命令 232
9.1 宏定义 232
9.1.1 无参数宏定义 232
9.1.2 带参数宏定义 234
9.2 文件包含 237
9.2.1 文件包含的概念 237
9.2.2 文件包含命令的一般格式 237
9.3 条件编译 239
9.4 应用程序举例 241
本章小结 243
习题9 243
第10章 结构体与共用体 245
10.1 结构体类型 245
10.1.1 结构体类型与结构体变量 245
10.1.2 结构体变量的引用 249
10.1.3 结构体变量的初始化 251
10.2 结构体数组 252
10.2.1 结构体数组的定义与引用 252
10.2.2 结构体数组的初始化 252
10.3 指向结构体的指针变量 253
10.3.1 结构体指针变量 253
10.3.2 用结构体变量和结构体指针变量作为函数参数 256
10.4 链表 259
10.4.1 链表概述 259
10.4.2 处理链表的函数 260
10.4.3 链表的建立 261
10.4.4 链表的遍历 263
10.4.5 链表的插入操作 264
10.4.6 链表的删除操作 266
10.5 共用体 268
10.5.1 共用体类型定义 268
10.5.2 共用体变量的引用 269
10.6 枚举类型 271
10.7 用typedef定义类型 273
本章小结 274
习题10 274
第11章 位运算 279
11.1 位运算的概念 279
11.1.1 字节与位 279
11.1.2 位运算符 279
11.2 位运算举例 285
11.3 位段 288
本章小结 291
习题11 291
第12章 文件 295
12.1 文件概述 295
12.1.1 文件的概念 295
12.1.2 文件的分类 295
12.1.3 文件的操作 296
12.2 标准文件的读写 297
12.2.1 文件型指针 297
12.2.2 打开文件函数fopen() 297
12.2.3 关闭文件函数fclose() 299
12.2.4 文件的读写 299
12.2.5 文件的随机读写函数 303
12.2.6 清除和设置文件缓冲区 305
12.3 非标准文件的读写 306
12.3.1 文件的打开和关闭 306
12.3.2 读写函数 306
12.3.3 随机定位函数 307
本章小结 307
习题12 307
附录A C语言ASCII表 312
附录B C语言关键字及用途 313
附录C 运算符和结合性 314
附录D 常用的ANSI C库函数表 316
参考文献 318