﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-小汤的个人blog-文章分类-笔试，面试</title><link>http://www.blogjava.net/tsw1107/category/24110.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 21 Jul 2007 15:50:11 GMT</lastBuildDate><pubDate>Sat, 21 Jul 2007 15:50:11 GMT</pubDate><ttl>60</ttl><item><title>转载｜微软的应试题完整版</title><link>http://www.blogjava.net/tsw1107/articles/130320.html</link><dc:creator>汤市伟</dc:creator><author>汤市伟</author><pubDate>Sat, 14 Jul 2007 17:28:00 GMT</pubDate><guid>http://www.blogjava.net/tsw1107/articles/130320.html</guid><wfw:comment>http://www.blogjava.net/tsw1107/comments/130320.html</wfw:comment><comments>http://www.blogjava.net/tsw1107/articles/130320.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tsw1107/comments/commentRss/130320.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tsw1107/services/trackbacks/130320.html</trackback:ping><description><![CDATA[一．最基本题型（说明：此类题型比较简单）<br>1.烧一根不均匀的绳，从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子，问如何用烧绳的方法来计时一个小时十五分钟呢？（这道题我当初想了一个小时） <br>2.你有一桶果冻，其中有黄色、绿色、红色三种，闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻？（5秒-1分钟） <br>3.如果你有无穷多的水，一个3公升的提捅，一个5公升的提捅，两只提捅形状上下都不均匀，问你如何才能准确称出4公升的水？（40秒-3分钟） <br>4.一个岔路口分别通向诚实国和说谎国。来了两个人，已知一个是诚实国的，另一个是说谎国的。诚实国永远说实话，说谎国永远说谎话。现在你要去说谎国，但不知道应该走哪条路，需要问这两个人。请问应该怎么问？（20秒-2分钟） <br>5.12个球一个天平，现知道只有一个和其它的重量不同，问怎样称才能用三次就找到那个球。13个呢？（注意此题并未说明那个球的重量是轻是重，所以需要仔细考虑）（5分钟-1小时） <br>6.在9个点上画10条直线，要求每条直线上至少有三个点？（3分钟-20分钟） <br>7.在一天的24小时之中，时钟的时针、分针和秒针完全重合在一起的时候有几次？都分别是什么时间？你怎样算出来的？（5分钟-15分钟） <br><br>二．没有答案型（说明：这些题显然不是考你智力。而考的是你的反应能力。这种题大多数没有答案，但是要看你的反应喽！）<br>1.为什么下水道的盖子是圆的？ <br>2.中国有多少辆汽车？ <br>3.将汽车钥匙插入车门，向哪个方向旋转就可以打开车锁？ <br>4.如果你要去掉中国的34个省（含自治区、直辖市和港澳特区及台湾省）中的任何一个，你会去掉哪一个，为什么？ <br>5.多少个加油站才能满足中国的所有汽车？ <br>6.想象你站在镜子前，请问，为什么镜子中的影象可以颠倒左右，却不能颠倒上下？ <br>7.为什么在任何旅馆里，你打开热水，热水都会瞬间倾泻而出？ <br>8.你怎样将Excel的用法解释给你的奶奶听？ <br>9.你怎样重新改进和设计一个ATM银行自动取款机？ <br>10.如果你不得不重新学习一种新的计算机语言，你打算怎样着手来开始？ <br>11.如果你的生涯规划中打算在5年内受到奖励，那获取该项奖励的动机是什么？观众是谁？<br>12.如果微软告诉你，我们打算投资五百万美元来启动你的投资计划，你将开始什么样商业计划？为什么？<br>13.如果你能够将全世界的电脑厂商集合在一个办公室里，然后告诉他们将被强迫做一件事，那件事将是什么？ <br><br>三．难题（说明：这类题有一定难度，如果得不到答案，也不能说明什么。如果你想到了解题思路，那么答案马上就能出来。如果想不到思路，那么&#8230;&#8230;就别想解出来了。）<br>1.你让工人为你工作7天，回报是一根金条，这个金条平分成相连的7段，你必须在每天结束的时候给他们一段金条。如果只允许你两次把金条弄断，你如何给你的工人付费？ <br>2.有一辆火车以每小时15公里的速度离开北京直奔广州，同时另一辆火车每小时20公里的速度从广州开往北京。如果有一只鸟，以30公里每小时的速度和两辆火车同时启动，从北京出发，碰到另一辆车后就向相反的方向返回去飞，就这样依次在两辆火车之间来回地飞，直到两辆火车相遇。请问，这只鸟共飞行了多长的距离？ <br>3.你有四个装药丸的罐子，每个药丸都有一定的重量，被污染的药丸是没被污染的药丸的重量+1。只称量一次，如何判断哪个罐子的药被污染了？ <br>4.门外三个开关分别对应室内三盏灯，线路良好，在门外控制开关时候不能看到室内灯的情况，现在只允许进门一次，确定开关和灯的对应关系？<br>5.人民币为什么只有1、2、5、10的面值？ <br>6.你有两个罐子以及50个红色弹球和50个蓝色弹球，随机选出一个罐子， 随机选出一个弹球放入罐子，怎么给出红色弹球最大的选中机会？在你的计划里，得到红球的几率是多少？ <br><br>四．超难题（说明：如果你是第一次看到这种题，并且以前从来没有见过类似的题型，并且能够在半个小时之内做出答案。只能说明你的智力超常&#8230;&#8230;）<br><br>第一题 . 五个海盗抢到了100颗宝石，每一颗都一样大小和价值连城。他们决定这么分： <br>抽签决定自己的号码（1、2、3、4、5） <br>首先，由1号提出分配方案，然后大家表决，当且仅当超过半数的人同意时，按照他的方案进行分配，否则将被扔进大海喂鲨鱼 <br>如果1号死后，再由2号提出分配方案，然后剩下的4人进行表决，当且仅当超过半数的人同意时，按照他的方案进行分配，否则将被扔入大海喂鲨鱼 <br>依此类推 <br>条件：每个海盗都是很聪明的人，都能很理智地做出判断，从而做出选择。<br>问题：第一个海盗提出怎样的分配方案才能使自己的收益最大化？ <br><br>第二题 . 一道关于飞机加油的问题，已知： <br>每个飞机只有一个油箱， <br>飞机之间可以相互加油（注意是相互，没有加油机） <br>一箱油可供一架飞机绕地球飞半圈， <br>问题：<br>为使至少一架飞机绕地球一圈回到起飞时的飞机场，至少需要出动几架飞机？（所有飞机从同一机场起飞，而且必须安全返回机场，不允许中途降落，中间没有飞机场） <br><br>五．主观题（说明：在以后的工作过程中，我们可定会犯这样那样的错误。既然错误已经酿成，损失在所难免，我们只能想办法把损失减少到最小。如果能巧妙地回答出这些问题，再发生错误的情况下。能让客户有最少的抱怨，公司有最少的损失。）<br>1.某手机厂家由于设计失误，有可能造成电池寿命比原来设计的寿命短一半（不是冲放电时间），解决方案就是免费更换电池或给50元购买该厂家新手机的折换券。请给所有已购买的用户写信告诉解决方案。 <br>2.一高层领导在参观某博物馆时，向博物馆馆员小王要了一块明代的城砖作为纪念，按国家规定，任何人不得将博物馆收藏品变为私有。博物馆馆长需要如何写信给这位领导，将城砖取回。 <br>3.营业员小姐由于工作失误，将2万元的笔记本电脑以1.2万元错卖给李先生，王小姐的经理怎么写信给李先生试图将钱要回来？ <br><br>六.算法题（说明：这些题就不是什么花样了，考的是你的基础知识怎么样。再聪明而没有实学的人都将会被这些题所淘汰。）<br>1.链表和数组的区别在哪里？ <br>2.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法？ <br>3.编写实现数组排序的一种算法。说明为什么你会选择用这样的方法？ <br>4.请编写能直接实现strstr()函数功能的代码。 <br>5.编写反转字符串的程序，要求优化速度、优化空间。 <br>6.在链表里如何发现循环链接？ <br>7.给出洗牌的一个算法，并将洗好的牌存储在一个整形数组里。 <br>8.写一个函数，检查字符是否是整数，如果是，返回其整数值。（或者：怎样只用4行代码编写出一个从字符串到长整形的函数？） <br>9.给出一个函数来输出一个字符串的所有排列。 <br>10.请编写实现malloc()内存分配函数功能一样的代码。 <br>11.给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。 <br>12.怎样编写一个程序，把一个有序整数数组放到二叉树中？ <br>13.怎样从顶部开始逐层打印二叉树结点数据？请编程。 <br>14.怎样把一个链表掉个顺序（也就是反序，注意链表的边界条件并考虑空链表）？<br><br><br><br>［解答与提示］ <br><br>一．最基本题型 <br>1.一要一头烧，一根从两头烧，再有一根做参照，两头烧完的记下位置（即烧到这里要半小时），把参照的那根从标记位置处剪开，取其中一段A。 <br>一头烧的那根烧完后（就是一个小时后），把A从两头开始烧，烧完后即为十五分钟，加起来共一小时十五分钟。<br><br>2.4个。<br><br>3.大桶装满水，倒入小桶，大桶剩下2公升水。小桶水倒掉，大桶剩2公升水倒入小桶中，大桶再装满后，倒入小桶至小桶满，大桶即剩４公升<br><br>4.如果参加过类似于奥林匹克数学班的，都应做过这些题。问他你的国家怎么走，他肯定指向的是诚实国。<br><br>5.12个时可以找出那个是重还是轻，13个时只能找出是哪个球，轻重不知。 <br>把球编为①②③④⑤⑥⑦⑧⑨⑩⑾⑿。（13个时编号为⒀） <br>第一次称：先把①②③④与⑤⑥⑦⑧放天平两边， <br>　　㈠如相等，说明特别球在剩下4个球中。 <br>　　　　把①⑨与⑩⑾作第二次称量， <br>　　　　⒈如相等，说明⑿特别，把①与⑿作第三次称量即可判断是⑿是重还是轻 <br>　　　　⒉如①⑨&lt;⑩⑾说明要么是⑩⑾中有一个重的，要么⑨是轻的。 <br>　　　　　　把⑩与⑾作第三次称量，如相等说明⑨轻，不等可找出谁是重球。 <br>　　　　⒊如①⑨&gt;⑩⑾说明要么是⑩⑾中有一个轻的，要么⑨是重的。 <br>　　　　　　把⑩与⑾作第三次称量，如相等说明⑨重，不等可找出谁是轻球。 <br>　　㈡如左边&lt;右边，说明左边有轻的或右边有重的 <br>　　　　把①②⑤与③④⑥做第二次称量 <br>　　　　⒈如相等，说明⑦⑧中有一个重，把①与⑦作第三次称量即可判断是⑦与⑧中谁是重球 <br>　　　　⒉如①②⑤&lt;③④⑥说明要么是①②中有一个轻的，要么⑥是重的。 <br>　　　　　　把①与②作第三次称量，如相等说明⑥重，不等可找出谁是轻球。 <br>　　　　⒊如①②⑤&gt;③④⑥说明要么是⑤是轻的，要么③④中有一个是重的。 <br>　　　　　　把③与④作第三次称量，如相等说明⑤轻，不等可找出谁是重球。 <br>　　㈢如左边&gt;右边，参照㈡相反进行。 <br>当13个球时，第㈠步以后如下进行。 <br>　　把①⑨与⑩⑾作第二次称量， <br>　　⒈如相等，说明⑿⒀特别，把①与⑿作第三次称量即可判断是⑿还是⒀特别，但判断不了轻重了。 <br>　　⒉不等的情况参见第㈠步的⒉⒊ <br><br>6. 见下面的点　10条线的情况是 123 456 789 148 159 247 258 269 357 368 <br>①　②　③ <br><br>　④⑤⑥ <br><br>⑦　⑧　⑨ <br><br>7.注意是24小时不是１２小时。 <br>首先考察时针与分针的情况，很容易看出分针转一圈与时针只重合一次，就是一小时一次。但11时与0时的分钟区内共享一个重合点，所只24 <br><br><br>二．没有答案型<br><br>1.圆井盖掉不下去<br><br>2.一千万<br><br>3.顺时针方向。<br><br>4. <br><br>5.十万个<br><br>6.答案是"This feature is by design." 如果考官要求给出更加合理的解释，就对他说："如果您对此问题有更多疑问，请与它的供应商（或者与它的发明人）联系"。 答案是眼睛是左右长着的。<br><br>7.如果不倾泻而出，这家旅馆将没有人去住。<br><br>8.告诉她这是最先进的东西，她不需要动手，我来帮她做就可以。<br><br>9.我想斯皮尔伯格来回答这道题是在合适不过得了。<br><br>10.我觉得回放飞网呆上半个月比较合适。<br><br>11.这题我没有任何想法，因为没有工作经验，所以完全没听明白他问的是什么！<br><br>12.做微软的OEM，这样能够更好的服务微软。<br><br>13.把主机箱集成在一个液晶显示器中！ 只准开发我们认证的驱动！ <br><br>三．难题<br><br>1.切两刀，分为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/7<br><br>2.北京到广州距离的30/35。<br><br>3.依次从四个罐子中取出1、2、3、4个药丸，设第一丸子应重为X，称得的重量是10X+t,t是几就是第几个罐子污染了。<br><br>4.先开一个，开很长时间。然后关掉，再开另一个。出去看，亮着的那个不用说。剩下的两个不亮的，按照灯泡的温度来进行判断。<br><br>5.可以用三张以内组成任何面额。<br><br>6.不清楚。可能是50%。 <br><br>四.超难题<br><br>一) 设5个人分别是①②③④⑤ <br>假设前面的都扔海里了，由④来分，无论他怎么分（包括全给⑤），都面临被否决扔海里的危险。 <br>所以，当③来分时，④⑤一个不给，全由③独吞，④为了避免被扔海里的危险，也要同意，③的方案成立。 <br>那么，在②分时，③是肯定要反对的，要赢得④⑤的同意，必须多给一个，否则有可能否决（对④⑤来说，反正③来分时还是0,你不多给一个就否决），所以②的分配方案一定是：②98　③0　④1　⑤1 <br>回到①来的分配，由于②肯定反对，为了赢得③④⑤的同意，必须在②分配方案的基础上给他们加一个，由于只需再争取两票，③④⑤中可以 <br><br>排除争取一个，从收益来说，排除④⑤中的一个即可，那么①的分配方案为：①97　③1　④(或⑤)1 其它都不给！ <br><br>二) 如果机场本身不可以加油的话　那么最少需要４架 <br>３架同时起飞，到1/6圈时，两架飞机把各自油箱中的1/3加给另外一架，这两架剩的油正好可以原路飞回，被加油机可以飞到5/6圈处。 <br>第４架飞机在环球飞机飞到4/6圈时起飞去接应，两飞机在5/6圈处相遇，环球机刚好用完油，加油机把1/3的油给环球机，两飞机刚好都能飞回 <br><br><br>五.主观题<br><br>1.告诉用户我公司为答谢广大顾客长时间以来的厚爱，顾客可以持原电池免费更换使用寿命为原电池一倍的新型电池。或者可以持购买发票，获得50元购买该厂家新手机的折换券。<br><br>2.信件如下： <br>"xxx领导：您好！ <br>我馆近期将展出一批珍贵文物，让更多的人能够真正的体会到中华民族文明的悠久、灿烂。我们希望能将您所拥有的明代的城砖展出。并且我们将在博物馆内设置专栏，宣传您对中华民族悠久文化的保存所作出的巨大贡献，让更多的华夏子孙看到，并且亲身体验到华夏文明的悠久历史，从而加强中华民族的凝聚力！" <br>解释： <br>领导看过这封信以后，如果不拿出城砖。那么也就说明他不想让更多的人看到中华民族的灿烂文明，不想让中华民族有更强的凝聚力。自然也就会拿出城砖。如果领导问到何时展出完毕，可以告诉他博物馆希望永久展出这些物品，领导自然也就无话可说了。 <br><br>3.信件如下： <br>" 尊敬的顾客，您好！ <br>由于工作人员的失误，误将一台样品机卖给您。为了您能够更好的使用我公司的产品，我公司决定为您免费更换同等价位的笔记本一台。并且我们有性价比更加优越的xxxII 型笔记本电脑，售价20000元人民币。如果您此时购买，我们将会以19000元的优惠价格售出。" <br><br><br>六．算法题 <br>请参考数据结构和计算机算法类书籍，作者就不再抄书了。 <br><br>附（1）：烧绳子类问题总结： <br>一般给出的绳子都是不均匀的。如果一根为一小时，那么半个小时的计算方法是从两头烧。十五分钟的计算方法是从两头烧，同时从中间任何一个地方开始烧，这样这根绳子就有四个燃烧点，时间自然是一个燃烧点的四分之一。如果计算十分钟的时间，那么就让绳子有六个燃烧点，方法就不用说了吧！ <br><br>附（2）：天平称球问题解答以及总结： <br>将球分为a b c d； e f g h； i j k l 三组。 <br><br>第一次称量，比较 abcd efgh <br><br>情形一： <br>两者重量相等，此时说明答案在ijkl中。 <br>称量ij， <br>如果相等,说明答案在kl中。拿k与a比较，如果相等，答案为l；如果不等，答案为k。 <br>如果不等，说明答案在ij中。拿i与a比较，如果相等，答案为j；如果不等，答案为i。 <br><br><br>情形二： <br>abcd轻。 <br>在efgh中取出fgh，替换掉abcd中的bcd。 在ijkl中取出jkl，补充到原来fgh的位置。 <br>如果afgh轻，说明答案为a或e。称量ab，如果相等，答案为e；如果不等，答案为a。 <br>如果afgh重，说明答案在fgh中。称量fg，如果相等，答案为h；如果不等，重者为答案。 <br>如果一样重，答案在bcd中。称量bc，如果相等，答案为d；如果不等，轻者为答案。 <br><br>情形三： <br>abcd重。 <br>在efgh中取出fgh，替换掉abcd中的bcd。 在ijkl中取出jkl，补充到原来fgh的位置。 <br>如果afgh重，答案为a或e。称量ab，如果相等，答案为e；如果不等，答案为a。 <br>如果afgh轻，答案在fgh中。称量fg，如果相等，答案为h；如果不等，轻者为所求。 <br>如果一样重，答案在bcd中。称量bc，如果相等，答案为d；如果不等，重者为答案。 <br><br>至于13个球的称法，至今本人仍没想出来。望高手赐教。 <br><br>总结：（转载） <br>天平称重，有两个托盘比较轻重，加上托盘外面，也就是每次称重有3个结果，就是ln3/ln2比特信息。n个球要知道其中一个不同的球，如果知道那个不同重量的球是轻还是重，找出来的话那就是n个结果中的一种，就是有ln（n）/ln2比特信息，如果不知道轻重，找出来就是2n（n个球中的一个，轻或者重，所以是2n）个结果中的一种，那就是ln（2n）/ln2比特信息。 <br><br>假设我们要称k次，根据信息理论，那显然两种情况就分别有： <br>1. k*ln3/ln2&gt;=ln（n）/ln2　（k&gt;=1）　解得k&gt;=ln（n）/ln3 <br>2. k*ln3/ln2&gt;=ln（2n）/ln2　（k&gt;1）　解得k&gt;=ln（2n）/ln3 <br>这是得到下限，可以很轻易证明满足条件的最小正整数k就是所求。比如称3次知道轻重可以从3^3=27个球中找出不同的球出来，如果不知道轻重就只能从（3^3-1）/2=13个球中找出不同的球出来。&nbsp;&nbsp;
<img src ="http://www.blogjava.net/tsw1107/aggbug/130320.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tsw1107/" target="_blank">汤市伟</a> 2007-07-15 01:28 <a href="http://www.blogjava.net/tsw1107/articles/130320.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>