Microsoft程序员测试题
原创:onefi http://www.frontfree.net/ | 2003年6月1日 |
最近大家在网站上看到不少Microsoft的测试题,引来不少的眼光。我在这里把所有的测试题加以整理,再附上自己的答案。(个别题目答案有多种,文本仅代表作者的思路,如有高见欢迎和我交流 onefi@frontfree.net)每道题的后面会给出一个时间。这个时间是我做出该题所用的时间。(注意,这不是什么标准时间,我相信所有浏览本试卷的朋友都会在某一道或多道题上找到灵感,迅速解题的)
一.最基本题型(说明:此类题型比较简单)
1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?(这道题我当初想了一个小时) |
2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻?(5秒-1分钟) |
3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?(40秒-3分钟) |
4.一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。请问应该怎么问?(20秒-2分钟) |
5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)(5分钟-1小时) |
6.在9个点上画10条直线,要求每条直线上至少有三个点?(3分钟-20分钟) |
7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?(5分钟-15分钟) |
二.没有答案型(说明:这些题显然不是考你智力。而考的是你的反应能力。这种题大多数没有答案,但是要看你的反应喽!)
1.为什么下水道的盖子是圆的? |
2.中国有多少辆汽车? |
3.将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁? |
4.如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉哪一个,为什么? |
5.多少个加油站才能满足中国的所有汽车? |
6.想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下? |
7.为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出? |
8.你怎样将Excel的用法解释给你的奶奶听? |
9.你怎样重新改进和设计一个ATM银行自动取款机? |
10.如果你不得不重新学习一种新的计算机语言,你打算怎样着手来开始? |
11.如果你的生涯规划中打算在5年内受到奖励,那获取该项奖励的动机是什么?观众是谁? |
12.如果微软告诉你,我们打算投资五百万美元来启动你的投资计划,你将开始什么样商业计划?为什么? |
13.如果你能够将全世界的电脑厂商集合在一个办公室里,然后告诉他们将被强迫做一件事,那件事将是什么? |
三.难题(说明:这类题有一定难度,如果得不到答案,也不能说明什么。如果你想到了解题思路,那么答案马上就能出来。如果想不到思路,那么……就别想解出来了。)
1.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候给他们一段金条。如果只允许你两次把金条弄断,你如何给你的工人付费? |
2.有一辆火车以每小时15公里的速度离开北京直奔广州,同时另一辆火车每小时20公里的速度从广州开往北京。如果有一只鸟,以30公里每小时的速度和两辆火车同时启动,从北京出发,碰到另一辆车后就向相反的方向返回去飞,就这样依次在两辆火车之间来回地飞,直到两辆火车相遇。请问,这只鸟共飞行了多长的距离? |
3.你有四个装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被污染的药丸的重量+1。只称量一次,如何判断哪个罐子的药被污染了? |
4.门外三个开关分别对应室内三盏灯,线路良好,在门外控制开关时候不能看到室内灯的情况,现在只允许进门一次,确定开关和灯的对应关系? |
5.人民币为什么只有1、2、5、10的面值? |
6.你有两个罐子以及50个红色弹球和50个蓝色弹球,随机选出一个罐子, 随机选出一个弹球放入罐子,怎么给出红色弹球最大的选中机会?在你的计划里,得到红球的几率是多少? |
四.超难题(说明:如果你是第一次看到这种题,并且以前从来没有见过类似的题型,并且能够在半个小时之内做出答案。只能说明你的智力超常……)
第一题 . 五个海盗抢到了100颗宝石,每一颗都一样大小和价值连城。他们决定这么分: | |
抽签决定自己的号码(1、2、3、4、5) | |
首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔进大海喂鲨鱼 | |
如果1号死后,再由2号提出分配方案,然后剩下的4人进行表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔入大海喂鲨鱼 | |
依此类推 | |
条件:每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。 问题:第一个海盗提出怎样的分配方案才能使自己的收益最大化? |
第二题 . 一道关于飞机加油的问题,已知: | |
每个飞机只有一个油箱, | |
飞机之间可以相互加油(注意是相互,没有加油机) | |
一箱油可供一架飞机绕地球飞半圈, | |
问题: 为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场) |
五.主观题(说明:在以后的工作过程中,我们可定会犯这样那样的错误。既然错误已经酿成,损失在所难免,我们只能想办法把损失减少到最小。如果能巧妙地回答出这些问题,再发生错误的情况下。能让客户有最少的抱怨,公司有最少的损失。)
1.某手机厂家由于设计失误,有可能造成电池寿命比原来设计的寿命短一半(不是冲放电时间),解决方案就是免费更换电池或给50元购买该厂家新手机的折换券。请给所有已购买的用户写信告诉解决方案。 |
2.一高层领导在参观某博物馆时,向博物馆馆员小王要了一块明代的城砖作为纪念,按国家规定,任何人不得将博物馆收藏品变为私有。博物馆馆长需要如何写信给这位领导,将城砖取回。 |
3.营业员小姐由于工作失误,将2万元的笔记本电脑以1.2万元错卖给李先生,王小姐的经理怎么写信给李先生试图将钱要回来? |
六.算法题(说明:这些题就不是什么花样了,考的是你的基础知识怎么样。再聪明而没有实学的人都将会被这些题所淘汰。)
1.链表和数组的区别在哪里? |
2.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法? |
3.编写实现数组排序的一种算法。说明为什么你会选择用这样的方法? |
4.请编写能直接实现strstr()函数功能的代码。 |
5.编写反转字符串的程序,要求优化速度、优化空间。 |
6.在链表里如何发现循环链接? |
7.给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里。 |
8.写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?) |
9.给出一个函数来输出一个字符串的所有排列。 |
10.请编写实现malloc()内存分配函数功能一样的代码。 |
11.给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。 |
12.怎样编写一个程序,把一个有序整数数组放到二叉树中? |
13.怎样从顶部开始逐层打印二叉树结点数据?请编程。 |
14.怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)? |
解答与提示:
说明:答案都是自己想出来的,并不代表是最正确的答案。如果有朋友发现错误,或知道更好的答案。不忘赐教:onefi@frontfree.net
一.最基本题型
1.一根从两头烧 ,并且同是从中间任何一处开始烧。烧完后即为十五分钟。然后再烧一根就是一个小时。 | |
2.4个。 | |
3.略...... | |
4.如果参加过类似于奥林匹克数学班的,都应做过这些题。问他你的国家怎么走,他肯定指向的是诚实国。 | |
5.略...... | |
6. | ![]() |
7.11次(我想是这样的) |
二.没有答案型
1.圆井盖掉不下去 |
2.一千万(我这么认为) |
3.我会回答顺时针方向。 |
4.北京。(原因是我生在北京长在北京,想让北京脱离是因为想去看看外面的世界,既然美国人问咱们这种政治问题,咱们也就回应一个政治玩笑罢了) |
5.十万个(可以创造将近一百万的就业岗位呢) |
6.答案是“This feature is by design.” 如果考官要求给出更加合理的解释,就对他说:“如果您对此问题有更多疑问,请与它的供应商(或者与它的发明人)联系”。 |
7.如果不倾泻而出,这家旅馆将没有人去住。(所以这个问题最好去问旅馆的老板。) |
8.告诉她这是最先进的东西,她不需要动手,我来帮她做就可以。 |
9.我想斯皮尔伯格来回答这道题是在合适不过得了。 |
10.我觉得回放飞网呆上半个月比较合适。 |
11.这题我没有任何想法,因为没有工作经验,所以完全没听明白他问的是什么! |
12.做微软的OEM,这样能够更好的服务微软。 |
13.把主机箱集成在一个液晶显示器中! |
三.难题
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 |
2.至今不知道应如何解答。 |
3.依次从四个罐子中取出1、2、3、4个药丸,结果不用说了吧! |
4.先开一个,开很长时间。然后关掉,再开另一个。出去看,亮着的那个不用说。剩下的两个不亮的,按照灯泡的温度来进行判断。 |
5.至今不知道应如何解答。 |
6.不清楚。可能是50%。 |
四.超难题
可以去放飞技术网www.frontfree.net中的论坛看看,有不少高手仍在讨论这个问题...... |
曾经问过很多人。没有一个人的答案非常令人满意。期待高手的出现....... |
五.主观题
1.告诉用户我公司为答谢广大顾客长时间以来的厚爱,顾客可以持原电池免费更换使用寿命为原电池一倍的新型电池。或者可以持购买发票,获得50元购买该厂家新手机的折换券。 |
2.信件如下: |
3.信件如下: “ 尊敬的顾客,您好! 由于工作人员的失误,误将一台样品机卖给您。为了您能够更好的使用我公司的产品,我公司决定为您免费更换同等价位的笔记本一台。并且我们有性价比更加优越的xxxII 型笔记本电脑,售价20000元人民币。如果您此时购买,我们将会以19000元的优惠价格售出。” |
六.算法题
请参考数据结构和计算机算法类书籍,作者就不再抄书了。
附(1):烧绳子类问题总结:
一般给出的绳子都是不均匀的。如果一根为一小时,那么半个小时的计算方法是从两头烧。十五分钟的计算方法是从两头烧,同时从中间任何一个地方开始烧,这样这根绳子就有四个燃烧点,时间自然是一个燃烧点的四分之一。如果计算十分钟的时间,那么就让绳子有六个燃烧点,方法就不用说了吧!
附(2):天平称球问题解答以及总结:
将球分为a b c d; e f g h; i j k l 三组。
第一次称量,比较 abcd efgh
情形一:
两者重量相等,此时说明答案在ijkl中。
称量ij,
如果相等,说明答案在kl中。拿k与a比较,如果相等,答案为l;如果不等,答案为k。
如果不等,说明答案在ij中。拿i与a比较,如果相等,答案为j;如果不等,答案为i。
情形二:
abcd轻。
在efgh中取出fgh,替换掉abcd中的bcd。 在ijkl中取出jkl,补充到原来fgh的位置。
如果afgh轻,说明答案为a或e。称量ab,如果相等,答案为e;如果不等,答案为a。
如果afgh重,说明答案在fgh中。称量fg,如果相等,答案为h;如果不等,重者为答案。
如果一样重,答案在bcd中。称量bc,如果相等,答案为d;如果不等,轻者为答案。
情形三:
abcd重。
在efgh中取出fgh,替换掉abcd中的bcd。 在ijkl中取出jkl,补充到原来fgh的位置。
如果afgh重,答案为a或e。称量ab,如果相等,答案为e;如果不等,答案为a。
如果afgh轻,答案在fgh中。称量fg,如果相等,答案为h;如果不等,轻者为所求。
如果一样重,答案在bcd中。称量bc,如果相等,答案为d;如果不等,重者为答案。
至于13个球的称法,至今本人仍没想出来。望高手赐教。onefi@frontfree.net
总结:(转载)
天平称重,有两个托盘比较轻重,加上托盘外面,也就是每次称重有3个结果,就是ln3/ln2比特信息。n个球要知道其中一个不同的球,如果知道那个不同重量的球是轻还是重,找出来的话那就是n个结果中的一种,就是有ln(n)/ln2比特信息,如果不知道轻重,找出来就是2n(n个球中的一个,轻或者重,所以是2n)个结果中的一种,那就是ln(2n)/ln2比特信息。
假设我们要称k次,根据信息理论,那显然两种情况就分别有: | |
1. | k*ln3/ln2>=ln(n)/ln2 (k>=1) 解得k>=ln(n)/ln3 |
2. | k*ln3/ln2>=ln(2n)/ln2 (k>1) 解得k>=ln(2n)/ln3 |
这是得到下限,可以很轻易证明满足条件的最小正整数k就是所求。比如称3次知道轻重可以从3^3=27个球中找出不同的球出来,如果不知道轻重就只能从(3^3-1)/2=13个球中找出不同的球出来。 |
相关文章:

裸centos安装PCRE时报错解决
2019独角兽企业重金招聘Python工程师标准>>> no acceptable C compiler found in $PATH由于没有gcc的编译环境引起的,yum install gcc就ok unrecognized option -DHAVE_CONFIG_H由于没有gcc-c的编译环境引起的,yum -y install gcc-c 转载于:…

mysql删除开放用户权限
来访用户ODBC 1,在本地的cmd中用root用户进入mysql2,创建一个ODBC的用户create user ODBClocalhost;查看用户是否创建成功select user,host from mysql.user;3,将所有的权限开放给ODBC用户grant all on *.* to ODBClocalhost;查看ODBC用户的权限show grants for ODBC localhost…
AI不止能美颜,美妆迁移这样做 | 赠书
本文内容节选自《深度学习之人脸图像处理:核心算法与案例实践》,作者言有三。美颜和美妆是人脸中很常见的技术,在网络直播以及平常的社交生活中都有很多应用场景。本文重点介绍的是人脸妆造迁移的核心技术及其相关资源。想要了解关于深度学习…

ASP.Net中自定义Http处理及应用之HttpModule篇
HttpHandler实现了类似于ISAPI Extention的功能,他处理请求(Request)的信息和发送响应(Response)。HttpHandler功能的实现通过实现IHttpHandler接口来达到。而HttpModule实现了类似于ISAPI Filter的功能。 HttpModule的实现HttpModules实现了类似于ISAPI Filter的功…

