欢迎来到千学网!
您现在的位置:首页 > 实用文 > 其他范文

微软面试题面试技巧

时间:2022-05-23 16:56:26 其他范文 收藏本文 下载本文

【导语】下面是小编精心整理的微软面试题面试技巧(共9篇),希望能够帮助到大家。

微软面试题面试技巧

篇1:微软面试题面试技巧

微软面试题面试技巧

* Why is a manhole cover round?

* How many cars are there in the USA?

* You've got someone working for you for seven days and a gold bar to pay them. The gold bar is segmented into seven connected pieces. You must give them a piece of gold at the end of every day. If you are only allowed to make two breaks in the gold bar, how do you pay your worker?

* One train leaves Los Angeles at 15mph heading for New York. Another train leaves from New York at 20mph heading for Los Angeles on the same track. If a bird, flying at 25mph, leaves from Los Angeles at the same time as the train and flies back and forth between the two trains until they collide, how far will the bird have traveled?

* You have two jars, 50 red marbles and 50 blue marbles. A jar will be picked at random, and then a marble will be picked from the jar. Placing all of the marbles in the jars, how can you maximize the chances of a red marble being picked? What are the exact odds of getting a red marble using your scheme?

* Imagine you are standing in front of a mirror, facing it. Raise your left hand. Raise your right hand. Look at your reflection. When you raise your left hand your reflection raises what appears to be his right hand. But when you tilt your head up, your reflection does too, and does not appear to tilt his/her head down. Why is it that the mirror appears to reverse left and right, but not up and down?

* You have 4 jars of pills. Each pill is a certain weight, except for contaminated pills contained in one jar, where each pill is weight + 1. How could you tell which jar had the contaminated pills in just one measurement?

* If you had an infinite supply of water and a 5 quart and 3 quart pail, how would you measure exactly 4 quarts?

* You have a bucket of jelly beans. Some are red, some are blue, and some green. With your eyes closed, pick out 2 of a like color. How many do you have to grab to be sure you have 2 of the same?

* Which way should the key turn in a car door to unlock it?

* If you could remove any of the 50 states, which state would it be and why?

“微软面试题”版权归作者所有;请注明出处!

篇2:微软面试题

微软面试题

* Why is a manhole cover round?

* How many cars are there in the USA?

* You've got someone working for you for seven days and a gold bar to pay them. The gold bar is segmented into seven connected pieces. You must give them a piece of gold at the end of every day. If you are only allowed to make two breaks in the gold bar, how do you pay your worker?

* One train leaves Los Angeles at 15mph heading for New York. Another train leaves from New York at 20mph heading for Los Angeles on the same track. If a bird, flying at 25mph, leaves from Los Angeles at the same time as the train and flies back and forth between the two trains until they collide, how far will the bird have traveled?

* You have two jars, 50 red marbles and 50 blue marbles. A jar will be picked at random, and then a marble will be picked from the jar. Placing all of the marbles in the jars, how can you maximize the chances of a red marble being picked? What are the exact odds of getting a red marble using your scheme?

* Imagine you are standing in front of a mirror, facing it. Raise your left hand. Raise your right hand. Look at your reflection. When you raise your left hand your reflection raises what appears to be his right hand. But when you tilt your head up, your reflection does too, and does not appear to tilt his/her head down. Why is it that the mirror appears to reverse left and right, but not up and down?

* You have 4 jars of pills. Each pill is a certain weight, except for contaminated pills contained in one jar, where each pill is weight + 1. How could you tell which jar had the contaminated pills in just one measurement?

* If you had an infinite supply of water and a 5 quart and 3 quart pail, how would you measure exactly 4 quarts?

* You have a bucket of jelly beans. Some are red, some are blue, and some green. With your eyes closed, pick out 2 of a like color. How many do you have to grab to be sure you have 2 of the same?

* Which way should the key turn in a car door to unlock it?

* If you could remove any of the 50 states, which state would it be and why?

“微软面试题”版权归作者所有;转载请注明出处!

篇3:微软经典面试题

1.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?(40秒-3分钟)

2.一个岔路口分别通向诚实国和说谎国,来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。请问应该怎么问?(20秒-2分钟)

3.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢(1分钟)

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

抓取多少个就可以确定你肯定有两个同一颜色的果冻?(5秒-1分钟)

