《21世纪大学本科计算机专业系列教材 程序设计导引及在线实践 第2版》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:李文新,郭炜,余华山编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2017
  • ISBN:7302452348
  • 页数:271 页
图书介绍:

第1章 C/C++语言概述 1

1.1 程序的基本框架 1

1.2 变量 2

1.2.1 变量的定义 2

1.2.2 变量的赋值 3

1.2.3 变量的引用 3

1.3 C/C++语言的数据类型 3

1.4 常量 5

1.5 运算符和表达式 6

1.5.1 算术运算符 6

1.5.2 赋值运算符 8

1.5.3 关系运算符 8

1.5.4 逻辑运算符 9

1.5.5 位运算符 9

1.5.6 sizeof运算符 12

1.5.7 类型强制转换运算符 13

1.5.8 运算符的优先级 13

1.6 注释 14

1.7 分支语句 15

1.7.1 if语句 15

1.7.2 switch语句 17

1.8 循环语句 19

1.8.1 for语句 19

1.8.2 while语句 20

1.8.3 do-while语句 20

1.8.4 break语句 21

1.8.5 continue语句 21

1.9 函数 22

1.9.1 函数的定义 22

1.9.2 函数的调用 23

1.9.3 参数传递和返回值 24

1.9.4 库函数和头文件 25

1.10 标准输入输出 25

1.10.1 printf函数(标准输出函数) 25

1.10.2 scanf函数(标准输入函数) 26

1.11 全局变量和局部变量 27

1.12 数组 28

1.12.1 一维数组 28

1.12.2 二维数组 30

1.12.3 数组的初始化 31

1.12.4 数组越界 32

1.13 字符串 33

1.13.1 字符串常量 33

1.13.2 用字符数组存放的字符串 34

1.14 指针 36

1.14.1 指针的基本概念 36

1.14.2 指针运算 39

1.14.3 空指针 40

1.14.4 指向指针的指针 41

1.14.5 指针和数组 41

1.14.6 字符串和指针 43

1.14.7 void指针 44

1.14.8 函数指针 45

1.14.9 指针和动态内存分配 47

1.14.10 误用无效指针 50

1.15 结构 50

1.15.1 “结构”的概念 50

1.15.2 结构变量的定义 51

1.15.3 访问结构变量的成员变量 52

1.15.4 结构变量的初始化 52

1.15.5 结构数组 52

1.15.6 指向结构变量的指针 53

1.15.7 动态分配结构变量和结构数组 55

1.16 文件读写 55

1.16.1 用fopen打开文件 56

1.16.2 用fclose关闭文件 56

1.16.3 用fscanf读文件,用fprintf写文件 57

1.16.4 用fgetc读文件,用fputc写文件 58

1.16.5 用fgets函数读文件,fputs函数写文件 59

1.16.6 用fread读文件,用fwrite写文件 60

1.16.7 用fseek改变文件读写的当前位置 63

1.17 C语言标准库函数 64

1.17.1 数学函数 64

1.17.2 字符处理函数 65

1.17.3 字符串处理和内存操作函数 65

1.17.4 字符串转换函数 66

1.18 命令行参数 66

1.19 C/C++编码规范 67

1.19.1 标识符命名注意事项 68

1.19.2 程序的书写格式 68

1.19.3 注释的写法 70

1.19.4 一些好的编程习惯 71

第2章 简单计算题 73

2.1 例题:鸡兔同笼 73

2.2 例题:棋盘上的距离 74

2.3 例题:校门外的树 77

2.4 例题:填词 78

2.5 例题:装箱问题 80

练习题 82

第3章 数制转换问题 85

3.1 相邻数字的基数等比:确定进制 85

3.2 相邻数字的基数不等比:skew数 87

练习题 89

第4章 字符串处理 90

4.1 简单的字符串操作示例 90

4.2 例题:统计字符数 91

4.3 例题:487-3279 93

4.4 例题:子串 96

4.5 例题:Caesar密码 99

练习题 101

第5章 日期和时间处理 104

5.1 例题:判断闰年 104

5.2 例题:细菌繁殖 107

5.3 例题:日历问题 112

5.4 例题:玛雅历 113

5.5 例题:时区间时间的转换 116

练习题 120

第6章 模拟 121

6.1 例题:约瑟夫问题 121

6.2 例题:花生问题 123

6.3 例题:显示器 126

6.4 例题:排列 130

练习题 133

第7章 高精度计算 136

7.1 例题:大整数加法 136

7.2 例题:大整数乘法 138

7.3 例题:大整数除法 141

7.4 例题:麦森数 145

练习题 148

第8章 枚举 149

8.1 枚举的基本思想 149

8.2 简单枚举的例子:生理周期 150

8.3 数学模型中包括多个变量的例子:称硬币 151

8.4 搜索空间中解不唯一的例子:完美立方 154

8.5 遍历搜索空间的例子:熄灯问题 156

8.6 优化判断条件的例子:讨厌的青蛙 160

练习题 165

第9章 递归 167

9.1 递归的基本思想 167

9.2 例题:全排列 168

9.3 例题:八皇后问题 170

9.4 例题:逆波兰表达式 174

9.5 例题:四则运算表达式求值 175

9.6 例题:放苹果 179

9.7 例题:简单的整数划分问题 180

9.8 例题:算24 181

9.9 例题:红与黑 184

9.10 例题:二叉树 186

9.11 例题:拯救少林神棍 187

练习题 193

第10章 动态规划 196

10.1 什么是动态规划 196

10.2 动态规划解题的一般思路 199

10.3 例题:最长上升子序列 200

10.4 例题:帮助Jimmy 202

10.5 例题:最长公共子序列 206

10.6 例题:神奇口袋 208

10.7 例题:灌溉草场 210

10.8 例题:方盒游戏 215

10.9 例题:美妙栅栏 221

练习题 225

第11章 链表 228

11.1 单向链表、链表结点的插入 228

11.2 带表头的单向链表、链表的搜索 232

11.3 双向链表、链表结点的排序 235

11.4 循环链表、链表结点的删除 238

11.5 链表的应用:计算每个作业的运行时间 241

练习题 247

第12章 二叉树 249

12.1 二叉树的建立 250

12.2 基于递归的二叉树遍历 254

12.3 平衡二叉树 257

练习题 263

附录A 北京大学程序在线评测系统介绍 264

A.1 POJ的使用情况 264

A.2 POJ的主要功能 265

A.3 使用本书结合POJ进行教学时的用法 266

附录B 本书题目在POJ上的编号 267

致谢 271