《程序设计导引及在线实践》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:李文新,郭炜,余华山编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2007
  • ISBN:9787302158332
  • 页数:290 页
图书介绍:本书介绍C/C++程序设计导引及实践。

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

1.1 程序的基本框架 2

1.2 变量 2

1.2.1 变量的定义 2

1.2.2 变量的赋值 3

1.2.3 变量的引用 3

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

1.4 常量 6

1.5 运算符和表达式 7

1.5.1 算术运算符 7

1.5.2 赋值运算符 9

1.5.3 关系运算符 9

1.5.4 逻辑运算符 10

1.5.5 位运算符 10

1.5.6 sizeof运算符 15

1.5.7 类型强制转换运算符 15

1.5.8 运算符的优先级 16

1.6 注释 16

1.7 分支语句 17

1.7.1 if语句 17

1.7.2 switch语句 19

1.8 循环语句 21

1.8.1 for语句 21

1.8.2 while语句 22

1.8.3 do-while语句 23

1.8.4 break语句 23

1.8.5 continue语句 24

1.9 函数 25

1.9.1 函数的定义 25

1.9.2 函数的调用 26

1.9.3 参数传递和返回值 27

1.9.4 库函数和头文件 28

1.10 标准输入输出 28

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

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

1.11 全局变量和局部变量 31

1.12 数组 32

1.12.1 一维数组 32

1.12.2 二维数组 34

1.12.3 数组的初始化 36

1.12.4 数组越界 36

1.13 字符串 37

1.13.1 字符串常量 38

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

1.14 指针 41

1.14.1 指针的基本概念 41

1.14.2 指针运算 44

1.14.3 空指针 46

1.14.4 指向指针的指针 46

1.14.5 指针和数组 47

1.14.6 字符串和指针 49

1.14.7 void指针 50

1.14.8 函数指针 51

1.14.9 指针和动态内存分配 54

1.14.10 误用无效指针 56

1.15 结构 57

1.15.1 “结构”的概念 57

1.15.2 结构变量的定义 58

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

1.15.4 结构变量的初始化 59

1.15.5 结构数组 60

1.15.6 指向结构变量的指针 60

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

1.16 文件读写 63

1.16.1 用fopen打开文件 63

1.16.2 用fclose关闭文件 64

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

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

1.16.5 用fgets读文件,用fputs写文件 67

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

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

1.17 C语言标准库函数 73

1.17.1 数学函数 73

1.17.2 字符处理函数 74

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

1.17.4 字符串转换函数 75

1.18 命令行参数 76

1.19 C/C++编码规范 77

1.19.1 标识符命名注意事项 77

1.19.2 程序的书写格式 78

1.19.3 注释的写法 80

1.19.4 一些好的编程习惯 81

第2章 简单计算题 83

2.1 例题:鸡兔同笼 83

2.2 例题:棋盘上的距离 85

2.3 例题:校门外的树 88

2.4 例题:填词 90

2.5 例题:装箱问题 92

练习题 95

第3章 数制转换问题 98

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

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

练习题 102

第4章 字符串处理 104

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

4.2 例题:统计字符数 105

4.3 例题:487-3279 107

4.4 例题:子串 112

4.5 例题:Caesar密码 115

练习题 117

第5章 日期和时间处理 121

5.1 例题:判断闰年 121

5.2 例题:细菌繁殖 125

5.3 例题:日历问题 130

5.4 例题:玛雅历 132

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

练习题 140

第6章 模拟 141

6.1 例题:约瑟夫问题 141

6.2 例题:花生问题 144

6.3 例题:显示器 147

6.4 例题:排列 152

练习题 155

第7章 高精度计算 159

7.1 例题:大整数加法 159

7.2 例题:大整数乘法 162

7.3 例题:大整数除法 165

7.4 例题:麦森数 169

练习题 174

第8章 枚举 175

8.1 枚举的基本思想 175

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

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

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

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

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

练习题 195

第9章 递归 197

9.1 递归的基本思想 197

9.2 例题:菲波那契数列 198

9.3 例题:二叉树 199

9.4 例题:逆波兰表达式 201

9.5 例题:放苹果 203

9.6 例题:红与黑 204

9.7 例题:八皇后问题 207

9.8 例题:木棍问题 212

练习题 216

第10章 动态规划 221

10.1 什么是动态规划 221

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

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

10.4 例题:帮助Jimmy 228

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

10.6 例题:陪审团的人选 235

练习题 239

第11章 链表 242

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

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

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

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

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

练习题 264

第12章 二叉树 266

12.1 二叉树的建立 267

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

12.3 平衡二叉树 276

练习题 282

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

A.1 POJ的使用情况 283

A.2 POJ的主要功能 285

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

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