未处理的异常导致基于 ASP.NET 的应用程序意外退出
问题具体见:http://q.cnblogs.com/q/34874/ 相应站点的w3wp.exe 会意外终止 EventLog中的信息: An unhandled exception occurred and the process was terminated. Application ID: DefaultDomain Process ID: 43644 Exception: System.Runtime.Seri…

Git 执行更改
Jerry 克隆库,他决定实现基本字符串操作。于是,他创建文件string.c,在添加内容到 string.c 会这个样子。 #include <stdio.h> int my_strlen(char *s) { char *p s; while (*p) p; return (p - s); } int main(void) { int i; char *s…

静态属性和静态方法2 - C++快速入门22
静态属性和静态方法2 让编程改变世界 Change the world by program 静态方法 嗯,还是静态方法?!这阵子有鱼油表示对该方法的特色还是有点云里雾里还有那个神神兮兮的this指针。。。 所以小甲鱼保持务必让你彻底领悟的精神继续和大家探讨&…

浅析.Net共享程序集编程
作者:宋华 赛迪网Net结构里的程序集Assembly是自我描述的安装单元,它在应用程序域(AppDomain)中运行。您必须首先将程序集加载到应用程序域中,然后才能运行该应用程序,并且,同一程序集可以加载到多个应用程序域中&a…
“崩溃!我再也不搞 AI 了”谷歌 AI 专家:别让你的方法打败你!
今天,想跟大家聊聊 Python 人工智能。最近几年,我看过市面上很多 Python和人工智能的教程,基本都是先介绍Python基本语法、dict、tuple 等基本库的使用,最后学习机器学习、深度学习的常用算法......但我与 Google 人工智能开发专家…

