图书介绍
程序员面试笔试宝典PDF|Epub|txt|kindle电子书版本网盘下载
![程序员面试笔试宝典](https://www.shukui.net/cover/70/33884759.jpg)
- 何昊,叶向阳,窦浩编著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111398790
- 出版时间:2012
- 标注页数:409页
- 文件大小:169MB
- 文件页数:425页
- 主题词:程序设计-工程技术人员-职业选择-基本知识
PDF下载
下载说明
程序员面试笔试宝典PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
上篇 面试笔试经验技巧篇2
第1章 面试官箴言2
1.1 有道无术,术可求;有术无道,止于术2
1.2 求精不求全3
1.3 脚踏实地,培养多种技能4
1.4 保持空杯心态6
1.5 职场是能者的舞台7
1.6 学会“纸上谈兵”8
1.7 小结8
第2章 面试心得交流9
2.1 心态决定一切9
2.2 假话全不说,真话不全说10
2.3 走自己的路,让别人去说吧12
2.4 夯实基础谋出路14
2.5 书中自有编程法15
2.6 笔试成绩好,不会被鄙视17
2.7 不要一厢情愿做公司的备胎18
2.8 小结19
第3章 企业面试笔试攻略20
3.1 互联网企业20
3.2 网络设备提供商25
3.3 外企29
3.4 国企32
3.5 研究所35
3.6 创业型企业37
3.7 如何抉择41
第4章 面试笔试技巧42
4.1 不打无准备之仗42
4.1.1 如何获取求职信息42
4.1.2 如何制作一份受用人单位青睐的简历43
4.1.3 如何高效地网申简历47
4.1.4 面试考查什么内容48
4.1.5 霸王面合适吗50
4.1.6 非技术类笔试如何应答50
4.1.7 什么是职场暗语51
4.1.8 如何克服面试中的紧张情绪54
4.1.9 面试礼仪有哪些55
4.1.10 面试需要准备什么内容56
4.1.11 女生适合做程序员吗57
4.1.12 程序员是吃青春饭的吗58
4.1.13 为什么会被企业拒绝58
4.1.14 如何准备集体面试59
4.1.15 如何准备电话面试61
4.2 从容应对62
4.2.1 如何进行自我介绍63
4.2.2 你对我们公司有什么了解64
4.2.3 如何应对自己不会回答的问题65
4.2.4 如何应对面试官的“激将法”语言65
4.2.5 如何处理与面试官持不同观点的问题66
4.2.6 如果你在这次面试中没有被录用,你会怎么办66
4.2.7 如果你被我们录取了,接下来你将如何开展工作66
4.2.8 你怎么理解你应聘的职位67
4.2.9 你有哪些缺点67
4.2.10 你有哪些优点68
4.2.11 你没有工作经验,如何能够胜任这个岗位69
4.2.12 你的好朋友是如何评价你的69
4.2.13 你与上司意见不一致时,该怎么办70
4.2.14 你能说说你的家庭吗71
4.2.15 你认为自己最适合做什么72
4.2.16 你如何看待公司的加班现象72
4.2.17 你的业余爱好是什么73
4.2.18 你和别人发生过争执吗?你怎样解决74
4.2.19 你如何面对压力74
4.2.20 你为什么离开了原来的单位75
4.2.21 你为什么更倾向于我们公司75
4.2.22 你觉得我们为什么要录用你76
4.2.23 你的职业规划是什么76
4.2.24 你对薪资有什么要求77
4.2.25 你有什么需要问我的问题吗77
4.3 签约这点事78
4.3.1 风萧萧兮易水寒,offer多了怎么办78
4.3.2 签约、违约需要注意哪些事项78
4.4 小结81
第5章 英文面试攻略82
5.1 注意事项82
5.2 英文自我介绍83
5.3 常见的英文面试问题85
5.4 常见计算机专业词汇94
5.4.1 计算机专业相关课程94
5.4.2 操作系统相关术语95
5.4.3 算法相关术语96
5.4.4 数据结构相关术语97
5.4.5 计算机网络相关术语100
第6章 智力题攻略102
6.1 推理类102
6.2 博弈类107
6.3 计算类109
6.4 作图类111
6.5 倒水类112
6.6 称重类113
6.7 最优化类114
6.8 IT思想类115
6.9 过桥类118
6.10 概率类119
下篇 面试笔试技术攻克篇122
第7章 程序设计基础122
7.1 C/C+++关键字122
7.1.1 static(静态)变量有什么作用122
7.1.2 const有哪些作用124
7.1.3 switch语句中的case结尾是否必须添加break语句?为什么127
7.1.4 volatile在程序设计中有什么作用128
7.1.5 断言ASSERT()是什么129
7.1.6 枚举变量的值如何计算130
7.1.7 char str1[]=″abc″;char str2[]=″abc″;str1与str2不相等,为什么130
7.1.8 为什么有时候main()函数会带参数?参数argc与argv的含义是什么131
7.1.9 C++++里面是不是所有的动作都是main()函数引起的132
7.1.10 p++++与(*p)++++等价吗?为什么132
7.1.11 前置运算与后置运算有什么区别132
7.1.12 a是变量,执行(a++++)+=a语句是否合法133
7.1.13 如何进行float、bool、int、指针变量与“零值”的比较134
7.1.14 new/delete与malloc/free的区别是什么135
7.1.15 什么时候需要将引用作为返回值137
7.1.16 变量名为618Software是否合法137
7.1.17 C语言中,整型变量x小于0,是否可知x×2也小于0138
7.1.18 exit(status)是否跟从main()函数返回的status等价138
7.1.19 已知String类定义,如何实现其函数体138
7.1.20 在C++++中如何实现模板函数的外部调用140
7.1.21 在C++++中,关键字explicit有什么作用140
7.1.22 C++++中异常的处理方法以及使用了哪些关键字141
7.1.23 如何定义和实现一个类的成员函数为回调函数141
7.2 内存分配142
7.2.1 内存分配的形式有哪些142
7.2.2 什么是内存泄露143
7.2.3 栈空间的最大值是多少144
7.2.4 什么是缓冲区溢出144
7.3 sizeof146
7.3.1 sizeof是关键字吗146
7.3.2 strlen(″ ″)=?sizeof(″ ″)=?146
7.3.3 对于结构体而言,为什么sizeof返回的值一般大于期望值148
7.3.4 指针进行强制类型转换后与地址进行加法运算,结果是什么149
7.4 指针150
7.4.1 使用指针有哪些好处150
7.4.2 引用还是指针150
7.4.3 指针和数组是否表示同一概念152
7.4.4 指针是否可进行>、<、>=、<=、=运算152
7.4.5 指针与数字相加的结果是什么152
7.4.6 野指针?空指针153
7.5 预处理154
7.5.1 C/C++++头文件中的ifndef/define/endif的作用有哪些154
7.5.2 #include<filename.h>和#include“filename.h”有什么区别155
7.5.3 #define有哪些缺陷155
7.5.4 如何使用define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)155
7.5.5 含参数的宏与函数有什么区别156
7.5.6 宏定义平方运算#define SQR(X)X*X是否正确156
7.5.7 不能使用大于、小于、if语句,如何定义一个宏来比较两个数a、b的大小157
7.5.8 如何判断一个变量是有符号数还是无符号数158
7.5.9 #define TRACE(S)(printf(″%sn″,#S),S)是什么意思159
7.5.10 不使用sizeof,如何求int占用的字节数160
7.5.11 如何使用宏求结构体的内存偏移地址161
7.5.12 如何用sizeof判断数组中有多少个元素162
7.5.13 枚举和define有什么不同162
7.5.14 typdef和define有什么区别162
7.5.15 C++++中宏定义与内联函数有什么区别164
7.5.16 定义常量谁更好?#define还是const164
7.6 结构体与类165
7.6.1 C语言中struct与union的区别是什么165
7.6.2 C和C++++中struct的区别是什么165
7.6.3 C++++中struct与class的区别是什么166
7.7 位操作166
7.7.1 一些结构声明中的冒号和数字是什么意思166
7.7.2 最有效的计算2乘以8的方法是什么167
7.7.3 如何实现位操作求两个数的平均值167
7.7.4 unsigned int i=3;printf(″%un″,i*-1)输出为多少168
7.7.5 如何求解整型数的二进制表示中1的个数169
7.7.6 不能用sizeof()函数,如何判断操作系统是16位还是32位的170
7.7.7 嵌入式编程中,什么是大端?什么是小端171
7.7.8 考虑n位二进制数,有多少个数中不存在两个相邻的1174
7.7.9 不用除法操作符如何实现两个正整数的除法175
7.8 函数179
7.8.1 怎么样写一个接受可变参数的函数179
7.8.2 函数指针与指针函数有什么区别179
7.8.3 C++++函数传递参数的方式有哪些183
7.8.4 重载与覆盖有什么区别185
7.8.5 是否可以通过绝对内存地址进行参数赋值与函数调用188
7.8.6 默认构造函数是否可以调用单参数构造函数190
7.8.7 C++++中函数调用有哪几种方式191
7.8.8 什么是可重入函数?C语言中如何写可重入函数192
7.9 数组192
7.9.1 int a[2][2]={{1},{2,3}},则a[0][1]的值是多少192
7.9.2 如何合法表示二维数组193
7.9.3 a是数组,(int*)(&a+1)表示什么意思193
7.9.4 不使用流程控制语句,如何打印出1~1000的整数194
7.9.5 char str[1024];scanf(″%s″,str)是否安全197
7.9.6 行存储与列存储中哪种存储效率高197
7.10 变量197
7.10.1 全局变量和静态变量有什么异同197
7.10.2 局部变量需要“避讳”全局变量吗199
7.10.3 如何建立和理解非常复杂的声明199
7.10.4 变量定义与变量声明有什么区别200
7.10.5 不使用第三方变量,如何交换两个变量的值201
7.10.6 C与C++++变量初始化有什么不同202
7.11 字符串202
7.11.1 不使用C/C++++字符串库函数,如何自行编写strcpy()函数203
7.11.2 如何把数字转换成字符串205
7.11.3 如何自定义内存复制函数memcpy()206
7.12 编译207
7.12.1 编译和链接的区别是什么207
7.12.2 编译型语言与解释型语言的区别是什么208
7.12.3 如何判断一段程序是由C编译程序还是由C++++编译程序编译的208
7.12.4 在C++++程序中调用被C编译器编译后的函数,为什么要加extern“C”209
7.12.5 两段代码共存于一个文件,编译时有选择地编译其中的一部分,如何实现210
7.13 面向对象相关210
7.13.1 面向对象与面向过程有什么区别210
7.13.2 面向对象的基本特征有哪些211
7.13.3 什么是深复制?什么是浅复制212
7.13.4 什么是友元213
7.13.5 复制构造函数与赋值运算符的区别是什么214
7.13.6 基类的构造函数/析构函数是否能被派生类继承216
7.13.7 初始化列表和构造函数初始化的区别是什么216
7.13.8 类的成员变量的初始化顺序是按照声明顺序吗217
7.13.9 当一个类为另一个类的成员变量时,如何对其进行初始化217
7.13.10 C++++能设计实现一个不能被继承的类吗218
7.13.11 构造函数没有返回值,那么如何得知对象是否构造成功219
7.13.12 C++++中的空类默认产生哪些成员函数219
7.13.13 如何设置类的构造函数的可见性219
7.13.14 public继承、protected继承、private继承的区别是什么220
7.13.15 C++++提供默认参数的函数吗221
7.13.16 C++++中有哪些情况只能用初始化列表而不能用赋值222
7.14 虚函数223
7.14.1 什么是虚函数223
7.14.2 C++++如何实现多态225
7.14.3 C++++中继承、虚函数、纯虚函数分别指的是什么226
7.14.4 C++++中的多态种类有哪几种226
7.14.5 什么函数不能声明为虚函数227
7.14.6 是否可以把每个函数都声明为虚函数229
7.14.7 C++++中如何阻止一个类被实例化229
7.15 编程技巧229
7.15.1 当while()的循环条件是赋值语句时会出现什么情况229
7.15.2 不使用if/:?/switch及其他判断语句如何找出两个int型变量中的最大值和最小值230
7.15.3 C语言获取文件大小的函数是什么231
7.15.4 表达式a>b>c是什么意思231
7.15.5 如何打印自身代码232
7.15.6 如何实现一个最简单病毒232
7.15.7 如何只使用一条语句实现x是否为2的若干次幂的判断233
7.15.8 如何定义一对相互引用的结构233
7.15.9 什么是逗号表达式234
7.15.10 n是否与nr等价235
7.15.11 什么是短路求值235
7.15.12 已知随机数函数rand7(),如何构造rand10()函数236
7.15.13 printf(″%pn″,(void*)x)与printf(″%pn″,&x)有何区别237
7.15.14 printf()函数是否有返回值237
7.15.15 不能使用任何变量,如何实现计算字符串长度函数Strlen()237
7.15.16 负数除法与正数除法的运算原理是否一样238
7.15.17 main()主函数执行完毕后,是否可能会再执行一段代码238
第8章 数据库240
8.1 数据库概念240
8.1.1 关系数据库系统与文件数据库系统有什么区别240
8.1.2 SQL语言的功能有哪些240
8.1.3 内连接与外连接有什么区别242
8.1.4 什么是事务243
8.1.5 什么是存储过程?它与函数有什么区别与联系244
8.1.6 什么是主键?什么是外键244
8.1.7 什么是死锁245
8.1.8 什么是共享锁?什么是互斥锁245
8.1.9 一二三四范式有何区别246
8.1.10 如何取出表中指定区间的记录247
8.1.11 什么是CHECK约束247
8.1.12 什么是视图247
8.2 SQL高级应用248
8.2.1 什么是触发器248
8.2.2 什么是索引249
8.2.3 什么是回滚250
8.2.4 数据备份有哪些种类251
8.2.5 什么是游标251
8.2.6 并发环境下如何保证数据的一致性252
8.2.7 如果数据库日志满了,会出现什么情况252
8.2.8 如何判断谁往数据库中插入了一行数据252
第9章 网络与通信254
9.1 网络模型254
9.1.1 OSI七层模型是什么254
9.1.2 TCP/IP模型是什么255
9.1.3 B/S与C/S有什么区别255
9.1.4 MVC模型结构是什么256
9.2 网络设备258
9.2.1 交换机与路由器有什么区别258
9.2.2 路由表的功能有哪些259
9.3 网络协议260
9.3.1 TCP和UDP的区别有哪些260
9.3.2 什么叫三次握手?什么叫四次断开260
9.3.3 什么是ARP/RARP262
9.3.4 IP Phone的原理是什么?都用了哪些协议263
9.3.5 Ping命令是什么263
9.3.6 基本的HTTP流程有哪些264
9.4 网络编程264
9.4.1 如何使用Socket编程264
9.4.2 阻塞模式和非阻塞模式有什么区别265
9.5 网络其他问题266
9.5.1 常用的网络安全防护措施有哪些266
9.5.2 什么是SQL注入式攻击267
9.5.3 电路交换技术、报文交换技术和分组交换技术有什么区别268
9.5.4 相比IPv4,IPv6有什么优点269
第10章 操作系统270
10.1 进程管理270
10.1.1 进程与线程有什么区别270
10.1.2 线程同步有哪些机制271
10.1.3 内核线程和用户线程的区别271
10.2 内存管理272
10.2.1 内存管理有哪几种方式272
10.2.2 分段和分页的区别是什么272
10.2.3 什么是虚拟内存272
10.2.4 什么是内存碎片?什么是内碎片?什么是外碎片273
10.2.5 虚拟地址、逻辑地址、线性地址、物理地址有什么区别273
10.2.6 Cache替换算法有哪些274
10.3 用户编程接口275
10.3.1 库函数与系统调用有什么不同275
10.3.2 静态链接与动态链接有什么区别276
10.3.3 静态链接库与动态链接库有什么区别276
10.3.4 用户态和核心态有什么区别276
10.3.5 用户栈与内核栈有什么区别277
第11章 软件工程278
11.1 软件工程过程与方法278
11.1.1 软件工程过程有哪些278
11.1.2 常见的软件开发过程模型有哪些279
11.1.3 什么是敏捷开发283
11.1.4 UML中一般有哪些图285
11.2 软件工程思想285
11.2.1 什么是软件配置管理285
11.2.2 什么是CMMI286
11.2.3 如何提高软件质量287
第12章 发散思维289
12.1 设计模式289
12.1.1 什么是单例模式289
12.1.2 什么是工厂模式290
12.1.3 什么是适配器模式290
12.1.4 什么是享元模式291
12.1.5 什么是观察者模式291
12.2 新技术291
12.2.1 什么是云计算291
12.2.2 什么是物联网292
12.2.3 你平时读的专业书籍有哪些293
第13章 数据结构与算法295
13.1 数组295
13.1.1 如何用递归实现数组求和295
13.1.2 如何用一个for循环打印出一个二维数组296
13.1.3 在顺序表中插入和删除一个结点平均移动多少个结点297
13.1.4 如何用递归算法判断一个数组是否是递增297
13.1.5 如何分别使用递归与非递归实现二分查找算法298
13.1.6 如何在排序数组中,找出给定数字出现的次数299
13.1.7 如何计算两个有序整型数组的交集300
13.1.8 如何找出数组中重复次数最多的数301
13.1.9 如何在O(n)的时间复杂度内找出数组中出现次数超过了一半的数303
13.1.10 如何找出数组中唯一的重复元素305
13.1.11 如何判断一个数组中的数值是否连续相邻308
13.1.12 如何找出数组中出现奇数次的元素309
13.1.13 如何找出数列中符合条件的数对的个数311
13.1.14 如何寻找出数列中缺失的数313
13.1.15 如何判定数组是否存在重复元素314
13.1.16 如何重新排列数组使得数组左边为奇数,右边为偶数315
13.1.17 如何把一个整型数组中重复的数字去掉316
13.1.18 如何找出一个数组中第二大的数318
13.1.19 如何寻找数组中的最小值和最大值319
13.1.20 如何将数组的后面m个数移动为前面m个数320
13.1.21 如何计算出序列的前n项数据321
13.1.22 如何找出数组中只出现一次的数字322
13.1.23 如何判断一个整数x是否可以表示成n(n≥2)个连续正整数的和324
13.2 链表325
13.2.1 数组和链表的区别是什么325
13.2.2 何时选择顺序表、何时选择链表作为线性表的存储结构为宜325
13.2.3 如何使用链表头326
13.2.4 如何实现单链表的插入、删除操作327
13.2.5 如何找出单链表中的倒数第k个元素328
13.2.6 如何实现单链表反转329
13.2.7 如何从尾到头输出单链表331
13.2.8 如何寻找单链表的中间结点331
13.2.9 如何进行单链表排序332
13.2.10 如何实现单链表交换任意两个元素(不包括表头)334
13.2.11 如何检测一个较大的单链表是否有环335
13.2.12 如何判断两个单链表(无环)是否交叉337
13.2.13 如何删除单链表中的重复结点338
13.2.14 如何合并两个有序链表(非交叉)339
13.2.15 什么是循环链表340
13.2.16 如何实现双向链表的插入、删除操作342
13.2.17 为什么在单循环链表中设置尾指针比设置头指针更好343
13.2.18 如何删除结点的前驱结点343
13.2.19 如何实现双向循环链表的删除与插入操作343
13.2.20 如何在不知道头指针的情况下将结点删除344
13.3 字符串345
13.3.1 如何统计一行字符中有多少个单词345
13.3.2 如何将字符串逆序346
13.3.3 如何找出一个字符串中第一个只出现一次的字符350
13.3.4 如何输出字符串的所有组合351
13.3.5 如何检查字符是否是整数?如果是,返回其整数值353
13.3.6 如何查找字符串中每个字符出现的个数353
13.4 STL容器354
13.4.1 什么是泛型编程354
13.4.2 栈与队列的区别有哪些354
13.4.3 vector与list的区别有哪些355
13.4.4 如何实现循环队列355
13.4.5 如何使用两个栈模拟队列操作357
13.5 排序359
13.5.1 如何进行选择排序359
13.5.2 如何进行插入排序360
13.5.3 如何进行冒泡排序361
13.5.4 如何进行归并排序364
13.5.5 如何进行快速排序366
13.5.6 如何进行希尔排序368
13.5.7 如何进行堆排序369
13.5.8 各种排序算法有什么优劣371
13.6 二叉树372
13.6.1 基础知识372
13.6.2 如何递归实现二叉树的遍历373
13.6.3 已知先序遍历和中序遍历,如何求后序遍历374
13.6.4 如何非递归实现二叉树的后序遍历376
13.6.5 如何使用非递归算法求二叉树的深度378
13.6.6 如何判断两棵二叉树是否相等381
13.6.7 如何判断二叉树是否是平衡二叉树381
13.6.8 什么是霍夫曼编解码382
13.7 图383
13.7.1 什么是拓扑排序384
13.7.2 什么是DFS?什么是BFS385
13.7.3 如何求关键路径386
13.7.4 如何求最短路径388
第14章 海量数据处理390
14.1 问题分析390
14.2 基本方法390
14.3 经典实例分析403
14.3.1 top K问题403
14.3.2 重复问题405
14.3.3 排序问题407
致谢409