1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?
2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻?
3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水?
4.一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。请问应该怎么问?
5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)
6.在9个点上画10条直线,要求每条直线上至少有三个点?
7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时间?你怎样算出来的?
答案:
1.一要一头烧,一根从两头烧,再有一根做参照,两头烧完的记下位置(即烧到这里要半小时),把参照的那根从标记位置处剪开,取其中一段A。
一头烧的那根烧完后(就是一个小时后),把A从两头开始烧,烧完后即为十五分钟,加起来共一小时十五分钟。2.答案:四个~3.大桶装满水,倒入小桶,大桶剩下2公升水。小桶水倒掉,大桶剩2公升水倒入小桶中,大桶再装满后,倒入小桶至小桶满,大桶即剩4公升水。 4.如果参加过类似于奥林匹克数学班的,都应做过这些题。问他你的国家怎么走,他肯定指向的是诚实国。5.12个时可以找出那个是重还是轻,13个时只能找出是哪个球,轻重不知。
把球编为①②③④⑤⑥⑦⑧⑨⑩⑾⑿。(13个时编号为⒀)
第一次称:先把①②③④与⑤⑥⑦⑧放天平两边,
㈠如相等,说明特别球在剩下4个球中。
把①⑨与⑩⑾作第二次称量,
⒈如相等,说明⑿特别,把①与⑿作第三次称量即可判断是⑿是重还是轻
⒉如①⑨<⑩⑾说明要么是⑩⑾中有一个重的,要么⑨是轻的。
把⑩与⑾作第三次称量,如相等说明⑨轻,不等可找出谁是重球。
⒊如①⑨>⑩⑾说明要么是⑩⑾中有一个轻的,要么⑨是重的。
把⑩与⑾作第三次称量,如相等说明⑨重,不等可找出谁是轻球。
㈡如左边<右边,说明左边有轻的或右边有重的
把①②⑤与③④⑥做第二次称量
⒈如相等,说明⑦⑧中有一个重,把①与⑦作第三次称量即可判断是⑦与⑧中谁是重球
⒉如①②⑤<③④⑥说明要么是①②中有一个轻的,要么⑥是重的。
把①与②作第三次称量,如相等说明⑥重,不等可找出谁是轻球。
⒊如①②⑤>③④⑥说明要么是⑤是轻的,要么③④中有一个是重的。
把③与④作第三次称量,如相等说明⑤轻,不等可找出谁是重球。
㈢如左边>右边,参照㈡相反进行。
当13个球时,第㈠步以后如下进行。
把①⑨与⑩⑾作第二次称量,
⒈如相等,说明⑿⒀特别,把①与⑿作第三次称量即可判断是⑿还是⒀特别,但判断不了轻重了。
⒉不等的情况参见第㈠步的⒉⒊ 6. 见下面的点 10条线的情况是 123 456 789 148 159 247 258 269 357 368
①②③
④⑤⑥
⑦⑧⑨
7.首先考察时针与分针的情况,很容易看出分针转一圈与时针只重合一次,就是一小时一次。但11时与0时的分钟区内共享一个重合点,所只24
小时中,只有22次重合,现在只需考察这22个重合点时,秒针与不与它重合就行了(实际上,只要判断11个重合点,剩下的11个情况相同)。
0时整当然没问题,当n点到n+1点间(n=1,2,……10),设这时是X小时
则30°X=60(X-n)x6°
即X=12n/11。
此时时针分针的位置是30°X=(360/11)n°=(32+8/11)n°
秒针的位置是360(X-n)6°=(4320/11)n°=(392+8/11)n°=360n°+(32+8/11)n°=(32+8/11)n°
重合!所以共有22个点重合。
微软面试题 附答案
逻辑
1.拿钻石问题 一楼到十楼的每层电梯门口都放着一颗钻石,钻石大小不一。你乘坐电梯从一楼到 十楼,每层楼电梯门都会打开一次,只能拿一次钻石,问怎样才能拿到最大的一颗? 2.一位逻辑学家被人绑架,绑匪向他家人索要赎金,后来发现他家一贫如洗,由于不想随意撕票,绑匪头子决定给他一次逃生的机会。他说:“在你面前有且只有两扇门,一扇通向死亡,一扇通向*,你可以选择一扇门离开。为了帮助你决定或选择,我的两个助手会和你在一起,并且只允许你对他说一句话,他会回答真或假(对或错),你可以据此作出判断。然而我必须警告你,我的两个助手一个完全说真话、另外一个则总是说谎。”说完绑匪头子哈哈大笑,并率众离开,只留下他的两个助手。绑匪头子认为这样省却了自己做一个杀生决定的麻烦,只不过给了逻辑学家一个求生的赌注机会。但是,逻辑学家在他哈哈大笑的同时也在心里暗自窃喜,因为对于逻辑学家来说,不存在什么赌注机会,自己是可以必然求生的。接着他向留下来的助手说了一句话,按助手的回答,准确无误地走向了*之门。 他说的是什么话? 3.100个人组成10*10的方队,横队称为行,纵队称为列。从每一行中挑出最高的一个人,共10人,再从这10个人中挑出最矮的一个人,记做甲;同时从每一列中挑出最矮的一个人,共10人,再从这十人中挑出最高的一个人,记做乙,甲和乙谁高,为什么? 一.最基本题型(说明:此类题型比较简单) 1. 1到100有多少个9 2. 连续整数之和为1000的共有几组 3. U2合唱团在17分钟内得赶到演唱会场,途中必需跨过一座桥,四个人从桥的 同一端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒。 一次同时最多可以有两人一起过桥,而过桥的时候必须持有手电筒,所以就 得有人把手电筒带来带去,来回桥两端。手电筒是不能用丢的方式来传递的。 四个人的步行速度各不同,若两人同行则以较慢者的速度为准。 Bono需花1 分钟过桥 Edge需花2分钟过桥 Adam需花5分钟过桥 Larry需花10分钟过桥 他们要如何在17分钟内过桥呢?(这是Micrsoft征聘人员时问的问题,你必须 在五分钟内答出来才可能获得聘用)。 4. 说有一份遗产3500元一个女人的老公留下来的,如果这个女人生的是儿子那么 她将分到她儿子的一半,如果是女儿,他将分得她女儿的2倍,如果这个女人生 了一对,一男一女,问各得多少遗产? 5. 老师d的物理测验答案在教室里丢失了,今天那个教室上了5堂课,老师d上了3 堂,有可能是a、b、c三个同学盗窃 已知: 1、a上了两堂课 2、b上了三堂课 3、c上了四堂课 4、a、b、c每个人都上了老师d的两堂课 5、五堂课中,三个人到堂的组合各不相同 6、老师d的课中有一堂,三个人中到了两个,事后证明不是那两个人偷得问?是谁偷得 6. a b c d e * f __________________ =g g g g g g 问,a b c d e f g各是什么数字(不重复) 7. a进行一次C和D之间往返旅行,希望在整个旅行中能够达到60km/h的平均速度, 但是当他从C到达D的时候发现平均速度只有30km/h,问a应当怎么做才能够使 这次往返旅行的平局速度到达60km/h 8. 烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的 绳子,问如何用烧绳的方法来计时一个小时十五分钟呢? 9. 你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。 抓取多少个就可以确定你肯定有两个同一颜色的果冻? 10. 如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上 下都不均匀,问你如何才能准确称出4公升的水? 11. 一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另 一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。请问应该怎么问? 12. 12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个呢? 13.在9个点上画10条直线,要求每条直线上至少有三个点? 14.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有 几次?都分别是什么时间?你怎样算出来的? 二.没有答案型(说明:这些题显然不是考你智力。而考的是你的反应能力。 这种题大多数没有答案,但是要看你的反应喽!) 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.怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)? 七.几个微软技术支持中心电话面试的题目 1.如果只想让程序有一个实例运行,不能运行两个。象winnamp一样, 只能开一个窗口,怎么作? 2.如何截取键盘的响应,让所有的'a'变成'b'? 3.apartment在com中有什么用?为什么要引入这个? 4.存储过程是什么,有什么用,什么优点? 5.template有什么特点,什么时候用? 6.好像最好要了解win32sdk底层的知识。比如消息响应的过程等等。 7.对.net的理解,对web service的理解,对三层结构的理解 8.两层的负载平衡与三层结构的负载平衡有什么差别,优点 9.windows DNA结构的特点,优点。 智力题 1.烧一根不均匀的绳子,从头烧到尾总共需要1个小时,问如何用烧绳子的方法来确定半小时的时间呢? 2.10个海盗抢到了100颗宝石,每一颗都一样大小且价值连城。他们决定这么分: (1)抽签决定自己的号码(1~10); (2)首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔进大海喂鲨鱼; (3)如果1号死后,再由2号提出分配方案,然后剩下的4个人进行表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔入大海喂鲨鱼; (4)依此类推…… 条件:每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。 问题:第一个海盗提出怎样的分配方案才能使自己的收益最大化? 3.为什么下水道的盖子是圆的? 4.中国有多少辆汽车? 5.你让工人为你工作7天,回报是一根金条,这根金条平分成相连的7段,你必须在每天结束的时候给他们一段金条。如果只允许你两次把金条弄断,你如何给你的工人付费? 6.有一辆火车以每小时15公里的速度离开北京直奔广州,同时另一辆火车以每小时20公里的速度从广州开往北京。如果有一只鸟,以30公里每小时的速度和两辆火车同时启动,从北京出发,碰到另一辆车后就向相反的方向返回去飞,就这样依次在两辆火车之间来回地飞,直到两辆火车相遇。请问,这只鸟共飞行了多长的距离? 7.你有两个罐子以及50个红色弹球和50个蓝色弹球,随机选出一个罐子,随机选出一个弹球放入罐子,怎样给出红色弹球最大的选中机会?在你的计划里,得到红球的几率是多少? 8.想像你站在镜子前,请问,为什么镜子中的影像可以左右颠倒,却不能上下颠倒呢? 9.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水? 10.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少次就可以确定你肯定有两个同一颜色的果冻? 11.连续整数之和为1000的共有几组? 12.从同一地点出发的相同型号的飞机,可是每架飞机装满油只能绕地球飞半周,飞机之间可以加油,加完油的飞机必须回到起点。问至少要多少架次,才能满足有一架绕地球一周。 参考答案: 1.两边一起烧。 2.96,0,1,0,1,0,1,0,1,0。 3.因为口是圆的。 4.很多。 5.分1,2,4。 6.6/7北京到广州的距离。 7.100%。 8.平面镜成像原理(或者是“眼睛是左右长的”)。 9.3先装满,倒在5里,再把3装满,倒进5里。把5里的水倒掉,把3里剩下的水倒进5里,再把3装满,倒进5里,ok! 10.一次。 11.首先1000为一个解。连续数的平均值设为x,1000必须是x的整数倍。假如连续数的个数为偶数个,x就不是整数了。x的2倍只能是5,25,125才行。因为平均值为12.5,要连续80个达不到。125/2=62.5是可以的。即62,63,61,64,等等。连续数的个数为奇数时,平均值为整数。1000为平均值的奇数倍。1000=2×2×2×5×5×5;x可以为2,4,8,40,200排除后剩下40和200是可以的。所以答案为平均值为62.5,40,200,1000的4组整数。 12.答案是5架次。一般的解法可以分为如下两个部分: (1)直线飞行 一架飞机载满油飞行距离为1,n架飞机最远能飞多远?在不是兜圈没有迎头接应的情况,这问题就是n架飞机能飞多远?存在的极值问题是不要重复飞行,比如两架飞机同时给一架飞机加油且同时飞回来即可认为是重复,或者换句话说,离出发点越远,在飞的飞机就越少,这个极值条件是显然的,因为n架飞机带的油是一定的,如重复,则浪费的油就越多。比如最后肯定是只有一架飞机全程飞行,注意“全程”这两个字,也就是不要重复的极值条件。如果是两架飞机的话,肯定是一架给另一架加满油,并使剩下的油刚好能回去,就说第二架飞机带的油耗在3倍于从出发到加油的路程上,有三架飞机第三架带的油耗在5倍于从出发到其加油的路程上,所以n架飞机最远能飞行的距离为s=1+1/3+…+1/(2n+1)这个级数是发散的,所以理论上只要飞机足够多最终可以使一架飞机飞到无穷远,当然实际上不可能一架飞机在飞行1/(2n+1)时间内同时给n-1个飞机加油。 (2)可以迎头接应加油 一架飞机载满油飞行距离为1/2,最少几架飞机能飞行距离1?也是根据不要重复飞行的极值条件,得出最远处肯定是只有一架飞机飞行,这样得出由1/2处对称两边1/4肯定是一架飞机飞行,用上面的公式即可知道一边至少需要两架飞机支持,(1/3+1/5)/2>1/4(左边除以2是一架飞机飞行距离为1/2),但是有一点点剩余,所以想像为一个滑轮(中间一个飞机是个绳子,两边两架飞机是个棒)的话,可以滑动一点距离,就说加油地点可以在一定距离内变动(很容易算出来每架飞机的加油地点和加油数量,等等) 数学篇 1.1000!有几位数,为什么? 2.F(n)=1 n>8 n<12 F(n)=2 n<2 F(n)=3 n=6 F(n)=4 n=other 使用+ - * /和sign(n)函数组合出F(n)函数 sign(n)=0 n=0 sign(n)=-1 n<0 sign(n)=1 n>0 3.编一个程序求质数的和,例如F(7)=1+3+5+7+11+13 +17=57。 微软研究院IQ测试题 回答下面10个关联的问题: 1、第一个答案是b的问题是哪个? a.2 b.3 c.4 d.5 e.6 2、唯一的连续2个具有相同答案的问题是? a.2和3 b.3和4 c.4和5 d.5和6 e.6和7 3、本问题答案和哪一个问题答案相同? a.1 b.2 c.4 d.7 e.6 4、答案是a的问题个数是? a.0 b.1 c.2 d.3 e.4 5、本问题答案和哪个问题的相同? a.10 b.9 c.8 d.7 e.6 6、答案是a的问题个数和答案是什么问题个数相同? a.b b.c c.d d.e e.都不是 7、按字母顺序,本问题答案和第8题答案相差几个字母? a.4 b.3 c.2 d.1 e.0 (a和b、b和a相差都是一个字母) 8、答案是元音字母的问题的个数是? a.2 b.3 c.4 d.5 e.6 (a,e 是元音) 9、答案是辅音字母的问题个数是? a.一个质数 b.一个阶乘数 c.一个平方数 d.一个立方数 e.5的倍数 10、本题答案是? a.a b.b c.c d.d e.e 有4个女人要过一座桥。她们都站在桥的某一边,要让她们在17分钟内全部通过这座桥。这时是晚上。她们只有一个手电筒。最多只能让两个人同时过桥。不管是谁过桥,不管是一个人还是两个人,必须要带着手电筒。手电筒必须要传来传去,不能扔过去。每个女人过桥的速度不同,两个人的速度必须以较慢的那个人的速度过桥。 第一个女人:过桥需要1分钟; 第二个女人:过桥需要2分钟; 第三个女人:过桥需要5分钟; 第四个女人:过桥需要10分钟。
转载请注明出自应届生求职招聘论坛 http://bbs.yingjiesheng.com/,本贴地址:http://bbs.yingjiesheng.com/thread-37797-1-1.html
A.逻辑推理 |
转:微软的面试题及答案
2009-03-22 18:04
第一组1. 烧一根不均匀的绳,从头烧到尾总共需要 1 个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢 ?
2. 你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻 ?
3. 如果你有无穷多的水,一个 3 公升的提捅,一个 5 公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出 4 公升的水 ?
4. 一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个人。请问应该怎么问 ?
5.12 个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。 13 个呢 ?( 注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑 )
6. 在 9 个点上画 10 条直线,要求每条直线上至少有三个点 ?
7. 在一天的 24 小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次 ? 都分别是什么时间 ? 你怎样算出来的 ?
8. 怎么样种植 4 棵树木,使其中任意两棵树的距离相等 ?
第二组
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 个蓝色弹球,随机选出一个罐子, 随机选出一个弹球放入罐子,怎么给出红色弹球最大的选中机会 ? 在你的计划里,得到红球的几率是多少 ?
7. 给你两颗 6 面色子,可以在它们各个面上刻上 0-9 任意一个数字,要求能够用它们拼出任意一年中的日期数值
第四组
1. 五个海盗抢到了 100 颗宝石,每一颗都一样大小和价值连城。他们决定这么分:抽签决定自己的号码 (1 、 2 、 3 、 4 、 5) 。首先,由 1 号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔进大海喂鲨鱼如果 1 号死后,再由 2 号提出分配方案,然后剩下的 4 人进行表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔入大海喂鲨鱼依此类推
条件:每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。
问题:第一个海盗提出怎样的分配方案才能使自己的收益最大化 ?
2. 一道关于飞机加油的问题,已知:每个飞机只有一个油箱,飞机之间可以相互加油 ( 注意是相互,没有加油机一箱油可供一架飞机绕地球飞半圈,
问题:为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机 ?( 所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场 )
3. 汽车加油问题
一辆载油 500 升的汽车从 A 开往 1000 公里外的 B ,已知汽车每公里耗油量为 1 升, A 处有无穷多的油,其他任何地点都没有油,但该车可以在任何地点存放油以备中转,问从 A 到 B 最少需要多少油
4. 掷杯问题
一种杯子,若在第 N 层被摔破,则在任何比 N 高的楼层均会破,若在第 M 层不破,则在任何比 M 低的楼层均会破,给你两个这样的杯子,让你在 100 层高的楼层中测试,要求用最少的测试次数找出恰巧会使杯子破碎的楼层。
5. 推理游戏
教授选出两个从 2 到 9 的数,把它们的和告诉学生甲,把它们的积告诉学生乙,让他们轮流猜这两个数
甲说: “ 我猜不出 ”
乙说: “ 我猜不出 ”
甲说: “ 我猜到了 ”
乙说: “ 我也猜到了 ”
问这两个数是多少
6. 病狗问题
一个住宅区内有 100 户人家,每户人家养一条狗,每天傍晚大家都在同一个地方遛狗。已知这些狗中有一部分病狗,由于某种原因,狗的主人无法判断自己的狗是否是病狗,却能够分辨其他的狗是否有病,现在,上级传来通知,要求住户处决这些病狗,并且不允许指认他人的狗是病狗 ( 就是只能判断自己的 ) ,过了 7 天之后,所有的病狗都被处决了,问,一共有几只病狗 ? 为什么 ?
7. U2 合唱团在 17 分钟内得赶到演唱会场,途中必需跨过一座桥,四个人从桥的同一端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒。一次同时最多可以有两人一起过桥,而过桥的时候必须持有手电筒,所以就得有人把手电筒带来带去,来回桥两端。手电筒是不能用丢的方式来传递的。四个人的步行速度各不同,若两人同行则以较慢者的速度为准。 BONO 需花 1 分钟过桥 ,EDGE 需花 2 分钟过桥 ,ADAM 需花 5 分钟过桥 ,LARRY 需花 10 分钟过桥 , 他们要如何在 17 分钟内过桥呢 ?
8. *里有 100 个房间,每个房间内有一囚犯。一天,*长说,你们狱房外有一电灯,你们在放风时可以控制这个电灯 ( 熄或亮 ) 。每天只能有一个人出来放风,并且防风是随机的。如果在有限时间内,你们中的某人能对我说: “ 我敢保证,现在每个人都已经至少放过一次风了。 ” 我就放了你们 ! 问囚犯们要采取什么策略才能被*长放掉 ? 如果采用了这种策略,大致多久他们可以被释放 ?
第五组
1. 某手机厂家由于设计失误,有可能造成电池寿命比原来设计的寿命短一半 ( 不是冲放电时间 ) ,解决方案就是免费更换电池或给 50 元购买该厂家新手机的折换券。请给所有已购买的用户写信告诉解决方案。
2. 一高层领导在参观某博物馆时,向博物馆馆员小王要了一块明代的城砖作为纪念,按国家规定,任何人不得将博物馆收藏品变为私有。博物馆馆长需要如何写信给这位领导,将城砖取回。
3. 营业员小姐由于工作失误,将 2 万元的笔记本电脑以 1.2 万元错卖给李先生,王小姐的经理怎么写信给李先生试图将钱要回来 ?
4. 给你一款新研制的手机,如果你是测试组的组长,你会如何测试 ?
5. 如何为函数 int atoi(const char * pstr) 编写测试向量 ?
第六组
1. 链表和数组的区别在哪里 ?
2. 编写实现链表排序的一种算法。说明为什么你会选择用这样的方法 ?
3. 编写实现数组排序的一种算法。说明为什么你会选择用这样的方法 ?
4. 请编写能直接实现 char * strcpy(char * pstrDest,const char * pstrSource) 函数功能的代码。
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) 三根绳,第一根点燃两端,第二根点燃一端,第三根不点。第一根绳烧完 (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 颗称为轻球,剩下 4 颗称为好球
取重球 2 颗,轻球 2 颗放在左侧,右侧放 3 颗好球和一颗轻球
如果左边重
称那两颗重球,重的一个次品,平的话右边轻球次品
如果右边重
称左边两颗轻球,轻的一个次品
如果平
称剩下两颗重球,重的一个次品,平的话剩下那颗轻球次品
13 个球:
第一次: 4 , 4 ,如果平了
剩 5 颗球用上面的方法仍旧能找出次品,只是不能知道次品是重是轻
如果不平,同上
6)
o o o
o o o
o o o
7)23 次,因为分针要转 24 圈,时针才能转 1 圈,而分针和时针重合两次之间的间隔显然 > 1 小时,它们有 23 次重合机会,每次重合中秒针有一次重合机会,所以是 23 次
重合时间可以对照手表求出,也可列方程求出
8) 在地球表面种树,做一个地球内接的正四面体,内接点即为所求
第二组 无标准答案
第三组
1. 分成 1,2,4 三段,第一天给 1 ,第二天给 2 取回 1 ,第 3 天给 1 ,第 4 天给 4 取回 1 、 2 ,第 5 天给 1 ,第 6 天给 2 取回 1 ,第七天给 1
2. 求出火车相遇时间,鸟速乘以时间就是鸟飞行的距离
3. 四个罐子中分别取 1,2,3,4 颗药丸,称出比正常重多少,即可判断出那个罐子的药被污染
4. 三个开关分别:关,开,开 10 分钟,然后进屋,暗且凉的为开关 1 控制的灯,亮的为开关 2 控制的灯,暗且热的为开关 3 控制的灯
5. 因为可以用 1 , 2 , 5 , 10 组合成任何需要的货币值,日常习惯为 10 进制
6. 题意不理解 ...*_*
7. 012345 0126(9)78
第四组 都是很难的题目
第一题: 97 0 1 2 0 或者 97 0 1 0 2 ( 提示:可用逆推法求出 )
第二题: 3 架飞机 5 架次,飞法:
ABC 3 架同时起飞, 1/8 处, C 给 AB 加满油, C 返航, 1/4 处, B 给 A 加满油, B 返航, A 到达 1/2 处, C 从机场往另一方向起飞, 3/4 处, C 同已经空油箱的 A 平分剩余油量,同时 B 从机场起飞, AC 到 7/8 处同 B 平分剩余油量,刚好 3 架飞机同时返航。所以是 3 架飞机 5 架次。第三题:需要建立数学模型
( 提示,严格证明该模型最优比较麻烦,但确实可证,大胆猜想是解题关键 )
题目可归结为求数列 an=500/(2n+1) n=0,1,2,3...... 的和 Sn 什么时候大于等于 1000, 解得 n> 6
当 n=6 时, S6=977.57
所以第一个中转点离起始位置距离为 1000-977.57=22.43 公里
所以第一次中转之前共耗油 22.43*(2*7+1)=336.50 升
此后每次中转耗油 500 升
所以总耗油量为 7*500+336.50=3836.50 升
第四题:需要建立数学模型
题目可归结为求自然数列的和 S 什么时候大于等于 100 ,解得 n> 13
第一个杯子可能的投掷楼层分别为: 14 , 27 , 39 , 50 , 60 , 69 , 77 , 84 , 90 , 95 , 99 , 100
第五题: 3 和 4( 可严格证明 )
设两个数为 n1 , n2 , n1> =n2 ,甲听到的数为 n=n1+n2 ,乙听到的数为 m=n1*n2
证明 n1=3 , n2=4 是唯一解
证明:要证以上命题为真,不妨先证 n=7
1) 必要性:
i) n> 5 是显然的,因为 n <4 不可能, n=4 或者 n=5 甲都不可能回答不知道
ii) n> 6 因为如果 n=6 的话,那么甲虽然不知道 ( 不确定 2+4 还是 3+3) 但是无论是 2 , 4 还是 3 , 3 乙都不可能说不知道 (m=8 或者 m=9 的话乙说不知道是没有道理的 )
iii) n <8 因为如果 n> =8 的话,就可以将 n 分解成 n=4+x 和 n=6+(x-2) ,那么 m 可以是 4x 也可以是 6(x-2) 而 4x=6(x-2) 的必要条件是 x=6 即 n=10 ,那样 n 又可以分解成 8+2 ,所以总之当 n> =8 时, n 至少可以分解成两种不同的合数之和,这样乙说不知道的时候,甲就没有理由马上说知道。
以上证明了必要性
2) 充分性
当 n=7 时, n 可以分解成 2+5 或 3+4
显然 2+5 不符合题意,舍去,容易判断出 3+4 符合题意, m=12 ,证毕
于是得到 n=7 m=12 n1=3 n2=4 是唯一解。第六题: 7 只 ( 数学归纳法证明 )
1) 若只有 1 只病狗,因为病狗主人看不到有其他病狗,必然会知道自己的狗是病狗 ( 前提是一定存在病狗 ) ,所以他会在第一天把病狗处决。
2) 设有 k 只病狗的话,会在第 k 天被处决,那么,如果有 k+1 只,病狗的主人只会看到 k 只病狗,而第 k 天没有人处决病狗,病狗主人就会在第 k+1 天知道自己的狗是病狗,于是病狗在第 k+1 天被处决
3) 由 1)2) 得,若有 n 只病狗,必然在第 n 天被处决
第七题: ( 提示:可用图论方法解决 )
BONO&EDGE 过 (2 分 ) , BONO 将手电带回 (1 分 ) , ADAM&LARRY 过 (10 分 ) , EDGE 将手电带回 (2 分 ) , BONO&EDGE 过 (2 分 ) 2+1+10+2+2=17 分钟
第八题:
约定好一个人作为报告人 ( 可以是第一个放风的人 )
规则如下:
1 、报告人放风的时候开灯并数开灯次数
2 、其他人第一次遇到开着灯放风时,将灯关闭
3 、当报告人第 100 次开灯的时候,去向*长报告,要求*长放人 ......
按照概率大约 30 年后 (10000 天 ) 他可以被释放
第五组无标准答案
第六组部分题参考答案:
4.
char * strcpy(char * pstrDest,const char * pstrSource)
{
assert((pstrDest!=NULL)&&(pstrSource!=NULL));
char * pstr=pstrDest;
while((*(pstrDest++)=*(pstrSource++))!= '\0 ');
return pstr;
}
5.
char * strrev(char * pstr)
{
assert(pstr!=NULL);
char * p=pstr;
char * pret=pstr;
while(*(p++)!= '\0 ');
p--;
char tmp;
while(p> pstr)
{
tmp=*p;
*(p--)=*(pstr);
*(pstr++)=tmp;
}
return pret;