Spring MVC 相关资料整理
来源于:http://www.cnblogs.com/ylhssn/p/4062757.html 1、概述 Spring MVC是一种基于Java实现MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行解耦,基于请求-响应模型帮助我们简化日常web系统的…

Wireless-N Configuration
Wireless-N Configuration/Zh CnContents [hide]1 关于Wireless N的一般信息2 基本设置2.1 20 MHz vs 40 MHz2.1.1 2.4GHz频段的描述2.1.2 2.4GHz频段表2.2 无线安全设置2.3 高级设置3 Problems and Resolution3.1 Actual Speeds3.2 Testing3.3 Device Drivers4 Device Specifi…

为.Net程序集添加资源
作者:宋华 本文选自:赛迪网 2002年12月06日 在.Net结构中,程序集Assembly(也称着程序集或托管Dll)是自我描述的安装单元,它可以只包括一个PE(可移植可执行)格式的Dll或exe文件,也可以由多…
这5个 AI 用例,转变了传统商务沟通
作者|Lanre Onibalusi译者 |天道酬勤,责编 | 晋兆雨封图 | CSDN 付费下载自视觉中国很少有人会想到这样一种情景:世界上几乎有一半的国家处于封锁状态(可能长达数周或几个月),并且大多数人的工作能力也受到…

cocos2dx 3.x(动态改变精灵的背景图片)
//更换精灵CCSprite的图片有两种方式。 //直接通过图片更换 //使用setTexture(CCTexture2D*)函数,可以重新设置精灵类的纹理图片。 // auto bg Sprite::create(); Texture2D* texture Director::getInstance()->getTextureCache()->addImage("bg2.png&…

如何在.NET中创建服务型组件
作者:张劲松 本文选自:赛迪网 2002年12月03日 对于在WINDOWS上作过一些开发的程序员来说,COM+应该是不会感到陌生的吧。COM+代表了Microsoft在COM技术平台上的最高水平,也是Microsoft藉以和J2EE抗衡的…

flex viewstack的简单应用
1 Flex API里面介绍viewstack: MX ViewStack 导航器容器由一组彼此上下堆叠的子容器组成,其中一次只可以显示一个子容器。选择另一个子容器后,它将显示在原来子容器的位置处,所以看起来好像此子容器替换了原来的子容器。…
在线等:“实习拿到两个不太好的offer,去腾讯还是去阿里?”
“你永远都不知道明天和‘公司的意外’哪个先来。”疫情期间,这是我们最战战兢兢的心情。但是显然,有些人体会不了。这份行业数据,让笔者“柠檬”了。1疫情下,有的公司宣布破产有的公司增长413%疫情期间,人工智能的价值…

