温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
程序员
面试
宝典
第三
内容简介 本书是程序员面试宝典的第三版,在保留第二版的数据结构、面向对象、程序设计等主干的基础上,使用各大IT 公司及相关企业最新面试题替换和补充原内容,以反映自第二版以来近几年时间所发生的变化。本书取材于各大公司面试真题(笔试、口试、电话面试、英语面试,以及逻辑测试和智商测试),详细分析了应聘程序员(含网络、测试等)职位的常见考点。本书不仅对传统的C 系语言考点做了详尽解说,还根据外企出题最新特点,新增加了对友元、Static、图形/音频、树、栈、ERP 等问题的深入讲解。最后本书着力讲述了如何进行英语面试和电话面试,并对求职中签约、毁约的注意事项及群体面试进行了解析。本书的面试题除了有详细解析和答案外,对相关知识点还有扩展说明。真正做到了由点成线,举一反三,对读者从求职就业到提升计算机专业知识都有显著帮助。本书适合计算机相关专业应届毕业生阅读,也适合作为正在应聘软件行业的相关就业人员和计算机爱好者的参考书。未经许可,不得以任何方式复制或抄袭本书的部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据 程序员面试宝典/欧立奇,刘洋,段韬编著.3 版.北京:电子工业出版社,2011.4 ISBN 978-7-121-12647-5 .程.欧 刘 段.程序设计-工程技术人员-资格考核-自学参考资料 .TP311.1 中国版本图书馆 CIP 数据核字(2010)第 253227 号 策划编辑:田小康 责任编辑:许 艳 特约编辑:赵树刚 印 刷:装 订:出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编 100036 开 本:787980 1/16 印张:22 字数:462.8 千字 黑插:2 印 次:2011 年 4 月第 1 次印刷 印 数:6 000 册 定 价:39.80 元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888。质量投诉请发邮件至 ,盗版侵权举报请发邮件至 。服务热线:(010)88258888。北京中新伟业印刷有限公司 序 程序员面试宝典(第三版)III 先,我要感谢本书的作者能够选择这样一个备受大家关注的话题作为题材,同时也要感谢电子工业出版社能够将此书大力推广。要知道,程序员和面试可能是现在因特网上大家最为关心的字眼之一了不,应该是之二。正好,本书详尽地描述了程序员应该学些什么、做些什么,然后应该如何面对烦人的但又必不可少的面试过程。当然,如果您不是程序员,我依然认为本书会对您的职业生涯有所帮助,相信我吧。哦,忘了介绍我自己了。我是孔文达,毕业于北京某某大学材料系,现任微软(中国)有限公司顾问。咦?怎么读材料的从事上 IT 工作了?这说来可话长了。但其实一句概括的话,就是:努力加机遇。当然,我并不想长篇大论应该如何努力及如何把握机遇,我想说的是和本书密切相关的话题面试。其实,无论是程序员还是其他任何行业的任何职位,面试过程都大同小异,无非就是提交简历、电话面试、面谈、得到 Offer 等这一系列过程。当然,这其中每一步都很重要!简历要写得得体、漂亮,尽量突出自己的优势,屏蔽自己的劣势。电话面试还好一些,因为只是电话交谈,所以您也许会更好地把握自己的语言。面谈是最关键的一步,而且如果您准备不充分的话,一定会紧张。紧张,就有可能出现错误。不过还好,大多数面试官都可以接受面试者的紧张,只要不是太过分,问题就不大了。一般来说,中型或大型企业的面试都不止一轮,有些甚至有十几轮。就拿微软来说吧,官方渠道需要 12 轮面试,内部推荐也需要 4 轮,而且是一票否决式。就是说,有一个面试官说你不行,你就没戏了。怎么搞定所有的面试官呢?当然有很多技巧,但最重要的一条就是:面试官是个活生生的人,他/她一定有个人偏好,在你见到面试官时,尽可能在最短的时间内最好是在他/她了解你之前了解他/她,合乎时宜地与他/她展开对话。最后一点,最好不要极其地、非常地、十分地想得到某个职位,这有可能会使你失态,抱着平常心有时会得到意想不到的效果。首 Preface IV 程序员面试宝典(第三版)这本书写得非常好,它非常详尽地描述了作为一名程序员应该为面试准备些什么和注意些什么。也许您现在还用不到它,先看看吧,指不定什么时候就用上了呢!这不是杞人忧天,而是未雨绸缪!技术顾问 微软全国 TOP3 讲师 在正式加入微软(中国)有限公司前,曾任微软外聘顾问及特约讲师 7 年,并在 北京中达金桥科技开发有限公司(微软在国内最大的技术及培训合作伙伴)任人力资源部总监及副总裁。第二届微软十佳金牌讲师 首届微软十佳金牌讲师 MLC 认证讲师 微软护航专家 CIW 认证讲师(CIW CI)CIW 网络安全分析大师(CIW)华为网络工程师(HCNE)HP-UNIX 系统及网络管理员(HP-UX Administrator)Cisco 认证网络专家(CCNA)微软认证讲师(MCT)微软认证数据库管理员(MCDBA)微软认证系统工程师(MCSE)微软认证专家(MCP)微软销售专员(MSS)前 言 程序员面试宝典(第三版)V 本书是程序员面试宝典的第三版。第三版主要是更新,在保留原书数据结构、面向对象、程序设计等主干的基础上,大量地更新了程序设计例题。以反映自第一版上市以来近几年时间内所发生的变化,帮助求职者们更好地处理一些新问题、新变化。本书相对上一版的新变化主要有以下几点:针对求职过程这一章,在原书 3 节(笔试、电话面试、面试)的基础上添加了 2 节(签约、违约),以更好地帮助求职者应对求职过程中出现一些细节的麻烦。针对 C/C+程序设计这一块,更新了绝大部分的例题。如原书中循环队列问题在面试时被反复提及,而近两年如反循环队列、zigzag 问题在面试中也经常出现;又如递归面试已经很少出现过于常见的菲波那契问题,而代之以构造多叉树递归、对角线取值等问题,这些我们都在第三版中进行了扩充与重写。针对面试中的新题型,本书补充了新的章节:与非或、友元、Static、图形/音频、树、栈、ERP、群体面试,等等。相比前一版而言,第三版的内容更加贴近市场的变化,更加与时俱进。程序员面试宝典不同于同类书籍的主要特点是:细 中国软件企业比较小,面试涉及的方面比较多,比较基础,比如常会考到一些编程基础性的面试例题,而原有的面试书籍对此方面鲜有触及。本书把面试国内公司最易考到的基础考点,放在第二部分 C+基础程序设计里面,希望能切切实实地解决实际面试问题。专 面试题是通过一道题考查一个专类的能力,比如关键字 volatile 的面试例题是考查嵌入式编程。从面试官的角度来讲,一个测试也许能从多方面揭示应试者的素质及水平。正因为如此,本书将考点细致分类(嵌入式编程类、基础代码类、面向对象类、模板类等),通过面试例题提升读者对这些方面的掌握能力,达到有的放矢、举一反三的效果。广 求职者应聘的职位,一般有 3 种:网络工程师、测试工程师、软件开发人员。诸如趋势科技、华为 3COM、思科等公司,对程序、网络方面的考题日趋增加;此外,随着全球五百Foreword VI 程序员面试宝典(第三版)强企业的进入,外企对设计模式、软件度量等方面试题的喜爱有增无减,而市面上的书籍却鲜有综述。本书结合大量考题分析其特点并详述应试方案,以适应市场需求。真 第三版在保留原书主干的基础上,内容非常新,可以算做面试者求职前的一份全真模拟。同时作者将求职中的细节问题(简历、招聘、签约、违约),以及笔试、面试中的感悟融会在书中,给求职者以最真切的人文关怀。真情实感,娓娓道来,指引读者走上理想的工作岗位。本书不是一本万能书籍,但却肯定是您工作与求职的好助手、好伙伴!本书主要由欧立奇编著,其他参与编写的人员有刘洋、段韬、秦晓东、李启高、马雪、马煜、胥虎军、李富星、牛永洁等。编 著 者 目 录 程序员面试宝典(第三版)VII第 1 部分 求职过程 求职的过程就是一个提高和认识自我的过程,最后的成功根植于你本人一丝一毫的努力当中。也许真的像电影肖申克的救赎里面说的那样:“得救之道,就在其中。”第 1 章 应聘求职.2 1.1 渠道.2 1.2 流程.3 第 2 章 简历书写.4 2.1 简历注意事项.4 2.2 简历模板.8 第 3 章 求职五步曲.11 3.1 笔试.11 3.2 电话面试.14 3.3 面试.15 3.4 签约.16 3.5 违约.20 第 4 章 职业生涯发展规划.22 4.1 缺乏工作经验的应届毕业生.22 4.2 更换工作的程序员们.24 4.3 快乐的工作.25 第 2 部分 C/C+程序设计 为什么要选择 C 系的语言呢?这是因为各大公司的编程语言绝大多数是 C 系的语言,虽然Java 也占很大的比重,可是 C+相对于 Java 来说更有区分度C+是那种为每一个问题提供若干个答案的语言,远比 Java 灵活。第 5 章 程序设计基本概念.29 作为一个求职者或应届毕业生,公司除了对你的项目经验有所问询之外,最好的考量办法就是你的基本功,包括你的编程风格,你对赋值语句、递增语句、类型转换、数据交换等程序设计基本概念的理解。5.1 赋值语句.29 Contents VIII 程序员面试宝典(第三版)5.2 i+.31 5.3 编程风格.33 5.4 类型转换.34 5.5 运算符问题.38 5.6 a、b 交换.39 5.7 C 和 C+的关系.41 5.8 程序设计的其他问题.41 第 6 章 预处理、const 与 sizeof.45 6.1 宏定义.45 6.2 const.46 6.3 s izeof.48 6.4 内联函数和宏定义.59 第 7 章 指针与引用.61 指针是 C 系语言的特色,是 C 和 C+的精华所在,也是 C 和 C+的一个十分重要的概念。7.1 指针基本问题.61 7.2 传递动态内存.63 7.3 函数指针.72 7.4 指针数组和数组指针.74 7.5 迷途指针.77 7.6 指针和句柄.79 第 8 章 循环、递归与概率.82 8.1 递归基础知识.82 8.2 典型递归问题.83 8.3 循环与数组问题.86 8.4 螺旋队列问题.89 8.5 概率.92 第 9 章 STL 模板与容器.93 9.1 向量容器.94 9.2 泛型编程.98 9.3 模板.99 Contents 程序员面试宝典(第三版)IX第 10 章 面向对象.103 有这样一句话:“编程是在计算机中反映世界”,我觉得再贴切不过。面向对象(Object-Oriented)对这种说法的体现也是最优秀的。10.1 面向对象的基本概念.103 10.2 类和结构.104 10.3 成员变量.106 10.4 构造函数和析构函数.108 10.5 拷贝构造函数和赋值函数.111 10.6 多态的概念.117 10.7 友元.120 第 11 章 继承与接口.122 整个 C+程序设计全面围绕面向对象的方式进行。类的继承特性是 C+的一个非常重要的机制。这一章的内容是 C+面向对象程序设计的关键。11.1 覆盖.123 11.2 私有继承.125 11.3 虚函数继承和虚继承.130 11.4 多重继承.134 11.5 检测并修改不适合的继承.137 11.6 纯虚函数.139 11.7 运算符重载与 RTTI.141 第 12 章 位运算与嵌入式编程.149 12.1 位制转换.149 12.2 嵌入式编程.159 12.3 static.165 第 3 部分 数据结构和设计模式 随着外企研发机构大量内迁我国,在外企的面试中,软件工程的知识,包括设计模式、UML、敏捷软件开发,以及.NET 技术和完全面向对象语言 C#的面试题目将会有增无减。Contents X 程序员面试宝典(第三版)第 13 章 数据结构基础.167 面试时间一般有 2 小时,其中至少有约 2030 分钟是用来回答数据结构相关问题的。链表、数组的排序和逆置是必考的内容之一。13.1 单链表.167 13.2 双链