开元周游
德国频道
查看: 2120|回复: 12
打印 上一主题 下一主题

Microsoft程序员测试题汇编及答案ZT

[复制链接]
1#
发表于 9.6.2003 11:07:48 | 只看该作者
即时机票
最近大家在网站上看到不少Microsoft的测试题,引来不少的眼光。我在这里把所有的测试题加以整理,再附上自己的答案。(个别题目答案有多种,文本仅代表作者的思路,如有高见欢迎和我交流onefi@frontfree.net)每道题的后面会给出一个时间。这个时间是我做出该题所用的时间。(注意,这不是什么标准时间,我相信所有浏览本试卷的朋友都会在某一道或多道题上找到灵感,迅速解题的)<br><br><br>一.最基本题型(说明:此类题型比较简单)<br><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><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> <br>12.如果微软告诉你,我们打算投资五百万美元来启动你的投资计划,你将开始什么样商业计划?为什么?<br> <br>13.如果你能够将全世界的电脑厂商集合在一个办公室里,然后告诉他们将被强迫做一件事,那件事将是什么? <br><br> <br><br>三.难题(说明:这类题有一定难度,如果得不到答案,也不能说明什么。如果你想到了解题思路,那么答案马上就能出来。如果想不到思路,那么……就别想解出来了。)<br><br>1.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候给他们一段金条。如果只允许你两次把金条弄断,你如何给你的工人付费? <br>2.有一辆火车以每小时15公里的速度离开北京直奔广州,同时另一辆火车每小时20公里的速度从广州开往北京。如果有一只鸟,以30公里每小时的速度和两辆火车同时启动,从北京出发,碰到另一辆车后就向相反的方向返回去飞,就这样依次在两辆火车之间来回地飞,直到两辆火车相遇。请问,这只鸟共飞行了多长的距离? <br>3.你有四个装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被污染的药丸的重量+1。只称量一次,如何判断哪个罐子的药被污染了? <br>4.门外三个开关分别对应室内三盏灯,线路良好,在门外控制开关时候不能看到室内灯的情况,现在只允许进门一次,确定开关和灯的对应关系?<br> <br>5.人民币为什么只有1、2、5、10的面值? <br>6.你有两个罐子以及50个红色弹球和50个蓝色弹球,随机选出一个罐子, 随机选出一个弹球放入罐子,怎么给出红色弹球最大的选中机会?在你的计划里,得到红球的几率是多少? <br><br> <br><br>四.超难题(说明:如果你是第一次看到这种题,并且以前从来没有见过类似的题型,并且能够在半个小时之内做出答案。只能说明你的智力超常……)<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><br>五.主观题(说明:在以后的工作过程中,我们可定会犯这样那样的错误。既然错误已经酿成,损失在所难免,我们只能想办法把损失减少到最小。如果能巧妙地回答出这些问题,再发生错误的情况下。能让客户有最少的抱怨,公司有最少的损失。)<br><br>1.某手机厂家由于设计失误,有可能造成电池寿命比原来设计的寿命短一半(不是冲放电时间),解决方案就是免费更换电池或给50元购买该厂家新手机的折换券。请给所有已购买的用户写信告诉解决方案。 <br>2.一高层领导在参观某博物馆时,向博物馆馆员小王要了一块明代的城砖作为纪念,按国家规定,任何人不得将博物馆收藏品变为私有。博物馆馆长需要如何写信给这位领导,将城砖取回。 <br>3.营业员小姐由于工作失误,将2万元的笔记本电脑以1.2万元错卖给李先生,王小姐的经理怎么写信给李先生试图将钱要回来? <br><br> <br><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>
2#
 楼主| 发表于 19.6.2003 12:28:00 | 只看该作者
