程序设计基础—从问题到程序 第2版 第二版 胡明 王红梅 清华大学出版社 9787302411802
¥
5
1.3折
¥
39
七五品
仅1件
作者胡明;王红梅
出版社清华大学出版社
出版时间2016-01
版次2
装帧平装
货号9787302411802
上书时间2024-12-03
商品详情
- 品相描述:七五品
图书标准信息
-
作者
胡明;王红梅
-
出版社
清华大学出版社
-
出版时间
2016-01
-
版次
2
-
ISBN
9787302411802
-
定价
39.00元
-
装帧
平装
-
开本
16开
-
纸张
胶版纸
-
页数
316页
-
字数
99999千字
- 【内容简介】
-
本书以C语言为工具,以程序设计过程为主线,结合实际问题,基于计算思维,通过“问题→想法→算法→程序”的问题求解过程,带领读者分析问题、构造算法、设计程序,在潜移默化中掌握程序设计语言的基本知识,掌握程序设计的一般过程和基本方法,提高计算思维能力以及应 用程序设计语言解决实际问题的能力。 本书适用于程序设计的初学者,主要面向没有任何编程知识和编程经历的读者。本书遵循初学者的认知规律和知识基础,科学安排知识单元之间的拓扑关系,概念清晰,实例丰富,深入浅出,是程序设计初学者的理想教材。
- 【目录】
-
第1章 绪论 1
1.1 程序、程序设计与程序设计语言1
1.1.1 程序与程序设计 1
1.1.2 程序设计语言 2
1.2 程序的基本构成 4
1.2.1 程序示例 5
1.2.2 基本字符集 6
1.2.3 词法单位 6
1.2.4 语法单位 8
1.2.5 程序 8
1.3 程序的上机过程 12
1.3.1 编程环境 12
1.3.2 程序编辑 12
1.3.3 程序编译 13
1.3.4 程序连接 13
1.3.5 运行调试 13
1.4 程序风格 14
1.4.1 标识符的命名规则 14
1.4.2 注释 15
1.4.3 缩进 15
1.4.4 行文格式 16
1.5 问题求解与程序设计 17
1.5.1 程序设计的一般过程 17
1.5.2 程序设计的核心——算法 18
1.5.3 程序设计实例——鸡兔同笼问题 21
习题1 22
第2章 数据的存储表示 25
引例2.1 计算圆的面积 25
2.1 数据的存储 26
2.1.1 二进制 26
2.1.2 内存 27
2.2 基本数据类型 28
2.2.1 整型 29
2.2.2 实型 31
2.2.3 字符型 32
2.2.4 逻辑型 33
2.3 常量 34
2.3.1 字面常量 34
2.3.2 符号常量 36
2.4 变量 38
2.4.1 变量的概念 38
2.4.2 变量的定义和初始化 39
2.4.3 变量的赋值 40
2.5 程序设计实例 43
2.5.1 实例1——温度转换 43
2.5.2 实例2——计算本息和 43
习题2 44
第3章 数据的运算处理 47
3.1 算术运算 47
引例3.1 求平均值 47
3.1.1 算术运算 48
3.1.2 运算符的优先级和结合性 49
3.2 逻辑运算 50
引例3.2 判断闰年 50
3.2.1 关系运算 51
3.2.2 逻辑运算 51
3.3 赋值运算 52
3.3.1 赋值运算 52
3.3.2 自增/自减运算 53
3.4 其他运算 54
3.4.1 逗号运算 54
3.4.2 取长度运算 54
3.4.3 条件运算 55
3.5 运算对象的类型转换 55
3.5.1 自动转换 56
3.5.2 强制转换 57
3.6 程序设计实例 58
3.6.1 实例1——通用产品代码UPC 58
3.6.2 实例2——疯狂赛车 59
习题3 60
第4章 程序的基本控制结构 63
4.1 顺序结构 63
引例4.1 整数的逆值 63
4.1.1 简单的顺序结构 64
4.1.2 复合语句 65
4.2 选择结构 65
引例4.2 水仙花数 66
4.2.1 逻辑值控制的选择结构 67
4.2.2 算术值控制的选择结构 69
4.3 循环结构 71
引例4.3 欧几里得算法 71
4.3.1 当型循环 72
4.3.2 直到型循环 72
4.3.3 计数型循环 73
4.3.4 循环结构的比较 74
4.3.5 循环结构的嵌套 77
4.4 其他控制语句 78
引例4.4 素数判定 78
4.4.1 break语句 79
4.4.2 continue语句 80
4.5 程序设计实例 81
4.5.1 实例1——将三个整数由小到大输出81
4.5.2 实例2——今年已经过去多久了 81
4.5.3 实例3——百元买百鸡问题 83
4.5.4 实例4——哥德巴赫猜想 84
习题4 85
第5章 批量同类型数据的组织——数组 88
5.1 一维数组 88
引例5.1 舞林大会 88
5.1.1 一维数组的定义和初始化 89
5.1.2 一维数组的操作 92
5.2 二维数组 94
引例5.2 哥尼斯堡七桥问题 94
5.2.1 二维数组的定义和初始化 95
5.2.2 二维数组的操作 97
5.3 程序设计实例 99
5.3.1 实例1——折半查找 99
5.3.2 实例2——合并有序数组 100
5.3.3 实例3——对角线元素之和 101
5.3.4 实例4——幻方问题 103
习题5 104
第6章 程序的组装单元——函数 107
6.1 用户定义的函数——自定义函数107
引例6.1 欧几里得算法 107
6.1.1 函数定义 108
6.1.2 函数调用 110
6.1.3 函数声明 112
6.2 系统定义的函数——库函数113
引例6.2 素数判定 114
6.2.1 头文件与文件包含 115
6.2.2 标准输入输出函数 116
6.2.3 随机函数 119
6.2.4 其他常用库函数 120
6.3 变量的作用域 121
引例6.3 鸡兔同笼问题 121
6.3.1 局部变量 122
6.3.2 全局变量 124
6.4 变量的生存期 125
引例6.4 字数统计 125
6.4.1 自动变量 126
6.4.2 静态变量 127
6.5 程序设计实例 128
6.5.1 实例1——三角形的面积 128
6.5.2 实例2——猜数游戏 129
习题6 131
第7章 变量的间接访问——指针 134
7.1 指针 134
引例7.1 答疑教室 134
7.1.1 指针的概念 135
7.1.2 指针变量的定义和初始化 137
7.1.3 指针变量的操作 139
7.1.4 指针所指变量的操作 141
7.2 指针作为函数的参数 141
引例7.2 鸡兔同笼问题 141
7.2.1 值传递方式——函数的输入 143
7.2.2 指针传递方式——函数的输出 144
7.2.3 指针传递方式——函数的输入输出 145
7.3 数组作为函数的参数 146
引例7.3 顺序查找 146
7.3.1 一维数组作为函数的参数 147
7.3.2 二维数组作为函数的参数 149
7.4 程序设计实例 150
7.4.1 实例1——三个整数由小到大输出150
7.4.2 实例2——哥德巴赫猜想 151
7.4.3 实例3——求一元二次方程的根152
7.4.4 实例4——简单选择排序 154
习题7 155
第8章 字符数据的组织——字符串 158
引例8.1 恺撒加密 158
8.1 字符串变量的定义和初始化159
8.1.1 字符数组 160
8.1.2 字符串指针 162
8.2 字符串的操作 162
8.2.1 输入输出操作 162
8.2.2 赋值操作 166
8.2.3 字符串的比较 167
8.2.4 常用字符串库函数 168
8.3 程序设计实例 168
8.3.1 实例1——字数统计 168
8.3.2 实例2——字符串匹配 169
习题8 171
第9章 自定义数据类型 174
9.1 可枚举数据的组织——枚举类型174
引例9.1 行走机器人 174
9.1.1 枚举类型的定义 176
9.1.2 枚举变量的定义与初始化 176
9.1.3 枚举变量的操作 178
9.2 不同类型数据的组织——结构体类型 179
引例9.2 统计入学成绩 179
9.2.1 结构体类型的定义 180
9.2.2 结构体变量的定义和初始化 181
9.2.3 结构体变量的操作 183
9.3 批量不同类型数据的组织——结构体数组 185
引例9.3 统计入学成绩 186
9.3.1 结构体数组的定义和初始化 187
9.3.2 结构体数组的操作 189
9.4 为自定义数据类型定义别名190
9.5 程序设计实例 191
9.5.1 实例1——荷兰国旗问题 191
9.5.2 实例2——最近对问题 193
习题9 195
第10章 再谈函数 198
10.1 函数的嵌套调用 198
引例10.1 字符串的循环左移 198
10.1.1 函数——封装的小程序 200
10.1.2 函数的嵌套调用 201
10.2 函数的递归调用 202
引例10.2 求n! 202
10.2.1 递归的定义 203
10.2.2 函数的递归调用 204
10.3 程序设计实例 206
10.3.1 实例1——公共子序列 206
10.3.2 实例2——弦截法求方程的根 208
10.3.3 实例3——汉诺塔问题 210
10.3.4 实例4——折半查找 211
习题10 213
第11章 再谈指针 216
11.1 指针与数组 216
引例11.1 判断回文串 216
11.1.1 用指针访问一维数组 217
11.1.2 用指针访问二维数组 219
11.1.3 指针数组 221
11.2 指针与结构体 222
引例11.2 统计入学成绩 222
11.2.1 指向结构体的指针 223
11.2.2 结构体指针作为函数参数 224
11.3 动态存储分配 225
引例11.3 发纸牌 226
11.3.1 申请和释放存储空间 227
11.3.2 动态数组 230
11.3.3 链表 232
11.4 程序设计实例 236
11.4.1 实例1——求最大字符串 236
11.4.2 实例2——进制转换 237
习题11 239
第12章 再谈输入输出 241
引例12.1 统计入学成绩 241
12.1 文件与文件指针 244
12.1.1 文本文件和二进制文件 244
12.1.2 文件缓冲区 245
12.1.3 文件指针 246
12.2 文件的当前位置指针 246
12.2.1 什么是文件的当前位置指针 246
12.2.2 跟踪文件的当前位置指针 247
12.2.3 定位文件的当前位置指针 248
12.3 文件的打开与关闭 249
12.3.1 文件的打开 249
12.3.2 文件的关闭 251
12.4 文件的读写操作 251
12.4.1 字符方式文件读写 251
12.4.2 字符串方式文件读写 252
12.4.3 格式化方式文件读写 254
12.4.4 二进制方式文件读写 255
12.5 程序设计实例 256
12.5.1 实例1——文件复制 256
12.5.2 实例2——注册与登录 258
习题12 260
第13章 再谈程序的基本结构 262
13.1 多文件程序 262
13.1.1 多文件程序的构成 262
13.1.2 将源程序文件分解为多个程序文件模块 263
13.2 外部变量和外部函数 264
13.2.1 外部变量 264
13.2.2 外部函数 265
13.3 嵌套包含 267
13.3.1 条件编译 267
13.3.2 保护头文件 270
13.4 程序设计实例——石头、剪子、布游戏 271
习题13 276
第14章 低级程序设计 277
引例14.1 XOR加密 277
14.1 数据表示 278
14.1.1 二进制数与八进制数和十六进制数之间的转换 278
14.1.2 位域 279
14.2 位运算 280
14.2.1 位逻辑运算 281
14.2.2 移位运算 282
14.2.3 补位原则 283
14.2.4 位运算的应用 283
14.3 程序设计实例 284
14.3.1 实例1——快速欧几里得算法 284
14.3.2 实例2——过滤特殊字符 285
习题14 287
第15章 基本的算法设计技术 288
15.1 蛮力法 288
15.1.1 设计思想 288
15.1.2 程序设计实例——起泡排序 289
15.2 穷举法 291
15.2.1 设计思想 291
15.2.2 程序设计实例——假币问题 292
15.3 递推法 295
15.3.1 设计思想 295
15.3.2 程序设计实例——捕鱼知多少 296
15.4 分治法 297
15.4.1 设计思想 297
15.4.2 程序设计实例——数字旋转方阵 299
15.5 动态规划法 302
15.5.1 设计思想 302
15.5.2 程序设计实例——0/1背包问题 303
15.6 贪心法 305
15.6.1 设计思想 305
15.6.2 程序设计实例——埃及分数 306
习题15 308
附录A 标准ASCII码 310
附录B 运算符的优先级和结合性 311
附录C 常用库函数 312
参考文献 317
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价