C程序设计思想与方法PDF电子书下载
- 电子书积分:12 积分如何计算积分?
- 作 者:尹宝林编著
- 出 版 社:北京:机械工业出版社
- 出版年份:2009
- ISBN:9787111254959
- 页数:335 页
出版者的话 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 变量限制符const 136
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
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《先秦政治思想史》梁启超著 2019
- 《《鬼谷子》思想新解 上》林仁政著 2015
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《刘泽华全集 先秦政治思想史 下》刘泽华著;南开大学历史学院编 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019