本書是為了滿足廣大應聘IT崗位的畢業生及社招人士復習所學知識,提高職場競爭力而編寫的。書中涵蓋了C/C++程序員面試所需掌握的全部知識點,內容涉及C/C++基礎、面向對象、字符串、數據結構、算法設計、操作系統、數據庫、計算機網絡以及綜合能力測試題等面試中經常出現的知識點。與此同時,本書還包含了相當篇幅的面試技巧介紹,並精心搜集了面試官常問的20個問題和外企常考的20道英文面試題,幫助求職者在面試過程中展現自身技術硬實力的同時更能充分發揮自身素質和個人魅力等軟實力。
本書不只是一部「習題集」,在每節中都對本節所涉及的知識點進行了完整的梳理,這樣不僅可以幫讀者夯實專業基礎,從根本上掌握程序員筆試面試的要領,也為未來的工作打下了堅實的基礎。
本書采用筆記體裁方式編寫,核心內容用紅色高亮標注,重點問題和知識點加批注注釋,使讀者在閱讀此書時易於上手,掌握關鍵信息,提高學習效率。
為了更好地幫助讀者備戰筆試面試,本書還對每一節中的知識點梳理以及一些比較有代表性的題目進行了視頻講解,使讀者學習起來更加靈活有趣,知識掌握得也更加牢固。
本書涵蓋了各大公司近年來C/C++筆試面試真題,具有性,在講解上力求深入淺出,循序漸進,並配以插圖解說,使讀者能夠學得懂,記得牢,願意學,幫助讀者更好地進行求職准備。
本書是一本計算機相關專業畢業生以及社招人員筆試、面試求職參考書,同時也可作為有志於從事IT行業的計算機愛好者閱讀使用。
楊峰,工學碩士,高級工程師,就職於知名IT公司8年,先后參與多個大型項目開發。熱衷於計算機書籍及科普書籍的寫作,曾先后出版《C語言完全手冊》《妙趣橫生的算法》《生活中的數學》等多本著作。
目錄
如何使用本書
前言
第一部分 求職攻略技巧篇
第1章 凡事預則立,不預則廢——
求職准備
11擺脫就業「恐懼症」
12深度剖析自己,找准定位——
切忌好高騖遠,眼高手低
13制訂一個詳細的求職計划
14你應該知道的求職渠道
15認識招聘的流程
第2章 打造你的個人名片——
簡歷技巧
21個人簡歷的書寫要領及注意
事項
22英文簡歷
23簡歷模板參考
第3章 下筆如有神的秘籍——
筆試技巧
31筆試是場持久戰
32夯實基礎才是王道
33臨陣磨槍,不快也光
34練習一點智力題
35重視英語筆試和專業詞匯
36建立自己的筆試資料庫
第4章 征服面試官的絕招——
面試技巧
41面試着裝的技巧
42不打無准備之仗——事先
准備可能的提問
43切記!第一輪面試仍是
「技術面」
44重視英語口語
45細節決定成敗
第5章 魚和熊掌如何取舍——Offer
選擇技巧
51選擇Offer的大原則——方向第一,
賺錢第二
52選擇最適合自己的
53戶口和收入哪個更重要
第6章 我的未來我做主——職業
生涯規划
61Y型發展軌跡
62融入企業文化
63關於跳槽
第7章 運籌帷幄,決勝千里——面試
官常問的20個問題
71談談你的家庭情況
72你有什麼愛好和興趣
73你自己的優點是什麼
74你自己的缺點是什麼
75談談最令你有成就感的
一件事
76談談你最近的一次失敗的
經歷
77你做過什麼項目
78你有多少代碼量
79請描述一下你對我們公司的
理解
710談一下最近5年內的職業
規划
711你覺得工作之后最大的挑戰
是什麼
712你對出差和外派的看法
是什麼
713你對加班的看法是什麼
714你對跳槽的看法是什麼
715你如何理解你應聘的職位
716工作中遇到壓力你如何緩解
717如何看待程序員40歲以后編
不動代碼
718在工作中有沒有經歷過和他人
意見不合的時候?你是怎麼
處理的
719你平時都采取什麼樣的學習
方式
720你還有什麼需要了解的問題
第8章 知己知彼、百戰不殆——外企
常考的20道英文面試題
81Please tell me something about
yourself?
82What experience do you have in
this field?
83What is your dream job?
84Why should we hire you?
85What are you looking for in
a job?
86Are you willing to work
overtime?
87What is your greatest
weakness?
88What are your strengths?
89Why did you quit your
last job?
810Why do you want to work in our
company?
811What kind of salary are you
looking for?
812What do co-workers say about
you?
813What were some of your
achievements at your last
job?
814Tell me about your ability to work
under pressure?
815What have you learned from
mistakes on the job?
816Where do you see yourself in 5
years?
817How long would you expect to work
for us if hired?
818What do you want to know about
our company?
819Tell me about a suggestion you
have made?
820What motivates you to do your
best on the job?
第9章 IQ加油站——綜合能力
測試題
91數學類型的測試題
【面試題1】兔子賽跑
【面試題2】女裝的成本
【面試題3】徘徊的小鳥飛了多少米
【面試題4】電視機的價值
【面試題5】被污染的藥丸
【面試題6】取水問題
【面試題7】院牆外的相遇
【面試題8】牛吃草問題
92邏輯類型的測試題
【面試題1】哪位教授與會
【面試題2】誰是罪犯
【面試題3】王教授的生日
【面試題4】是誰闖的禍
【面試題5】會哪國語言
【面試題6】如何拿水果
【面試題7】海盜分贓
【面試題8】小鎮上的四個朋友
【面試題9】說謊島
第二部分 面試筆試技術篇
第10章 C++程序設計基礎
101程序的編譯和執行
1011知識點梳理
1012經典面試題解析
【面試題1】簡述#include<>和#include””
的區別
【面試題2】簡述#與##在define中的
作用
【面試題3】簡述assert斷言的概念
102變量
1021知識點梳理
1022經典面試題解析
【面試題1】簡述i++和++i的區別
【面試題2】簡述C++的類型轉換
操作符
【面試題3】簡述靜態全局變量的概念
103條件語句和循環語句
1031知識點梳理
1032經典面試題解析
【面試題1】不使用break的switch
語句
【面試題2】for循環的三要素
【面試題3】巧打乘法口訣表
104宏定義和內聯
1041知識點梳理
1042經典面試題解析
【面試題1】簡述內聯函數與宏定義的
區別
【面試題2】宏定義的宏展開錯誤
【面試題3】內聯函數的常識性問題
105sizeof的使用
1051知識點梳理
1052經典面試題解析
【面試題1】不能使用sizeof計算的
表達式
【面試題2】sizeof計算結構體時的內存
對齊問題
【面試題3】結構體嵌套時的sizeof
運算
106內存分配
1061知識點梳理
1062經典面試題解析
【面試題1】malloc和free的常識性
問題
【面試題2】返回一個64整數倍的內存
地址
【面試題3】簡述malloc/free與new/delete
的區別
【面試題4】簡述delete與delete[]的
區別
107位運算
1071知識點梳理
1072經典面試題解析
【面試題1】不使用臨時變量交換兩
個數
【面試題2】計算二進制數中1的個數
【面試題3】將二進制數倒數第M位的
前N位取反
……
【面試題5】找出人群中三個單身狗中的
任意一個
108main函數
1081知識點梳理
1082經典面試題解析
【面試題1】簡述main函數執行前后都
發生了什麼
第11章 指針和引用
111指針及其應用
1111知識點梳理
1112經典面試題解析
【面試題1】被調函數中修改主調函數的
變量
【面試題2】區分指針和數組
【面試題3】簡述指針和句柄的區別
112指針常量與常量指針
1121知識點梳理
1122經典面試題解析
【面試題1】指針常量和常量指針的常見
錯誤
【面試題2】指針常量用作函數參數
【面試題3】指針常量與字符串常量的
沖突
113指針數組與數組指針
1131知識點梳理
1132經典面試題解析
【面試題1】簡述數組指針與二維數組的
區別
【面試題2】簡述數組地址與數組首元素
地址的區別
【面試題3】簡述指針數組與指向指針的
指針的區別
114指向指針的指針
1141知識點梳理
1142經典面試題解析
【面試題1】指針作為參數的常見
錯誤
【面試題2】指向指針的指針與二維數組的
區別
115函數指針
1151知識點梳理
1152經典面試題解析
【面試題1】通過函數指針實現四則
運算
【面試題2】簡化超長的函數指針
類型
116this指針
1161知識點梳理
1162經典面試題解析
【面試題1】this指針常識性問題
【面試題2】鏈式訪問對象成員
【面試題3】通過空指針調用類的成員
函數
117空指針和野指針
1171知識點梳理
1172經典面試題解析
【面試題1】常見的野指針
【面試題2】在構造函數中釋放對象
本身
118引用
1181知識點梳理
1182經典面試題解析
【面試題1】簡述指針與引用的區別
【面試題2】指針和引用的使用
【面試題3】使用常量初始化引用
第12章 內存管理
121堆內存與棧內存
1211知識點梳理
1212經典面試題解析
【面試題1】簡述程序中的四大
存儲區
【面試題2】簡述棧空間與堆空間的
區別
【面試題3】簡述遞歸程序潛在的
風險
122內存泄漏
1221知識點梳理
1222經典面試題解析
【面試題1】預防內存泄漏的方法
【面試題2】找出不易察覺的內存
泄漏
123內存越界
1231知識點梳理
1232經典面試題解析
【面試題1】訪問vector元素時的越界
問題
【面試題2】越界操作導致程序崩潰的
原理
第13章 字符串
131C標准字符串函數
1311知識點梳理
1312經典面試題解析
【面試題1】字符串標准庫函數的
使用1
【面試題2】字符串標准庫函數的
使用2
【面試題3】不使用C/C++庫函數,編程
實現函數strcmp的功能
【面試題4】不使用C/C++庫函數,編程
實現函數strcpy的功能
【面試題5】不使用C/C++庫函數,編程
實現函數strstr的功能
【面試題6】簡述memcpy與strcpy的
區別
【面試題7】程序改錯
132字符串算法設計題精講
【面試題1】編程實現字符串中單詞的
翻轉
【面試題2】編程實現字符串的循環
右移
【面試題3】從字符串的指定位置刪除指定
長度的子串
【面試題4】找出0/1字符串中0和1連續
出現的最大次數
【面試題5】編程查找兩個字符串中的最大
公共子串
【面試題6】在字符串中刪除特定
字符
【面試題7】字符串內容重排
第14章 面向對象
141面向對象的基本概念
1411知識點梳理
1412經典面試題解析
【面試題1】簡述面向過程和面向對象的
區別
【面試題2】簡述面向對象的基本
特征
【面試題3】簡述面向對象的設計
原則
142類的聲明
1421知識點梳理
1422經典面試題解析
【面試題1】簡述類和結構體的區別
【面試題2】類中的靜態數據成員與靜態
成員函數
【面試題3】簡述const修飾符在類中的
用法
【面試題4】簡述友元函數和友元類的
概念
143構造函數和析構函數
1431知識點梳理
1432經典面試題解析
【面試題1】構造函數中的常見錯誤
【面試題2】構造函數和析構函數的執行
順序
【面試題3】實現一個最基本的
String類
144函數重載
1441知識點梳理
1442經典面試題解析
【面試題1】C語言不支持函數重載的
原因
【面試題2】識別真假函數重載
【面試題3】簡述函數重載與函數覆蓋的
區別
【面試題4】容易忽視的名字隱藏
問題
145運算符重載
1451知識點梳理
1452經典面試題解析
【面試題1】運算符重載的常識性
問題
【面試題2】重載前自增運算符和后自增
運算符
【面試題3】通過運算符重載實現復數
加減
146繼承
1461知識點梳理
1462經典面試題解析
【面試題1】簡述繼承與組合的區別
【面試題2】簡述公有繼承、私有繼承和
保護繼承的區別
【面試題3】父類構造函數與子類構造函數
的關系
147虛繼承
1471知識點梳理
1472經典面試題解析
【面試題1】虛繼承中的構造函數的
調用
【面試題2】計算虛繼承中對象占用的
空間
148多態與虛函數
1481知識點梳理
1482經典面試題解析
【面試題1】虛函數的常識性問題
【面試題2】簡述虛函數表的概念
【面試題3】通過虛函數實現各種圖形計算
的多態性
第15章 模板與泛型編程
151模板
1511知識點
前言
第一部分 求職攻略技巧篇
第1章 凡事預則立,不預則廢——
求職准備
11擺脫就業「恐懼症」
12深度剖析自己,找准定位——
切忌好高騖遠,眼高手低
13制訂一個詳細的求職計划
14你應該知道的求職渠道
15認識招聘的流程
第2章 打造你的個人名片——
簡歷技巧
21個人簡歷的書寫要領及注意
事項
22英文簡歷
23簡歷模板參考
第3章 下筆如有神的秘籍——
筆試技巧
31筆試是場持久戰
32夯實基礎才是王道
33臨陣磨槍,不快也光
34練習一點智力題
35重視英語筆試和專業詞匯
36建立自己的筆試資料庫
第4章 征服面試官的絕招——
面試技巧
41面試着裝的技巧
42不打無准備之仗——事先
准備可能的提問
43切記!第一輪面試仍是
「技術面」
44重視英語口語
45細節決定成敗
第5章 魚和熊掌如何取舍——Offer
選擇技巧
51選擇Offer的大原則——方向第一,
賺錢第二
52選擇最適合自己的
53戶口和收入哪個更重要
第6章 我的未來我做主——職業
生涯規划
61Y型發展軌跡
62融入企業文化
63關於跳槽
第7章 運籌帷幄,決勝千里——面試
官常問的20個問題
71談談你的家庭情況
72你有什麼愛好和興趣
73你自己的優點是什麼
74你自己的缺點是什麼
75談談最令你有成就感的
一件事
76談談你最近的一次失敗的
經歷
77你做過什麼項目
78你有多少代碼量
79請描述一下你對我們公司的
理解
710談一下最近5年內的職業
規划
711你覺得工作之后最大的挑戰
是什麼
712你對出差和外派的看法
是什麼
713你對加班的看法是什麼
714你對跳槽的看法是什麼
715你如何理解你應聘的職位
716工作中遇到壓力你如何緩解
717如何看待程序員40歲以后編
不動代碼
718在工作中有沒有經歷過和他人
意見不合的時候?你是怎麼
處理的
719你平時都采取什麼樣的學習
方式
720你還有什麼需要了解的問題
第8章 知己知彼、百戰不殆——外企
常考的20道英文面試題
81Please tell me something about
yourself?
82What experience do you have in
this field?
83What is your dream job?
84Why should we hire you?
85What are you looking for in
a job?
86Are you willing to work
overtime?
87What is your greatest
weakness?
88What are your strengths?
89Why did you quit your
last job?
810Why do you want to work in our
company?
811What kind of salary are you
looking for?
812What do co-workers say about
you?
813What were some of your
achievements at your last
job?
814Tell me about your ability to work
under pressure?
815What have you learned from
mistakes on the job?
816Where do you see yourself in 5
years?
817How long would you expect to work
for us if hired?
818What do you want to know about
our company?
819Tell me about a suggestion you
have made?
820What motivates you to do your
best on the job?
第9章 IQ加油站——綜合能力
測試題
91數學類型的測試題
【面試題1】兔子賽跑
【面試題2】女裝的成本
【面試題3】徘徊的小鳥飛了多少米
【面試題4】電視機的價值
【面試題5】被污染的藥丸
【面試題6】取水問題
【面試題7】院牆外的相遇
【面試題8】牛吃草問題
92邏輯類型的測試題
【面試題1】哪位教授與會
【面試題2】誰是罪犯
【面試題3】王教授的生日
【面試題4】是誰闖的禍
【面試題5】會哪國語言
【面試題6】如何拿水果
【面試題7】海盜分贓
【面試題8】小鎮上的四個朋友
【面試題9】說謊島
第二部分 面試筆試技術篇
第10章 C++程序設計基礎
101程序的編譯和執行
1011知識點梳理
1012經典面試題解析
【面試題1】簡述#include<>和#include””
的區別
【面試題2】簡述#與##在define中的
作用
【面試題3】簡述assert斷言的概念
102變量
1021知識點梳理
1022經典面試題解析
【面試題1】簡述i++和++i的區別
【面試題2】簡述C++的類型轉換
操作符
【面試題3】簡述靜態全局變量的概念
103條件語句和循環語句
1031知識點梳理
1032經典面試題解析
【面試題1】不使用break的switch
語句
【面試題2】for循環的三要素
【面試題3】巧打乘法口訣表
104宏定義和內聯
1041知識點梳理
1042經典面試題解析
【面試題1】簡述內聯函數與宏定義的
區別
【面試題2】宏定義的宏展開錯誤
【面試題3】內聯函數的常識性問題
105sizeof的使用
1051知識點梳理
1052經典面試題解析
【面試題1】不能使用sizeof計算的
表達式
【面試題2】sizeof計算結構體時的內存
對齊問題
【面試題3】結構體嵌套時的sizeof
運算
106內存分配
1061知識點梳理
1062經典面試題解析
【面試題1】malloc和free的常識性
問題
【面試題2】返回一個64整數倍的內存
地址
【面試題3】簡述malloc/free與new/delete
的區別
【面試題4】簡述delete與delete[]的
區別
107位運算
1071知識點梳理
1072經典面試題解析
【面試題1】不使用臨時變量交換兩
個數
【面試題2】計算二進制數中1的個數
【面試題3】將二進制數倒數第M位的
前N位取反
……
【面試題5】找出人群中三個單身狗中的
任意一個
108main函數
1081知識點梳理
1082經典面試題解析
【面試題1】簡述main函數執行前后都
發生了什麼
第11章 指針和引用
111指針及其應用
1111知識點梳理
1112經典面試題解析
【面試題1】被調函數中修改主調函數的
變量
【面試題2】區分指針和數組
【面試題3】簡述指針和句柄的區別
112指針常量與常量指針
1121知識點梳理
1122經典面試題解析
【面試題1】指針常量和常量指針的常見
錯誤
【面試題2】指針常量用作函數參數
【面試題3】指針常量與字符串常量的
沖突
113指針數組與數組指針
1131知識點梳理
1132經典面試題解析
【面試題1】簡述數組指針與二維數組的
區別
【面試題2】簡述數組地址與數組首元素
地址的區別
【面試題3】簡述指針數組與指向指針的
指針的區別
114指向指針的指針
1141知識點梳理
1142經典面試題解析
【面試題1】指針作為參數的常見
錯誤
【面試題2】指向指針的指針與二維數組的
區別
115函數指針
1151知識點梳理
1152經典面試題解析
【面試題1】通過函數指針實現四則
運算
【面試題2】簡化超長的函數指針
類型
116this指針
1161知識點梳理
1162經典面試題解析
【面試題1】this指針常識性問題
【面試題2】鏈式訪問對象成員
【面試題3】通過空指針調用類的成員
函數
117空指針和野指針
1171知識點梳理
1172經典面試題解析
【面試題1】常見的野指針
【面試題2】在構造函數中釋放對象
本身
118引用
1181知識點梳理
1182經典面試題解析
【面試題1】簡述指針與引用的區別
【面試題2】指針和引用的使用
【面試題3】使用常量初始化引用
第12章 內存管理
121堆內存與棧內存
1211知識點梳理
1212經典面試題解析
【面試題1】簡述程序中的四大
存儲區
【面試題2】簡述棧空間與堆空間的
區別
【面試題3】簡述遞歸程序潛在的
風險
122內存泄漏
1221知識點梳理
1222經典面試題解析
【面試題1】預防內存泄漏的方法
【面試題2】找出不易察覺的內存
泄漏
123內存越界
1231知識點梳理
1232經典面試題解析
【面試題1】訪問vector元素時的越界
問題
【面試題2】越界操作導致程序崩潰的
原理
第13章 字符串
131C標准字符串函數
1311知識點梳理
1312經典面試題解析
【面試題1】字符串標准庫函數的
使用1
【面試題2】字符串標准庫函數的
使用2
【面試題3】不使用C/C++庫函數,編程
實現函數strcmp的功能
【面試題4】不使用C/C++庫函數,編程
實現函數strcpy的功能
【面試題5】不使用C/C++庫函數,編程
實現函數strstr的功能
【面試題6】簡述memcpy與strcpy的
區別
【面試題7】程序改錯
132字符串算法設計題精講
【面試題1】編程實現字符串中單詞的
翻轉
【面試題2】編程實現字符串的循環
右移
【面試題3】從字符串的指定位置刪除指定
長度的子串
【面試題4】找出0/1字符串中0和1連續
出現的最大次數
【面試題5】編程查找兩個字符串中的最大
公共子串
【面試題6】在字符串中刪除特定
字符
【面試題7】字符串內容重排
第14章 面向對象
141面向對象的基本概念
1411知識點梳理
1412經典面試題解析
【面試題1】簡述面向過程和面向對象的
區別
【面試題2】簡述面向對象的基本
特征
【面試題3】簡述面向對象的設計
原則
142類的聲明
1421知識點梳理
1422經典面試題解析
【面試題1】簡述類和結構體的區別
【面試題2】類中的靜態數據成員與靜態
成員函數
【面試題3】簡述const修飾符在類中的
用法
【面試題4】簡述友元函數和友元類的
概念
143構造函數和析構函數
1431知識點梳理
1432經典面試題解析
【面試題1】構造函數中的常見錯誤
【面試題2】構造函數和析構函數的執行
順序
【面試題3】實現一個最基本的
String類
144函數重載
1441知識點梳理
1442經典面試題解析
【面試題1】C語言不支持函數重載的
原因
【面試題2】識別真假函數重載
【面試題3】簡述函數重載與函數覆蓋的
區別
【面試題4】容易忽視的名字隱藏
問題
145運算符重載
1451知識點梳理
1452經典面試題解析
【面試題1】運算符重載的常識性
問題
【面試題2】重載前自增運算符和后自增
運算符
【面試題3】通過運算符重載實現復數
加減
146繼承
1461知識點梳理
1462經典面試題解析
【面試題1】簡述繼承與組合的區別
【面試題2】簡述公有繼承、私有繼承和
保護繼承的區別
【面試題3】父類構造函數與子類構造函數
的關系
147虛繼承
1471知識點梳理
1472經典面試題解析
【面試題1】虛繼承中的構造函數的
調用
【面試題2】計算虛繼承中對象占用的
空間
148多態與虛函數
1481知識點梳理
1482經典面試題解析
【面試題1】虛函數的常識性問題
【面試題2】簡述虛函數表的概念
【面試題3】通過虛函數實現各種圖形計算
的多態性
第15章 模板與泛型編程
151模板
1511知識點
網路書店
類別
折扣
價格
-
新書87折$459