程序设计导引及在线实践(第2版) / 21世纪大学本科计算机专业系列教材
¥35.00定价
作者: 李文新、郭炜等
出版时间:2016年12月
出版社:清华大学出版社
- 清华大学出版社
- 9787302452348
- 2-1
- 160454
- 16开
- 2016年12月
- 工学
- 软件工程
- TP311.1
- 计算机
- 本专科、高职高专
内容简介
本书是北京大学“程序设计实习”课程的内容和“北京大学程序在线评测系统”(POJ)的紧密结合,具有极强的实践性。本书的例题和习题精选自POJ题库,并且在叙述中穿插了许多精心编写的思考题,总结了学生在程序设计中易犯的错误。本书的作者均有丰富的工程软件开发经验和教学经验,因此本书中的程序代码均保持良好的风格。本书可以作为高等学校理工科相关专业程序设计类课程的教材,也可作为以 ACM/ICPC为代表的大学生程序设计竞赛的培训教材,还可供对程序设计感兴趣的读者学习参考。本书封面贴有清华大学出版社防伪标签,无标签者不得销售。
目录
目录CONTENTS第1章C/C 语言概述1
1.1程序的基本框架1
1.2变量2
1.2.1变量的定义2
1.2.2变量的赋值3
1.2.3变量的引用3
1.3C/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.6sizeof运算符12
1.5.7类型强制转换运算符13
1.5.8运算符的优先级13
1.6注释14
1.7分支语句15
1.7.1if语句15
1.7.2switch语句17
1.8循环语句19
1.8.1for语句19
1.8.2while语句20
1.8.3dowhile语句20
1.8.4break语句21
1.8.5continue语句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.1printf函数(标准输出函数)25
1.10.2scanf函数(标准输入函数)26
目录第 11 章程序设计导引及在线实践(第2版)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.7void指针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.17C语言标准库函数64
1.17.1数学函数64
1.17.2字符处理函数65
1.17.3字符串处理和内存操作函数65
1.17.4字符串转换函数66
1.18命令行参数66
1.19C/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例题: 487327993
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例题: 算24181
9.9例题: 红与黑184
9.10例题: 二叉树186
9.11例题: 拯救少林神棍187
练习题193
第10章动态规划196
10.1什么是动态规划196
10.2动态规划解题的一般思路199
10.3例题: 最长上升子序列200
10.4例题: 帮助Jimmy202
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.1POJ的使用情况264
A.2POJ的主要功能265
A.3使用本书结合POJ进行教学时的用法266
附录B本书题目在POJ上的编号267
致谢271