微软面试一百道题目精选

合集下载

微软面试题

微软面试题

1、微软面试题1--飞机质量问题怎样简单的测量一个飞机的质量?2、微软面试题2--飞机加油问题每个飞机只有一个油箱,飞机之间可以相互加油(注意是相互,没有加油机)一箱油可供一架飞机绕地球飞半圈,问: 为使至少一架飞机绕地球一圈回到起飞时的飞机场至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)3、微软面试题3--钢管取球问题四个男考生在一个房间里,水泥地面上凝着一根钢管(意思是说拔不动、弄不弯),底端封闭,内空,直径比一个乒乓球略大。

房间里有一把剪刀,一根10米长的绳子,请把掉进钢管的乒乓球拿出来4.微软面试题4--杀病狗问题一个大院子里住了50户人家,每家都养了一条狗,有一天他们接到通知说院子里有狗生病了,并要求所有主人在发现自己家狗生病的当天就要把狗枪杀掉。

然而所有主人和他们的狗都不能够离开自己的房子,主人与主人之间也不能通过任何方式进行沟通,他们能做的只是通过窗户观察别人家的狗是否生病从而判断自己的狗病否。

(就是说,每个主人只能看出其他49家的狗是不是生病,单独看自己的狗是看不出来的)第一天没有枪声,第二天还是没有枪声,第三天传出一阵枪声,问有多少条狗被枪杀。

因为是翻译的,所以有些条件不太清楚。

我再说明一下:1。

确实有狗病了,且狗病不会传染。

即病狗数目不变。

2。

相当于每个人无法看见自己的狗,只通过别人的狗的情况来判断。

每个人都绝顶聪明3。

每天每个人只思考一次,也就是说‘一天’只是一个抽象的概念,不要在‘一天上钻牛角尖。

5、微软面试题5--分金链问题及其延伸在《程序员》杂志试刊一中曾刊登过一道微软用来面试的题目:工人为你工作7天,回报为一根金条,必须在每天付给他们一段,且只能截2次,你将如何付费?我们再来看我自己编的一道题目:如何将7块金子放入3个箱子中,使我可以整箱取走任意块数?6、微软面试题6--测流量问题怎样简单的测量亚马逊河的流量?7、微软面试题7--三个灯泡有两间屋,甲和乙,甲屋有三个开关,乙屋有三个灯泡,甲屋是看不到乙屋,而甲屋的每一个开关是控制乙屋的其中一个灯泡,问你怎样可以只停留在甲屋一次,停留在乙屋一次,而可以知道那个开关是控制那个灯泡呢?8、微软面试题8--下水道盖子为什么下水道盖是圆的!!!9、微软面试题9--恐怖隧道赶集的时候突然下起雨来。

微软面试的100道题目(2)

微软面试的100道题目(2)

微软面试的100道题目(2)推荐文章经典的微软面试题目及参考答案热度:微软搞怪的面试题有哪些呢热度:世界500强面试题:微软的面试热度:世界500强面试题:微软公司的智力题热度:世界500强面试题:微软公司的应用题热度:40、你会给失聪的人设计什么样的闹钟?41、如果你有一个许多部件可以拆卸的时钟,你将它一块块拆开,但是没有记住是怎样拆的。

然后你将各个零件重新组装起来,最后发现有三个重要零件没有放进去。

这时你如何重新组装这个时钟?42、如果你需要学习一门新的计算机语言,你会怎样做?43、假设由你负责设计比尔·盖茨的卫生间。

当然,钱不成问题,但是你不可以和比尔谈。

你会怎样做?44、到目前为止,你遇到的最难回答的问题是什么?45、如果微软公司说,我们愿意投资500万美元用来开发你提出的方案。

那么你会做什么?为什么?46、如果你将世界上所有的计算机制造商召集起来,告诉他们必须要做一件事,你会让他们做什么事?47、如果你在五年内会得到一笔奖金,你认为会是因为什么?关注你的成绩的人会是谁?48、你如何教自己的奶奶使用微软excel表格系统?49、为什么当我们在任何一家宾馆打开热水龙头时,热水会马上流出来?50、你为什么想在微软工作?51、假设你回到家,进入自己的房间,打开电灯开关,可是一点反应都没有——灯没有亮。

这时,你在判断问题出在哪里时,会依次采取怎样的做法?52、下列哪项叙述是错误的?(a)主观主义者可能也是相对论者。

(b)相对论者也可能是客观主义者。

(c)绝对论者也可能是主观主义者。

(d)客观主义者也可能是绝对论者。

53、如果就像萨特的存在主义所说的,“人要为自己的热情负责”,那么无论我们做什么,我们都:(a)违背了自己的意愿。

(b)没有经过思考。

(c)是自由的。

(d)是出于对上帝的蔑视。

54、萨特宣称,对人类来说,“存在先于本质”,换言之:(a)当人们理智的时候,他们才符合人类的本质。

微软面试题汇总

微软面试题汇总

微软面试题汇总第一组1。

烧一根不均匀的绳,从头烧到尾总共需要1个小时。

现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?2。

你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。

抓取多少个就可以确定你肯定有两个同一颜色的果冻?3。

如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?4。

一个岔路口分别通向诚实国和说谎国。

来了两个人,已知一个是诚实国的,另一个是说谎国的。

诚实国永远说实话,说谎国永远说谎话。

现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。