5.在9个点上画10条直线,要求每条直线上至少有三个点?(3分钟-20分钟)

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

7.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)(5分钟-1小时)

篇4:面试技巧:微软怪异面试题:难就一个字

微软要的是“人”――聪明、好学、踏实、自信,具备良好的道德和较强的团队精神的“人”,谜语题也好,推理题也好,所要考察的,都是冲着一个“人”字。一个优秀的“人”,正是一些著名的企业孜孜以求的,也是他们这一系列测试“怪题”的指向所在。

为什么下水道井盖是圆的?

这个问题,是微软公司向面试者提出的。翻阅众多名企招聘时所提出的问题,类似这样的“怪题”比比皆是。类似的题目还有,怎样移动富士山?估算一下美国有多少辆汽车?香港有多少建筑设计师?将汽车钥匙插入车门向哪个方向旋转可以打开车锁?说起来这些刁钻古怪的问题,干微软何事?但这确实就是他们郑重其事地考察一批批优秀应聘者的题目和录取标准。

要知道,微软是全世界年轻人都向往的少数大企业之一,每年都有大量高素质的年轻人参加他们的入门考试。而他们出的这些题目,却不像是在严肃地考核这些有着高学历的人。任何一个人,只要具备一定的智力水平,都可以来测试。

事实上,我们现在知道,已经不单单是微软,很多名企,尤其是外企,在招聘新加盟者时,都或多或少地用上了这种“怪题”的招数。

试举几例:

1、你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你的工人付费?

2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。

3、小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒,小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。每次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30秒就会熄灭。问:小明一家如何过桥?

4、一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。每个人都能看到其他人帽子的颜色,却看不到自己的。主持人先让大家看看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑帽子?

可以说,类似这样的题目,曾经难坏了许许多多学习成绩优秀、踌躇满志的优秀大学毕业生。在经过了基础知识、专业知识的考核,一路过关斩将之后,许多人在名企往往多达数轮的面试中,就栽倒在这些“怪题”上。以微软为代表的这些名企,他们为什么要设置这样的一些考题,他们究竟想要考察应聘者什么方面的才能?究竟什么样的人才是他们所需要的呢?

我们已经习惯了自己的“考试”方式,以上这些怪题,对于许多人来说,确实让人措手不及,无计可施。

正确的答案不重要重要的是正确的思维方式

那么,名企们这么做,究竟意欲何为呢?作为大部分世界知名的公司,共同的特点就是视人才如生命,他们是极为重视网罗人才的,绝不会拿着招聘这样的重要活动作秀、玩噱头。比尔。盖茨曾提出过一个经典的“怪题”:怎样移动富士山?当被问到微软出这样的“怪题”究竟是想寻找什么样的人才时,比尔。盖茨回答,我们要考察应征者是不是按照逻辑来解决问题。类似于怎样移动富士山这样的问题,正确的答案并不重要,重要的是你有没有按照正确的思维方式来思考问题。

原来如此。今年3月份,上海微创软件在复旦大学举行了一场校园招聘活动,在一道考察专业知识的编程题之外,又有一道“怪题”:请估算一下东方明珠电视塔的质量。这道题与盖茨的“富士山”有异曲同工之妙。最后得出的结论不是最重要的,其中关键的,是你要让考官看到你解决这个问题的方法和过程,比如你怎样快速估算支架和柱子的高度、球的半径,算出各部分的体积等等,

类似的题目还有:不用称,怎样测量一架喷气式飞机的重量?估算一下一个行进在小雨中的人5分钟内身上淋到雨的质量。这些问题,都是通过猝不及防的一问、短时间内的回答,考察你的判断能力、快速反应能力以及精力集中程度,从而看出你全方位的能力。而这些,在以后的工作中,相对于可增可减的知识来说,可能更是成功的关键。

看来,名企的“怪题”并不促狭怪异,实际上他们更棋高一着。正是通过这样一张更加灵活、更加精巧的大网,网罗更优秀、更有潜力的人才。之所以有很多人觉得不习惯于他们出题时的怪招,主要是因为我们习惯了应试教育,头脑里有许多僵化的教条,脑子不能灵活地转动而已。实际上,这样的考试在国外的招聘中早已屡见不鲜,很多公司都有了这方面专门的题库。只要我们有意识地转变思路,遇到这样的问题时多一些逆向思维、发散性思维等,“怪题”也就不那么让人感觉奇怪了。“怪题”怪乎哉?不怪也。平时多做一些这样的题,对培养一个人良好的思维习惯也是非常有益的。

