《程序員面試筆試寶典  第3版》針對當前各大IT企業(yè)面試筆試中常見的問題以及注意事項,進行了深層次地分析。本書除了對傳統(tǒng)的計算機相關知識(C/C++、數(shù)據(jù)結構與算法、操作系統(tǒng)等)進行介紹外,還根據(jù)當前計算機技術的發(fā)展潮流,對面試筆試中常見的海量數(shù)據(jù)處理進行了詳細地分析。同時,為了更具說服力,本書對面試過程中求職者存在的問題進行了深度剖析,總結提煉了大量程序員面試筆試技巧,這些技巧生動形象,對求職者能夠起到一定的指引作用。本書也從歷年的程序員面試筆試真題中精挑細選多套完整試題,以供讀者學完本書后檢測自我能力,通過這些試卷與講解,能夠幫助求職者有針對性地進行求職準備。
《程序員面試筆試寶典  第3版》是一本計算機相關專業(yè)畢業(yè)生面試筆試的求職用書,同時也適合期望在計算機軟硬件行業(yè)大顯身手的計算機愛好者閱讀。
		
	
在這里,有面試筆試常見技巧的提煉與總結;
在這里,有面試筆試高頻知識點的整理與剖析;
在這里,有面試筆試歷年真題的解答與拓展。
本書覆蓋了近三年程序員面試筆試中超過98%的高頻知識點。當你細細品讀完本書后,各類企業(yè)的offer將任由你挑選。一書在手,工作不愁。
自《程序員面試筆試寶典》第1版、第2版發(fā)行以來,在讀者群中產(chǎn)生了強烈反響,被廣大讀者奉為求職必備之寶典,獲取工作之利器。圖書的暢銷并沒有讓我們作者團隊產(chǎn)生絲毫懈怠,我們也并沒有因此而沾沾自喜,反而是如履薄冰。使用本書的讀者多了,自然而然地我們肩上的責任與擔當就更重了,如果我們的圖書中有任何錯誤或者是無法完全滿足當前求職者的需求,我們必然會被讀者唾棄、拋棄,所以,在圖書出版后,我們并沒有停止前進的步伐,我們一直在思考,如何才能讓圖書與時俱進,讓讀者看完該書后能夠盡可能好地找到自己滿意的工作。
    《程序員面試筆試寶典  第3版》在保留第1版、第2版原有精華內(nèi)容的基礎上,考慮到近兩年IT行業(yè)的背景以及程序員的求職情況,進行了以下幾方面的工作:
    (1)結合當下的企業(yè)招聘側重點,去掉了第1版、第2版中部分不常出現(xiàn)在程序員面試筆試中的相關內(nèi)容:智力題、英語面試攻略、軟件工程等內(nèi)容,新增面試筆試經(jīng)驗技巧,更加突出重點,從而節(jié)省了讀者的大量時間,保證每一部分內(nèi)容都是重點、難點,提高閱讀     效率。
    (2)以附錄的形式新增近兩年各大IT名企的面試筆試真題兩套,同時給出答案,使得讀者能夠及時了解當前企業(yè)招聘的重點、難點,把握復習方向,提高求職的成功率。
    (3)結合近兩年以來程序員求職面試筆試真題的一些變化,本書在講解知識點的同時,引入了更多的真題,并給出了解答,力求做到真題全覆蓋。
    希望本書能夠繼續(xù)為求職者提供必要的幫助,希望每個閱讀過本書內(nèi)容的人都能獲得一份理想的工作。
    有求職困惑的程序員或是對本書內(nèi)容存在疑惑的讀者都可以通過yuancoder@foxmail.com聯(lián)系作者。
    編  者
