第Ⅰ篇 C语言程序设计基础 3
第1章 UNIX系统C语言简介 3
1.1 C语言简介 3
1.2 C语言程序的开发过程 3
1.3 简单的C语言程序范例 5
第2章 C语言数据处理的基本概念 9
2.1 变量名称的使用 9
2.2 变量的声明方式 10
2.3 基本的数据类型 10
2.3.1 整型数据 11
2.3.2 字符型数据 11
2.3.3 浮点数 12
2.3.4 双精度浮点数 12
2.3.5 字符串数据类型 13
2.4 常量的表达方式 13
2.4.1 整型常量 13
2.4.2 浮点常量 14
2.4.3 字符常量 14
2.4.4 字符串常量 14
2.5 基本的算术运算 15
2.6 不同类型的转换 17
2.7 C语言的特殊运算 18
2.7.1 递增和递减运算 19
2.7.2 设置特殊运算符 20
2.7.3 sizeof 21
第3章 基本的输入与输出 23
3.1 printf()函数 23
3.1.1 C语言的控制符\n 24
3.1.2 十进制整数的打印 25
3.1.3 浮点数的打印 27
3.1.4 字符的打印 28
3.1.5 其他格式化数据的打印原则 29
3.2 scanf()函数 30
3.3 字符的输入和输出函数 32
第4章 程序的流程控制 37
4.1 关系运算符与逻辑运算符 37
4.2 for语句 38
4.3 while语句 43
4.4 do...while语句 47
4.5 if语句 48
4.6 else...if语句 51
4.7 e1?e2:e3语句 54
4.8 switch语句 55
4.9 break语句 58
4.10 continue语句 59
4.11 goto语句 60
第5章 数组和指针 65
5.1 一维数组 65
5.2 二维数组 67
5.3 指针的基本概念 70
5.4 指针和数组的混合应用 72
第6章 函数的应用 79
6.1 函数的定义 80
6.2 主程序和函数的位置 82
6.3 函数的返回值 83
6.4 数组数据的传递 86
6.5 指针的传递 88
6.6 递归式函数和新式ANSI函数 91
6.7 简单数学函数的使用 92
第7章 变量的等级 97
7.1 auto变量 97
7.2 static变量 99
7.3 外部变量和静态外部变量 102
7.4 register变量 105
第8章 C语言的预处理程序 107
8.1 宏指令#define 107
8.2 #include指令 111
8.3 条件式的编译 113
第9章 自定义数据类型 117
9.1 typedef指令 117
9.2 结构数据类型 118
9.3 结构数据与数组 121
9.4 结构数据与函数 122
9.5 union类型 126
9.6 enum类型 128
第10章 字符串 131
10.1 字符组成的一维数组 131
10.2 字符串的应用 134
10.2.1 构成字符串的基本要素 134
10.2.2 标准字符串的输出 137
10.2.3 标准字符串的输入 139
10.3 字符串与指针 140
10.4 gets()和puts()函数 141
10.4.1 gets()函数 141
10.4.2 puts()函数 144
10.5 系统字符串处理的函数 145
10.5.1 strcat() 146
10.5.2 strcmp() 147
10.5.3 strcpy() 148
10.5.4 strlen() 148
10.5.5 stmcat() 149
10.5.6 stmcmp() 150
10.5.7 stmcpy() 151
10.6 字符串数组 151
10.7 字符数组的指针 153
10.8 命令行参数 154
第11章 基本位运算 157
11.1 &运算符 157
11.2 |运算符 159
11.3 ^运算符 160
11.4 ~运算符 161
11.5 <<运算符 163
11.6 >>运算符 164
11.7 位字段 165
第12章 测试符号与符号转换函数 167
12.1 isalnum(c)函数 167
12.2 isalpha(c)函数 168
12.3 isascii(c)函数 168
12.4 iscntrl(c)函数 169
12.5 isdigit(c)函数 170
12.6 islower(c)函数 171
12.7 isprint(c)函数 172
12.8 isspace(c)函数 172
12.9 tolower(c)函数 173
12.10 toupper(c)函数 173
第13章 文件的输入与输出 175
13.1 文件的打开和关闭 175
13.1.1 fopen()函数 175
13.1.2 fclose()函数 176
13.2 getc()和putc()函数 176
13.2.1 getc()函数 176
13.2.2 putc()函数 177
13.3 fscanf()和fprintf()函数 180
13.4 fgets()和fputs()函数 181
13.5 ungetc()函数 182
第Ⅱ篇 C语言数据结构 187
第14章 基本的表结构 187
14.1 动态数据结构的声明 187
14.2 存储器的配置 187
14.3 链表的基本操作 190
14.4 表的连接 193
14.5 表中节点的删除 197
14.6 释放存储器空间 200
14.7 节点的插入 203
14.8 双向链表 208
第15章 堆栈与队列 211
15.1 堆栈 211
15.2 队列 215
第16章 二叉树 221
16.1 二叉树的节点结构 221
16.2 二叉树的建立 222
16.3 二叉树的输出 223
16.3.1 中序输出方式 224
16.3.2 前序输出方式 226
16.3.3 后序输出方式 229
第Ⅲ篇 UNIX系统程序设计 235
第17章 UNIX系统的文件管理 235
17.1 文件管理的基本知识 235
17.2 打开一个文件 237
17.3 新建一个文件 238
17.4 关闭一个文件 239
17.5 文件的读取 240
17.6 文件的写入 241
17.7 随机访问文件 243
17.8 管理文件 245
第18章 程序的管理 251
18.1 fork()指令 251
18.2 利用exec执行新的进程 252
18.2.1 execl指令 252
18.2.2 execv指令 253
18.2.3 execlp指令 254
18.2.4 execvp指令 255
18.3 暂时等待功能 257
18.4 获得程序pid 260
第19章 进程间的信息传递 267
19.1 sleep的使用 267
19.2 使用SIGNAL函数 268
19.3 使用kill传递信号 271
19.4 暂时中止函数pause 271
19.5 闹钟函数alarm 272
19.6 setjmp和longjmp函数 274
19.7 使用pipe实现程序间通信 275
第20章 屏幕控制 279
20.1 程序的基本结构 279
20.2 字符的输出 281
20.3 字符串的输出 282
20.4 以格式化的方式输出数据 283
20.5 光标的移动 284
20.6 屏幕数据的删除 285
20.7 数据的输入 287
20.8 多窗口的应用 288
第21章 其他函数总结 303
21.1 终端特性 303
21.2 时间的处理 305
附录A ASCII字符集 309
附录B 简易Makefile使用原则 311