回到上文所说的白帽子黑帽子的问题,你知道舞场里有多少人戴黑帽子了吗?实际上这道题考的是你的逻辑推理能力。你必须首先做假设。假如只有一个人戴黑帽子,那他看到所有人都戴白帽,在第一次关灯时就应自打耳光,所以应该不止一个人戴黑帽子;如果有两顶黑帽子,第一次两人都只看到对方头上的黑帽子,不敢确定自己的颜色,但到第二次关灯,这两人应该明白,如果自己戴着白帽,那对方早在上一次就应打耳光了,因此自己戴的也是黑帽子,于是也会有耳光声响起;可事实是第三次才响起了耳光声,说明全场不止两顶黑帽,依此类推,应该是关了几次灯,有几顶黑帽。

微软全球技术中心总经理唐骏说,计算机业一年一更新,你在大学里学的东西再多,也很难是完全合适的“才”。微软要的是“人”――聪明、好学、踏实、自信,具备良好的道德和较强的团队精神的“人”。谜语题也好,推理题也好,所要考察的,都是冲着这一个“人”字。一个优秀的“人”,这正是名企孜孜以求的,也正是他们这一系列测试“怪题”的指向所在。

你面前放的一个碗里混放着红豆和绿豆,再给两个空碗,要求你在10分钟内把红豆拣到一个碗,把绿豆放进另一个碗。这个题目好做吗?它的奥妙在于,考官故意多给了你一个碗,不要上当,直接挑出红豆放到一个空碗里,挑完了,原来的碗里就只有绿豆了。怎么样?是不是从中可以看出此类题的机杼所在?

逻辑题回答不出来不表示不具有逻辑性思维

名企新异的招聘方法,在业界引起了巨大的反响。很多企业开始向他们学习,也在自己的招聘考试中加入了一些灵活的试题。应该说这是一件好事。但是,需要提醒的是,这种方法也不是战无不胜的法宝。唐骏就曾坦言微软的考题也是有缺陷的,比如逻辑题回答不出来,并不表示考生不具有逻辑性思维。因为有些题目是因人而异的,因此可能有很多优秀的人会在这样的考试中与企业失之交臂。

同时,许多名企为了使自己的招聘更为科学合理,都对考官进行了严格的培训,使他们有着极专业的水准。因为这种以考察一个人的深度思维为指向的测试,得出的结论在很大程度上依赖于考官的个人判断和感觉。所以看起来这样的考试简单易行,实际上需要更高的配置,并不是随便拿几个题来,问一问答案就能了结的。

而现在我们有的企业,在学习这种招聘时,却走入了歧途,甚至把好端端的招聘搞成了一场闹剧。比如有一家公司给女大学生出的题目是“如果在工作中需要出卖肉体,你怎么办?”这样的问题,无论你考察的目的多么白璧无瑕,都是让人反感和困惑的。还有一家公司给两名女性应聘者出的题目是:戴上薄型塑胶手套,100只大白鼠被放进空房里,要求在10分钟内徒手捉到老鼠。当她们好不容易从惊恐中安静下来进入角色时,这场“考试”的时间却到了,她们一只老鼠也没捉到。考官对她们说:“本来接下去还要考试解剖老鼠,现在你们已经失去机会了……”这样的题目,才是真正的“怪题”;这样的考试,不只是怪异,简直都有些恐怖了。

对于选拔优秀人才来说,无论哪种招聘方式都不可能是一锤定音。一个人能力和潜力如何,只有到实际工作中,在一个相当长的时间内才能被真正地发现。“真金不怕火炼”、“天生我才必有用”,所有的求职者只要在平时多注意学习,锻炼自己的创新、思考和判断能力,把自己塑造成一个真正优秀的“人”,相信总会遇到好机会。即便在名企的一次两次考试中失利败北,也总会东山再起,前途无量的。

职场贴士:每一个员工都必须明白,老总不是慈善家,他也做不了慈善家,他只会为你的使用价值买单。