前言
上篇:面試筆試經(jīng)驗技巧篇
經(jīng)驗技巧1  如何巧妙地回答面試官的問題
經(jīng)驗技巧2  如何回答技術性的問題
經(jīng)驗技巧3  如何回答非技術性問題
經(jīng)驗技巧4  如何回答快速估算類問題
經(jīng)驗技巧5  如何回答算法設計問題
經(jīng)驗技巧6  如何回答系統(tǒng)設計題
經(jīng)驗技巧7  如何解決求職中的時間沖突問題
經(jīng)驗技巧8  如果面試問題曾經(jīng)遇見過,是否要告知面試官
經(jīng)驗技巧9  在被企業(yè)拒絕后是否可以再申請
經(jīng)驗技巧10  如何應對自己不會回答的問題
經(jīng)驗技巧11  如何應對面試官的“激將法”語言
經(jīng)驗技巧12  如何處理與面試官持不同觀點這個問題
經(jīng)驗技巧13  什么是職場暗語
下篇:面試筆試技術攻克篇
第1章  程序設計基礎
1.1  C/C++關鍵字
1.1.1  static(靜態(tài))變量有什么作用
1.1.2  const有哪些作用
1.1.3  switch語句中的case結尾是否必須添加break語句
1.1.4  volatile在程序設計中有什么作用
1.1.5  斷言ASSERT( )是什么
1.1.6  枚舉變量的值如何計算
1.1.7  char str1[] = "abc"; char str2[] = "abc"; str1與str2不相等,為什么
1.1.8  為什么有時候main( )函數(shù)會帶參數(shù)?參數(shù)argc與argv的含義是什么
1.1.9  C++里面是不是所有的動作都是main( )函數(shù)引起的
1.1.10  *p++與(*p)++等價嗎?為什么
1.1.11  前置運算與后置運算有什么區(qū)別
1.1.12  a是變量,執(zhí)行(a++) += a語句是否合法
1.1.13  如何進行float、bool、int、指針變量與“零值”的比較
1.1.14  new/delete與malloc/free的區(qū)別是什么
1.1.15  什么時候需要將引用作為返回值
1.1.16  變量名為618Software是否合法
1.1.17  C語言中,整型變量x小于0,是否可知x×2也小于0
1.1.18  exit(status)是否與從main( )函數(shù)返回的status等價
1.1.19  已知String類定義,如何實現(xiàn)其函數(shù)體
1.1.20  在C++語言中如何實現(xiàn)模板函數(shù)的外部調用
1.1.21  在C++語言中,關鍵字explicit有什么作用
1.1.22  C++中異常的處理方法以及使用了哪些關鍵字
1.1.23  如何定義和實現(xiàn)一個類的成員函數(shù)為回調函數(shù)
1.2  內(nèi)存分配
1.2.1  內(nèi)存分配的形式有哪些
1.2.2  什么是內(nèi)存泄漏
1.2.3  ?臻g的最大值是多少
1.2.4  什么是緩沖區(qū)溢出
1.3  sizeof
1.3.1  strlen("\0")=?sizeof("\0")=?
1.3.2  對于結構體而言,為什么sizeof返回的值一般大于期望值
1.3.3  指針進行強制類型轉換后與地址進行加法運算,結果是什么
1.4  指針
1.4.1  使用指針有哪些好處
1.4.2  引用還是指針
1.4.3  指針和數(shù)組是否表示同一概念
1.4.4  指針是否可進行>、<、>=、<=、= =運算
1.4.5  指針與數(shù)字相加的結果是什么
1.4.6  野指針?空指針
1.5  預處理
1.5.1  C/C++頭文件中的ifndef/define/endif的作用有哪些
1.5.2  #include 和#include “filename.h” 有什么區(qū)別
1.5.3  #define有哪些缺陷
1.5.4  如何使用define 聲明一個常數(shù),用以表明1年中有多少秒(忽略閏年問題)
1.5.5  含參數(shù)的宏與函數(shù)有什么區(qū)別
1.5.6  宏定義平方運算#define SQR(X) X*X是否正確
1.5.7  不能使用大于、小于、if語句,如何定義一個宏來比較兩個整數(shù)a、b的大小
1.5.8  如何判斷一個變量是有符號數(shù)還是無符號數(shù)
1.5.9  #define TRACE(S) (printf("%s\n", #S), S)是什么意思
1.5.10  不使用sizeof,如何求int占用的字節(jié)數(shù)
1.5.11  如何使用宏求結構體的內(nèi)存偏移地址
1.5.12  如何用sizeof判斷數(shù)組中有多少個元素
1.5.13  枚舉和define有什么不同
1.5.14  typdef和define有什么區(qū)別
1.5.15  C++中宏定義與內(nèi)聯(lián)函數(shù)有什么區(qū)別
1.5.16  定義常量誰更好?#define還是const
1.6  結構體與類
1.6.1  C語言中struct與union的區(qū)別是什么
1.6.2  C和C++中struct的區(qū)別是什么
1.6.3  C++中struct與class的區(qū)別是什么
1.7  位操作
1.7.1  一些結構聲明中的冒號和數(shù)字是什么意思
1.7.2  最有效的計算2乘以8的方法是什么
1.7.3  如何使用位操作求兩個數(shù)的平均值
1.7.4  如何求解整型數(shù)的二進制表示中1的個數(shù)
1.7.5  不能用sizeof( )函數(shù),如何判斷操作系統(tǒng)是16位,還是32位
1.7.6  嵌入式編程中,什么是大端?什么是小端
1.7.7  考慮n位二進制數(shù),有多少個數(shù)中不存在兩個相鄰的1
1.7.8  不用除法操作符如何實現(xiàn)兩個正整數(shù)的除法
1.8  函數(shù)
1.8.1  怎么樣寫一個接受可變參數(shù)的函數(shù)
1.8.2  函數(shù)指針與指針函數(shù)有什么區(qū)別
1.8.3  C++函數(shù)傳遞參數(shù)的方式有哪些
1.8.4  重載與覆蓋有什么區(qū)別
1.8.5  無參數(shù)構造函數(shù)是否可以調用單參數(shù)構造函數(shù)
1.8.6  C++中函數(shù)調用有哪幾種方式
1.8.7  什么是可重入函數(shù)?C語言中如何寫可重入函數(shù)
1.9  數(shù)組
1.9.1  int a[2][2]={{1},{2,3}},則a[0][1]的值是多少
1.9.2  如何合法表示二維數(shù)組
1.9.3  a是數(shù)組,(int*)(&a+1)表示什么意思
1.9.4  不使用流程控制語句,如何打印出1~1000的整數(shù)
1.9.5  char str[1024];?scanf("%s",str)是否安全
1.9.6  行存儲與列存儲中哪種存儲效率高
1.10  變量
1.10.1  全局變量和靜態(tài)變量有什么異同
1.10.2  局部變量需要“避諱”全局變量嗎
1.10.3