第1章 引论 1
1.1有了高级语言为什么还要引入中级语言——C语言产生的背景 1
1.2C语言的特点 2
第2章 程序运行的基本过程及C语言程序的基本结构 4
2.1输入输出概念 4
2.2程序的运行过程及程序中存取数据的途径 4
2.3C程序的基本结构 5
2.4注释 6
习题 7
第3章 基本数据类型的定义 8
3.1为什么要进行数据类型定义 8
3.2标识符的组成及作用 8
3.2.1标识符的组成 8
3.2.2标识符的作用 8
3.3程序中自带的数据——常量 9
3.4为何引入变量及类型 12
3.5基本数据类型 13
3.5.1基本数据类型定义 13
3.5.2类型修饰符 14
3.5.3变量的初始化 15
习题 16
第4章 终端设备上的输入输出及C语言的上机过程 17
4.1如何实现终端设备上的输入输出 17
4.2标准输入输出函数及引用 18
4.2.1字符的输入输出函数getchar()/putchar() 18
4.2.2格式化输入输出函数scanf()/printf() 18
4.2.3字符串输入输出函数gets()/puts() 23
4.3C语言的上机操作过程 24
4.3.1PC-DOS下Turbo C上机步骤及汉字的使用 25
4.3.2UNIX/XENIX系统下C语言的上机过程 26
习题 27
第5章 运算符及表达式 29
5.1运算符的分类 29
5.1.1根据运算对象的个数分类 29
5.1.2根据运算结果分类 30
5.2运算符的使用 30
5.2.1算述运算符及表达式 30
5.2.2关系和逻辑运算符及其表达式 32
5.2.3位域运算符及表达式 32
5.2.4赋值运算符及赋值表达式 35
5.2.5条件运算符及条件表达式 36
5.2.6其它的运算符 36
5.3类型转换 37
5.3.1隐式类型转换 37
5.3.2显式类型转换 38
5.4运算符的优先级 38
5.5C语言表达式的特点 39
5.6表达式的副作用 39
习题 40
第6章 语句及流程控制 42
6.1程序的三种基本结构 42
6.2顺序执行语句 42
6.2.1语句概述 42
6.2.2程序举例 43
6.3选择控制结构语句 45
6.3.1if语句 45
6.3.2switch和break语句 49
6.4循环控制结构语句 52
6.4.1for语句 52
6.4.2while语句 55
6.4.3do-while语句 56
6.4.4break和continue语句在循环语句中的应用 58
6.4.5循环嵌套 60
6.4.6循环程序举例 60
6.5goto语句及带标号的语句 65
习题 66
第7章 构造数据类型 70
7.1数组 70
7.1.1一维数组 70
7.1.2二维数组 72
7.1.3数组的初始化 74
7.1.4利用字符数组处理字符串 76
7.1.5数组应用举例 79
7.2结构 84
7.2.1结构类型及结构类型变量的定义与使用 84
7.2.2结构的进一步说明 86
7.2.3结构数组 88
7.3共用体 91
7.3.1共用体的定义及引入的目的 91
7.3.2共用体成员的引用 93
7.4位域 94
7.5枚举类型 95
7.6类型定义 96
习题 97
第8章 函数及变量的存储类别 100
8.1函数概述 100
8.1.1C程序的结构 100
8.1.2库函数、自定义函数及自定义函数的组织方法 100
8.1.3用函数构成程序的优点 101
8.1.4引入函数后要解决的问题 102
8.2函数的定义与调用 102
8.2.1函数的定义 102
8.2.2函数的调用 104
8.2.3函数举例 105
8.2.4无返回值函数和无参函数 106
8.2.5函数说明和定义的其它方法 108
8.3构造类型数据向函数的传送 109
8.3.1结构向函数的传送 109
8.3.2数组向函数的传送 110
8.3.3字符串向函数的传送 115
8.4递归函数 118
8.5变量的存储类别、作用域规则及其用途 120
8.5.1自动变量 121
8.5.2寄存器变量 122
8.5.3外部变量 124
8.5.4静态变量 129
8.6预处理命令及用途 133
8.6.1C语言预处理程序 133
8.6.2宏替换命令#define 133
8.6.3包含文件命令#include 136
8.6.4取消宏定义命令#undef(undefine) 137
8.6.5条件编译命令 137
8.6.6其它的预处理命令 139
8.7函数库的建立方法 141
习题 142
第9章 指针及其应用 147
9.1指针的概念及引入指针的原因 147
9.1.1指针和地址的概念 147
9.1.2为什么要引入指针 147
9.2指针的定义、特性及引用 148
9.2.1指针的定义及其含义 148
9.2.2指针的特性 150
9.2.3指针的引用 150
9.2.4引用指针时的注意问题 155
9.2.5指针引用的实例——实现函数的引用调用 156
9.2.6扩大因子 159
9.3指针与数组 160
9.3.1数组与指针的关系 160
9.3.2指向数组元素的指针 165
9.3.3指向由m个元素组成的一维数组的指针 173
9.3.4指针数组 176
9.3.5指向指针的指针与指针数组的关系 179
9.3.6指针数组的应用——命令行参数 180
9.4指针与函数 184
9.4.1返回值为地址的函数 184
9.4.2指向函数的指针 185
9.5指针与结构 189
9.5.1指向结构的指针 189
9.5.2动态变化数据的实现——动态分配及链表 202
习题 220
第10章 外存储器及打印机上的输入输出 226
10.1文件概述 226
10.1.1文件及文件操作步骤 226
10.1.2ASCII码文件及二进制文件 227
10.1.3文件缓冲区及文件指针 229
10.2文件的打开和关闭 230
10.2.1文件打开函数fopen() 231
10.2.2文件关闭函数fclose() 232
10.3ASCII码文件的读写 232
10.3.1文件的读写位置指针及定位 233
10.3.2字符读写函数 234
10.3.3字符串读写函数 238
10.3.4文件的格式化输入输出 244
10.4输入输出转向及结果打印 246
10.4.1输入输出转向 246
10.4.2向打印机输出结果 248
10.5二进制文件的读写 249
习题 253
第11章 屏幕管理及菜单、图形设计 254
11.1字符屏幕管理及菜单设计 254
11.1.1字符显示原理 254
11.1.2字符屏幕的控制方法 256
11.1.3保存屏幕与恢复屏幕 261
11.2图形屏幕管理及绘图 266
11.2.1图形显示原理 266
11.2.2图形系统的初始化及关闭 268
11.2.3绘图前的准备工作 270
11.2.4画图和涂色函数 273
11.2.5图形方式下的字符输出 277
第12章 面向对象技术及C++简介 283
12.1面向对象技术的形成 283
12.2面向对象的软件开发的三个基本步骤 283
12.3面向对象技术的基本概念 284
12.4C++语言中支持面向对象技术的基本成份 285
12.4.1类的构造与数据封装 285
12.4.2继承 287
12.4.3多态 288
第13章 操作系统对语言的支撑 289
13.1C语言与操作系统的关系 289
13.2DOS环境下系统资源的使用 290
13.2.1MS-DOS的组成 290
13.2.2如何使用BIOS接口及DOS的系统调用 290
13.2.3应用举例 295
13.3UNIX环境下系统资源的使用 297
13.3.1UNIX系统概述 297
13.3.2文件操作 298
13.3.3进程控制 303
13.4使用库函数及系统资源的选择问题 304
第14章 动态调试 305
14.1程序错误的类型 305
14.2运行错误的调试 305
14.2.1运行错误的表现形式及原因 305
14.2.2如何纠正运行错误 307
14.3由C语言的误用而引起的逻辑错误的调试 308
14.4一般的程序调试 310
附录A C语言标准库函数 311
附录B ASCII码对照表 315