★面试官箴言。《程序员面试笔试宝典(第2版)》邀请一些在知名企业从事过面试工作的软件工程师以及系统分析师,他们结合自己的亲身经历,详细地分析了面试官心理,并且对面试过程中求职者应该注意的事项以及求职者如何准备才能获得面试官亲睐进行了深入地剖析,对求职者求职起到了非常好的标杆作用。
★“面经”真实、有代表性。本书将当前中国实力强劲的计算机类大学或研究所的求职达人的求职经历引入,他们的就业前景代表了优秀的就业目标,具有非常高的代表性与就业参考价值。
★知识点广、深。相比较其它同类书籍,本书知识面更广,知识点更深,更加适合当前计算机企业对优秀人才的需求。
★更有针对性。《程序员面试笔试宝典(第2版)》将各大类型企业的招聘流程、面试笔试注意事项、真题一一展现在读者面前,同时针对这些原始资料,进行深度剖析,使读者能够更有针对性地准备不同性质的企业。同时本书还分析了求职者在选择offer的时候,如何结合自己的真实情况来选择一个适合自己发展的企业,防止求职者不经过深思熟虑,盲目地选择企业。
★以附录的形式新增近两年的各大IT名企的面试笔试真题,使得读者能够及时了解当前的企业招聘的重难点,把握复习方向,提高求职的成功率。
★为了能够给读者提供更多有价值的求职帮助,本书搜集了当前各大求职有用的网站、QQ群等资料,对技术网站、网站、求职相关门户网站、个人经验交流网站、求职交流群等内容进行了全覆盖,并且把它们以附录的形式展示给求职者,以求为求职者提供大限度的帮助。
《程序员面试笔试宝典(第2版)》针对当前各大IT企业面试笔试中常见的问题以及注意事项,进行了深层次的分析。本书除了对传统的计算机相关知识(C/C++、数据结构与算法、操作系统等)进行介绍外,还根据当前计算机技术的发展潮流,对面试笔试中常见的海量数据处理进行了详细的分析。同时,为了更具说服力,本书特邀多位IT名企面试官现身说法,对面试过程中求职者存在的问题进行了深度剖析,同时本书引入了一批来自于高校、就职于明星企业的职场达人的真实求职案例,通过他们的求职经验与教训,抛砖引玉,将整个求职过程生动形象地展示在读者面前,进而对求职者起到一定的指引作用。本书也对各种类型的IT企业的招聘环节进行了庖丁解牛式的分析,帮助求职者能够更加有针对性地进行求职准备。
《程序员面试笔试宝典(第2版)》是一本计算机相关专业毕业生面试笔试的求职用书,同时也适合期望在计算机软硬件行业大显身手的计算机爱好者阅读。
上篇 面试笔试经验技巧篇
第1章 面试官箴言
1.1 有道无术,术可求;有术无道,止于术
1.2 求精不求全
1.3 脚踏实地,培养多种技能
1.4 保持空杯心态
1.5 职场是能者的舞台
1.6 学会“纸上谈兵”
1.7 小结
第2章 面试心得交流
2.1 心态决定一切
2.2 假话全不说,真话不全说
2.3 走自己的路,让别人去说吧
2.4 夯实基础谋出路
2.5 书中自有编程法
2.6 笔试成绩好,不会被鄙视
2.7 不要一厢情愿做公司的备胎
2.8 小结
第3章 企业面试笔试攻略
3.1 互联网企业
3.2 网络设备提供商
3.3 外企
3.4 国企
3.5 研究所
3.6 创业型企业
3.7 如何抉择
下篇 面试笔试技术攻克篇
第4章 程序设计基础
4.1 C/C++关键字
4.1.1 static(静态)变量有什么作用
4.1.2 const有哪些作用
4.1.3 switch语句中的case结尾是否必须添加break语句?为什么
4.1.4 volatile在程序设计中有什么作用
4.1.5 断言ASSERT( )是什么
4.1.6 枚举变量的值如何计算
4.1.7 char str1[] = "abc"; char str2[] = "abc"; str1与str2不相等,为什么
4.1.8 为什么有时候main( )函数会带参数?参数argc与argv的含义是什么
4.1.9 C++里面是不是所有的动作都是main( )函数引起的
4.1.10 *p++与(*p)++等价吗?为什么
4.1.11 前置运算与后置运算有什么区别
4.1.12 a是变量,执行(a++) += a语句是否合法
4.1.13 如何进行float、bool、int、指针变量与“零值”的比较
4.1.14 new/delete与malloc/free的区别是什么
4.1.15 什么时候需要将引用作为返回值
4.1.16 变量名为618Software是否合法
4.1.17 C语言中,整型变量x小于0,是否可知x×2也小于0
4.1.18 exit(status)是否跟从main( )函数返回的status等价
4.1.19 已知String类定义,如何实现其函数体
4.1.20 在C++中如何实现模板函数的外部调用
4.1.21 在C++中,关键字explicit有什么作用
4.1.22 C++中异常的处理方法以及使用了哪些关键字
4.1.23 如何定义和实现一个类的成员函数为回调函数
4.2 内存分配
4.2.1 内存分配的形式有哪些
4.2.2 什么是内存泄露
4.2.3 栈空间的最大值是多少
4.2.4 什么是缓冲区溢出
4.3 sizeof
4.3.1 sizeof是关键字吗
4.3.2 strlen(" ")=?sizeof(" ")=?
4.3.3 对于结构体而言,为什么sizeof返回的值一般大于期望值
4.3.4 指针进行强制类型转换后与地址进行加法运算,结果是什么
4.4 指针
4.4.1 使用指针有哪些好处
4.4.2 引用还是指针
4.4.3 指针和数组是否表示同一概念
4.4.4 指针是否可进行>、<、>=、<=、= =运算
4.4.5 指针与数字相加的结果是什么
4.4.6 野指针?空指针
4.5 预处理
4.5.1 C/C++头文件中的ifndef/define/endif的作用有哪些
4.5.2 #include 和#include“filename.h”有什么区别
4.5.3 #define有哪些缺陷
4.5.4 如何使用define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
4.5.5 含参数的宏与函数有什么区别
4.5.6 宏定义平方运算#define SQR(X) X*X是否正确
4.5.7 不能使用大于、小于、if语句,如何定义一个宏来比较两个数a、b的大小
4.5.8 如何判断一个变量是有符号数还是无符号数
4.5.9 #define TRACE(S) (printf("%s
", #S), S)是什么意思
4.5.10 不使用sizeof,如何求int占用的字节数
4.5.11 如何使用宏求结构体的内存偏移地址
4.5.12 如何用sizeof判断数组中有多少个元素
4.5.13 枚举和define有什么不同
4.5.14 typdef和define有什么区别
4.5.15 C++中宏定义与内联函数有什么区别
4.5.16 定义常量谁更好?#define还是const
4.6 结构体与类
4.6.1 C语言中struct与union的区别是什么
4.6.2 C和C++中struct的区别是什么
4.6.3 C++中struct与class的区别是什么
4.7 位操作
4.7.1 一些结构声明中的冒号和数字是什么意思
4.7.2 最有效的计算2乘以8的方法是什么
4.7.3 如何实现位操作求两个数的平均值
4.7.4 unsigned int i=3;printf("%u
",i*-1)输出为多少
4.7.5 如何求解整型数的二进制表示中1的个数
4.7.6 不能用sizeof( )函数,如何判断操作系统是16位还是32位的
4.7.7 嵌入式编程中,什么是大端?什么是小端
4.7.8 考虑n位二进制数,有多少个数中不存在两个相邻的1
4.7.9 不用除法操作符如何实现两个正整数的除法
4.8 函数
4.8.1 怎么样写一个接受可变参数的函数
4.8.2 函数指针与指针函数有什么区别
4.8.3 C++函数传递参数的方式有哪些
4.8.4 重载与覆盖有什么区别
4.8.5 是否可以通过绝对内存地址进行参数赋值与函数调用
4.8.6 默认构造函数是否可以调用单参数构造函数
4.8.7 C++中函数调用有哪几种方式
4.8.8 什么是可重入函数?C语言中如何写可重入函数
4.9 数组
4.9.1 int a[2][2]={{1},{2,3}},则a[0][1]的值是多少
4.9.2 如何合法表示二维数组
4.9.3 a是数组,(int*)(&a;+1)表示什么意思
4.9.4 不使用流程控制语句,如何打印出1~1000的整数
4.9.5 char str[1024]; scanf("%s",str)是否安全
4.9.6 行存储与列存储中哪种存储效率高
4.10 变量
4.10.1 全局变量和静态变量有什么异同
4.10.2 局部变量需要“避讳”全局变量吗
4.10.3 如何建立和理解非常复杂的声明
4.10.4 变量定义与变量声明有什么区别
4.10.5 不使用第三方变量,如何交换两个变量的值
4.10.6 C与C++变量初始化有什么不同
4.11 字符串
4.11.1 不使用C/C++字符串库函数,如何自行编写strcpy( )函数
4.11.2 如何把数字转换成字符串
4.11.3 如何自定义内存复制函数memcpy( )
4.12 编译
4.12.1 编译和链接的区别是什么
4.12.2 编译型语言与解释型语言的区别是什么
4.12.3 如何判断一段程序是由C编译程序还是由C++编译程序编译的
4.12.4 在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”
4.12.5 两段代码共存于一个文件,编译时有选择地编译其中的一部分,如何实现
4.13 面向对象相关
4.13.1 面向对象与面向过程有什么区别
4.13.2 面向对象的基本特征有哪些
4.13.3 什么是深拷贝?什么是浅拷贝
4.13.4 什么是友元
4.13.5 复制构造函数与赋值运算符的区别是什么
4.13.6 基类的构造函数/析构函数是否能被派生类继承
4.13.7 初始化列表和构造函数初始化的区别是什么
4.13.8 类的成员变量的初始化顺序是按照声明顺序吗
4.13.9 当一个类为另一个类的成员变量时,如何对其进行初始化
4.13.10 C++能设计实现一个不能被继承的类吗
4.13.11 构造函数没有返回值,那么如何得知对象是否构造成功
4.13.12 C++中的空类默认产生哪些成员函数
4.13.13 如何设置类的构造函数的可见性
4.13.14 public继承、protected继承、private继承的区别是什么
4.13.15 C++提供默认参数的函数吗
4.13.16 C++中有哪些情况只能用初始化列表而不能用赋值
4.14 虚函数
4.14.1 什么是虚函数
4.14.2 C++如何实现多态
4.14.3 C++中继承、虚函数、纯虚函数分别指的是什么
4.14.4 C++中的多态种类有哪几种
4.14.5 什么函数不能声明为虚函数
4.14.6 是否可以把每个函数都声明为虚函数
4.14.7 C++中如何阻止一个类被实例化
4.15 编程技巧
4.15.1 当while( )的循环条件是赋值语句时会出现什么情况
4.15.2 不使用if/:?/switch及其他判断语句如何找出两个int型变量中的最大值和最小值
4.15.3 C语言获取文件大小的函数是什么
4.15.4 表达式a>b>c是什么意思
4.15.5 如何打印自身代码
4.15.6 如何实现一个最简单病毒
4.15.7 如何只使用一条语句实现x是否为2的若干次幂的判断
4.15.8 如何定义一对相互引用的结构
4.15.9 什么是逗号表达式
4.15.10
是否与
等价
4.15.11 什么是短路求值
4.15.12 已知随机数函数rand7( ),如何构造rand10( )函数
4.15.13 printf("%p
",(void *)x)与printf("%p
",&x;)有何区别
4.15.14 printf( )函数是否有返回值
4.15.15 不能使用任何变量,如何实现计算字符串长度函数Strlen( )
4.15.16 负数除法与正数除法的运算原理是否一样
4.15.17 main( )主函数执行完毕后,是否可能会再执行一段代码
第5章 操作系统
5.1 进程管理
5.1.1 进程与线程有什么区别
5.1.2 线程同步有哪些机制
5.1.3 内核线程和用户线程的区别
5.2 内存管理
5.2.1 内存管理有哪几种方式
5.2.2 分段和分页的区别是什么
5.2.3 什么是虚拟内存
5.2.4 什么是内存碎片?什么是内碎片?什么是外碎片
5.2.5 虚拟地址、逻辑地址、线性地址、物理地址有什么区别
5.2.6 Cache替换算法有哪些
5.3 用户编程接口
5.3.1 库函数与系统调用有什么不同
5.3.2 静态链接与动态链接有什么区别
5.3.3 静态链接库与动态链接库有什么区别
5.3.4 用户态和核心态有什么区别
5.3.5 用户栈与内核栈有什么区别
第6章 数据结构与算法
6.1 数组
6.1.1 如何用递归实现数组求和
6.1.2 如何用一个for循环打印出一个二维数组
6.1.3 在顺序表中插入和删除一个结点平均移动多少个结点
6.1.4 如何用递归算法判断一个数组是否是递增
6.1.5 如何分别使用递归与非递归实现二分查找算法
6.1.6 如何在排序数组中,找出给定数字出现的次数
6.1.7 如何计算两个有序整型数组的交集
6.1.8 如何找出数组中重复次数最多的数
6.1.9 如何在O(n)的时间复杂度内找出数组中出现次数超过了一半的数
6.1.10 如何找出数组中唯一的重复元素
6.1.11 如何判断一个数组中的数值是否连续相邻
6.1.12 如何找出数组中出现奇数次的元素
6.1.13 如何找出数列中符合条件的数对的个数
6.1.14 如何寻找出数列中缺失的数
6.1.15 如何判定数组是否存在重复元素
6.1.16 如何重新排列数组使得数组左边为奇数,右边为偶数
6.1.17 如何把一个整型数组中重复的数字去掉
6.1.18 如何找出一个数组中第二大的数
6.1.19 如何寻找数组中的最小值和最大值
6.1.20 如何将数组的后面m个数移动为前面m个数
6.1.21 如何计算出序列的前n项数据
6.1.22 如何找出数组中只出现一次的数字
6.1.23 如何判断一个整数x是否可以表示成n(n≥2)个连续正整数的和
6.2 链表
6.2.1 数组和链表的区别是什么
6.2.2 何时选择顺序表、何时选择链表作为线性表的存储结构为宜
6.2.3 如何使用链表头
6.2.4 如何实现单链表的插入、删除操作
6.2.5 如何找出单链表中的倒数第k个元素
6.2.6 如何实现单链表反转
6.2.7 如何从尾到头输出单链表
6.2.8 如何寻找单链表的中间结点
6.2.9 如何进行单链表排序
6.2.10 如何实现单链表交换任意两个元素(不包括表头)
6.2.11 如何检测一个较大的单链表是否有环
6.2.12 如何判断两个单链表(无环)是否交叉
6.2.13 如何删除单链表中的重复结点
6.2.14 如何合并两个有序链表(非交叉)
6.2.15 什么是循环链表
6.2.16 如何实现双向链表的插入、删除操作
6.2.17 为什么在单循环链表中设置尾指针比设置头指针更好
6.2.18 如何删除结点的前驱结点
6.2.19 如何实现双向循环链表的删除与插入操作
6.2.20 如何在不知道头指针的情况下将结点删除
6.3 字符串
6.4 STL容器
6.5 排序
6.6 二叉树
6.7 图
第7章 海量数据处理
7.1 问题分析
7.2 基本方法
7.3 经典实例分析
附录
附录A 某知名搜索引擎公司2014年校园招聘笔试题
附录B 某知名门户网站2014年校园招聘笔试题
附录C 某知名电子商务公司2014年校园招聘笔试题
附录D 某知名外企2014年校园招聘笔试题
附录E 求职有用网站及QQ群一览表
对于我这种非科班出身,一路摸索着走上程序员这条路的开发者来说,系统性的学习和知识梳理是最大的挑战。在信息爆炸的时代,各种技术资料和教程琳琅满目,但往往缺乏条理,难以形成连贯的学习路径。这本书的出现,就像是一盏明灯,指引了我学习的方向。它将程序员面试和笔试中最为核心、最常考的知识点进行了系统性的归纳和整理,并且在讲解上做到了深入浅出。我尤其喜欢它对某个特定算法的讲解,作者并没有止步于给出代码实现,而是详细地分析了其时间复杂度和空间复杂度,并与其他算法进行了对比,让我能够从不同维度去理解其优劣。这种细致入微的讲解,对于我这样需要夯实基础的学习者来说,实在是太宝贵了。每次遇到新的问题,我都会习惯性地翻阅这本书,它总能提供一些关键的思路或者提示,让我能够更快地找到问题的症结所在。这本书不仅仅是一本工具书,更是我个人技术成长路上的一位良师益友。
评分作为一个已经工作了几年的开发者,我对市面上那些“速成”的技术书籍持保留态度。真正的技术积累,需要时间和沉淀。而这本书,恰恰给了我这种“沉淀”的感觉。它不像某些书籍那样,上来就抛出一堆概念和代码,而是循序渐进,由浅入深。我特别喜欢书中对某个经典算法的讲解,作者并没有仅仅给出最优解,而是从最基础的思路开始,一步步优化,直至达到高效的解决方案。这种“推导”的过程,对于理解算法的本质非常有帮助。而且,书中包含的那些思考题,也很有价值。它们促使我去主动思考,去联系实际工作中的场景,从而将理论知识转化为实际能力。我发现,自从深入学习了这本书后,我在解决实际开发问题时,思路更加开阔,也能够更准确地预判潜在的风险。它不是一本让你“快速学会”的书,而是一本让你“真正理解”的书,对于任何想要在技术道路上走得更远的程序员来说,它都是一本值得反复阅读的宝藏。
评分在职业生涯的某个阶段,我发现自己陷入了瓶颈。尽管日常工作中能够熟练运用各种技术,但在面对一些更深层次的理论问题时,总感觉力不从心。正是这个时候,我接触到了这本书。它以一种全新的视角,重新审视了那些我们习以为常的技术概念。我特别佩服作者在阐述某个并发编程问题时,那种抽丝剥茧的分析能力。他不仅仅列举了各种锁的机制,还深入剖析了它们背后的原理,以及在不同场景下的适用性。读完之后,我才真正理解了为什么会出现死锁,以及如何去避免它。这本书让我意识到,真正的技术实力,不仅仅在于“怎么做”,更在于“为什么这么做”。它帮助我打破了原有的思维定势,培养了更强的分析和解决问题的能力。现在,每当我遇到一个复杂的技术挑战,我都会首先尝试从这本书中寻找启发。它让我对技术有了更深刻的理解,也让我对未来的职业发展充满了信心。
评分说实话,在接触到这本书之前,我对“笔试”这个词是有点心有余悸的。总觉得那些题目要么是刁钻古怪,要么是千篇一律,很难真正体现一个程序员的真实水平。然而,这本书彻底改变了我的看法。它让我认识到,笔试不仅仅是考察知识点的广度,更是对思维方式、解决问题的能力以及对底层原理的理解深度的一种综合考验。书中对于每一个知识点,都不仅仅是给出了答案,更重要的是解释了“为什么”是这个答案,以及“如何”从头到尾推导出这个答案。我特别欣赏作者在讲解某个数据结构时,那种娓娓道来的风格,仿佛在讲述一个引人入胜的故事,将抽象的概念变得生动形象。很多时候,我会在午休时间翻开它,随意浏览几页,就能从中学到一些新的东西,或者对某个熟悉的知识点有更深刻的理解。这本书的价值在于,它帮助我建立了一个更加系统、更加完整的知识体系,让我不再畏惧那些看似“神秘”的笔试题,而是能够自信地去分析、去解决。它就像一把钥匙,为我打开了通往更广阔的技术世界的大门。
评分作为一名在互联网行业摸爬滚打多年的开发者,我深知技术迭代的速度有多么惊人,尤其是对于我们这些靠算法和数据结构吃饭的程序员来说,每一次跳槽、每一次晋升,都离不开扎实的理论基础和娴熟的解题技巧。而这本书,就像是一位经验丰富的导师,默默地陪伴着我度过了无数个挑灯夜读的夜晚。它不仅仅是一本题库,更像是一本武林秘籍,将那些晦涩难懂的概念、繁复抽象的算法,用一种近乎艺术的方式展现在我面前。我尤其喜欢书中对某个核心概念的深入剖析,它不是简单地罗列定义,而是从历史渊源、实际应用、再到优劣势分析,层层递进,让我不仅知其然,更知其所以然。有时,我会在解决一道算法题时卡住,感到沮丧,但翻开书,总能找到类似的场景,或者作者用一种我从未想过的角度去切入问题,瞬间豁然开朗。这种“顿悟”的感觉,是学习过程中最宝贵的财富。而且,书中那些精心设计的练习题,难度梯度非常合理,从基础概念的巩固,到复杂问题的演化,每一步都踩得很稳。完成一道题后的成就感,激励着我不断挑战更高难度的题目。可以说,它是我职业生涯中不可或缺的一部分,也是我推荐给无数同行的一本“必读书”。
评分很基础。对绝大多数人都有帮助是!KKK
评分可以全新,快递速度也非常的快
评分还没看,据说很有用,先来评
评分电子信息工程半路出家,学JAVA才半年,真的好怕找不到工作怎么办
评分书也用纸箱打包 第一次在京东买 比其他电商好多的
评分很适合要进入企业程序员面试用。内容非常详细
评分可以,上午买下午就到了,送货超级快
评分很全的书籍,孩子很爱读,家长也跟着一起,学了很多东西,好书好书
评分老公的书,公司报销买的,(收书发票,公司报销,要我公司抬头,需要联系我,自己买不了那么多书)
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有