面试与被面试总结

时间:2022-12-12 05:33:11
面试与被面试总结
我从事技术工作,
这几年的面试与被面试总结
先说我去被面试的经验吧。
回答清楚了2个问题,就能顺利过关了。
1。为什么要离开上一家公司。
2。公司为什么要雇佣你。
问第一个问题的是hr(或老板),呵呵 ,即使你技术过关,hr那里没有好的影响,结果是一个字,难!
如何回答呢? hr想推论出你在他的公司能呆多久。这个时候,你甚至可以明确告诉他,我在贵公司至少能呆n(n>=1)年----当然,你没有把握的话,绝对不能乱说,社会上混,要讲信用的。
有一次,我就在这个问题上吃了大亏,我看公司环境还不错,就我自做主张回答1年,结果,hr心目中是m(m>=2)年,呵呵,结果可想而知了。要知道,技术面试都过关了,Hr面试是2选1,在回家的路上,我只能祈祷对手自动放弃或找到了其他更好的工作。:)
问 第二个问题的是技术官。你要让他知道你已经做过哪些商业作品。一定要是商业作品。在里面负责哪方面具体工作,对于你熟悉的地方要多说。最好就是能争取笔试 或上机,因为用用口说的话,大家理解都不一样,误差可能很大,结果对你相当不利。在这个问题上我也吃过亏的,曾有一个我很看好的职位,认为把握很大,业务 理解上也很有优势,和技术官一谈,结果是game over。要知道,在其他公司的上机和笔试中,我都能在应聘者中取得高分。
再说我去面试别人的经验吧。
当 时,我的任务是出题,给分。若你觉得题很难,那么,请千万不要放弃,显然,你的对手也觉得难。只要坚持,我会认为这人有耐心很毅力,在以后的工作中也是好 的合作者。题一定要做完,表现出认真的态度,若有疑问或卡壳,还可以寻求面试官的帮助,这些不会减分,相反,会增加你和他们的接触机会,面试官会评估你的 沟通能力。
有一次,有1个人来面试,题没有完全ok,但很规范,态度很认真,他把他知道的都做上去了,我给了他技术类的高分。后来,顺利进入公司,再后来进步很快,成了重要角色。
若文章对你有帮助的话,请在此讨论。
祝你成功
面试题
1.链表和数组的区别在哪里? 
2.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法? 
3.编写实现数组排序的一种算法。说明为什么你会选择用这样的方法? 
4.请编写能直接实现strstr()函数功能的代码。 
5.编写反转字符串的程序,要求优化速度、优化空间。 
6.在链表里如何发现循环链接? 
7.给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里。 
8.写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码 ,编写出一个从字符串到长整形的函数?) 
9.给出一个函数来输出一个字符串的所有排列。 
10.请编写实现malloc()内存分配函数功能一样的代码。 
11.给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。 
12.怎样编写一个程序,把一个有序整数数组放到二叉树中? 
13.怎样从顶部开始逐层打印二叉树结点数据?请编程。 
14.怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)? 
另外:
一、单项选择题:(共12题,每题2分,共24分) 
1. 下面哪一个不是C++的标准数据类型? ( D) 
A. int B. char
C. bool D. real
2. break关键字在哪一种语法结构中不能使用? (C) 
A. for语句 B. switch语句
C. if语句 D. while语句 
3. 类的继承方式有几种? (B ) 
A. 两种 B. 三种
C. 四种 D. 六种
4. extern关键字的作用是什么? (D)
A. 声明外部链接 B. 声明外部头文件引用
C. 声明使用扩展C++语句 D. 声明外部成员函数、成员数据。
5. C库函数strstr的功能是? (A )
A. 查找子串 B. 计算字符串长度
C. 字符串比较 D. 连结字符串 
6. stl::deque是一种什么数据类型? (A )
A. 动态数组 B. 链表
C. 堆栈 D. 树 
7. STL库里含有下面的哪一种泛型算法? (D )
A. KMP查找 B. 折半查找
C. 冒泡排序 D. 快速排序 
8. 现在最快且最通用的排序算法是什么? (A )
A. 快速排序 B. 冒泡排序
C. 选择排序 D. 外部排序
9. Win32下的线程的哪一种优先级最高? ( C)
A. THREAD_PRIORITY_HIGHEST 高优先级
B. THREAD_PRIORITY_IDLE       最低优先级,仅在系统空闲时执行
C. THREAD_PRIORITY_TIME_CRITICAL 最高优先级
D. THREAD_PRIORITY_ABOVE_NORMAL 高于普通优先级
10. 下面四个选项中,哪一个不是WinMain函数的参数? (D )
A. HINSTANCE B. INT
C. LPSTR D. WPARAM 
11. VC++的编译器中,运算符new底层的实现是什么? ( B )
A. VirtualAlloc() B. HeapAlloc()
C. GlobalAlloc() D. AllocateUserPhysicalPages() 
12. 下面哪一本C++参考书最厚? ( C)
A. 《Think in C++》 B. 《深入浅出MFC》
C. 《C++ Primer》 D. 《Effective C++》 
13. 当调用Windows API函数InvalidateRect,将会产生什么消息(A) 
A. WM_PAINT                      B. WM_CREATE   
C. WM_NCHITTEST               D. WM_SETFOCUS 
14. 关于virtual void Draw()=0,下面说法正确的有几个(C) 
(1)它是纯虚函数(对)
(2)它在定义它的类中不能实现(对)
(3)定义它的类不可实例化(对)
(4)如果一个类要继承一个ADT类,必须要实现其中的所有纯虚函数(错)//可以不实现,派生之后的类仍旧作为一个抽象类.
A. 1                                B. 2
C. 3                                D. 4
二、不定项选择题:(共6题,每题3分,共18分,多选、错选、漏选均不给分)
1. vector::iterator重载了下面哪些运算符? (ACD) 
A. ++ B. >>
C. *(前置) D. == 
2. CreateFile( )的功能有哪几个? (AB )
A. 打开文件 B. 创建新文件
C. 文件改名 D. 删除文件
3. 下面哪些是句柄(HANDLE)? (ABCD )
A. HINSTANCE 实例句柄B. HWND 窗口句柄
C. HDC 设备描述符号句柄  D. HFONT  字体句柄
4. 下面哪些不是OpenGL标准几何元素的绘制模式? (A )
A. GL_FOG B. GL_LINE_STRIP
C. GL_POINTS D. GL_TRIANGLE_FAN 
5. 下面哪些运算符不能被重载? (ABD )
A. 做用域运算符“::” B. 对象成员运算符“.”
C. 指针成员运算符“->” D. 三目运算符“? :” 
6. 下面哪些人曾参与了世界上第一个C++编译器的开发? ( )
A. Bill Gates B. Stanley Lippman
C. Anderson Hejlsberg D. Bjarne Stroustrup
7. 以下说法正确的是? ( ABC)
A. 头文件中的 ifndef/define/endif 是为了防止该头文件被重复引用。
B. 对于#include  <filename.h> ,编译器从标准库路径开始搜索 filename.h
   对于#include  “filename.h” ,编译器从用户的工作路径开始搜索 filename.h
