微软的面试题及答案(超变态但很经典)
第一组问题的答案:
1)三根绳子,第一根亮两头,第二根亮一头,第三根不亮。第一根绳子燃烧后(30分钟),点燃第二根绳子的另一端。第二根绳子燃烧后(45分钟),点燃第三根绳子的两端。第三根绳子燃烧后(1小时15分钟),计时完成。
2)根据鸽巢原理,4
3)3升灌装;3-> 5升(全注射);3升满;3-> 5升(左1升);倒出5升;3-> 5升(注射1升);3升满;3升-> 5升;完成(另一个:可以用回溯编程解决)
4)问其中一个人:另一个人会说哪条路通向一个诚实的国家?回答者所指的路一定是通向说谎的国家。
5)12个球:
第一次:4,4如果是平的:那就取剩余的3个球放在左边,称重:如果左边重,那就取两个球称重。如果是平的,第三个就是重的,有缺陷的。如果是轻的,也是一样。如果是平的,那就剩残次品了,没问题。为了便于说明,左边的四个球称为重球,右边的四个球称为轻球,剩下的四个球称为好球。取两个重球,左边放两个轻球,右边放三个好球和一个轻球。如果左边重,就叫那两个重球,重的那个有缺陷;如果是平的,右光球有缺陷。如果右边重,叫左边两个轻球,轻的那个有缺陷。如果是平的,称两个重球,重的那个有缺陷,如果是平的,轻的那个有缺陷。
3球:
第一次:4,4,如果是平手。剩下的5个球还是可以通过上述方法找出不良品,但是无法知道不良品是重是轻。如果没有,同上。
6)
o o o o
o o o
7)
23次,因为分针要转24次,时针可以转一次。但分针和时针的间隔明显> 1小时,所以它们有23次重合,秒针在每次重合中有1次重合的机会。所以重合时间是23次
,可以参考手表或者做一个等式计算出来。
8)
在地球表面种树做一个被地球内接的四面体,内接的点就是你想要的。
第二组没有标准答案。
第三组
1.分成三段:1、2、4。第一天给1,第二天给2,第三天给1,第四天给4,第五天给1,第六天给2,第七天给1。
2.求火车相遇时间,鸟速乘以时间就是鸟飞的距离。
3.从四个罐子里分别取1,2,3,4粒药丸,称一下比正常情况重多少,这样就可以判断那个罐子里的药被污染了。
4.三个开关关,开,开10分钟,然后进屋。暗冷的是开关1控制的灯,亮的是开关2控制的灯,暗热的是开关3控制的灯。
5.因为1,2,5,10可以组合成任何想要的货币值,所以日常习惯是小数。
6.这个问题的意思不明白...* _ *
7.012345 0126(9)78
第四组都是难题。
第一个问题:97 0 1 2 0还是97 0 1 0 2(提示:可以用逆方法得到)
问题2: 3架飞机5架次,飞行方式:
ABC 3架飞机同时起飞,1/8,C加满AB,C返回1/4,B加满A,B返回,A到达1/2,C从机场另一方向起飞,3/4,C已经/[/K0。所以是三架飞机,五个架次。
第三个问题:需要建立数学模型
(提示,严格证明模型比较麻烦,但确实是可证的,大胆猜测是解决问题的关键)
问题可以归结为求数列an=500/(2n+1) n=0,1,2,3的和......且Sn大于等于1000,求解。S6=977.57
所以第一次过境点与起始位置的距离为1000-977.57 = 22.43km
,所以第一次过境前的总油耗为22.43 * (2 * 7+1) = 336.50L
每次过境后的油耗为500L [
第四个问题:需要建立数学模型
问题可以归结为找出自然数列的和s何时大于等于100,解是n>13
。第一杯可能的投掷楼层分别是:14,27,39,50,60,69,77,84,90,95,99。
问题5: 3和4(可以严格证明)
设两个数为n1,n2,n1>=n2,A听到的数为n=n1+n2,B听到的数为m=n1*n2
证明n1=3,n2=4为解
证明:证明上述。我们来证明n=7
1)必要性:
i) n>5是显而易见的,因为n ii) n>6,因为如果n=6,那么A不知道(不确定是2+4还是3+3)但是不管是2,4还是3,B都不可能说不知道(如果m=8或者m=9,B说不知道是不合理的)
iii)如果N = 8,N可以分解
以上证明了必要性。
2)充分性
当n=7时,n可以分解成2+5或3+4
。显然2+5不符合题意,所以很容易判断3+4符合题意,m=12,证明完整
。因此,得到n = 7m = 12n1 = 3N2。
问题6: 7(用数学归纳法证明)
1)如果只有一只病狗,由于病狗的主人看不到其他病狗,他一定会知道自己的狗是病狗(前提是必须有一只病狗),所以他会在第一天处决病狗。
2)如果有K条病狗,会在第K天被处死。那么,如果有k+1条病狗,病狗的主人只会看到K条病狗,而不会有人在第K天处决它们。病狗的主人会在第k+1天知道自己的狗是病狗,所以病狗会在第k+1天被处死。
3)乘1
问题7:
波诺&EDGE通过(2分),波诺把手电筒带回来(1分),亚当&拉里通过(10分),EDGE把手电筒带回来(2分),波诺&EDGE通过(2分)2+1+10+2+2。
问题8:
预约一个人作为举报人(可以是第一个看的人)。
规则如下:
1。记者打开灯,一边看空气一边数灯打开的次数
2。别人第一次开着灯看空气的时候,把灯关了
3求典狱长放人......
按照概率,大约30年(10000天)后可以发布
第五组非标准答案
第六组部分问题参考答案:
4 .
char * strcpy(char * pstr dest = NULL)& &(pstr source!= NULL));
char * pstr = pstr dest;
while((*(pstrdest++)= *(pstrsource++))!='[30]');
return pstr;
}
5.
char * strrev(char * pstr)
{
assert(pstr!= NULL);
char * p = pstr;
char * pret = pstr;
while(*(p++)!='[31]');
p-;
char tmp;
while(p > pstr)
{
tmp = * p;
*(p-)= *(pstr);
*(pstr++)= tmp;
}
return pret;
第四组
问题1。五个海盗抢了100颗宝石,每颗都一样大,价值连城。他们决定这样分:
抽签决定他们的数字(1,2,3,4,5)
首先1号提出分配方案,然后大家投票决定当且仅当超过半数的人同意时,按照他的方案分配,否则就扔进海里喂鲨鱼。如果1号死了,2号提出分配方案,然后是剩下的。按照他的计划来分配,或者他会被扔到海里喂鲨鱼,等等
条件:每个海盗都是一个非常聪明的人,他能做出理性的判断,做出选择。
问题:第一个盗版者提出什么样的分配方案来获利?
问题2。一个关于飞机加油的问题。已知:
每架飞机只有一个油箱,飞机可以互相加油(注意没有加油机)。一箱油可以供一架飞机绕地球飞行半圈。
问题:至少要出动多少架飞机才能让至少一架飞机绕地球一圈,并在起飞时返回机场?(所有飞机从同一个机场起飞,必须安全返回机场。不允许中途降落,中间没有机场。)
问题3。汽车加油的问题
一辆加了500升油的汽车从A地开到1000公里以外的B地。已知该车每公里耗油1升。A处有无限量的石油,但其他地方没有石油。但是汽车可以在任何地方储油以备运输。问一下从A到b至少需要多少油。
问题4。摔杯问题
一种杯子,如果在第N层摔碎,在高于N层的任何一层都会摔碎,但如果没有在m层摔碎,在低于m层的任何一层都会摔碎,这里有两个这样的杯子给你在100层的楼层测试,要求找出恰好摔碎杯子的楼层,测试次数最少。
问题5。推理游戏
教授从2到9中选取两个数,告诉学生A他们的和,告诉学生B他们的积,让他们依次猜这两个数
A说:“我猜不到”
B说:“我猜不到”
A说:“我猜得到。”
问题6。病狗问题
一个小区有100户人家,每户养一只狗,每个人每天傍晚都在同一个地方遛狗。众所周知,这些狗中有一些生病了。出于某种原因,狗的主人无法判断自己的狗是否生病,但可以分辨其他狗是否生病。现在上级发通知,要求居民处决这些病狗,不允许认定别人家的狗是病狗(也就是只能自己判断)。7天后,所有的病狗都被处死。有多少只病狗?为什么?
问题7。U2合唱团必须在17分钟内到达音乐会场地。在路上,它必须经过一座桥。四个人从桥的同一端出发。你必须帮助他们到达另一端。天很黑,他们只有手电筒。最多两个人同时过桥,过桥的时候必须拿着手电筒,所以得有人带着手电筒往返于桥的两端。手电筒扔了也送不出去。四个人以不同的速度行走。如果两个人一起走,以慢的一个为准。博诺过桥需要1分钟,埃奇过桥需要2分钟,亚当过桥需要5分钟,拉里过桥需要10分钟。他们如何能在17分钟内过桥?
问题8。监狱里有100个房间,每个房间里有一个犯人。有一天,典狱长说,你的牢房外面有一盏电灯,你在望风的时候可以控制这盏电灯(关或开)。每天只能一个人出来看风,防风是随机的。如果你们中的一个人能对我说,“我敢肯定现在每个人都至少休息过一次。”我会让你走的!问问犯人应该采取什么策略才能被典狱长释放。如果采用这种策略,大概多久可以释放他们?
第五组
1.由于某手机厂商的设计失误,电池寿命可能比原设计缩短一半(不是充放电时间)。解决办法是免费更换电池或者购买50元新手机的优惠券。请写信给所有购买过的用户,并告知解决方案。
2.某高层领导参观博物馆时,向博物馆馆员小王要了一块明代的城砖作为纪念。根据国家规定,任何人不得将博物馆藏品转为私人所有。博物馆馆长需要怎么给这个领导写信才能拿回城砖?
3.由于工作失误,售货员将20000元的笔记本电脑错卖给李先生12000元。王小姐的经理是怎么给李先生写信想把钱要回来的?
4.给你一个新开发的手机。如果你是测试组的组长,你会怎么测试?
5.如何为函数int atoi(const char * pstr)写一个测试向量?
第六组
1.链表和数组有什么区别?
2.写一个算法对链表进行排序。解释你为什么选择这种方法?
3.写一个算法实现数组排序。解释你为什么选择这种方法?
4.请写出能直接实现char * strcpy (char * pstr dest,constchar * pstr source)功能的代码。
5.写个程序反串,需要优化速度和空。
6.如何在链表中找到循环链接?
7.给出洗牌的算法,并将洗好的牌存储在一个整形数组中。
8.写一个函数检查一个字符是否是整数,如果是,返回它的整数值。(或者:如何只用4行代码?
9.给出一个函数来输出一个字符串的所有排列。
10.请写出实现void * malloc(int)内存分配函数相同功能的代码。
11.给一个函数复制两个字符串A和b,字符串A的最后几个字节与字符串b的前几个字节重叠。
12.如何写一个程序把一个有序的整数数组放到二叉树里?
13.如何从顶部一层一层打印二叉树节点数据?请编程。
14.如何从顺序中去掉一个链表(即逆序,注意链表的边界条件,考虑空链表)?-
15.请写出能直接实现int atoi(const char * pstr)功能的代码。
第一组
1.烧一根不均匀的绳子,从头到尾一共1个小时。现在,有几条绳子是用同样的材料制成的。如何用烧绳的方法计时一小时十五分钟?
2.你有一桶果冻,有黄色、绿色和红色。闭上眼睛抓两张同色的。你能抓几个来确定你必须有两个相同颜色的果冻?
3.如果你有无限量的水,一个3升的勺子,一个5升的勺子,两个勺子形状都不均匀,你怎么能准确称出4升水呢?
4.一条岔路分别通向诚实的国家和说谎的国家。来了两个人,其中一个人被认为是诚实的国家,另一个人被认为是骗子。诚实的国家永远说真话,说谎的国家永远说谎。现在你要去说谎,但你不知道该走哪条路。你需要问这两个人。我该怎么问?
5.12个球和一个天平。现在我们知道只有一个在重量上不同于其他的。问三次后怎么称才能找到球。13呢?(注意这个问题并不能说明球的重量是轻还是重,需要慎重考虑。)
6.在9个点上画10条直线。要求每条直线上至少有三个点?
7.在一天的24小时中,时钟的时针、分针和秒针有多少次完全重合?他们是什么时候?你是怎么算出来的?
8.如何种四棵树,使任意两棵树之间的距离相等?
第二组
1.为什么下水道的盖子是圆的?
2.中国有多少辆汽车?
3.将车钥匙插入车门,可以转哪个方向开锁?
4.如果让你去掉中国34个省中的任何一个省(包括自治区、直辖市、香港、澳门特别行政区和台湾省省),你会去掉哪一个,为什么?
5.中国有多少加油站能满足所有汽车?
6.想象你正站在镜子前。请问,为什么镜子里的影像可以倒过来,却不能倒过来?
7.为什么在任何一家酒店,一打开热水,热水就会瞬间涌出?
8.你怎么跟你奶奶解释Excel的用法?
9.你如何重新设计和改进自动取款机?
10.如果你必须重新学习一门新的计算机语言,你打算如何开始?
11.如果你在职业规划中计划5年内获得奖励,你获得这个奖励的动机是什么?观众是谁?
12.如果微软告诉你,我们打算投资五百万美元启动你的投资计划,你会启动什么样的商业计划?为什么?
13.如果你能把全世界的电脑制造商聚集在一个办公室,然后告诉他们,他们将被迫做一件事,那会是什么?
第三组
1.你要求工人为你工作7天,报酬是一根金条。这根金条被平均分成7个相连的部分,每天结束时你必须给他们一段金条。如果只允许你断两次金条,你怎么给工人发工资?
2.一列火车以每小时15公里的速度离开北京直奔广州,另一列火车以每小时20公里的速度离开广州前往北京。如果有一只鸟以30公里的时速与两列火车同时出发,它从北京出发,撞上另一辆车后返回朝相反方向飞,就这样在两列火车之间依次来回飞行,直到两列火车相遇。请问这只鸟飞了多久?
3.你有四个装有药丸的罐子,每个药丸都有一定的重量,被污染的药丸就是未被污染的药丸的重量+1。只称一次。你怎么知道哪罐药被污染了?
4.门外三个开关分别对应室内三个灯区,接线良好。当门外的开关被控制时,室内的灯就看不见了。现在只允许进门一次,以此来确定开关和灯的对应关系?
5.为什么人民币只有1、2、5、10的面值?
6.你有两个罐子,50个红色弹珠和50个蓝色弹珠。随机选一个罐子,随机选一个弹珠放在罐子里。你怎么给选择红色弹珠的机会?在你的计划中得到红球的几率有多大?
7.给你两张6色脸。你可以在它们的每一面刻上从0到9的任何数字。你需要能够用它们拼出任何一年的日期值。
位律师回复
0条评论