图书介绍
C程序设计思想与方法PDF|Epub|txt|kindle电子书版本网盘下载
- 尹宝林编著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111254959
- 出版时间:2009
- 标注页数:335页
- 文件大小:105MB
- 文件页数:353页
- 主题词:C语言-程序设计-高等学校-教材
PDF下载
下载说明
C程序设计思想与方法PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
出版者的话1
序言1
作者自序1
教学建议1
例题索引1
第0章 引言1
第1章 C语言和C程序的基本要素5
1.1 C语言概述5
1.2 C程序的开发过程6
1.3 C程序的基本结构8
1.4 调试初步—语法错误的定位10
1.5 算术运算和表达式11
1.6 常量和变量11
1.6.1 数字常量12
1.6.2 字符常量13
1.6.3 字符串常量13
1.6.4 符号常量14
1.6.5 枚举常量15
1.6.6 变量15
1.6.7 变量的赋值和初始化17
1.6.8 一维数组18
1.6.9 字符数组和字符串19
1.6.10 二维数组20
1.7 分支和条件语句20
1.7.1 关系运算符和逻辑运算符20
1.7.2 运算符的优先级22
1.7.3 从自然语言到逻辑表达式23
1.7.4 条件语句24
1.7.5 条件表达式的类型25
1.7.6 条件语句的嵌套和级联25
1.7.7 使用条件语句时的注意事项26
1.7.8 多路选择和switch语句27
1.8 循环和循环语句30
1.8.1 while语句30
1.8.2 for语句31
1.8.3 dowhile语句33
1.8.4 循环语句中的跳转34
1.9 函数37
1.9.1 函数的结构37
1.9.2 函数的调用38
1.9.3 函数的参数传递39
1.9.4 代码的封装40
1.10 输入和输出41
1.10.1 文件41
1.10.2 标准输入/输出文件41
1.10.3 常用的输入/输出函数.42
1.11 C语言的书写格式46
1.11.1 换行和空行47
1.11.2 缩进47
1.11.3 空格48
1.11.4 注释48
习题49
第2章 程序设计的基本方法51
2.1 程序设计的基本过程51
2.2 问题分析53
2.2.1 对程序功能的要求53
2.2.2 对程序性能的要求53
2.2.3 程序的使用方式和环境.54
2.2.4 程序的错误处理55
2.2.5 程序的测试55
2.2.6 问题分析的结果56
2.3 方案设计60
2.3.1 解题思路60
2.3.2 计算模型62
2.3.3 算法分类64
2.3.4 算法和数据结构的选择66
2.3.5 算法的检验72
2.4 编码:从算法到代码72
2.4.1 代码的结构73
2.4.2 编码的质量75
2.4.3 代码的可维护性77
2.4.4 代码中的注释77
2.4.5 代码的检查77
2.4.6 代码中常见的错误78
2.5 测试和调试80
2.5.1 调试的基本方法80
2.5.2 故障的检查、确认和修改81
2.5.3 常见的故障类型和调试方法82
2.5.4 调试数据的设计和使用84
2.5.5 调试数据和标准输入/输出的重新定向84
2.5.6 调试工具85
2.5.7 测试和调试中常见的问题86
2.6 手册的使用87
习题88
第3章 数值的表示和计算90
3.1 整型数据类型90
3.1.1 有符号数和无符号数91
3.1.2 无符号数和标志位92
3.1.3 整型的截断与扩展93
3.1.4 整型计算的溢出和判断94
3.1.5 整除所引起的误差95
3.1.6 整型数据的字节序和尾端97
3.2 浮点数据类型100
3.2.1 浮点数据的表示方法100
3.2.2 有效数字和最低位当量101
3.2.3 浮点数的比较104
3.2.4 浮点数值计算中的上溢和下溢105
3.3 数值计算中的类型转换108
3.3.1 基本类型转换和数据宽度108
3.3.2 强制类型转换110
3.3.3 char的符号类型111
3.3.4 变量符号类型的判断112
3.4 按位操作112
3.4.1 移位操作113
3.4.2 标志位的设置、检测和清除114
3.4.3 常用的位操作模式115
3.4.4 位操作应用举例117
3.5 数值计算的速度118
习题120
第4章 指针、数组、结构和类型122
4.1 指针变量122
4.1.1 指针变量的定义123
4.1.2 指针的类型124
4.1.3 指针运算125
4.1.4 指针的强制类型转换126
4.1.5 不合法的指针运算127
4.1.6 指针与整数128
4.1.7 指针的增量运算和减量运算129
4.1.8 作为函数参数的指针130
4.2 指针和一维数组130
4.2.1 指针和数组的互换130
4.2.2 动态一维数组133
4.2.3 数组复制与指针赋值135
4.2.4 变量限制符const136
4.2.5 数组的负数下标137
4.3 二维数组和一维指针数组138
4.3.1 作为参数的二维数组138
4.3.2 二维数组和指针139
4.3.3 二维数组和一维指针数组141
4.3.4 指针数组和命令行参数143
4.3.5 二维数组的动态分配144
4.4 函数指针147
4.4.1 函数指针变量的定义148
4.4.2 函数指针变量的使用149
4.4.3 函数指针数组的使用153
4.5 结构154
4.5.1 结构类型的定义154
4.5.2 结构成员的访问155
4.5.3 结构类型的嵌套定义157
4.5.4 结构的自引用158
4.5.5 结构类型与函数的参数和返回值158
4.6 复杂类型的解读159
4.6.1 变量定义中的复杂类型说明159
4.6.2 强制类型转换中的复杂类型162
4.6.3 类型定义语句和复杂类型的定义162
习题164
第5章 程序中的递归166
5.1 递归的定义166
5.2 递归函数的执行171
5.3 递归函数的设计172
5.4 递归的优点和缺点176
5.5 递归函数的效率179
5.6 递归函数的使用181
5.6.1 适宜使用递归的情况181
5.6.2 不适宜使用递归的情况189
5.7 递归函数效率的改进189
5.7.1 尾递归函数的非递归化189
5.7.2 带存储机制的递归191
5.7.3 一般递归函数的非递归化191
习题194
第6章 搜索196
6.1 搜索的目标和基本过程196
6.2 深度优先搜索198
6.2.1 深度优先搜索的基本算法198
6.2.2 回溯搜索201
6.3 广度优先搜索204
6.4 重复节点的判断205
6.5 带深度控制的广度优先搜索211
6.6 节点的编码和搜索效率215
习题223
第7章 常用函数和函数库225
7.1 静态链接和动态链接225
7.1.1 静态链接225
7.1.2 动态链接226
7.2 库函数的使用227
7.2.1 标准库函数的头文件227
7.2.2 标准函数库文件的使用228
7.2.3 错误信息函数和变量228
7.3 数据输入输出函数229
7.3.1 文件描述字和字符流230
7.3.2 文件的打开、创建和关闭232
7.3.3 文件数据的二进制格式读写234
7.3.4 读写操作中的定位236
7.3.5 基础读写与字符流读写的效率比较238
7.3.6 字符流的冲刷239
7.3.7 文件的属性240
7.4 字符类型函数和字符串操作函数243
7.4.1 字符类型函数243
7.4.2 字符串操作函数244
7.5 时间函数245
7.5.1 日历时间245
7.5.2 程序运行时间246
7.6 随机数函数247
7.6.1 基本随机数函数247
7.6.2 均匀分布随机数的生成247
7.6.3 非均匀连续分布随机数的生成248
7.6.4 离散分布随机数的生成249
习题251
第8章 程序的优化253
8.1 优化的作用和意义253
8.2 优化的基本过程254
8.2.1 运算时间和存储空间254
8.2.2 优化可能性的判断255
8.2.3 程序运行的整体计时255
8.2.4 程序运行的分析计时和程序运行剖面257
8.3 运行效率的改进策略和方法259
8.3.1 调整代码259
8.3.2 改进算法263
8.3.3 空间换时间267
8.3.4 改进数据结构269
8.3.5 了解和适应硬件的特性271
8.3.6 编译优化选项274
8.4 空间效率的改进策略和方法274
8.4.1 内存使用状况的检测275
8.4.2 空间效率的改进方法275
习题278
第9章 程序的风格、结构和组织280
9.1 程序风格的要素280
9.2 程序的描述281
9.2.1 代码描述的层次281
9.2.2 代码的函数封装281
9.2.3 数据描述控制代码的执行282
9.2.4 表达式的描述288
9.2.5 预处理和变量初始化的使用289
9.2.6 程序可靠性的设计要点290
9.2.7 错误信息和日志文件291
9.2.8 关于可移植性的考虑292
9.2.9 程序中的注释293
9.3 变量使用中的规则和风格294
9.3.1 变量的命名294
9.3.2 变量的命名空间和作用域295
9.3.3 变量的生存周期和静态局部变量297
9.3.4 全局变量的使用300
9.3.5 变量与常量的比较301
9.4 函数的参数和变长参数表302
9.4.1 基于指针数组的变长参数处理机制302
9.4.2 变长参数表303
9.4.3 函数的参数传递303
9.4.4 变长参数表的基本处理机制和工具304
9.4.5 变长参数表和程序描述风格306
9.4.6 vprintf()函数族310
9.5 缓冲区溢出311
9.6 常用编译预处理命令的使用312
9.6.1 文件的包含313
9.6.2 宏313
9.6.3 条件编译316
9.7 源文件的拆分318
9.7.1 源文件拆分的基本原则319
9.7.2 源文件的类型和后缀319
9.7.3 避免.h文件被重复引用320
9.7.4 静态全局变量320
9.7.5 可执行文件的生成和更新321
习题323
附录A 标准头文件及其中的函数说明和符号常量325
附录B cc/gcc的常用命令选项328
附录C vi的基本操作命令329
附录D ASCII编码表330
附录E 使用VisualC++IDE创建程序的基本操作过程331
附录F 函数printf()的常用描述符及其含义333
参考文献335