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