篇5:面试技巧:华为面试题

Q1:请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图?

Q2:请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用? TCP与UDP呢?

Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现的?

Q4:请问C++的类和C里面的struct有什么区别?

Q5:请讲一讲析构函数和虚函数的用法和作用?

Q6:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的?

Q7:一些寄存器的题目,主要是寻址和内存管理等一些知识,

面试技巧:华为面试题

Q8:8086是多少尉的系统?在数据总线上是怎么实现的?

职场贴士:把工作当成商场战争中的敌人。对待敌人就要像秋风扫落叶一般,苛刻、严谨、一丝不苟并且不遗余力。狠挖节点,突破瓶颈,在实践中实现升华。

篇6:面试技巧绝对几个“面试题”

面试技巧绝对实用的几个“面试题”

所有用人单位对有工作经历的应届毕业生都一致看好,无论参与过什么样的工作,不需要面试技巧都

能获得机会,一家就业服务机构的负责人说:“读书时期有过工作经历的人容易与人相处,他们会更好地安排时间,更务实,而且更成熟,与我们有更多的共同语言。”因此,在你应答时,要加上这样的内容:企业就是要创造利润,个人要更有效率地工作,遵章守纪,尽全力完成工作。简而言之,无论你的暑假工作多么微不足道,都要将其视为一段在企业的工作经历。 就具体的问题而言,主试人的提问是为了理想地反映出你的主动性、创造性与灵活性。例如,你可以说:“在我家乡的小镇上,找一份暑假工作并不容易,但我向每家餐馆都申请做招待工作,给各家的经理打电话预约面试,最后在一家最有名气的餐馆找到一份工作。我先做下午班,后来因为我手脚麻利,算账准确,并有让顾客满意的服务水平,他们很快就把我转到晚班了。我在那儿干了三个暑假,当我离开的时候,我负责培训、管理夜班服务员,分配小费收入,以及晚上的收工打烊与记账。总之,我的这段经历使我了解小型企业以及企业中具有共性的一些机理。”

1、你觉得作为你应聘的第一家单位,是否要考虑你在学校时的分数

如果你的分数很高,应答时显然要答“是”;如果你的分数并不高,你就得多加考虑了:“当然,用人单位要全面考虑,要看分数,同时也要考查一下应聘者的工作积极性和服从性、对开发业务的理解及实际工作经验,总体来看,经历与专业技能要比分数更有价值。”

2、你如何规划自己未来的事业

这是下列问题的有趣翻版:“你在今后的五年中要达到什么职位?”几乎所有初级专业人士都会落入这个圈套中,答道:“管理阶层”,因为他们自以为可以以此能表明其雄心壮志。这是一个老掉牙的答案,这会立即引发一系列大多数据应届毕业生无

法回答的问题:管理阶层的定义是什么?一个经理的基本责任是什么?做什么领域的经理?最保险的回答应该先说明你要发展或进取的专业方向,并表明你脚踏实地地工作态度。“我的事业计划是勇于进取,所做的事情必须是能够将我的精力与专业知识融入我所在行业与我的工作单位所需要的地方。 因此,我希望在今后几年中,成为一名内行的专业人士,很清楚地理解自己的公司、行业、最大的挑战以及机会之所在。到那时,我未来的发展目标应该会清晰地显露出来。”类似于这样的应答会使你远远地高于你的同龄人。

3、你是否愿意做常规工作又是一个“诱供”的提问。主试人从以

往痛苦的经历中体会到,新近毕业的大学生不愿做常规工作,是一些无望成材的员工,直到他们接受了现实生活中的这个事实后才会有改变,

你应向对方解释,你理解需要有人做常规工作,在你奉命完成更有责任的工作之前,你知道要先完成一定数量的日常常规工作,这也是你有准备接受这项必要的工作的原因。只要是在正常工作时间之内,你可以这样回答:“行,没问题,企业就是要产生效益,因此在正常营业时间必须开门,并且有人值守。”

4、你想找一份长期的还是临时性的工作

