第一章 C语言简介 1
1.1 C的特征 1
1.1.1 性能特征 1
1.1.2 可移植性 2
1.1.3 模块化 2
1.2 C编程的一个例子 2
1.3 C的特点 3
1.3.1 一个小规模的语言 3
1.3.2 C的能力 4
1.3.3 标准版本 4
1.4 使用C 4
1.4.1 编译和链接 5
1.4.2 库文件 6
1.5 Why OuickC? 7
第二章 快速浏阅QucikC 8
2.1 掌握QuickC 8
2.1.1 一个快速介绍 8
2.1.2 修改程序 10
2.1.3 分隔程序元素 13
2.1.4 复习(Review) 17
2.2 讨论程序的执行 17
2.2.1 调试准备 19
2.2.2 一个更深的例子 21
2.3 QuickC的命令 27
2.3.1 在线提示 27
2.3.2 建立和编辑文件 27
2.3.2.1 编辑方式 27
2.3.2.2 移动你的文件 28
2.3.2.3 标记和移动文本 30
2.3.2.4 更多的QuickC的特色 35
2.3.2.5 使用文件菜单的文件操作 35
2.3.2.6 Search菜单 36
2.3.2.7 Find选项 37
2.3.2.8 Change选项 39
2.3.3 Run菜单 40
2.3.3.1 开始和继续执行程序 40
2.3.3.2 调试你的程序时编译和运行 40
2.3.4 指定编译程序选项 41
2.3.4.1 选择内存模式 42
2.3.4.2 说明警告级别 42
2.3.4.3 确定一个语言版本 43
2.3.4.4 调试标志 43
2.3.4.5 解除标志 43
2.3.4.6 其它方面的设置 44
2.4 总结 44
第三章 简单类型和操作 45
3.1 C程序结构(C Program Structure) 45
3.1.1 注释说明 46
3.1.2 C的main()规则 46
3.1.3 printf()函数 47
3.1.4 Escape Codes(转换代码) 49
3.2 语句 49
3.2.1 简单语句 49
3.2.2 复合语句 50
3.3 标识符 50
3.3.1 C中命名规则 51
3.3.2 不要用关键字来做标识符 52
3.4 定义变量:开辟空间 52
3.4.1 赋值语句 53
3.4.2 在变量定义时初始化 54
3.5 简单数据类型 54
3.5.1 char类型 54
3.5.2 int类型 55
3.5.3 float类型 55
3.5.4 double类型 57
3.5.5 整型和浮点型类型 59
3.5.6 讨论简单类型 59
3.6 简单类型的变体 63
3.6.1 常量 65
3.6.2 整数常量 66
3.6.3 字符常量 67
3.6.4 字符串常量 68
3.6.5 浮点和双精度常量 68
3.7 算术运算符 69
3.7.1 使用浮点类型的运算符 69
3.7.2 使用整型的运算符 69
3.7.3 二元和一元运算符 70
3.7.4 运算符优先权 70
3.7.5 混合类型的操作 71
3.8 printf()小结 73
3.9 总结 74
第四章 预处理和程序 75
4.1 程序结构 75
4.2 C预处理程序 78
4.2.1 普通的预处理规则 79
4.3 预处理命令 80
4.3.1 #influde命令 80
4.3.2 #define命令 81
4.3.3 显示常量 81
4.3.4 带参数的宏 83
4.3.5 预处理宏的决策产生 86
4.3.6 #undef命令 88
4.3.7 #ifdef和#else命令 88
4.3.8 #if和#endif命令 89
4.3.9 其它预处理命令 89
4.4 库函数 89
4.5 类函数宏 94
4.6 头文件和其他包含文件 95
4.7 总结 96
第五章 C中的读写 97
5.1 读字符 97
5.1.1 getchar()和fegetch() 99
5.1.2 getc()、ungetc()和fgetc() 100
5.1.3 putchar()和fputchar(),putc()和fputc() 100
5.1.4 putch(),getch()和getche()命令 101
5.2 更多的关于printf() 102
5.2.1 整数类型 102
5.2.2 浮点类型 102
5.2.3 域宽和精度 103
5.2.4 printf()的标志 104
5.2.5 fprintf()函数 105
5.3 值和变量:地址运算符 105
5.3.1 scanf() 107
5.3.2 删掉值 110
5.4 小结 111
第六章 流程控制 112
6.1 关系和相等运算符 112
6.1.1 关系运算符 112
6.1.2 相等运算符 113
6.2 逻辑运算符 113
6.2.1 二元逻辑运算符 113
6.2.2 一元取负运算符 114
6.3 if-else结构 114
6.3.1 注意else语句的使用 117
6.4 Switch语句 119
6.5 其它的运算符 123
6.5.1 复合赋值运算符 123
6.5.2 递增和递减运算符 124
6.6 C中的循环 126
6.7 while循环的组成部分 127
6.7.1 关于while循环的其它问题 129
6.8 do while循环 130
6.8.1 for循环 131
6.8.2 在for循环中省略表达式 136
6.8.3 逗号运算符 139
6.9 break和continue语句 140
6.10 小结 142
第七章 C中的函数 143
7.1 C函数 143
7.2 控制流程 144
7.3 函数返回 149
7.4 形参和实参 152
7.5 总结 158
第八章 函数原型 159
8.1 模型对形参语法的影响 162
8.2 语法:新旧之别 166
8.3 函数:各种观点 167
8.4 小结 167
第九章 域、作用域和存贮类型 168
9.1 域和可见性 168
9.1.1 参数和域 171
9.1.2 在块中定义变量 173
9.2 变量的持续时间 175
9.3 存贮类型 176
9.3.1 静态存贮类型 176
9.3.2 自动存贮类型 179
9.3.3 寄存器存贮类型 180
9.3.4 外部存贮类型 181
9.4 省缺的存贮类型和存贮期限 182
9.4.1 typedef存贮类型 183
9.5 小结 185
第十章 指针 186
10.1 目标,定位值,值 187
10.2 指针 188
10.2.1 指针的语法 190
10.2.2 指针和地址 193
10.2.3 为什么用指针 194
10.3 做为函数参数的指针 194
10.4 指针的算术运算 199
10.5 各种观点 203
10.6 指针易出的错误 204
10.6.1 指针别名 204
10.6.2 被错误引用的指针 205
10.7 总结 205
第十一章 数组和字符串 206
11.1 数组的基本知识 206
11.1.1 数组:存贮类型和初使化 207
11.2 数组和指针 209
11.2.1 数组元素的访问 210
11.2.2 数组和指针之间的差别 212
11.3 数组参数 212
11.4 字符串 218
11.4.1 做为指向char类型的指针的字符串 221
11.4.2 字符串库函数 223
11.4.3 各种字符串函数 228
11.5 多维数组 228
11.5.1 多维数组和指针 233
11.6 指针数组 237
11.6.1 字符串数组 238
11.7 总结 241
第十二章 函数的更多细节和更多的函数 242
12.1 返回指针函数 242
12.1.1 返回指针注意事项 244
12.1.2 字符串注意事项 245
12.2 错误处理和标准错误流 249
12.3 往集成环境中增加函数 254
12.3.1 已定义函数 254
12.3.2 字符串函数 255
12.3.3 面向金融的函数 262
12.3.4 用调试来检查中间结果 269
12.4 递归 269
12.4.1 递归的代价 274
12.5 总结 276
第十三章 命令行参数 277
13.1 main()作为程序和作为函数 277
13.2 什么是命令行参数 277
13.3 DOS的命令行参数 278
13.3.1 echo命令 278
13.3.2 dir命令 279
13.4 main()的参数 281
13.5 使用main()中的参数 283
13.6 试验命令行参数的程序 286
13.7 总结 296
第十四章 文件和内存 297
14.1 文件 297
14.1.1 对文件的操作 298
14.1.2 一个简单的记事本程序 299
14.1.3 一个简单的读文件程序 300
14.1.4 一个删除文件中窄的程序 302
14.1.5 一个用空格替换制表符的程序 305
14.1.6 文件处理概述 307
14.2 动态存储分配 307
14.2.1 C映射操作符 308
14.2.2 动态存储分配方法 309
14.2.3 使用malloc() 311
14.2.4 calloc() 317
14.2.5 申请更多的内存 317
14.2.6 释放内存 319
14.2.7 确定可用空间 319
14.2.8 动态存储分配注意事项 321
14.2.9 动态存储分配的用途 321
14.3 总结 321
第十五章 位操作符和其它操作符 322
15.1 按位操作符 322
15.1.1 位模式 322
15.1.2 按位求反操作符 324
15.1.3 按位与操作符 327
15.1.4 按位或操作符 331
15.1.5 按位异或操作符 334
15.1.6 移位操作符 338
15.1.7 移位操作和2的幂 348
15.2 条件操作符 353
15.3 总结 356
第十六章 结构、联合和其它类型 357
16.1 结构 357
16.1.1 访问结构成员 359
16.1.2 有关结构的规则 361
16.1.3 结构指针 371
16.1.4 结构数组和结构指针数组 374
16.1.5 自引用结构 380
16.2 位域 395
16.2.1 位域限制 398
16.3 联合 399
16.4 结构的联合 401
16.5 枚举类型 401
16.6 总结 404
第十七章 Quick C库函数 405
17.1 stdio.h 405
17.1.1 熟悉的函数 405
17.1.2 新函数 407
17.1.3 一个练习I/O函数的程序 409
17.2 stdlib.h 413
17.2.1 熟悉的函数 413
17.2.2 新函数 414
17.2.3 练习stdlib.h库文件中的函数 417
17.3 string.h 423
17.3.1 熟悉的函数 423
17.3.2 新函数 423
17.3.3 练习函数 426
17.4 ctype.h 436
17.4.1 转换子程序 436
17.4.2 练习字符过程 437
17.5 dos.h 441
17.5.1 背景 441
17.5.2 使用DOS中断的注意事项 448
17.6 io.h 448
17.6.1 熟悉的函数 448
17.6.2 新函数 448
17.6.3 练习一些io.h函数 449
17.7 math.h 451
17.7.1 熟悉的函数 451
17.7.2 新函数 452
17.8 其它文件 455
17.9 总结 455
第十八章 QuickC中的图形 456
18.1 这一章其它部分的要求 456
18.2 设置图形模式 456
18.3 屏幕,窗口和视口 460
18.3.1 物理屏幕 460
18.3.2 视口 460
18.3.3 窗口 463
18.3.4 在轴上设置标记 465
18.4 图形模拟结果 467
18.4.1 扔硬币 467
18.5 一起使用窗口和视口 470
18.5.1 各种问题和建议 474
18.6 画几何图形 474
18.6.1 使用多窗口时的比例因子 476
18.6.2 各种问题和建议 477
18.7 一个探索程序 477
18.8 总结 494
附录A ASCII码 495
附录B QuickC命令概述 499
B.1 调用QuickC的命令 499
B.2 QuickC环境中的有用命令 500
B.3 编辑命令 500
B.3.1 移动命令 500
B.3.2 选择命令 501
B.3.3 插入命令 501
B.3.4 删除命令 501
B.3.5 其它命令 501
B.4 菜单命令 502
B.4.1 文件菜单(ALT-F) 502
B.4.1.1 文件处理命令 502
B.4.1.2 各种文件命令 502
B.4.2 编辑菜单(ALT-E) 502
B.4.3 视口(VIEW)菜单 502
B.4.4 查找菜单(ALT-S) 503
B.4.5 Make菜单(ALT-M) 504
B.4.6 运行菜单(ALT-R) 504
B.4.7 调试菜单(ALT-D) 505
B.4.8 实用菜单(ALT-U) 506
B.4.9 选择菜单(ALT-O) 506
B.5 在QuickC环境外部编译和连接程序 508
B.5.1 内存模式等 509
B.5.2 控制预处理器 509
B.6 控制连接 509
B.6.1 建立独立库 510
B.6.2 使用独立库 515