请问应该怎么问?5。

12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。

13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)6。

在9个点上画10条直线,要求每条直线上至少有三个点?7。

在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?8。

怎么样种植4棵树木,使其中任意两棵树的距离相等?第二组1。

为什么下水道的盖子是圆的?2。

中国有多少辆汽车?3。

将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁?4。

如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉哪一个,为什么?5。

多少个加油站才能满足中国的所有汽车?6。

想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下?7。

为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出?8。

你怎样将Excel的用法解释给你的奶奶听?9。

你怎样重新改进和设计一个ATM银行自动取款机?10。

如果你不得不重新学习一种新的计算机语言,你打算怎样着手来开始?11。

如果你的生涯规划中打算在5年内受到奖励,那获取该项奖励的动机是什么?观众是谁?12。

如果微软告诉你,我们打算投资五百万美元来启动你的投资计划,你将开始什么样商业计划?为什么?13。

微软面试100题及答案

微软面试100题及答案

微软面试100题及答案【篇一:微软技术面试100题答案1】p class=txt>1.把二元查找树转变成排序的双向链表(树)题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。

要求不能创建任何新的结点,只调整指针的指向。

10/ /6 14/ / / /4 8 12 16转换成双向链表4=6=8=10=12=14=16。

首先我们定义的二元查找树节点的数据结构如下:struct bstreenode{int m_nvalue; // value of nodebstreenode *m_pleft; // left child of nodebstreenode *m_pright; // right child of node};sorehead:第一题:基本就是采用一次遍历即可,楼主采用的是递归方法。

但有两个建议:1、函数里面最好不好使用全局变量,采用参数传递的方式可能更好。

全局变量能少用就少用。

2、if (null == pcurrent)这种方式我也不是很推荐。

我知道采用这种方式的好处是一旦少写了一个等号,编译器会报错,null不是一个合法左值。

其实我最开始写代码时也是这么写的,很长时间都觉得挺好。

但这有个悖论,就是一个开发者能够想起来这么写的时候,这说明他知道这么是要做等值判断,自然也会知道该写==而不是=,想不起来的时候自然也就该犯错误还是犯错误,并不能起到原本初衷。

代码写多了,会发现这么写真有点多此一举。

july关于第一题,我再多说点:我们可以中序遍历整棵树。

按照这个方式遍历树,比较小的结点先访问。

如果我们每访问一个结点,假设之前访问过的结点已经调整成一个排序双向链表,我们再把调整当前结点的指针将其链接到链表的末尾。

当所有结点都访问过之后,整棵树也就转换成一个排序双向链表了。

view plaincopy to clipboard? // 遍历二元查找树中序??????????????????????????????????????????????????? { if (null == pcurrent) {return; } if (null != pcurrent-m_pleft) { ergodicbstree(pcurrent-m_pleft); } // 节点接到链表尾部converttodoublelist(pcurrent); // 右子树为空 if (null != pcurrent-m_pright) { ergodicbstree(pcurrent-m_pright); }}// 二叉树转换成listvoid converttodoublelist(bstreenode * pcurrent){ pcurrent-m_pleft = plistindex; if (null != plistindex) { plistindex-m_pright = pcurrent; } else??????????phead = pcurrent; } plistindex = pcurrent; coutpcurrent-m_nvalueendl;}或者网友何海涛所述:view plaincopy to clipboard???????????????????????????????????????? void convertnode(bstreenode* pnode, bstreenode* plastnodeinlist){if(pnode == null)return; bstreenode *pcurrent = pnode; // convert the left sub-tree if (pcurrent-m_pleft != null) convertnode(pcurrent-m_pleft, plastnodeinlist); // put the current node into the double-linked list pcurrent-m_pleft = plastnodeinlist; if(plastnodeinlist != null)plastnodeinlist-m_pright = pcurrent;plastnodeinlist = pcurrent; // convert the right sub-treeif (pcurrent-m_pright !=null)convertnode(pcurrent-m_pright, plastnodeinlist);}?????????????????????? bstreenode* convert_solution1(bstreenode* pheadoftree){bstreenode *plastnodeinlist =null;convertnode(pheadoftree, plastnodeinlist); // get the head of the double-linked listbstreenode *pheadoflist = plastnodeinlist;while(pheadoflist pheadoflist-m_pleft)pheadoflist = pheadoflist-m_pleft;return pheadoflist;}但显然,以下这种思路更容易理解些:view plaincopy to clipboard ???????????????????????????????? bstreenode* convertnode(bstreenode* pnode, bool asright){if(!pnode)return null;bstreenode *pleft =null;bstreenode *pright = null;// convert the left sub-treeif(pnode-m_pleft)pleft = convertnode(pnode-m_pleft, false);// connect the greatest node in the left sub-tree to the current nodeif(pleft){pleft-m_pright = pnode;?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?????? }// convert the right sub-treeif(pnode-m_pright)pright = convertnode(pnode-m_pright, true);// connect the least node in the right sub-tree to the current nodeif(pright){pnode-m_pright = pright;pright-m_pleft = pnode;}bstreenode *ptemp = pnode;//if the current node is the right child of its parent, // return the least node in the tree whose root is the currentnodeif(asright){while(ptemp-m_pleft)ptemp = ptemp-m_pleft;}// if the current node is the left child of its parent, // return the greatest node in the tree whose root is the currentnodeelse{while(ptemp-m_pright)ptemp = ptemp-m_pright;}【篇二:微软面试100题】ss=txt>题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。

微软公司智力测试题(3篇)

微软公司智力测试题(3篇)

第1篇引言微软公司作为全球领先的技术公司,对人才的选拔标准极为严格。

智力测试是微软面试过程中的重要环节,旨在考察应聘者的逻辑思维、创新能力、问题解决能力等多方面的能力。

以下是一套模拟微软公司智力测试题,旨在帮助您了解并准备此类测试。

第一部分:逻辑推理题题目1:假设有四个开关,分别对应着四个房间中的灯。

你只能进入其中一个房间一次,如何确定哪个开关对应哪个房间中的灯?解答:1. 打开第一个开关,等待一段时间,然后关闭。

2. 进入第二个房间,观察灯的状态。

- 如果灯亮着,那么第一个开关对应第二个房间。

- 如果灯不亮,但灯泡是热的,那么第一个开关对应第一个房间。

- 如果灯不亮,灯泡也不热,那么第一个开关对应第三个或第四个房间。

3. 打开第三个开关,进入第四个房间。

- 如果灯亮着,那么第三个开关对应第四个房间。

- 如果灯不亮,那么第三个开关对应第三个房间。

4. 根据上述观察,可以确定第四个开关对应的房间。

题目2:三个孩子分别在玩三个游戏,分别是跳绳、踢足球和打篮球。

已知:- 小明不会跳绳。

- 小华会踢足球。

- 小刚不会打篮球。

请问每个孩子分别玩哪个游戏?解答:- 小明不会跳绳,所以他只能玩踢足球或打篮球。

- 小华会踢足球,所以他不能是小明。

- 小刚不会打篮球,所以他只能玩跳绳或踢足球。

- 由于小华会踢足球,小明只能玩打篮球。

- 小刚不会打篮球,所以他只能玩跳绳。

- 因此,小明玩打篮球,小华玩踢足球,小刚玩跳绳。

第二部分:数学问题题目3:一个农夫有18根金条,他想要将这些金条平分给他的7个儿子,每个儿子都能得到整数根金条。

他应该如何分配?解答:由于18不能被7整除,因此无法直接平分。

但是,我们可以使用以下方法:1. 将18根金条分成三组:1, 1, 16。

2. 将第一组金条分别给前三个儿子,每人1根。

3. 将第二组金条分别给接下来的三个儿子,每人1根。

4. 将第三组金条(16根)平均分给剩下的四个儿子,每人4根。

微软面试性格测试题(3篇)

微软面试性格测试题(3篇)

第1篇尊敬的应聘者,您好!感谢您选择加入微软大家庭。

为了更好地了解您的性格特点,以便我们为您提供更合适的工作环境和发展机会,请您认真回答以下性格测试题。

本测试题共分为五个部分,请您根据自己的实际情况进行选择。

本测试题不涉及任何敏感信息,请您放心作答。

所有答案仅供参考,不代表任何歧视或偏见。

一、自我认知1. 当你遇到困难时,以下哪种情况更符合你的处理方式?A. 寻求他人的帮助B. 独自思考,自行解决C. 寻找新的方法尝试解决问题D. 选择放弃2. 在团队工作中,你更倾向于以下哪种角色?A. 领导者,带领团队完成目标B. 执行者,完成领导分配的任务C. 协调者,协调团队成员之间的关系D. 观察者,从旁观察团队工作3. 当你取得成就时,以下哪种情况更符合你的表现?A. 分享荣誉,感谢团队成员B. 保持低调,不张扬C. 突出自己的贡献,希望得到认可D. 觉得成就属于团队,无需过多关注二、沟通能力4. 在与他人交流时,你更倾向于以下哪种方式?A. 直接表达自己的观点,不拐弯抹角B. 耐心倾听,了解对方的想法C. 结合自己的观点,提出建设性意见D. 适度妥协,寻求共识5. 当你与同事发生分歧时,以下哪种处理方式更符合你的风格?A. 主动沟通,寻求解决方案B. 保持沉默,避免冲突C. 寻找第三方调解D. 避免参与,保持中立三、团队合作6. 在团队中,你更倾向于以下哪种工作方式?A. 与团队成员紧密合作,共同完成任务B. 保持独立,只完成自己的工作C. 在必要时提供帮助,但不过度依赖他人D. 优先考虑个人利益,忽略团队目标7. 当团队成员遇到困难时,以下哪种行为更符合你的表现?A. 主动伸出援手,帮助解决问题B. 保持关注,适时提供建议C. 事不关己,高高挂起D. 责怪他人,推卸责任四、适应能力8. 当你面临新的工作环境或挑战时,以下哪种情况更符合你的表现?A. 迅速适应,发挥出最佳状态B. 逐步适应,逐步提高工作效率C. 保持原状,不轻易改变D. 拒绝接受,选择离开9. 在面对压力和挑战时,以下哪种情况更符合你的应对方式?A. 保持冷静,积极应对B. 寻求支持,共同应对C. 选择逃避,避免压力D. 抱怨抱怨,消极应对五、创新思维10. 在工作中,你更倾向于以下哪种情况?A. 追求创新,尝试新的方法B. 坚持传统,遵循现有流程C. 结合创新与传统,寻求最佳方案D. 遵循领导指示,不越雷池一步11. 当你遇到问题时,以下哪种情况更符合你的处理方式?A. 尝试多种方法,寻找最佳解决方案B. 依赖经验,选择最稳妥的方法C. 借鉴他人经验,寻找类似案例D. 放弃尝试,寻求他人帮助请您根据自己的实际情况,认真作答以上测试题。

微软公司面试题

微软公司面试题

微软公司面试题以下是微软公司的员工在时所遇到的问题。

微软的顾问有时会得到一些特殊待遇,因此在面试时询问他们的问题并不真的算数,所以没有列在下面。

这些问题往往遵循以下一些基本主题:难题、运算、应用、头脑。

★你让某些人为你工作了七天,你要用一根金条作为报酬。

这根金条要被分成七块。

你必须在每天的活干完后交给他们一块。

如果你只能将这根金条切割两次,你怎样给这些工人分?★一列火车以每小时15英里的速度离开洛杉矶,朝纽约进发。

另外一列火车以每小时20英里的速度离开纽约,朝洛杉矶进发。

如果一只每小时飞行25英里的鸟同时离开洛杉矶,在两列火车之间往返飞行,请问当两列火车相遇时,鸟飞了多远?★假设一张圆盘像唱机上的唱盘那样转动。

这张盘一半是黑色,一半是白色。

假设你有数量不限的一些颜色传感器。

要想确定圆盘转动的方向,你需要在它周围摆多少个颜色传感器?它们应该被摆放在什么位置?★假设时钟到了12点。

注意时针和分针重叠在一起。

在一天之中,时针和分针共重叠多少次?你知道它们重叠时的具体时间吗?★你有两个罐子,分别装着50个红色的玻璃球和50个蓝色的玻璃球。

随意拿起一个罐子,然后从里面拿出一个玻璃球。

怎样最大程度地增加让自己拿到红球的机会?利用这种方法,拿到红球的`几率有多大?★中间只隔一个数字的两个奇数被称为奇数对,比如17和19。

证明奇数对之间的数字总能被6整除(假设这两个奇数都大于6)。

现在证明没有由三个奇数组成的奇数对。

★一个屋子有一个门(门是关闭的)和3盏电灯。

屋外有3个开关,分别与这3盏灯相连。

你可以随意操纵这些开关,可一旦你将门打开,就不能变换开关了。

确定每个开关具体管哪盏灯。

★假设你有8个球,其中一个略微重一些,但是找出这个球的惟一方法是将两个球放在天平上对比。

最少要称多少次才能找出这个较重的球?★假设你站在镜子前,抬起左手,抬起右手,看看镜中的自己。

当你抬起左手时,镜中的自己抬起的似乎是右手。

可是当你仰头时,镜中的自己也在仰头,而不是低头。

微软经典面试题

微软经典面试题

微软经典面试题1、你让工人为你工作7天,给工人的回报是一根金条。

金条平分成相连的7段,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你的工人付费?答案:分成1 2 4day1 给1 段,day2 让工人把1 段归还给2 段,day3 给1 段,day4 归还12 段,给4 段,day5 依次类推……2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。

答案:面对这样的怪题,有些应聘者绞尽脑汁也无法分成;而有些应聘者却感到此题实际很简单,把切成的8份蛋糕先拿出7份分给7人,剩下的1份连蛋糕盒一起分给第8个人。

3、一群人开舞会,每人头上都戴着一顶帽子。

帽子只有黑白两种,黑的至少有一顶。

每个人都能看到其他人帽子的颜色,却看不到自己的。

主持人先让大家看看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。

第一次关灯,没有声音。

于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。

一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。

问有多少人戴着黑帽子?答案:3人。

假如只有一个人戴黑帽子,那他看到所有人都戴白帽,在第一次关灯时就应自打耳光,所以应该不止一个人戴黑帽子;如果有两顶黑帽子,第一次两人都只看到对方头上的黑帽子,不敢确定自己的颜色,但到第二次关灯,这两人应该明白,如果自己戴着白帽,那对方早在上一次就应打耳光了,因此自己戴的也是黑帽子,于是也会有耳光声响起;可事实是第三次才响起了耳光声,说明全场不止两顶黑帽,依此类推,应该是关了几次灯,有几顶黑帽。

4、请估算一下CNTOWER电视塔的质量。

答案:比如你怎样快速估算支架和柱子的高度、球的半径,算出各部分的体积等等,题目只是手段,不是目的,最终得到一个结果固然是需要的,但更重要的是对考生得出这个结果的过程也就是方法的考察。

Mr Miller举例说明了一种比较合理的答法,他首先在纸上画出了CN TOWER的草图,然后快速估算支架和各柱的高度,以及球的半径,算出各部分体积,然后和各部分密度运算,最后相加得出一个结果。

微软面试题及答案

微软面试题及答案

第一组1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。

现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。

抓取多少个就可以确定你肯定有两个同一颜色的果冻?3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?4.一个岔路口分别通向诚实国和说谎国。

来了两个人,已知一个是诚实国的,另一个是说谎国的。

诚实国永远说实话,说谎国永远说谎话。

现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。

请问应该怎么问?5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。

13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)6.在9个点上画10条直线,要求每条直线上至少有三个点?7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?8.怎么样种植4棵树木,使其中任意两棵树的距离相等?第二组1.为什么下水道的盖子是圆的?2.中国有多少辆汽车?3.将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁?4.如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉哪一个,为什么?5.多少个加油站才能满足中国的所有汽车?6.想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下?7.为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出?8.你怎样将Excel的用法解释给你的奶奶听?9.你怎样重新改进和设计一个ATM银行自动取款机?10.如果你不得不重新学习一种新的计算机语言,你打算怎样着手来开始?11.如果你的生涯规划中打算在5年内受到奖励,那获取该项奖励的动机是什么?观众是谁?12.如果微软告诉你,我们打算投资五百万美元来启动你的投资计划,你将开始什么样商业计划?为什么?13.如果你能够将全世界的电脑厂商集合在一个办公室里,然后告诉他们将被强迫做一件事,那件事将是什么?第三组1.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候给他们一段金条。

微软公司的面试问题头脑

微软公司的面试问题头脑

微软公司的面试问题头脑
★如果你需要学习一门新的计算机语言,你会怎样做?
★假设由你负责设计比尔·盖茨的卫生间。

当然,钱不成问题,但是你不可以和比尔谈。

你会怎样做?
★到目前为止,你遇到的最难答复的问题是什么?
★如果微软公司说,我们愿意投资500万美元用来开发你提出
的方案。

那么你会做什么?为什么?
★如果你将世界上所有的计算机制造商召集起来,告诉他们必
须要做一件事,你会让他们做什么事?
★如果你在五年内会得到一笔奖金,你认为会是因为什么?关
注你的成绩的人会是谁?
★你如何教自己的奶奶使用微软Excel表格系统?
★为什么当我们在任何一家宾馆翻开热水龙头时,热水会马上
流出来?
★你为什么想在微软工作?
★假设你回到家,进入自己的房间,翻开电灯开关,可是一点
反响都没有——灯没有亮。

这时,你在判断问题出在哪里时,会依
次采取怎样的做法?。

【人力资源】微软面试一百道题目精选资料

【人力资源】微软面试一百道题目精选资料

第9 题判断整数序列是不是二元查找树的后序遍历结果题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。

如果是返回true,否则返回false。

例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:8/ \6 10/ \ / \5 7 9 11因此返回true。

如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false。

ANSWER:This is an interesting one. There is a traditional question that requires the binary tree to be re-constructed from mid/post/pre order results. This seems similar. For the problems related to (binary) trees, recursion is the first choice.In this problem, we know in post-order results, the last number should be the root. So we have known the root of the BST is 8 in the example. So we can split the array by the root. int isPostorderResult(int a[], int n) {return helper(a, 0, n-1);}int helper(int a[], int s, int e) {if (e==s) return 1;int i=e-1;while (a[e]>a[i] && i>=s) i--;if (!helper(a, i+1, e-1))return 0;int k = l;while (a[e]<a[i] && i>=s) i--;return helper(a, s, l);}第10 题翻转句子中单词的顺序。

微软面试题及答案

微软面试题及答案

微软面试题及答案大全提问:一.最基本题型(说明:此类题型比较简单)1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。

现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。

抓取多少个就可以确定你肯定有两个同一颜色的果冻?3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?4.一个岔路口分别通向诚实国和说谎国。

来了两个人,已知一个是诚实国的,另一个是说谎国的。

诚实国永远说实话,说谎国永远说谎话。

现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。

请问应该怎么问?5.12个球一个天平,现知道只有一个球是次品和其它的重量不同,问怎样称才能用三次就找到那个球是次品。

如果是13个球呢?(注意此题并未说明那个次品的球的重量是轻是重,所以需要仔细考虑)。

6.在9个点上画10条直线,要求每条直线上至少有三个点?7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?8.怎么样种植4棵树木,使其中任意两棵树的距离相等?二.没有答案型(说明:此类题型显然不是考您智力,而是要考您的反应能力,这种题大多数没有答案,但是要看您的反应喽!)1.为什么下水道的盖子是圆的?2.中国有多少辆汽车?3.将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁?4.如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉哪一个,为什么?5.多少个加油站才能满足中国的所有汽车?6.想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下?7.为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出?8.你怎样将Excel的用法解释给你的奶奶听?9.你怎样重新改进和设计一个ATM银行自动取款机?10.如果你不得不重新学习一种新的计算机语言,你打算怎样着手来开始?11.如果你的生涯规划中打算在5年内受到奖励,那获取该项奖励的动机是什么?观众是谁?12.如果微软告诉你,我们打算投资五百万美元来启动你的投资计划,你将开始什么样商业计划?为什么?13.如果你能够将全世界的电脑厂商集合在一个办公室里,然后告诉他们将被强迫做一件事,那件事将是什么?三.难题(说明:这类题有一定难度,如果想不出答案,也不能说明什么,如果您想到了解题思路,那么答案马上就能出来了,如果想不到思路,那么......就别想解出答案了。

微软面试100题

微软面试100题

微软面试100题1为什么下水道的井盖是圆的?答案-1.节省材料2.方便运输3.方便安装4.美观5.受力均匀2美国有多少辆车?(一个常见的类似问题是:美国有多少家加油站?)答案:美国有多少人?这些人里又有多少人会开车?而会开车的人里又有多少有这样的经济能力可以购买汽车?可以购买汽车的人里是不是都已经买了?这些问题解决了3美国有多少个下水道井盖?4你让某些人为你工作了七天,你要用一根金条作为报酬。

这根金条要被分成七块。

你必须在每天的活干完后交给他们一块。

如果你只能将这根金条切割两次,你怎样给这些工人分?答案是:把金段切割成1/7、2/7、4/7第一天给工人1/7第二天给工人2/7 工人返回1/7第三天给工人1/7第四天给工人4/7 工人返回1/7+2/7第五天给工人1/7第六天给工人2/7 工人返回1/7第七天给工人1/75一列火车以每小时15英里的速度离开洛杉矶,朝纽约进发。

另外一列火车以每小时20英里的速度离开纽约,朝洛杉矶进发。

如果一只每小时飞行25英里的鸟同时离开洛杉矶,在两列火车之间往返飞行,请问当两列火车相遇时,鸟飞了多远?答案:你这么想:鸟飞了多远呢?鸟的飞行速度一直是每小时25英里不变的,那么只要能知道鸟飞了多久,就能知道鸟飞了多远。

那么鸟飞了多久呢?鸟从最开始一直飞到两列火车相遇的时候。

那么两列火车要多久才能相遇呢?这取决于洛杉矶到纽约有多远。

理论中,纽约到洛杉矶有大约3000英里,两列火车要相遇需要 3000除以(15+20),也就是85.7小时。

在这段时间里,鸟飞了2142.5 英里。

实际中,一来铁路不一定是直的(确切的铁路距离无法知晓),二来火车路上走走停停还可能晚点,三来两辆火车不一定就会彼此相遇,最后是鸟一路上也需要花些时间吃喝拉撒——所以答案还真不好说。

6假设一圆盘像唱机上的唱盘那样转动。

这盘一半是黑色,一半是白色。

假设你有数量不限的一些颜色传感器。

要想确定圆盘转动的方向,你需要在它周围摆多少个颜色传感器?它们应该被摆放在什么位置?7假设时钟到了12点。

微软面试题

微软面试题

6.她的回答是:选择前五层楼都不拿,观察各 层钻石的大小,做到心中有数。后 五层楼再选择 ,选择大小接近前五层楼出现过最大钻石大小的钻 石。她至今也不 知道这道题的准确答案,“也许 就没有准确答案,就是考一下你的思路,”她如是 说。 7.分析:有个康奈尔的学生写文章说他 当时在微软面试时就是碰到了这道题, 最短只能 做出在19分钟内过桥。 8.两边一起烧。 9 .答案之一:从麻省理工大学一位计算机系教授那 里听来的答案,首先在同 等用材的情况下它的 面积最大。第二因为如果是方的、长方的或椭圆的 ,那无聊 之徒拎起来它就可以直接扔进地下道 啦!但圆形的盖子嘛,就可以避免这种情况 了 。
67.如果你将世界上所有的计算机制造商召集起 来,告诉他们必须做一件事,你会让他们做什么事 ? 68.如果你在五年内会得到一笔奖金,你认为会 是因为什么?关注你的成绩的人会是谁? 69.你如何教自己的祖母使用微软Excel表格系 统? 70.为什么当我们在任何一家宾馆打开热水龙头 时,热水会马上流出来? 71.你为什么想在微软工作? 72.假设你回到家,进入自己的房间,打开电灯 开关,可是一点反应都没有——灯没有亮。这时, 你在判断问题出在哪里时,会依次采取怎样的做法 ?
ProblemSolving(解决问题的能力),不是哪道题你记住了答案就可以了的。” 对于公司招聘的宗 旨· ,Mr Miller强调了四点,这些是有创造性的公司普遍注 重的员工素质,是想要到知名企业实现自 己的事业梦想的人都要具备的素质和能 力。 要求一:RawSmart(纯粹智慧),与知识无关。 要 求二:Long-termPotential(长远学习能力)。 要求三:TechnicSkills(技能)。 要求四: Professionalism(职业态度)。
5.请估算一下电视塔的质量。 6.一楼到十楼的每层电梯门口都放着一颗钻石 ,钻石大小不一。你乘坐电梯从一楼到十楼,每层 楼电梯门都会打开一次,只能拿一次钻石,问怎样 才能拿到最大的一颗? 7.烧一根不均匀的绳要用一个小时,如何用它 来判断半个小时?

微软公司对求职者的面试问题

微软公司对求职者的面试问题

微软公司对求职者的面试问题以下是微软公司的员工在时所遇到的问题。

这些问题往往遵循以下一些根本主题:难题、运算、应用、头脑。

1.为什么下水道的井盖是圆的?2.美国有多少辆车?(类似问题是:美国有多少家加油站?)3.美国有多少个下水道井盖?4.你让某些人为你工作了七天,你要用一根金条作为报酬。

这根金条要被分成七块。

你必须在每天的活干完后交给他们一块。

如果你只能将这根金条切割两次,你怎样给这些工人分?5.一列火车以每小时15英里的速度离开洛杉矶,朝纽约进发。

另外一列火车以每小时20英里的速度离开纽约,朝洛杉矶进发。

如果一只每小时飞行25英里的鸟同时离开洛杉矶,在两列火车之间往返飞行,请问当两列火车相遇时,鸟飞了多远?6.假设一张圆盘像唱机上的唱盘那样转动。

这张盘一半是黑色,一半是白色。

假设你有数量不限的一些颜色传感器。

要想确定圆盘转动的方向,你需要在它周围摆多少个颜色传感器?它们应该被摆放在什么位置?7.假设时钟到了12点。

注意时针和分针重叠在一起。

在一天之中,时针和分针共重叠多少次?你知道它们重叠时的具体时间吗?8.你有两个罐子,分别装着50个红色的玻璃球和50个蓝色的玻璃球。

随意拿起一个罐子,然后从里面拿出一个玻璃球。

怎样最大程度地增加让自己拿到红球的时机?利用这种方法,拿到红球的几率有多大?9.中间只隔一个数字的两个奇数被称为奇数对,比方17和19。

证明奇数对之间的数字总能被6整除(假设这两个奇数都大于6)。

现在证明没有由三个奇数组成的奇数对。

10.一个屋子有一个门(门是关闭的)和3盏电灯。

屋外有3个开关,分别与这3盏灯相连。

你可以随意操纵这些开关,可一旦你将门翻开,就不能变换开关了。

确定每个开关具体管哪盏灯。

11.假设你有8个球,其中一个略微重一些,但是找出这个球的惟一方法是将两个球放在天平上比照。

最少要称多少次才能找出这个较重的球?12.假设你站在镜子前,抬起左手,抬起右手,看看镜中的自己。

微软面试官最常问的EQ测试题

微软面试官最常问的EQ测试题

微软面试官最常问的EQ测试题1.什么书中毛病最多?2.为什么好马不吃回头草?3.什么东西说“父亲〞是不会相碰,叫“爸爸〞时却会碰到两次?4.农夫养10头牛,只有19只角,为什么?5.打什么东西既不花力气又舒服?6.托尼总是喜欢把家里的闹钟整坏,妈妈为什么总是让不会修理钟表的爸爸代为修理?7.戴夫走路从来脚不沾地,这是为什么?8.生米不小心煮成熟饭时该怎么办?9.制造日期及有效日期是同一天的产品是什么?10.时钟敲了十三下,请问现在该做什么呢?11.在罗马数字中,零该怎么写?12.有对一模一样的双胞胎兄弟,哥哥的屁股有黑痣,而弟弟没有。

但即使这对双胞胎穿着一样的服饰,仍然有人可立刻知道谁是哥哥,谁是弟弟。

终究是谁呢?13.家有家规,国有国规,那动物园里有啥规?14.先有男人,还是先有女人?15.什么人每天靠运气赚钱?16.玛丽整天说个不停,可有一个月她说的最少,那是为什么?17.青春痘长在哪里,你比拟不担忧?18.戴维手里拿着火柴走到厨房,这有一个煤气灶与一个酒精灯,他如果想烧开水,请问:他应该先该点燃什么?19.教师说蚯蚓切成两段仍能再生,西恩照教师的话去做,蚯蚓却死了,为什么?20.汽车在右转弯时,哪只轮胎不转?在求职面试中,没有人能保证不犯错误。

只是聪明的求职者会不断地修正错误走向成熟。

然而在面试中有些错误却是一些相当聪明的求职者也难免会一犯再犯的,我们权称之为“高级〞错误。

某跨国公司人力资源管理专家总结经历,列举出常见的十二种“高级〞错误,以飨读者。

不善于打破沉默面试开场时,应试者不善“破冰〞〔即打破沉默〕,而等待面试官翻开话匣。

面试中,应试者又出于种种顾虑,不愿主动说话,结果使面试出现冷场。

即便能勉强打破沉默,语音语调亦极生硬,使场面更显为难。

实际上,无论是面试前或面试中,面试者主动致意及交谈,会留给面试官热情与蔼于及人交谈的良好印象。

及面试官“套近乎〞具备一定专业素养的面试官是忌讳及应试者套近乎的,因为面试中双方关系过于随便或过于紧张都会影响面试官的评判。

微软面试100题

微软面试100题

1.把二元查找树转变成排序的双向链表题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。

要求不能创建任何新的结点,只调整指针的指向。

10/ \6 14/ \ / \4 8 12 16转换成双向链表4=6=8=10=12=14=16。

首先我们定义的二元查找树节点的数据结构如下:struct BSTreeNode{int m_nValue; // value of nodeBSTreeNode *m_pLeft; // left child of nodeBSTreeNode *m_pRight; // right child of node};ANSWER:This is a traditional problem that can be solved using recursion.For each node, connect the double linked lists created from left and right child node to form a full list./*** @param root The root node of the tree* @return The head node of the converted list.*/BSTreeNode * treeToLinkedList(BSTreeNode * root) {BSTreeNode * head, * tail;helper(head, tail, root);return head;}void helper(BSTreeNode *& head, BSTreeNode *& tail, BSTreeNode *root) { BSTreeNode *lt, *rh;if (root == NULL) {head = NULL, tail = NULL;return;}helper(head, lt, root->m_pLeft);helper(rh, tail, root->m_pRight);if (lt!=NULL) {lt->m_pRight = root;root->m_pLeft = lt;} else {head = root;}if (rh!=NULL) {root->m_pRight=rh;rh->m_pLeft = root;} else {tail = root;}}2.设计包含min 函数的栈。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第9 题判断整数序列是不是二元查找树的后序遍历结果题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。

如果是返回true,否则返回false。

例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:8/ \6 10/ \ / \5 7 9 11因此返回true。

如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false。

ANSWER:This is an interesting one. There is a traditional question that requires the binary tree to be re-constructed from mid/post/pre order results. This seems similar. For the problems related to (binary) trees, recursion is the first choice.In this problem, we know in post-order results, the last number should be the root. So we have known the root of the BST is 8 in the example. So we can split the array by the root. int isPostorderResult(int a[], int n) {return helper(a, 0, n-1);}int helper(int a[], int s, int e) {if (e==s) return 1;int i=e-1;while (a[e]>a[i] && i>=s) i--;if (!helper(a, i+1, e-1))return 0;int k = l;while (a[e]<a[i] && i>=s) i--;return helper(a, s, l);}第10 题翻转句子中单词的顺序。

题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。

句子中单词以空格符隔开。

为简单起见,标点符号和普通字母一样处理。

例如输入“I am a student.”,则输出“student. a am I”。

Answer:Already done this. Skipped.第11 题求二叉树中节点的最大距离...如果我们把二叉树看成一个图,父子节点之间的连线看成是双向的,我们姑且定义"距离"为两节点之间边的个数。

写一个程序,求一棵二叉树中相距最远的两个节点之间的距离。

ANSWER:This is interesting... Also recursively, the longest distance between two nodes must be either from root to one leaf, or between two leafs. For the former case, it‟s the tree height. For the latter case, it should be the sum of the heights of left and right subtrees of the two leaves‟ most least ancestor.The first case is also the sum the heights of subtrees, just the height + 0.int maxDistance(Node * root) {int depth;return helper(root, depth);}int helper(Node * root, int &depth) {if (root == NULL) {depth = 0; return 0;}int ld, rd;int maxleft = helper(root->left, ld);int maxright = helper(root->right, rd);depth = max(ld, rd)+1;return max(maxleft, max(maxright, ld+rd));}第12 题题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case 等关键字以及条件判断语句(A?B:C)。

1+..+n=n*(n+1)/2=(n^2+n)/2it is easy to get x/2, so the problem is to get n^2though no if/else is allowed, we can easilly go around using short-pass.using macro to make it fancier:#define T(X, Y, i) (Y & (1<<i)) && X+=(Y<<i)int foo(int n){int r=n;T(r, n, 0); T(r, n,1); T(r, n, 2); … T(r, n, 31);return r >> 1;}第13 题:题目:输入一个单向链表,输出该链表中倒数第k 个结点。

链表的倒数第0 个结点为链表的尾指针。

链表结点定义如下:struct ListNode{int m_nKey;ListNode* m_pNext;};Answer:Two ways. 1: record the length of the linked list, then go n-k steps. 2: use two cursors. Time complexities are exactly the same.Node * lastK(Node * head, int k) {if (k<0) error(“k < 0”);Node *p=head, *pk=head;for (;k>0;k--) {if (pk->next!=NULL) pk = pk->next;else return NULL;}while (pk->next!=NULL) {p=p->next, pk=pk->next;}}第14 题:题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。

要求时间复杂度是O(n)。

如果有多对数字的和等于输入的数字,输出任意一对即可。

例如输入数组1、2、4、7、11、15 和数字15。

由于4+11=15,因此输出4 和11。

ANSWER:Use two cursors. One at front and the other at the end. Keep track of the sum by moving the cursors.void find2Number(int a[], int n, int dest) {int *f = a, *e=a+n-1;int sum = *f + *e;while (sum != dest && f < e) {if (sum < dest) sum = *(++f);else sum = *(--e);}if (sum == dest) printf(“%d, %d\n”, *f, *e);}第15 题:题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。

用递归和循环两种方法完成树的镜像转换。

例如输入:8/ \6 10/\ /\5 7 9 11输出:8/ \10 6/\ /\11 9 7 5定义二元查找树的结点为:struct BSTreeNode // a node in the binary search tree (BST) {int m_nValue; // value of nodeBSTreeNode *m_pLeft; // left child of nodeBSTreeNode *m_pRight; // right child of node};ANSWER:This is the basic application of recursion.PS: I don‟t like the m_xx naming convension.void swap(Node ** l, Node ** r) {Node * p = *l;*l = *r;*r = p;}void mirror(Node * root) {if (root == NULL) return;swap(&(root->left), &(root->right));mirror(root->left);mirror(root->right);}void mirrorIteratively(Node * root) {if (root == NULL) return;stack<Node*> buf;buf.push(root);while (!stack.empty()) {Node * n = stack.pop();swap(&(root->left), &(root->right));if (root->left != NULL) buf.push(root->left);if (root->right != NULL) buf.push(root->right);}}第16 题:题目(微软):输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。

例如输入8/ \6 10/ \ / \5 7 9 11输出8 6 10 5 7 9 11。

ANSWER:The nodes in the levels are printed in the similar manner their parents were printed. So it should be an FIFO queue to hold the level. I really don‟t remember the function name of the stl queue, so I will write it in Java...void printByLevel(Node root) {Node sentinel = new Node();LinkedList<Node> q=new LinkedList<Node>();q.addFirst(root); q.addFirst(sentinel);while (!q.isEmpty()) {Node n = q.removeLast();if (n==sentinel) {System.out.println(“\n”);q.addFirst(sentinel);} else {System.out.println(n);if (n.left() != null) q.addFirst(n.left());if (n.right()!=null) q.addFirst(n.right());}}}第17 题:题目:在一个字符串中找到第一个只出现一次的字符。

相关文档
最新文档