主试人是想确认你是真心实意地对这份工作感兴趣,而不会干了几个月后便又到某个学校去做博士后研究了。不要简单地只说个“是”,要解释清楚你找这份工作的理由,可以说:“当然,我要找一份长期性的工作,我想在这个领域发 展自己的事业,找机会学习业务,寻求新的挑战,向有经验的专业人士学习。”在你回答完毕之后,你也要反问对方以确认其所提的问题:“你们要招的这个岗位是长期的还是临时的?”不要怕问,偶尔也会有些不道德的'用人单位短期聘用一些新手参与某个项目,完工之后便把他们辞退掉。

5、你在接受别人指导时,会不会感到难受或受到伤害这是个顺从性问题,如果你的失误被别人指出来之后,会轻易地顶撞或发火,那么你在公司里不会干得很久。初级岗位的竞争相当激烈,这也是你表明自己与众不同的又一个机会。“我会接受别人的意见,更重要的是,我能接受建设性的批评而没有抵触情绪。即使主观上尽全力而为,我也还会出现失误,还需要别人把我引回正确的方向上。我明白,如果我想在公司里有所发展,我必须首先要证明自己服从管理。”

6、你对哪类职位感兴趣

这又是一个试探你的服从性的问题,不要直接回答,要表示你服从安排:“我对这些初级岗位感兴趣,可以从中学到公司内外的业务,并能给我发展的机会,当我证实了自己的实力之后,可以沿着专业方向或管理方向发展。”主试人并不想就此与你长谈,只是想通过面试技巧证实一下你并不会将企业想象成一个慈善机构。你的理解应该是:“任何一家公司的作用是尽可能多赚钱,尽可能快速、高效地赚钱,其运作方式应该鼓励老客户做回头生意,用出色的口碑和信誉发展新客户。”就答结束时,要说明员工作为团队中的一员,所起的作用都是为了达到这个目的。

篇7:一道外企面试题面试技巧

一道外企面试题面试技巧

一个人花8块钱买了一只鸡,9块钱卖掉了,然后他觉得不划算,花10块钱又买回来了,11快卖给另外一个人

问他赚了多少钱? “一道外企面试题”版权归作者所有;请注明出处!

篇8:微软面试题集

1首先,由1 号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,

按照他的方案进行分配,否则将被扔进大海喂鲨鱼

如果1 号死后,再由2 号提出分配方案,然后剩下的4 人进行表决,

当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔入大海喂鲨鱼。

依此类推

条件:每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。

问题:第一个海盗提出怎样的分配方案才能使自己的收益最大化?

2.一道关于飞机加油的问题,已知:

每个飞机只有一个油箱,

飞机之间可以相互加油(注意是相互,没有加油机)

一箱油可供一架飞机绕地球飞半圈,

问题:

为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?

(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)

1.微软面试题

2.微软经典面试题

3.微软变态的面试题

4.微软经典面试题精选

5.Java面试题集

6.IBM、SUN等公司的Java面试题集

7.微软面试题:如何拿到最大的钻石?

8.微软公司最新面试题

9.微软经典面试题你敢挑战吗?

10.18条有趣的微软面试题

篇9:微软算法面试题

1、反转一个链表。循环算法。

1 List reverse(List l) {

2 if(!l) return l;

3 list cur = l.next;

4 list pre = l;

5 list tmp;

6 pre.next = null;

7 while ( cur ) {

8 tmp = cur;

9 cur = cur.next;

10 tmp.next = pre

11 pre = tmp;

12 }

13 return tmp;

14 }

2、反转一个链表。递归算法。

1 List resverse(list l) {

2 if(!l || !l.next) return l;

3

4 List n = reverse(l.next);

5 l.next.next = l;

6 l.next=null;

7 }

8 return n;

9 }

3、广度优先遍历二叉树。

1 void BST(Tree t) {

2 Queue q = new Queue();

3 q.enque(t);

4 Tree t = q.deque();

5 while(t) {

6 System.out.println(t.value);

7 q.enque(t.left);

8 q.enque(t.right);

9 t = q.deque();

10 }

11 }

----------------------

1class Node {

2 Tree t;

3 Node next;

4 }

