本書(shū)針對(duì)當(dāng)前各大IT企業(yè)面試筆試中特性與側(cè)重點(diǎn),精心挑選了3年以來(lái)近百家典型IT企業(yè)的面試筆試真題,這些企業(yè)涉及業(yè)務(wù)包括系統(tǒng)軟件、搜索引擎、電子商務(wù)、手機(jī)APP、安全關(guān)鍵軟件等,面試筆試真題非常具有代表性與參考性。同時(shí),本書(shū)對(duì)這些題目進(jìn)行了合理的劃分與歸類,并且對(duì)其進(jìn)行了庖丁解牛式的分析與講解,針對(duì)試題中涉及的部分重難點(diǎn)問(wèn)題,本書(shū)都進(jìn)行了適當(dāng)?shù)臄U(kuò)展與延伸,力求對(duì)知識(shí)點(diǎn)的講解清晰而不紊亂,全面而不啰嗦,使得讀者通過(guò)本書(shū)不僅能夠獲取到求職的知識(shí),同時(shí)更有針對(duì)性地進(jìn)行求職準(zhǔn)備,終收獲一份滿意的工作。
本書(shū)可作為計(jì)算機(jī)相關(guān)專業(yè)畢業(yè)生面試、筆試的求職用書(shū),同時(shí)也適合期望在計(jì)算機(jī)軟、硬件行業(yè)大顯身手的計(jì)算機(jī)愛(ài)好者閱讀。
適讀人群 :本書(shū)可作為計(jì)算機(jī)相關(guān)專業(yè)畢業(yè)生面試、筆試的求職用書(shū),同時(shí)也適合期望在計(jì)算機(jī)軟、硬件行業(yè)大顯身手的計(jì)算機(jī)愛(ài)好者閱讀。
在這里,有技術(shù)大咖面試筆試經(jīng)驗(yàn)與技巧的提煉與總結(jié);
在這里,有各大IT名企高頻的面試筆試真題;
在這里,有作者團(tuán)隊(duì)庖丁解牛式的解析與答案。
本書(shū)覆蓋了近三年程序員面試筆試中超過(guò)98%的高頻知識(shí)點(diǎn)。當(dāng)你細(xì)細(xì)品讀完本書(shū)后,各類企業(yè)的offer將任由你挑選。一書(shū)在手,工作不愁。
程序員求職始終是當(dāng)前社會(huì)的一個(gè)熱點(diǎn),而市面上有很多關(guān)于程序員求職的書(shū)籍,例如《程序員代碼面試指南》(左程云著)、《劍指offer》(何海濤著)、《程序員面試筆試寶典》(何昊編著)、《Java程序員面試筆試寶典》(何昊編著)、《編程之美》(《編程之美》小組著)和《編程珠璣》(JonBentley著)等。它們都是針對(duì)基礎(chǔ)知識(shí)的講解,各有側(cè)重點(diǎn),而且在市場(chǎng)上反映良好。但是,我們發(fā)現(xiàn),當(dāng)前市面上沒(méi)有一本專門(mén)針對(duì)C/C++程序員、Java程序員的面試筆試真題的分析與講解,很多讀者朋友們向我們反映,他們經(jīng)過(guò)了精心地準(zhǔn)備以后,感覺(jué)自己什么知識(shí)都會(huì)了,但又感覺(jué)自己什么都不會(huì),不知道自己是否真的能夠在程序員面試筆試中得心應(yīng)手,心里一點(diǎn)底都沒(méi)有,偶爾會(huì)搜索一下網(wǎng)上一些IT企業(yè)的面試筆試真題,但這些題大都七拼八湊,毫無(wú)系統(tǒng)性可言,而且絕大多數(shù)都是一些博主自己做的,簡(jiǎn)單答案,準(zhǔn)確性不高,即使偶爾答案正確了,也沒(méi)有詳細(xì)的講解,這就導(dǎo)致讀者做完了這些真題之后,根本就不知道自己做得是否正確。如果下一次這個(gè)題目再次被考查,自己還是不會(huì)。更有甚者,網(wǎng)上的答案還有可能是錯(cuò)誤的,誤導(dǎo)讀者。
針對(duì)這種情況,我們創(chuàng)作團(tuán)隊(duì)經(jīng)過(guò)精心準(zhǔn)備,從互聯(lián)網(wǎng)上的海量面試筆試真題中,選取了當(dāng)前頂級(jí)企業(yè)(包括微軟、谷歌、百度、騰訊、阿里巴巴、360和小米等)的面試筆試真題,挑選出其中最典型、考察頻率最高、最具代表性的真題,做到難度適宜,兼顧各層次讀者的需求,同時(shí)對(duì)真題進(jìn)行知識(shí)點(diǎn)的分門(mén)別類,做到層次清晰、條理分明、答案簡(jiǎn)單明了。最終形成了這樣一本《程序員面試筆試真題與解析》。本書(shū)特點(diǎn)鮮明,所選真題以及寫(xiě)作手法具有以下特點(diǎn):
第一,考查率高;本書(shū)中所選真題絕非泛泛之輩,其內(nèi)容全是程序員面試筆試常考點(diǎn),例如語(yǔ)言基礎(chǔ)、操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)結(jié)構(gòu)與算法和海量數(shù)據(jù)處理等。
第二,行業(yè)代表性強(qiáng);本書(shū)中所選真題全部來(lái)自于頂級(jí)知名企業(yè),它們是行業(yè)的風(fēng)向標(biāo),代表了行業(yè)的高水準(zhǔn),其中絕大多數(shù)真題因?yàn)轭}目難易適中,而且具有非常好的區(qū)分度,通常會(huì)被眾多小企業(yè)全盤(pán)照搬,具有代表性。
第三,答案詳盡;本書(shū)對(duì)每一道題目都有非常詳細(xì)的解答,庖丁解牛,不只是告訴讀者答案,還提供了參考答案。授之以魚(yú)的同時(shí)還授之以漁,不僅告訴答案,還告訴讀者同類型題目以后再遇到了該如何解答。
第四,分類清晰、調(diào)理分明;本書(shū)對(duì)各個(gè)知識(shí)點(diǎn)都進(jìn)行了分門(mén)別類,這種寫(xiě)法有利于讀者針對(duì)個(gè)人實(shí)際情況做到有的放矢,重點(diǎn)把握。
由于圖書(shū)的篇幅所限,我們沒(méi)法將所有的程序員面試筆試真題內(nèi)容都寫(xiě)在書(shū)稿中,鑒于此,我們?cè)虫轮以诠俜骄W(wǎng)站(www.yuanyuanba.com)上提供了一個(gè)讀者交流平臺(tái),讀者朋友們可以在該網(wǎng)站上上傳各類面試筆試真題,也可以查找到自己所需要的知識(shí),同時(shí),讀者朋友們也可以向本平臺(tái)提供當(dāng)前最新、最熱門(mén)的程序員面試筆試題、面試技巧、程序員生活等相關(guān)材料。除此以外,我們還建立了公眾號(hào):猿媛之家,作為對(duì)外消息發(fā)布平臺(tái),以期最大限度地滿足讀者需要。歡迎讀者關(guān)注探討新技術(shù)。
本書(shū)主要針對(duì)C/C++用戶,我們還有專門(mén)針對(duì)Java用戶的圖書(shū),同期出版發(fā)行。有需要的讀者可以在各大電商網(wǎng)站或是實(shí)體書(shū)店進(jìn)行購(gòu)買。
感謝在我們成長(zhǎng)道路上幫助我們的父母、親人、同事、朋友和同學(xué)等,無(wú)論我們遇到了多大的挫折與困難,他們對(duì)我們都能不離不棄,一如既往地支持與幫助我們,使我們能夠開(kāi)開(kāi)心心地度過(guò)每一天。在此對(duì)以上所有人一并致以最衷心的感謝。
所有的成長(zhǎng)和偉大,如同中藥,都是一個(gè)時(shí)辰一個(gè)時(shí)辰熬出來(lái)的,所有的好書(shū),都是逐字逐句琢磨出來(lái)的。在技術(shù)的海洋里,我們不是創(chuàng)造者,但我們更愿意去當(dāng)好一名傳播者的角色,讓更多的求職者能夠通過(guò)本書(shū)的系統(tǒng)學(xué)習(xí),找到一份自己滿意的工作,實(shí)現(xiàn)自己的人生理想與抱負(fù)。
我們每個(gè)人的人生都是一場(chǎng)戲劇,我們每個(gè)人都要成為戲劇的主角,而不應(yīng)該淪為別人的配角,所以,我建議所有的求職者在求職的道路上,無(wú)論遇到了多大的困難,遭遇了多大的挫折,都不要輕言放棄,你們的母?赡懿皇恰985”“211”,你們的學(xué)歷可能不是本科生、研究生,你們的專業(yè)可能也不是計(jì)算機(jī)相關(guān),但這些都不要緊,只要你認(rèn)真努力,立志成為一名程序員,以我們輔導(dǎo)過(guò)的成千上萬(wàn)的求職者經(jīng)驗(yàn)而言,百分之九十以上的企業(yè)是完全可以進(jìn)去的。請(qǐng)記。涸谶@個(gè)世界上,沒(méi)有人可以讓你仰視,除非你自己跪著。
由于編者水平有限,書(shū)中不足之處在所難免,還望讀者見(jiàn)諒。讀者如果發(fā)現(xiàn)問(wèn)題或是有此方面的困惑,都可以通過(guò)郵箱yuancoder@foxmail.com聯(lián)系我們。
猿媛之家
于鎬京
猿媛之家成立于2015年8月,是一家致力于研究程序員人生規(guī)劃、程序員技能與培訓(xùn)、程序員就業(yè)與發(fā)展的機(jī)構(gòu)。旨在為廣大求職者提供求職一站式服務(wù),為求職者量體裁衣,打造一套適合自己的求職解決方案。機(jī)構(gòu)成員均畢業(yè)于國(guó)內(nèi)“985”“211”高校的計(jì)算機(jī)相關(guān)專業(yè),就職于BAT等IT企業(yè)。
我們的宗旨是“服務(wù)大眾,分層對(duì)待,整體提高,打造精品”,目標(biāo)是“讓天下沒(méi)有找不到工作的程序員”。
前言
面試筆試經(jīng)驗(yàn)技巧篇
面試筆試經(jīng)驗(yàn)技巧1 如何巧妙地回答面試官的問(wèn)題2
面試筆試經(jīng)驗(yàn)技巧2 如何回答技術(shù)性問(wèn)題3
面試筆試經(jīng)驗(yàn)技巧3 如何回答非技術(shù)性問(wèn)題4
面試筆試經(jīng)驗(yàn)技巧4 如何回答快速估算類問(wèn)題5
面試筆試經(jīng)驗(yàn)技巧5 如何回答算法設(shè)計(jì)問(wèn)題5
面試筆試經(jīng)驗(yàn)技巧6 如何回答系統(tǒng)設(shè)計(jì)問(wèn)題7
面試筆試經(jīng)驗(yàn)技巧7 ?如何解決求職中的時(shí)間沖突問(wèn)題9
面試筆試經(jīng)驗(yàn)技巧8 如果面試問(wèn)題曾經(jīng)見(jiàn)過(guò),是否要告知面試官10
面試筆試經(jīng)驗(yàn)技巧9 在被企業(yè)拒絕后是否可以再申請(qǐng)11
面試筆試經(jīng)驗(yàn)技巧10 如何應(yīng)對(duì)自己不會(huì)回答的問(wèn)題11
面試筆試經(jīng)驗(yàn)技巧11 如何應(yīng)對(duì)面試官的“激將法”語(yǔ)言12
面試筆試經(jīng)驗(yàn)技巧12 如何處理“與面試官持不同觀點(diǎn)”這個(gè)問(wèn)題13
面試筆試經(jīng)驗(yàn)技巧13 什么是“職場(chǎng)暗語(yǔ)”13
面試筆試真題解析篇
第1章 C/C++語(yǔ)言基礎(chǔ)知識(shí)18
1.1 變量18
1.2 表達(dá)式19
1.3 數(shù)組20
1.3.1 一維數(shù)組20
1.3.2 二維數(shù)組21
1.4 字符串22
1.5 結(jié)構(gòu)體31
1.6 指針與引用32
1.6.1 指針32
1.6.2 引用39
1.7 預(yù)處理40
1.7.1 基本概念40
1.7.2 #define40
1.7.3 #include44
1.8 循環(huán)46
1.8.1 while46
1.8.2 do/while47
1.8.3 for47
1.8.4 switch48
1.9 數(shù)據(jù)類型49
1.9.1 概念49
1.9.2 const50
1.9.3 static52
1.10 運(yùn)算54
1.10.1 常規(guī)運(yùn)算54
1.10.2 ++與--60
1.10.3 位運(yùn)算63
1.11 sizeof67
1.11.1 數(shù)組求sizeof67
1.11.2 struct求sizeof70
1.12 函數(shù)71
1.12.1 函數(shù)調(diào)用71
1.12.2 函數(shù)參數(shù)80
1.12.3 重載與覆蓋81
1.12.4 其他83
1.13 Hash(哈希)83
1.14 內(nèi)存分配86
1.14.1 內(nèi)存的分配形式86
1.14.2 malloc/free與new/delete89
1.14.3 內(nèi)存泄漏91
1.15 編譯原理92
1.16 面向?qū)ο蠹夹g(shù)99
1.16.1 概念99
1.16.2 構(gòu)造函數(shù)與析構(gòu)函數(shù)105
1.16.3 繼承111
1.16.4 虛函數(shù)115
1.16.5 模板118
1.17 編程技巧119
1.18 其他120
第2章 數(shù)據(jù)庫(kù)122
2.1 基本概念122
2.2 數(shù)據(jù)庫(kù)設(shè)計(jì)134
第3章 網(wǎng)絡(luò)與通信137
3.1 網(wǎng)絡(luò)模型137
3.2 網(wǎng)絡(luò)設(shè)備138
3.3 網(wǎng)絡(luò)協(xié)議139
3.4 網(wǎng)絡(luò)編程150
3.5 網(wǎng)絡(luò)安全153
3.6 其他155
第4章 操作系統(tǒng)161
4.1 基本概念161
4.2 進(jìn)程與線程173
4.3 內(nèi)存管理184
第5章 計(jì)算機(jī)組成與原理192
第6章 軟件工程與設(shè)計(jì)模式199
6.1 軟件工程與UML199
6.2 設(shè)計(jì)模式201
6.3 軟件測(cè)試203
第7章 數(shù)據(jù)結(jié)構(gòu)與算法206
7.1 數(shù)組與線性表206
7.2 鏈表221
7.3 字符串231
7.4 棧、隊(duì)列246
7.5 STL容器252
7.6 排序253
7.7 查找260
7.8 二叉樹(shù)261
7.9 圖275
7.9.1 有向圖275
7.9.2 無(wú)向圖277
7.9.3 遍歷278
7.10 其他279
第8章 前端技術(shù)294
第9章 數(shù)學(xué)知識(shí)297
9.1 邏輯推理297
9.2 概率與組合301
9.3 數(shù)學(xué)計(jì)算309
第10章 系統(tǒng)設(shè)計(jì)題315
第11章 海量數(shù)據(jù)處理322
11.1 問(wèn)題分析322
11.2 基本方法322
11.2.1 Hash法322
11.2.2 Bit-map法324
11.2.3 Bloom filter法325
11.2.4 數(shù)據(jù)庫(kù)優(yōu)化法326
11.2.5 倒排索引法327
11.2.6 外排序法328
11.2.7 Trie樹(shù)329
11.2.8 堆332
11.2.9 雙層桶法332
11.2.10 MapReduce法334
11.3 經(jīng)典實(shí)例分析334
11.3.1 top K問(wèn)題334
11.3.2 重復(fù)問(wèn)題336
11.3.3 排序問(wèn)題338