2019最新成为HR专家的100门必修课全套课程
限时抢购仅需19元(原价3600元)
微软中国(Microsoft)

微软中国(Microsoft) 认领

计算机/互联网/通信/电子  北京   1000人以上  外企代表处

  1. 首页
  2. 公司
  3. 微软中国(Microsoft)
  4. 微软中国(Microsoft)软件开发面试
  5. 微软中国(Microsoft)软件开发面试经验&面试问题

微软中国(Microsoft)软件开发面试经验

面试成功 上海 难度一般

微软中国(Microsoft)软件开发面试经验&面试问题

应聘公司
微软中国(Microsoft)
面试职位
面试时间
2011-10-09 — 2011-10-09

面试问题

用c语言的char* 还有相关的系统函数,实现一个String类,应该具有常见的功能

面试过程

前几天在学校bbs上看到了微软亚洲工程院招聘软件开发的帖子,自己抱着试试看的态度在网上投了简历。结果在不到一周的样子,也就是昨天收到了面试的电话。问我周五有没有时间过去,我说上午任何时间都可以,然后就约了上午10点。觉得他们的效率还是很高的,不像有的公司,都好几周也没有音信,让人心里很不爽,就算是不要也应该给应聘者发个邮件说明一下,这样人家也就不往那想了。<br><br> 今天早上9点多我到了学校东门,等车去面试的地点,希格玛大厦。从9点十几分一直等到9点半多一点,才上了公交车,幸好路很近(我查了只有3公里多),9 点50分的时候就到了,时间正好。又一次感受了北京臭名昭著的堵车,真是有时候比人走路慢多了。希格玛大厦不高,看起来也不怎么气派,不过在这里设有好几家公司在中国的总部,楼顶Microsoft的招牌特别醒目。<br><br> 我直接上了2楼的登记处进行了登记,然后就坐在一旁的椅子上等着让我面试的人过来叫我。旁边也坐了一个人,背着书包,好像也是个学生,应该也是来面试的,和我一样拿着一个Visitor的标志牌。在那坐着也没什么事,就随便看看微软里面的布置,觉得环境还是挺不错的。<br><br> 到10点多一个很年轻的人出来叫我的名字,然后和他一块进去面试。我以前参加面试都有点紧张,这次竟然没有,可能是因为他比较随和,而且也是一对一的,所以没有给我造成任何压力。他给我倒了杯水后正式开始了面试。<br><br> 他说因为我没有什么开发经历,所以主要就问我一些语言上的问题还有算法题目。开始问了我一些C语言的特点,内存分配的函数,函数出错的一些解决方案等等感觉自己还答得不错。然后就问C++,继承,虚函数,类,运算符重载,异常的处理等等,delete和delete[]的区别等等,还有为什么要引入这些概念。哈哈,说来也巧,我最近刚看了C++的发明这些的The C++ programming language(special edition),看的时候觉得比较难,因为作者很多问题都讲得很深入,这次他问得问题基本上都在那本上有,所以我还都能答出来,就是有一个虚函数的具体实现细节我不太清楚,不过从他的表情上可以看出来他还是比较满意的。<br><br> 后面就要考算法,说是尽量要写出具体的代码。他问我算法学得怎么样,我就说应该还好吧。我对自己的算法功底还有一定的信心,虽然不是特别好,但觉得一般的面试应该是可以通过的。<br><br> 第一道是求小于等于k的所有的素数。我写了一个筛选法的程序,如下<br><br> char* tag=new char[k+1];<br><br> for(int i=2;i&lt;=k;i++)<br><br> if(tag[i]!='1')<br><br> {<br><br> cout&lt;&lt;i&lt;&lt;endl;<br><br> for(int j=i+i;j&lt;=k;j+=i)<br><br> tag[j]='1';<br><br> }<br><br> 他看了一下还问我说那if里面的语句就不会执行,我说不是啊,肯定会的。他说你没有进行初始化,我说没有必要,因为我知道系统对char 的默认值不是'1',所以可以这样用。(哈哈,这个程序我都用了好几遍了,所以还是很有信心的)。然后他说你这样写我感到很意外,我也有点诧异,就是一个筛选法也没什么,从他的反应我知道这道题答得他感到很满意。<br><br> 下来他问了一道题目,说是我现在有一个黑名单,现在又来了一个人的名字,我想确定他是否在黑名单里,问我怎么实现好。我就说了很多,排序然后二分搜索,还说了Hash方法,然后他让我设计一个最简单的hash方法,我说了把字符串转化为一个整数n,然后n%M得到它的地址,他又问了M一般取那些值,我说一般取素数。他又问我有没有其他的想法,我说平衡二叉树。他说黑名单里有N个名字,问我查询一次的效率是多少,我说logN+1,他说不用那么准确,一个量级就可以了。<br><br> 他说下来给你30分钟写一道算法题,你可以仔细分析然后再写。有一个课程表,有课程名和编号,还有一些课程的先导课信息,参数是vector&lt;string&gt;,例如<br><br>A:B C D<br><br>B:C<br><br>C:<br><br>D:<br><br> 表示有4门课,课程名分别为A,B,C,D,然后再上A课程之前必须先上B,C,D,上B之前必须先上C,然后让你求出一个上课的顺序。看到题目我也很高兴,心想这不就是一个拓扑排序的题目吗,只要建立一张表,然后用一个队列进行处理就可以了,所以十来分钟就写出来了,他看了点了点头。<br><br> 面试时间过的挺快的,一个小时没感觉就过去了。然后他说就到这里了,说你面试得很不错,下周一给消息。然后把我送了出来,在路上我说你很年轻,他说不年轻了,高你3级。哈哈,说不定是北大的师兄。然后礼貌性的握手,道别。<br><br> 这次面试虽然我还不知道结果,但自己感觉还是面的挺不错的。可能也是自己运气好,他问得问题大都很基本,算法也是很简单的,都是自己以前做过好几次的,所以都能很容易的拿下。<br><br> 现在只能等消息了!<br><br> -----------------------9月30号--------------------------<br><br> 今天下午终于等到消息了,一个声音很甜美的mm打电话过来说我已经通过了微软亚洲研究院实习生的第一轮面试,然后预约明天下午的第二轮面试,我说可以。心里想,一个实习生都弄得这么复杂,何必呢?唉,我没有选择的余地,只能是将自己最好的一面展示出来了。<br><br> 哈哈,希望这次我的人品能大爆发一次!<br><br> -----------------------10月7号-------------------------<br><br> 今天下午去参加了第二轮面试,开始是一个漂亮的mm出来领我进去的,我以为是她面我呢,她把我带到面试的地方倒了杯水就走了,真有点失望,哈哈。<br><br> 他就开始问我题目,因为我之前没有做过什么项目,所以他就只能问语言细节了。这次让我用c语言的char* 还有相关的系统函数,实现一个String类,应该具有常见的功能。在后面的一个小时里我就写了这么一个类,可是我之前的运算符重载那些内容用得很少,所以写的东西漏洞百出,有的连语法都不太记得了。那个工程师挺好的,一步一步地指出我的问题,然后在他的指导下我才把那个类作的基本上可以用了。一个多小时就这样过去了。<br><br> 最后送我出来,说2周之内给我消息。哈哈,虽然我感觉希望不是很大,不过还有那么一点点期待。这次的面试经历,让我感觉到其实基础知识特别重要的,他们问的问题基本上在一般的教科书上都可以找到,就是平时不太注意了,只能以后加强了。<br><br> 马上就期末考试了,我们试考得差不多的时候也差不多是他们那边出结果的时候,时间上倒是挺不错的。<br><br> bless!<br><br> --------------------10月8号------------------------------<br><br> 下午一点多的时候,有人给我打电话,一接说是微软的员工,我心想拒绝的速度可真快啊,结果很出乎我的意料,他说我通过了面试。可以来实习了,然后就和我谈了一些实习的相关事宜。哈哈,这种感觉真好。<br><br> ------------------------10月9号------------------------------

我要分享软件开发面试经验

正在加载验证码...

其它公司软件开发面试经验
微软中国(Microsoft)其它面试经验