5class Queue {

6 Node head;

7 Node tail;

8 public void enque(Tree t){

9 Node n = new Node();

10 n.t = t;

11 if(!tail){

12 tail = head = n;

13 } else {

14 tail.next = n;

15 tail = n;

16 }

17 }

18 public Tree deque() {

19 if (!head) {

20 return null;

21 } else {

22 Node n = head;

23 head = head.next;

24 return n.t;

25 }

26}

4、输出一个字符串所有排列。注意有重复字符。

1char[] p;

2void perm(char s[], int i, int n){

3 int j;

4 char temp;

5 for(j=0;j

6 if(j!=0 && s[j]==s[j-1]);

7 elseif(s[j]!='@'){

8 p[i]=s[j];

9 s[j]='@';

10 if(i==n-1){

11 p[n]='';

12 printf(“%s”, p);

13 }else{

14 perm(s,i+1,n);

15 }

16 s[j]=p[i];

17 }

18 }

19}

--------------------------

1void main() {

2 char s[N];

3 sort(s);

4 perm(s,0,strlen(s));

5}

5、输入一个字符串,输出长型整数。

1 long atol(char *str){

2 char *p = str;

3 long l=1;m=0;

4 if (*p=='-') {

5 l=-1;

6 ++p;

7 }

8 while(isDigit(*p)){

9 m = m*10 + p;

10 ++p;

11 }

12 if(!p) return m*l;

13 else return error;

14}

6、判断一个链表是否有循环。

1 int isLoop(List l) {

2 if ( ! l) return - 1 ;

3 List s = l.next;

4 while (s && s != l) {

5 s = s.next;

6 }

7 if ( ! s) return - 1 ;

8 else reutrn 1 ;

9 }

-----------

1int isLoop(List l){

2 if(!l) return 0;

3 p=l.next;

4 wihle(p!=l&&p!=null) {

5 l.next=l;

6 l=p;p=p.next;

7 }

8 if(p=l) return 1;

9 return 0;

10}

实际上,在我的面试过程中,还问到了不破坏结构的其他算法。

我的答案是从链表头开始遍历,如果节点next指针指向自身,则循环存在;否则将next指针指向自身,遍历下一个节点。直至next指针为空,此时链表无循环。

7、反转一个字符串。

1 void reverse( char * str) {

2 char tmp;

3 int len;

4 len = strlen(str);

5 for ( int i = 0 ;i < len / 2 ; ++ i) {

6 tmp = char [i];

7 str[i] = str[len - i - 1 ];

8 str[len - i - 1 ] = tmp;

9 }

10 }

8、实现strstr函数。

1int strstr(char[] str, char[] par){

2 int i=0;

3 int j=0;

4 while(str[i] && str[j]){

5 if(str[i]==par[j]){

6 ++i;

7 ++j;

8 }else{

9 i=i-j+1;

10 j=0;

11 }

12 }

13 if(!str[j]) return i-strlen(par);

14 else return -1;

15}

9、实现strcmp函数。

1int strcmp(char* str1, char* str2){

2 while(*str1 && *str2 && *str1==*str2){

3 ++str1;

4 ++str2;

5 }

6 return *str1-*str2;

7}

10、求一个整形中1的位数。

1 int f( int x) {

2 int n = 0 ;

3 while (x) {

4 ++ n;

5 x &= x - 1 ;

6 }

7 return n;

8 }

11、汉诺塔问题。

1void tower(n,x,y,z){

2 if(n==1) move(x,z);

3 else {

4 tower(n-1, x,z,y);

5 move(x,z);

6 tower(n-1, y,x,z);

7 }

8}

12、三柱汉诺塔最小步数。

1 int f3(n) {

2 if (f3[n]) return f3[n];

3 else {

4 if (n == 1 ) {

5 f3[n] = 1 ;

6 return 1 ;

7 }

8 f3[n] = 2 * f3(n - 1 ) + 1 ;

9 return f3[n];

10 }

11 }

四柱汉诺塔最小步数。

1int f4(n){

2 if(f4[n]==0){

3 if(n==1) {

4 f4[1]==1;

5 return 1;

6 }

7 min=2*f4(1)+f3(n-1);

8 for(int i=2;i

9 u=2*f4(i)+f3(n-i);

10 if(u

11 }

12 f4[n]=min;

13 return min;

14 } else return f4[n];

15}

13、在一个链表中删除另一个链表中的元素。

1void (List m, List n) {

2 if(!m || !n) return;

3 List pre = new List();

4 pre.next=m;

5 List a=m, b=n,head=pre;

6 while(a && b){

7 if(a.value < b.value) {

8 a=a.next;

9 pre=pre.next;

10 }else if(a.value > b.value){

11 b=b.next;

12 }else{

13 a=a.next;

14 pre.next=a;

15 }

16 }

17 m=head.next;

18}

14、一个数组,下标从0到n,元素为从0到n的整数。判断其中是否有重复元素。

1int hasDuplicate(int[] a, int n){

2 for(int i=0;i

3 while(a[i]!=i && a[i]!=-1){

4 if(a[a[i]]==-1) return 1;

5 a[i]=a[a[i]];

6 a[a[i]]=-1;

7 }

8 if(a[i]==i) {a[i]=-1;}

9 }

10 return 0;

11}

15、判断一颗二叉树是否平衡。

1int isB(Tree t){

2 if(!t) return 0;

3 int left=isB(t.left);

4 int right=isB(t.right);

5 if( left >=0 && right >=0 && left - right <= 1 || left -right >=-1)

6 return (left

7 else return -1;

8}

9

16、返回一颗二叉树的深度。

1int depth(Tree t){

2 if(!t) return 0;

3 else {

4 int a=depth(t.right);

5 int b=depth(t.left);

6 return (a>b)?(a+1):(b+1);

7 }

8}

17、两个链表,一升一降。合并为一个升序链表。

1 List merge(List a, List d) {

2 List a1 = reverse(d);

3 List p = q = new List();

4 while ( a && a1 ) {

5 if (a.value < a1.value) {

6 p.next = a;

7 a = a.next;

8 } else {

9 p.next = a1;

10 a1 = a1.next;

11 }

12 p = p.next;

13 }

14 if (a) p.next = a;

15 elseif(a1) p.next = a1;

16 return q.next;

17 }

18、将长型转换为字符串。

1char* ltoa(long l){

2 char[N] str;

3 int i=1,n=1;

4 while(!(l/i<10)){i*=10;++n}

5 char* str=(char*)malloc(n*sizeof(char));

6 int j=0;

7 while(l){

8 str[j++]=l/i;

9 l=l%i;

10 i/=10;

11 }

12 return str;

13}

19、用一个数据结构实现

1 if (x == 0) y = a;

2 else y = b;

1 j[] = {a,b};

2 y=j[x];

20、在双向链表中删除指定元素。

1void del(List head, List node){

2 List pre=new List();

3 pre.next = head;

4 List cur = head;

5 while(cur && cur!=node){

6 cur=cur.next;

7 pre=pre.next;

8 }

9 if(!cur) return;

10 List post = cur.next;

11 pre.next=cur.next;

12 post.last=cur.last;

13 return;

14}

21、不重复地输出升序数组中的元素。

1 void outputUnique( char [] str, int n) {

2 if (n <= 0 ) return ;

3 elseif(n == 1 ) putstr[ 0 ]);

4 else {

5 int i = 0 ,j = 1 ;

6 putstr[ 0 ]);

7 while (j < n) {

8 if (str[j] !== str[i]) {

9 putstr[j]);

10 i = j;

11 }

12 ++ j;

13 }

14 }

15 }

22、面试过程中我还遇到了下面几题:

1、如何删除链表的倒数第m的元素?我的方法是先用pre指针从链表头开始步进m,新建pst节点next指针指向头节点,cur指针指向头节点,然后pre,cur,post三个指针一起步进,当pre指向链表结尾的时候cur指向倒数第m个元素,最后利用pst指针删除cur指向元素。

2、如何判断一个字符串是对称的?如a,aa,aba。设置头尾指针同时向中间比较靠齐直至相遇。

3、如何利用2函数找出一个字符串中的所有对称子串?以子串头指针和尾指针为循环变量设置两个嵌套的循环以找出所有子串,对每个子串应用2函数。

[微软算法面试题]

面试技巧:微软招聘智力测试题

面试题如何回答的面试技巧

微软面试问题

微软高管指点毕业生面试技巧

面试技巧:微软总监华宏伟:面试的三大绝招

“过来人”教你解答没有答案的面试题面试技巧

微软经典面试题-井盖为什么是圆的?

竞争上岗面试题及回答技巧

关于分配问题的面试题技巧

人事主管面试技巧

《微软面试题面试技巧(通用9篇).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

点击下载本文文档