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