第一部分 编程必备基础 2
第0章 绪论 2
0.1 计算机应用型教育的产生背景 2
0.2 计算机精英化教育与大众化教育 3
0.3 计算机应用型教育的职业性 3
0.4 社会需求与培养定位 4
0.5 求职应试 4
第1章 理论基础 7
1.1 进程与线程 7
1.1.1 简述 7
1.1.2 练习 7
1.2 堆与栈 9
1.2.1 简述 9
1.2.2 练习 10
1.3 字节对齐 11
1.3.1 简述 11
1.3.2 练习 13
1.4 IPC机制 15
1.4.1 简述 15
1.4.2 练习 18
第二部分 初级程序设计 20
第2章 语句和表达式 20
2.1 变量 20
2.1.1 简述 20
2.1.2 练习 21
2.2 类型修饰符 24
2.2.1 简述 24
2.2.2 练习 24
2.3 存储类别说明符 28
2.3.1 简述 28
2.3.2 练习 29
2.4 变量初始化 33
2.4.1 简述 33
2.4.2 练习 33
2.5 操作符 34
2.5.1 简述 34
2.5.2 练习 34
2.6 语句 39
2.6.1 简述 39
2.6.2 练习 40
第3章 数组 44
3.1 数组的形式 44
3.1.1 简述 44
3.1.2 练习 45
3.2 数组与指针的关系 47
3.2.1 简述 47
3.2.2 练习 48
3.3 函数与数组的关系 50
3.3.1 简述 50
3.3.2 练习 50
3.4 数组初始化 51
3.4.1 简述 51
3.4.2 练习 52
第4章 字符串 61
4.1 简述 61
4.2 练习 62
第5章 指针 77
5.1 指针及指针变量 77
5.1.1 简述 77
5.1.2 练习 78
5.2 指针操作符与表达式 82
5.2.1 简述 82
5.2.2 练习 83
5.3 指针和数组的关系 84
5.3.1 简述 84
5.3.2 练习 85
5.4 函数和指针的关系 88
5.4.1 简述 88
5.4.2 练习 89
5.5 动态分配空间 92
5.5.1 简述 92
5.5.2 练习 93
5.6 软指针 97
5.6.1 简述 98
5.6.2 练习 98
第6章 函数 100
6.1 简述 100
6.2 练习 103
第7章 结构体和联合 113
7.1 结构体 113
7.1.1 简述 113
7.1.2 练习 113
7.2 位域 116
7.2.1 简述 116
7.2.2 练习 118
7.3 联合 120
7.3.1 简述 120
7.3.2 练习 121
7.4 枚举 124
7.4.1 简述 124
7.4.2 练习 125
7.5 typedef关键字 125
7.5.1 简述 125
7.5.2 练习 125
第8章 文件与预编译 127
8.1 文件 127
8.1.1 简述 127
8.1.2 练习 127
8.2 预编译 128
8.2.1 简述 128
8.2.2 练习 128
第三部分 高级程序设计 136
第9章 TCP/IP协议 136
9.1 网络模型 136
9.1.1 模型的概述 136
9.1.2 练习 139
9.2 协议 140
9.2.1 SLIP协议 140
9.2.2 PPP协议 140
9.2.3 ARP协议 141
9.2.4 RARP协议 141
9.2.5 DHCP协议 142
9.2.6 TCP协议 143
9.2.7 UDP协议 144
9.2.8 IP协议 144
9.2.9 练习 145
第10章 类 146
10.1 构造函数 147
10.2 析构函数 147
10.3 友元函数 148
10.4 this指针 148
10.5 运算符重载 149
10.6 内联函数 150
10.7 静态成员函数 150
10.8 常量成员函数 151
10.9 练习 151
第11章 继承与多态 157
11.1 继承 157
11.2 多态 158
11.3 练习 160
第12章 模板 170
12.1 函数模板 170
12.2 类模板 171
12.3 模板的使用 172
12.4 模板的类型推导 173
12.5 类型推导的隐式类型转换 173
12.6 模板的偏特化 174
12.7 练习 174
第13章 异常处理 175
13.1 处理错误 175
13.1.1 在出现异常的地方处理异常 176
13.1.2 传送异常 176
13.1.3 通用处理程序 177
13.2 异常处理类 177
13.3 异常规范 179
13.4 练习 179
第14章 shell编程 185
14.1 简述 185
14.2 过程 188
14.3 脚本执行的命令 189
14.4 练习 192
第15章 GDB调试 194
15.1 启动GDB调试 194
15.2 调试运行的程序 197
15.2.1 暂停/恢复程序的执行 197
15.2.2 查看栈的信息 202
15.2.3 查看源程序 204
15.2.4 查看运行时的数据 205
15.2.5 改变程序的执行 209
15.2.6 GDB总结 211
15.3 练习 214
第16章 信号 216
16.1 简述 216
16.1.1 不可靠的信号 218
16.1.2 可靠的信号 219
16.2 信号的安装 220
16.2.1 signal函数 220
16.2.2 sigaction函数 220
16.2.3 信号的接收与发送 221
16.2.4 信号生命周期 225
16.2.5 信号检测与处理 226
16.3 练习 226
附录A 软件开发工程师面试题目(C++) 228
参考文献 233