如何成功地在亚洲植入敏捷和DevOps
\关键要点\\首先要植入西方文化的要素。\\t使用价值流映射有助于打破文化障碍。\\t让上层管理者参与进来。\\t黑客节(Hackfest)将有助于减少前置期时间。\\t理解文化差异的影响。\\\我读过的一篇文章说Scrum并不适合于亚洲。作者所说的非常正确ÿ…

浅析.Net下的AppDomain编程
作者:宋华 发文时间:2002 我们知道,进程是操作系统用于隔离众多正在运行的应用程序的机制。在.Net之前,每一个应用程序被加载到单独的进程中,并为该进程指定私有的虚拟内存。进程不能直接访问物理内存&…
AI 医生正式上岗了?AI 医疗结合迎爆发点!
作者 | 硬核云顶宫责编 | 晋兆雨封图 | CSDN 付费下载自视觉中国这些年,人工智能应用于医学界是非常热的话题。在医学三大杂志——新英格兰医学杂志、柳叶刀、JAMA上,AI与医疗相结合的论文,占比越来越高。其中最明显的趋势是将医生从繁重的诊…

Android之解析Android Map地图返回的Json数据
先上一下需要解析的Json数据:{"results" : [{"address_components" : [{"long_name" : "荔湾区","short_name" : "荔湾区","types" : [ "sublocality", "political" ]}…

9成P2P平台面临出局,千亿资本何去何从?
【阅读原文】作者:楠沨据研究院数据中心统计,截至2016年10月底,我国 P2P贷款余额已经攀升至7,470亿元左右,环比增长6.0%。进入10月份百强榜的平台,其贷款余额总计3,275亿元,占到整个行业的44%;榜…
关于Transformer,那些的你不知道的事
作者 | 小莫来源 | 阿泽的学习笔记(ID: aze_learning)引言本博客主要是本人在学习 Transformer 时的「所遇、所思、所解」,通过以 「十六连弹」 的方式帮助大家更好的理解该问题。十六连弹为什么要有 Transformer?Transformer 作用是什么&am…

用ASP.NET上传大文件
作者:思归 微软MVP http://blog.joycode.com/saucer/我们在上传大文件时都遇到过这样或那样的问题。设置很大的maxRequestLength值并不能完全解决问题,因为ASP.NET会block直到把整个文件载入内存后,再加以处理。实际上,如果…

中国最齐全的主要电子商务网站(B2C)
中国最齐全的主要电子商务网站(B2C)------[连载之电子商务网站架构]访问量超过100万的电子商务网站技术架构版本:V1出处:http://jimmyli.blog.51cto.com/ 我站在巨人肩膀上Jimmy Li作者:Jimmy Li关键词:中国 电子商务 网站 B2C连接…

怎么安装MYSQL5.0的JDBC驱动
1、下载mysql for jdbc driver. http://dev.mysql.com/downloads/connector/j/3.1.htmlMySQL Connector/J is distributed as a .zip or .tar.gz archive containing the sources and class files as well as a class-file only "binary" .jar archive named "…

ASP.NET中的事务处理和异常处理
刘彦青编译 来自:yesky 使用SQL-Transaction类和.NET提供的异常处理机制,我们就能够以一种可靠的方式处理数据库运行中的问题和发现系统异常。这篇小文章将解释事务处理和异常处理的概念和用法。 什么是事务? 事务处理是由以一个单一的…
2020年AI产业报告:100个岗位抢1个人,计算机视觉成最大缺口
“你永远都不知道明天和‘公司的意外’哪个先来。”疫情期间,这是我们最战战兢兢的心情。但是显然,有些人体会不了。这份行业数据,让笔者“柠檬”了。1疫情下,有的公司宣布破产有的公司增长413%疫情期间,人工智能的价值…

.NET Winform也能画出类似QQ、飞信这样的窗口风格和控件效果
MPN企业宝智能升级程序界面采用.NET的Winform技术,并没有延续企业宝主程序的绘制界面技术——WPF。直接采用Winform实现类似QQ和飞信的窗口风格比较困难,WPF好在还有一个Blend设计工具,而Winform只能靠自己一个一个像素去对齐、去仔细看&…

【转】HashMap、TreeMap、Hashtable、HashSet和ConcurrentHashMap区别
转自:http://blog.csdn.net/paincupid/article/details/47746341 一、HashMap和TreeMap区别 1.HashMap是基于散列表实现的,时间复杂度平均能达到O(1)。 TreeMap基于红黑树(一种自平衡二叉查找树)实现的,时间复杂度平均…