本书是为了满足广大应聘IT岗位的毕业生及社招人士复习所学知识,提高职场竞争力而编写的。书中涵盖了C/C++程序员面试所需掌握的全部知识点,内容涉及C/C++基础、面向对象、字符串、数据结构、算法设计、操作系统、数据库、计算机网络以及综合能力测试题等面试中经常出现的知识点。与此同时,本书还包含了相当篇幅的面试技巧介绍,并精心搜集了面试官常问的20个问题和外企常考的20道英文面试题,帮助求职者在面试过程中展现自身技术硬实力的同时更能充分发挥自身素质和个人魅力等软实力。
本书不只是一部“习题集”,在每节中都对本节所涉及的知识点进行了完整的梳理,这样不仅可以帮读者夯实专业基础,从根本上掌握程序员笔试面试的要领,也为未来的工作打下了坚实的基础。
本书采用笔记体裁方式编写,核心内容用红色高亮标注,重点问题和知识点加批注注释,使读者在阅读此书时易于上手,掌握关键信息,提高学习效率。
为了更好地帮助读者备战笔试面试,本书还对每一节中的知识点梳理以及一些比较有代表性的题目进行了视频讲解,使读者学习起来更加灵活有趣,知识掌握得也更加牢固。
本书涵盖了各大公司近年来C/C++笔试面试真题,具有性,在讲解上力求深入浅出,循序渐进,并配以插图解说,使读者能够学得懂,记得牢,愿意学,帮助读者更好地进行求职准备。
本书是一本计算机相关专业毕业生以及社招人员笔试、面试求职参考书,同时也可作为有志于从事IT行业的计算机爱好者阅读使用。
目录
如何使用本书
前言
第一部分求职攻略技巧篇
第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位取反
【面试题4】找出人群中唯一的单
身狗
【面试题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知识点