第Ⅰ部分 入门篇 1
第1章 概述 1
1.1 程序设计的分类 1
1.1.1 程序设计语言的分类 1
目录 1
1.1.2 面向过程和面向对象 2
1.2 C语言 3
1.2.1 发展历史 3
1.2.2 特点 4
1.3 学习方法建议 4
1.3.1 学习计划 5
1.3.2 参考资料的介绍 5
1.4 常见的C/C++编译系统 6
1.5 建议 7
1.6 练习题 7
2.1 模块及其特点 8
第2章 结构化程序设计与小规模软件设计初步 8
2.2 软件工程和软件生命期 9
2.3 软件规模引起的问题 10
2.4 小规模软件的设计 11
2.5 示例 14
2.6 建议 17
2.7 练习题 17
第3章 C程序设计基础 18
3.1 再看“您好,张先生” 18
3.2 程序组成部分 20
3.2.1 基本单词 20
3.2.2 语句 22
3.2.3 函数 22
3.2.4 注释 23
3.3 从编辑到运行 24
3.4 建议 26
3.5 练习题 27
第4章 简单的数据计算 28
4.1 C的数据类型 28
4.1.1 数据类型 28
4.1.2 基本数据类型的存储方式和取值范围 29
4.2 常量与变量 31
4.2.1 常量 31
4.2.2 变量 34
4.3 算术运算符 37
4.3.1 二元算术运算符 37
4.3.2 一元算术运算符 38
4.4 赋值运算符 39
4.5 表达式 39
4.5.1 运算符的优先级和结合性 40
4.5.2 算术表达式 40
4.5.3 赋值表达式 42
4.6 数据的输入与输出 43
4.6.1 数据的输出 44
4.6.2 数据的输入 47
4.7 示例:计算温度 50
4.8 建议 51
4.9 练习题 52
4.10 难点解析:再谈数据类型问题 54
4.10.1 数据类型 54
4.10.2 赋值时的数据类型 57
4.10.3 整型数据的输出格式 60
4.10.4 强制类型转换 60
4.10.5 sizeof运算符 61
第5章 程序控制结构基础 62
5.1 概述 62
5.2 复合语句和空语句 64
5.3 关系运算符和关系表达式 65
5.4 逻辑运算符和逻辑表达式 66
5.5 示例 67
5.7 练习题 68
5.6 建议 68
第6章 选择结构 69
6.1 概述 69
6.2 if-else语句 69
6.3 嵌套的if-else语句 73
6.4 switch-case语句 77
6.5 break语句 80
6.6 ?:运算符 82
6.7 示例 82
6.8 建议 86
6.9 练习题 86
第7章 循环结构 89
7.1 概述 89
7.2 for语句 90
7.2.1 逗号运算符和逗号表达式 90
7.2.2 for语句 91
7.3 while语句 96
7.4 do-while语句 98
7.5 嵌套的循环语句 100
7.6 3个特殊语句 102
7.7 死循环 104
7.8 编写循环结构容易犯的错误 105
7.9 示例 106
7.10 建议 108
7.11 练习题 108
8.1 概述 113
第8章 数组及其应用 113
8.2 数组的定义 114
8.3 访问数组 115
8.4 初始化数组 116
8.5 二维数组 118
8.5.1 定义 119
8.5.2 访问 119
8.5.3 初始化 121
8.6 示例 125
8.7 建议 130
8.8 练习题 131
第9章 字符与字符串 135
9.1 字符 135
9.2 字符的输入与输出 137
9.2.1 使用print和scanf 137
9.2.2 使用其他输入输出函数 139
9.3 字符与整数 142
9.4 字符串 143
9.5 数组与字符串 145
9.6 字符串的输入与输出 147
9.7 处理字符串 151
9.8 示例 156
9.9 建议 158
9.10 练习题 158
10.1 地址与指针 161
第10章 指针 161
第Ⅱ部分 进阶篇 161
10.1.1 地址与指针的概念 162
10.1.2 指针变量 163
10.2 指针的运算 170
10.2.1 指针的移动 170
10.2.2 两个同类型指针相减 173
10.2.3 指针的比较 173
10.3.1 一维数组与指针的关系 174
10.3 指针与一维数组 174
10.3.2 用指针访问一维数组的元素 176
10.4 指针与二维数组 179
10.4.1 二维数组元素的地址 179
10.4.2 用指针变量访问二维数组元素 182
10.4.3 用行指针变量访问二维数组元素 184
10.5 指针与字符串 186
10.5.1 用字符数组处理字符串 186
10.5.2 用字符指针处理字符串 187
10.5.3 字符指针和字符数组的比较 189
10.5.4 常用的字符串处理函数 192
10.6 二级指针与指针数组 196
10.6.1 二级指针 196
10.6.2 指针数组 197
10.7 内存空间的动态分配 202
10.8 示例 206
10.9 建议 207
10.10 练习题 210
第11章 函数 216
11.1 概述 216
11.2 函数的定义与说明 219
11.2.1 函数的定义 219
11.2.2 函数的说明 222
11.3 函数的调用过程 224
11.4 函数的参数 227
11.4.1 在函数间传递变量 227
11.4.2 在函数间传递数组 231
11.5 函数的返回值 240
11.6 变量的作用域和存储类型 241
11.6.1 变量的作用域 241
11.6.2 变量的存储类型 244
11.7 嵌套调用和递归调用 251
11.7.1 嵌套调用 251
11.7.2 递归调用 253
11.8 函数指针 256
11.9 main函数 259
11.10 函数的存储类型 262
11.10.1 内部函数 262
11.10.2 外部函数 262
11.11 示例 265
11.12 建议 268
11.13 练习题 269
12.2 位运算符 276
12.1 概述 276
第12章 位运算 276
12.2.1 按位逻辑运算符 277
12.2.2 移位运算符 279
12.3 示例 281
12.4 建议 284
12.5 练习题 284
第13章 复合数据类型 287
13.1 结构类型 287
13.1.1 结构类型和结构变量的定义 288
13.1.2 结构变量的引用和结构变量的初始化 291
13.1.3 结构数组 295
13.1.4 结构指针 298
13.1.5 结构变量和结构指针作函数参数 302
13.1.6 返回结构和结构指针的函数 308
13.2 共用体 311
13.2.1 共用体的定义与引用 311
13.2.2 共用体的引用 312
13.2.3 共用体与结构的比较 313
13.2.4 共用体应用举例 314
13.3 位段结构 315
13.4 枚举 319
13.5 类型定义 322
13.6 示例 325
13.7 建议 328
13.8 练习题 328
14.1.1 文件的定义 334
第14章 文件 334
14.1 概述 334
14.1.2 文件的逻辑结构 335
14.1.3 两种文件系统 336
14.1.4 常用缓冲文件系统函数 337
14.2 打开与关闭文件 337
14.2.1 文件型指针 337
14.2.2 文件的打开 338
14.2.3 文件的关闭 340
14.3 读写文件 341
14.3.1 字符读写函数 342
14.3.2 字符串读写函数 343
14.3.3 格式化读写函数 346
14.3.4 数据块读写函数 347
14.4 文件的定位 351
14.4.1 rewind函数 351
14.4.2 ftell函数 353
14.4.3 fseek函数和随机读写 353
14.5 检测文件 357
14.6 非缓冲文件的操作 358
14.7 示例 361
14.8 建议 362
14.9 练习题 362
15.1 概述 367
第15章 编译预处理 367
15.2 宏定义 368
15.2.1 不含参数的宏定义格式 368
15.2.2 含有参数的宏定义格式 369
15.2.3 宏的作用域和宏的重新定义 372
15.2.4 宏定义的嵌套 373
15.2.5 宏扩展中的优先级问题 373
15.3.1 文件包含的格式 375
15.3 文件包含 375
15.3.2 文件包含的两种方式 376
15.3.3 文件包含的嵌套 378
15.4 条件编译 378
15.5 示例 382
15.6 建议 383
15.7 练习题 383
第16章 C++与面向对象程序设计 386
16.1 概述 386
16.2.1 类 388
16.2 类和对象 388
16.2.2 对象 392
16.3 消息和方法 394
16.4 继承 402
16.5 多态 410
16.6 练习题 411
第Ⅲ部分 应用篇 413
第17章 链表和堆栈 413
17.1 链表 413
17.1.1 链表概述 413
17.1.2 问题 415
17.1.3 创建链表 416
17.1.4 显示链表 419
17.1.5 插入结点 419
17.1.6 删除结点 422
17.2 堆栈概述 424
17.4 练习题 426
17.3 建议 426
第18章 排序 428
18.1 概述 428
18.2 插入排序 429
18.3 选择排序 431
18.4 冒泡排序 433
18.5 归并排序 435
18.7 练习题 438
18.6 建议 438
第19章 查找 439
19.1 概述 439
19.2 顺序查找 439
19.3 折半查找 442
19.4 建议 445
19.5 练习题 446
附录A ASCII码 448
附录B 运算符的优先级和结合性 449
参考文献 450