答案与提示:<br><br><br>说明:答案都是自己想出来的,并不代表是最正确的答案。如果有朋友发现错误,或知道更好的答案。不忘赐教:onefi@frontfree.net<br><br><br>一.最基本题型<br><br>1.一根从两头烧 ,并且同是从中间任何一处开始烧。烧完后即为十五分钟。然后再烧一根就是一个小时。 <br>2.4个。 <br>3.略...... <br>4.如果参加过类似于奥林匹克数学班的,都应做过这些题。问他你的国家怎么走,他肯定指向的是诚实国。 <br>5.略...... <br>6.  <br>7.11次(我想是这样的) <br><br> <br><br>二.没有答案型<br><br>1.圆井盖掉不下去? <br>2.一千万(我这么认为) <br>3.我会回答顺时针方向。 <br>4.北京。(原因是我生在北京长在北京,想让北京脱离是因为想去看看外面的世界,既然美国人问咱们这种政治问题,咱们也就回应一个政治玩笑罢了) <br>5.十万个(可以创造将近一百万的就业岗位呢) <br>6.答案是“This feature is by design.” 如果考官要求给出更加合理的解释,就对他说:“如果您对此问题有更多疑问,请与它的供应商(或者与它的发明人)联系”。 <br>7.如果不倾泻而出,这家旅馆将没有人去住。(所以这个问题最好去问旅馆的老板。) <br>8.告诉她这是最先进的东西,她不需要动手,我来帮她做就可以。 <br>9.我想斯皮尔伯格来回答这道题是在合适不过得了。 <br>10.我觉得回放飞网呆上半个月比较合适。 <br>11.这题我没有任何想法,因为没有工作经验,所以完全没听明白他问的是什么! <br>12.做微软的OEM,这样能够更好的服务微软。 <br>13.把主机箱集成在一个液晶显示器中! <br><br>  <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>2.至今不知道应如何解答。 <br>3.依次从四个罐子中取出1、2、3、4个药丸,结果不用说了吧! <br>4.先开一个,开很长时间。然后关掉,再开另一个。出去看,亮着的那个不用说。剩下的两个不亮的,按照灯泡的温度来进行判断。 <br>5.至今不知道应如何解答。 <br>6.不清楚。可能是50%。 <br><br> <br><br>四.超难题<br><br>可以去放飞技术网www.frontfree.net中的论坛看看,有不少高手仍在讨论这个问题...... <br>曾经问过很多人。没有一个人的答案非常令人满意。期待高手的出现....... <br><br>五.主观题<br><br>1.告诉用户我公司为答谢广大顾客长时间以来的厚爱,顾客可以持原电池免费更换使用寿命为原电池一倍的新型电池。或者可以持购买发票,获得50元购买该厂家新手机的折换券。 <br>2.信件如下:<br>“xxx领导:您好!<br>我馆近期将展出一批珍贵文物,让更多的人能够真正的体会到中华民族文明的悠久、灿烂。我们希望能将您所拥有的明代的城砖展出。并且我们将在博物馆内设置专栏,宣传您对中华民族悠久文化的保存所作出的巨大贡献,让更多的华夏子孙看到,并且亲身体验到华夏文明的悠久历史,从而加强中华民族的凝聚力!”<br>解释:<br>领导看过这封信以后,如果不拿出城砖。那么也就说明他不想让更多的人看到中华民族的灿烂文明,不想让中华民族有更强的凝聚力。自然也就会拿出城砖。如果领导问到何时展出完毕,可以告诉他博物馆希望永久展出这些物品,领导自然也就无话可说了。<br> <br>3.信件如下:<br>“ 尊敬的顾客,您好!<br>由于工作人员的失误,误将一台样品机卖给您。为了您能够更好的使用我公司的产品,我公司决定为您免费更换同等价位的笔记本一台。并且我们有性价比更加优越的xxxII 型笔记本电脑,售价20000元人民币。如果您此时购买,我们将会以19000元的优惠价格售出。” <br><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个球的称法,至今本人仍没想出来。望高手赐教。onefi@frontfree.net<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个球中找出不同的球出来。 <br>
3#
匿名  发表于 19.6.2003 13:40:30
不太明白烧绳子问题。<br><br>[/QUOTE]一般给出的绳子都是不均匀的。如果一根为一小时,那么半个小时的计算方法是从两头烧。<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin--><br>这可以理解,若绳子粗细不均,细的一头烧的快,粗的一头烧的慢,但半个小时后会碰头,即一根绳子全部烧完。<br><br><!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->十五分钟的计算方法是从两头烧,同时从中间任何一个地方开始烧[QUOTE]<br>这时绳子已一分为二,是否存在一半先烧完,另一半后烧完的情况。<br><br>烦赐教。<br>
4#
匿名  发表于 19.6.2003 13:46:53
同时从中间任何一个地方开始烧,这样这根绳子就有四个燃烧点,时间自然是一个燃烧点的四分之一。????? think it over, not so simple as you thought.
5#
匿名  发表于 19.6.2003 13:48:10
note down the joint point from the situation of burning two ends. next time set up a fire right at that place.
6#
匿名  发表于 19.6.2003 14:08:34
我的理解,选两根绳子,一根从两头烧,同时另一根从一头烧,当第一根烧完时,立刻将第二根的另一头也点上,从现在到第二根烧完时为15分钟。
7#
发表于 9.7.2003 06:54:32 | 只看该作者
环球飞行<br>3架就够了吧,如果只计飞机数,不计起落次数,而且不要求同时起飞<br>一架环球,2架送完回机场加油,再从另一侧接<br>几个关键位置,1/8,7/24,14/24,19/24
8#
匿名  发表于 22.7.2003 14:48:36
The problem with the BIRD<br><br>The bird will will as long as the two trains do not meet. So, the time should be exactly the time the train needs. And the speed of the bird is fixed. The only problem is that we must know the distance between Beijing and GuZhou.<br>Let us assume it is 1000KM, so the time for the two train to meet is<br>   t = 1000/(15+20) = 200/7 hours<br><br>so the distance that the bird has flied<br>  S = t * 30 = 200*30 / 7 = 6000/ 7 KM
9#
匿名  发表于 22.7.2003 23:40:12
5.人民币为什么只有1、2、5、10的面值?<br><br>这4种数字的组合能标是所有的1-10<br><br>1=1<br>2=2<br>3=1+2<br>4=2+2<br>5=5<br>6=1+5<br>7=2+5<br>8=1+2+5<br>9=2+2+5<br>10=10
10#
匿名  发表于 23.7.2003 00:23:02
re: 13个球问题<br><br>分为 3 3 4 三组<br>第一次称量 3 3 两组<br><br>我们只讨论第一次称量后天平相同的情况。<br><br>说明不同的球只在后面4个球中<br>设为 a b c d<br><br>第二次 让a b做比较<br> if ( 相同) // c d 中有一个重量不同的<br><br>   {<br>   第三次 c 与 标准球比较<br><br>   if ( 相同 ) d重量不同;<br>   else  c重量不同;<br>   }<br> else // a b 中有一个重量不同的<br>   {<br>   第三次 a 与 标准球比较<br>   <br>   if ( 相同 ) b重量不同;<br>   else  a重量不同;<br>   }<br><br>
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点信息

站点统计| 举报| Archiver| 手机版| 小黑屋

Powered by Discuz! X3.2 © 2001-2014 Comsenz Inc.

GMT+1, 25.12.2024 19:24

关于我们|Apps

() 开元网

快速回复 返回顶部 返回列表