C. C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C     语 言的不同。假设某个函数的原型为: void foo(int x, int y); 该函数被C编译器编译后在库 中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。C++提供了C连接交换指定符号extern“C”来解决名字匹配问 题。
D. fopen函数只是把文件目录信息调入内存。//错,fopen是把整个文件读入内存
三、填空题:(共8题,每题3分,共24分)
1. 一个大小为320 X 192,颜色为灰度索引色的设备相关位图有______字节。如果此位图颜色为24位真彩色,则它的大小有______字节。
2. Windows API的中文意义是____  windows 应用程序接口___。
3. 计算反正弦的库函数是__ asin()____;计算浮点数绝对值的库函数是__ fabs()____;计算浮点数n次方的库函数是_ _pow()____;将浮点数转化为字符串的库函数是___ fcvt()___
4. 如果i等于5,那么( ++i ) - -的返回值是__ 6__
5. API LoadBitmap()的功能是从__ 指定的模块和或应用程序实例__中读取位图数据到内存。
6. new和_ _delete___对应,malloc和_ free___对应,他们之间_ 不能__交叉混用。calloc的功能是__ 为数组动态分配内存___,realloc的功能是_ 改变原有内存区域的大小_。
7. SendMessage和PostMessage都会向窗体发送一个消息,但SendMessage__ 将一条消息发送到指定窗口 , 立即处理__而PostMessage__ 将一条消息投递到指定窗口的消息队列 , 不需要立即处理 ___
8. 输出指定圆心、半径、边数的圆上的点:
const int nCount = 12;
const double dOrgX = 5.0,
dOrgY = 3.0;
const double dRadius = 2.0;
for( int i = 0; i < nCount; i++ )
{
double dAngle = M_PI * 2.0 / (double)nCount * i;
cout << "第" << i << "点:X = " << ________; cout << ", Y = " << __________ << endl;
}
三、判断题:(共12题,每题2分,共24分)
1. 一个类必须要有一个不带参数的构造函数。 错
2. 你不能写一个虚的构造函数。 对
3. 类里面所有的函数都是纯虚函数时才是纯虚类。 错
4. const成员函数对于任何本类的数据成员都不能进行写操作。 对
5. 函数中带默认值的参数必须位于不带默认值的参数之后。 对
6. char *p = "Test"; p[0] = 'R'; 错
7. cout << "Test"; 对
8. stl::list不支持随机访问叠代器。 对
9. stl::vector的效率比stl::list高。 错
10. VC和VC++是一回事,而VC++是一种比C++更难一些的语言。 错
11. 理论上,new和malloc造成的内存泄露都会由操作系统回收。 错 
12. 在C++中struct和class的差别很大,所以从语法上不能混用。对
四、简述题(共3题,每题5分,共15分) 
1. 请简述PeekMessage和GetMessage的区别。
答: Peekmessage和Getmessage都是向系统的消息队列中取得消息,两个函数的不同在于取不到消息的时候,若Getmessage()向消息 队列中取不到消息,则程序的主线程会被OS(操作系统)挂起,等到有合适的消息时才返回;若是用Peekmessage()在消息队列中取不到消息,则程 序会取得OS控制权,运行一段时间。
另外,在处理消息的时候,GetMessag()会将消息从队列中删除,而PeekMessage()可以设置最后一个参数wRemoveMsg来决定是否将消息保留在队列中。
2. 请列出你所知道的在Windows SDK平台上,实现计时功能的方法。
答:可以使用SetTimer函数创建一个计时器,SetTimer的函数原型如下:
UINT_PTR  SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc 
3. 请简述你所知道的const的各种用法。
答: const 常量
const 修饰类的数据成员
const 修饰指针
const 应用在函数声明中
const 应用在类成员函数
五、编程题:(共3题,第1小题7分,第2小题14分,第3小题24分)
1. 深度遍历二叉树。
struct Node
{
Node *Parent;

Node *Left, *Right;

};
void Through(Node *Root)
{
}
2. 二分法查找。

int DicFind( int *Array, int Count, int Value )
{

}
3. 写出字符串类String的默认构造函数、析构函数和重载赋值运算符。
已知类String的原型为:
class String
{
public:
String( const char *pStr = NULL ); // 默认构造函数
~String( void ); // 析构函数
String &operate = ( const String &Source ); // 重载赋值运算符
private:
char *m_pData; // 指向字符串的指针
};
转自:http://blog.chinaunix.net/uid-14607221-id-2794633.html