实习面试总结

实习面试问题总结

20130803,上海

 

思杰:

       笔试:++、--和*(解引用)运算符的优先级,双向链表的插入和查询写代码。

       面试:“你简历上看没什么项目啊。。。”那时简历做的是不行,格式不好,项目经历写的也粗糙。后面写了函数指针的定义方式、刚看的,没问题。然后问我函数指针有什么用,没答上来,说凡是用函数指针的地方都能用函数名表示(貌似在哪儿看的这句话,是正确的,但是误导我很大。。。),然后问我回调函数是什么?其实这已经明显的的提示我了。。。悲剧的是去年看到过回调函数这个概念,后来也没查,就放过去了。。结果这个问题又悲剧了。。最后问我指针和引用的区别,唉,难度一直在降低。。悲剧的是我也没答好。期间还问工作的2年做了什么。。。这个问题在以后的面试前一定要想清楚怎么答。

       总结:最先面的一家,基本炮灰了。当时3月中旬,还没开始准备,也不知道问什么,也不知道自己哪里不会。

 

 

IBM:

Linux运行级别,cache一致性检测,(貌似挂了)

非递归后序遍历二叉树。快速排序,求中位数。(最后来的这个)

 

Intel:

单片机从上电到运行C代码,都做了什么工作(挂了)

       1、初始化列表和构造函数内初始化有什么不同:const变量必须在初始化列表初始化,其他变量可以在初始化列表中初始化,也可以在构造函数体内初始化,但是,在函数体内初始化,其意义是先默认初始化(在初始化列表中),然后再进行赋值。效率降低。

       2、C中的回调函数和C++中的回调函数有什么不同?C++可以使用仿函数的方式(不确定),也就是重载()。【详解】

 

SAP:

笔试:矩阵的行和列都是递增的,怎么找给定的元素在不在矩阵中;▲

给定一个数组和一个数N,问数组中是否存在2个数的和为N。怎么做才能在O(n)的时间复杂度(可以空间换时间)?▲

SAP南京创新中心,先去霸面,然后补充笔试,笔试内容和杂,C/C++ | Java 、SQL、HTML、javascript、网络等等。基本只做了C/C++和网络。交卷不到1h短信给了offer。后来没去。其实在南京还是不错了。

 

Cisco:

              1、正则表达式,贪婪/非贪婪匹配

              2、智能指针,内存管理▲

              3、虚函数概念,什么时候使用虚函数

              4、单链表逆转,给定一块内存,生成随机静态链表(写代码)

              5、快速排序(描述思想,不要求写代码)

              6、图的路径搜索(给定源点和目标点),打印每条路径。使用哪些数据结构,不同路径的公共节点等(要写代码,但是由于时间关系只写了数据结构)▲

       总结:最艰难的一场面试,从10点到12点多。现场写了2个代码,一个是单链表逆转,后面关于随机的那个写的暴力解法,面试官开始不说这样不好,然后现场比较淡定的写出来了,才说这样效率低。在他的提示下回答出了打乱数组即可。

当时已经拿到IBM存储部门的开发offer,思科这个部门说是做芯片功能验证,主要工具是c++和perl。犹豫了很久,拒掉了。非常后悔。。。

 

思科另一个部门:【大概3月份投的,6月份通知去面试。。】

 1、比较简单的算法,(现场在终端下编写并运行)

2、const 的用法(写代码测试)

3、static的用法(并发问题)

4、socket编程中的select,说下原理?这个一点不会▲

5、单链表反转(代码)

6、堆排序的过程(建堆,插入,删除)

7、冒泡排序,现场写代码

8、host1将一个ip包发给host2,详细解释包的发送过程。(数据包的头部变化,IP到MAC的转换,使用的协议,协议的运行过程。。)▲

9、如何通过dump调试程序?最后一个问题,当时没懂什么意思,之前也确实没接触过。程序崩溃掉后会有core dump,然后通过这个信息了解程序在何处down的。不懂。▲


最后用英语进行项目介绍,基本的adjust parameter这样的单词当时都没想出来,说口语太差,可能没法交流。。。(悲剧了)

 

腾讯:

笔试:

▲1、已知一个数组a[N],构造一个数组b[N],构造规则:b[i]=a[0]*a[1]*a[2]...a[N]/a[i];
要求:

1、不可以使用除法;

2、时间复杂度为O(n),空间复杂度为S(0);

3、除遍历使用的变量外,不可以使用其它变量

▲2、问题描述:

小明在[1,100]之间猜数字。规则如下:

1、如果猜的小了,会提示小明猜的小了。

2、如果猜的大了,只会提示对错,不会提示大小。

3、如果有一次猜的大了,以后猜的无论大小,都只会提示错误,不会提示大小。

问:至少几次可以猜对数字?第一次应该猜那个数字?

 

微软:

       笔试题目已经发过了。这次说面试。就2个题目。

              1、并发程序的调度问题

              一个任务分解为若干个子任务,除某些任务外,其他任务必须满足一定条件(它前面的任务结束后)才能开始。结构类似于一个公司的组织机构图,然后自己定义数据结构,写一个调度算法,使整个任务的完成时间最短,效率最高。

              2、一个大小为n的数组,元素范围为1-n,但是其中一些元素有重复,另一些元素则丢失了。要求找出重复的元素和丢失的元素。最后要求优化到时间O(n)、空间O(1)的复杂度。

              3、上道题目写的时候忘记stl中bitset类怎么用了,于是面试管让我自己写一个bitset类,能够实现如下操作:

       bitsetbs(20);

       bs[12] = 1;//第12位置位

       bs[3] = 0;//第3位清零

 

盛大:

       随机数问题和动态规划。(显然悲剧,都是之前没玩过的。。。)

 

▲是还没有解决或者不懂的,后序日志慢慢补充。




 

你可能感兴趣的:(面试)