微软面试题 和答案

时间:2021-09-18 14:21:52

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)
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. 1100有多少个9 2. 连续整数之和为1000的共有几组 3. U2合唱团在17分钟内得赶到演唱会场,途中必需跨过一座桥,四个人从桥的 同一端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒。 一次同时最多可以有两人一起过桥,而过桥的时候必须持有手电筒,所以就 得有人把手电筒带来带去,来回桥两端。手电筒是不能用丢的方式来传递的。 四个人的步行速度各不同,若两人同行则以较慢者的速度为准。 Bono需花分钟过桥 Edge需花2分钟过桥 Adam需花5分钟过桥 Larry需花10分钟过桥 他们要如何在17分钟内过桥呢?(这是Micrsoft征聘人员时问的问题,你必须 在五分钟内答出来才可能获得聘用)。 4. 说有一份遗产3500元一个女人的老公留下来的,如果这个女人生的是儿子那么 她将分到她儿子的一半,如果是女儿,他将分得她女儿的2,如果这个女人生 了一对,一男一女,问各得多少遗产? 5. 老师d的物理测验答案在教室里丢失了,今天那个教室上了5堂课,老师d上了堂,有可能是abc三个同学盗窃 已知: 1a上了两堂课 2b上了三堂课 3c上了四堂课 4abc每个人都上了老师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进行一次CD之间往返旅行,希望在整个旅行中能够达到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.人民币为什么只有12510的面值? 6.你有两个罐子以及50个红色弹球和50个蓝色弹球,随机选出一个罐子, 随机选出一个弹球放入罐子,怎么给出红色弹球最大的选中机会?在你的计划里,得到红球的几率是多少? 四.超难题(说明:如果你是第一次看到这种题,并且以前从来没有见过类似的题型,并且能够在半个小时之内做出答案。只能说明你的智力超常......) 第一题 五个海盗抢到了100颗宝石,每一颗都一样大小和价值连城。他们决定这么分: 抽签决定自己的号码(12345) 首先,由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.给出一个函数来复制两个字符串AB。字符串A的后几个字节和字符串B的前几个字节重叠。 12.怎样编写一个程序,把一个有序整数数组放到二叉树中? 13.怎样从顶部开始逐层打印二叉树结点数据?请编程。 14.怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)? 七.几个微软技术支持中心电话面试的题目 1.如果只想让程序有一个实例运行,不能运行两个。象winnamp一样, 只能开一个窗口,怎么作? 2.如何截取键盘的响应,让所有的'a'变成'b'? 3.apartmentcom中有什么用?为什么要引入这个? 4.存储过程是什么,有什么用,什么优点? 5.template有什么特点,什么时候用? 6.好像最好要了解win32sdk底层的知识。比如消息响应的过程等等。 7..net的理解,对web service的理解,对三层结构的理解 8.两层的负载平衡与三层结构的负载平衡有什么差别,优点 9.windows DNA结构的特点,优点。 智力题 1.烧一根不均匀的绳子,从头烧到尾总共需要1个小时,问如何用烧绳子的方法来确定半小时的时间呢? 210个海盗抢到了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.两边一起烧。 296010101010。 3.因为口是圆的。 4.很多。 5.分124。 66/7北京到广州的距离。 7100%。 8.平面镜成像原理(或者是眼睛是左右长的)。 93先装满,倒在5里,再把3装满,倒进5里。把5里的水倒掉,把3里剩下的水倒进5里,再把3装满,倒进5里,ok! 10.一次。 11.首先1000为一个解。连续数的平均值设为x1000必须是x的整数倍。假如连续数的个数为偶数个,x就不是整数了。x2倍只能是525125才行。因为平均值为12.5,要连续80个达不到。125/2=62.5是可以的。即62636164,等等。连续数的个数为奇数时,平均值为整数。1000为平均值的奇数倍。1000=2×2×2×5×5×5x可以为24840200排除后剩下40200是可以的。所以答案为平均值为62.54020010004组整数。 12.答案是5架次。一般的解法可以分为如下两个部分: (1)直线飞行 一架飞机载满油飞行距离为1n架飞机最远能飞多远?在不是兜圈没有迎头接应的情况,这问题就是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),但是有一点点剩余,所以想像为一个滑轮(中间一个飞机是个绳子,两边两架飞机是个棒)的话,可以滑动一点距离,就说加油地点可以在一定距离内变动(很容易算出来每架飞机的加油地点和加油数量,等等) 数学篇 11000!有几位数,为什么? 2Fn=1 n>8 n<12 Fn=2 n<2 Fn=3 n=6 Fn=4 n=other 使用+ - * /signn)函数组合出Fn)函数 signn=0 n=0 signn=-1 n<0 signn=1 n>0 3.编一个程序求质数的和,例如F7=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.23 b.34 c.45 d.56 e.67 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 abba相差都是一个字母) 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.逻辑推理

            1、你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7
,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你
的工人付费?

2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。

3、小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒,
小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。每
次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30秒就会
熄灭。问:小明一家如何过桥?

4、一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少
有一顶。每个人都能看到其他人帽子的颜色,却看不到自己的。主持人先让大家看
看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自
己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦
雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑
帽子?

5、请估算一下CN TOWER电视塔的质量。

6、一楼到十楼的每层电梯门口都放着一颗钻石,钻石大小不一。你乘坐电梯
从一楼到十楼,每层楼电梯门都会打开一次,只能拿一次钻石,问怎样才能拿到最
大的一颗?

7U2合唱团在17分钟内得赶到演唱会场,途中必需跨过一座桥,四个人从桥
的同一端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒。一
次同时最多可以有两人一起过桥,而过桥的时候必须持有手电筒,所以就得有人把
手电筒带来带去,来回桥两端。手电筒是不能用丢的方式来传递的。四个人的步行
速度各不同,若两人同行则以较慢者的速度为准。Bono需花1分钟过桥,Edge需花
2分钟过桥,Adam需花5分钟过桥,Larry需花10分钟过桥。他们要如何在17分钟内
过桥呢?

8、烧一根不均匀的绳要用一个小时,如何用它来判断半个小时 ?

9、为什么下水道的盖子是圆的?

10、美国有多少辆加油站(汽车)?

11、有7克、2克砝码各一个,天平一只,如何只用这些物品三次将140克的盐
分成5090克各一份?

12、有一辆火车以每小时15公里的速度离开洛杉矶直奔纽约,另一辆火车以第
小时20公里的速度从纽约开往洛杉矶。如果有一只鸟,以外30公里每小时的速度和
两辆火车现时启动,从洛杉矶出发,碰到另辆车后返回,依次在两辆火车来回的飞
行,直道两面辆火车相遇,请问,这只小鸟飞行了多长距离?

13、你有两个罐子,50个红色弹球,50个蓝色弹球,随机选出一个罐子,随机
选取出一个弹球放入罐子,怎么给红色弹球最大的选中机会?在你的计划中,得到
红球的准确几率是多少?

14、想象你在镜子前,请问,为什么镜子中的影像可以颠倒左右,却不能颠倒
上下?

15、你有四人装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被
污染的重量+1.只称量一次,如何判断哪个罐子的药被污染了?

16、如果你有无穷多的水,一个3夸脱的和一个5夸脱的提桶,你如何准确称出
4夸脱的水?

17、你有一桶果冻,其中有黄色,绿色,红色三种,,闭上眼睛选出同样颜色
的两个,抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果
冻?

18、将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁?

19、如果要你能去掉50个州的任何一个,那你去掉哪一个,为什么?

20、对一批编号为1~100 全部开关朝上开的灯进行以下操作
凡是的倍数反方向拨一次开关的倍数反方向又拨一次开关的倍数反方向
又拨一次开关。
问最后为关熄状态的灯的编号。

21、假设一张圆盘像唱机上的唱盘那样转动。这张盘一半是黑色,一半是白色
。假设你有数量不限的一些颜色传感器。要想确定圆盘转动的方向,你需要在它周
围摆多少个颜色传感器?它们应该被摆放在什么位置?

22、假设时钟到了12点。注意时针和分针重叠在一起。在一天之中,时针和分
针共重叠多少次?你知道它们重叠时的具体时间吗?

23、中间只隔一个数字的两个奇数被称为奇数对,比如1719。证明奇数对之
间的数字总能被6整除(假设这两个奇数都大于6)。现在证明没有由三个奇数组成
的奇数对。

24、一个屋子有一个门(门是关闭的)和3盏电灯。屋外有3个开关,分别与这
3盏灯相连。你可以随意操纵这些开关,可一旦你将门打开,就不能变换开关了。
确定每个开关具体管哪盏灯。

25、假设你有8个球,其中一个略微重一些,但是找出这个球的惟一方法是将
两个球放在天平上对比。最少要称多少次才能找出这个较重的球?

26、下面玩一个拆字游戏,所有字母的顺序都被打乱。你要判断这个字是什么
。假设这个被拆开的字由5个字母组成:
1.共有多少种可能的组合方式?
2.如果我们知道是哪5个字母,那会怎么样?
3.找出一种解决这个问题的方法。

27、有4个女人要过一座桥。她们都站在桥的某一边,要让她们在17分钟内全
部通过这座桥。这时是晚上。她们只有一个手电筒。最多只能让两个人同时过桥。
不管是谁过桥,不管是一个人还是两个人,必须要带着手电筒。手电筒必须要传来
传去,不能扔过去。每个女人过桥的速度不同,两个人的速度必须以较慢的那个人
的速度过桥。
第一个女人:过桥需要1分钟;
第二个女人:过桥需要2分钟;
第三个女人:过桥需要5分钟;
第四个女人:过桥需要10分钟。
比如,如果第一个女人与第4个女人首先过桥,等她们过去时,已经过去了10
分钟。如果让第4个女人将手电筒送回去,那么等她到达桥的另一端时,总共用去
20分钟,行动也就失败了。怎样让这4个女人在17分钟内过桥?还有别的什么方
法?

28、如果你有两个桶,一个装的是红色的颜料,另一个装的是蓝色的颜料。你
从蓝色颜料桶里舀一杯,倒入红色颜料桶,再从红色颜料桶里舀一杯倒入蓝颜料桶
。两个桶中红蓝颜料的比例哪个更高?通过算术的方式来证明这一点。



B:疯狂计算
29、已知两个1~30之间的数字,甲知道两数之和,乙知道两数之积。
甲问乙:你知道是哪两个数吗?乙说:不知道
乙问甲:你知道是哪两个数吗?甲说:也不知道
于是,乙说:那我知道了
随后甲也说:那我也知道了
这两个数是什么?

30441010,加减乘除,怎么出24点?

311000!有几位数,为什么?

32F(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

33、编一个程序求质数的和例如F(7)=1+3+5+7+11+13+17=58

34、。。。
请仅用一支笔画四根直线将上图各点全部连接

35、三层四层二叉树有多少种

361--100000 数列按一定顺序排列,有一个数字排错,如何纠错?写出最好
方法。两个数字呢?

37、链接表和数组之间的区别是什么?

38、做一个链接表,你为什么要选择这样的方法?

39、选择一种算法来整理出一个链接表。你为什么要选择这种方法?现在用
O(n)时间来做。

40、说说各种股票分类算法的优点和缺点。

41、用一种算法来颠倒一个链接表的顺序。现在在不用递归式的情况下做一遍

42、用一种算法在一个循环的链接表里插入一个节点,但不得穿越链接表。

43、用一种算法整理一个数组。你为什么选择这种方法?

44、用一种算法使通用字符串相匹配。

45、颠倒一个字符串,优化速度,优化空间。

46、颠倒一个句子中的词的顺序,比如将我叫克丽丝转换为克丽丝叫我
实现速度最快,移动最少。

47、找到一个子字符串,优化速度,优化空间。

48、比较两个字符串,用O(n)时间和恒量空间。

49、假设你有一个用1001个整数组成的数组,这些整数是任意排列的,但是你
知道所有的整数都在11000(包括1000)之间。此外,除一个数字出现两次外,
其他所有数字只出现一次。假设你只能对这个数组做一次处理,用一种算法找出重
复的那个数字。如果你在运算中使用了辅助的存储方式,那么你能找到不用这种方
式的算法吗?

50、不用乘法或加法增加8倍。现在用同样的方法增加7倍。

C:创造性应用
51、营业员小姐由于工作失误,将2万元的笔记本电脑以1.2万元错卖给李先生
,王小姐的经理怎么写信给李先生试图将钱要回来?

52、如何将计算机技术应用于一幢100层高的办公大楼的电梯系统上?你怎样
优化这种应用?工作日时的交通、楼层或时间等因素会对此产生怎样的影响?

53、你如何对一种可以随时存在文件中或从因特网上拷贝下来的操作系统实施
保护措施,防止被非法复制?

54、你如何重新设计自动取款机?

55、假设我们想通过电脑来操作一台微波炉,你会开发什么样的软件来完成这
个任务?

56、你如何为一辆汽车设计一台咖啡机?

56、如果你想给微软的Word系统增加点内容,你会增加什么样的内容?

57、你会给只有一只手的用户设计什么样的键盘?

58、你会给失聪的人设计什么样的闹钟?




参考答案:
    1day1 段,
day2 让工人把段归还给段,
day3 段,
day4 归还1 2 段,给段。
day5 依次类推……

2、面对这样的怪题,有些应聘者绞尽脑汁也无法分成;而有些应聘者却感到
此题实际很简单,把切成的8份蛋糕先拿出7份分给7人,剩下的1份连蛋糕盒一起分
给第8个人。

4、假如只有一个人戴黑帽子,那他看到所有人都戴白帽,在第一次关灯时就
应自打耳光,所以应该不止一个人戴黑帽子;如果有两顶黑帽子,第一次两人都只
看到对方头上的黑帽子,不敢确定自己的颜色,但到第二次关灯,这两人应该明白
,如果自己戴着白帽,那对方早在上一次就应打耳光了,因此自己戴的也是黑帽子
,于是也会有耳光声响起;可事实是第三次才响起了耳光声,说明全场不止两顶黑
帽,依此类推,应该是关了几次灯,有几顶黑帽。

5、比如你怎样快速估算支架和柱子的高度、球的半径,算出各部分的体积等
等。招聘官的说法:CNTOWER这道题来说,它和一般的谜语或智力题还是有区别
的。我们称这类题为快速估算题,主要考的是快速估算的能力,这是开发软件
必备的能力之一。当然,题目只是手段,不是目的,最终得到一个结果固然是需要
的,但更重要的是对考生得出这个结果的过程也就是方法的考察。" Mr Miller为记
者举例说明了一种比较合理的答法,他首先在纸上画出了CN TOWER的草图,然后快
速估算支架和各柱的高度,以及球的半径,算出各部分体积,然后和各部分密度运
算,最后相加得出一个结果。
这一类的题目其实很多,如:估算一下密西西比河里的水的质量。" " 如果你
是田纳西州州长,请估算一下治理好康柏兰河的污染需要多长时间。"
 " 估算一下一个行进在小雨中的人5分钟内身上淋到的雨的质量。"
 Mr Miller接着解释道:像这样的题目,包括一些推理题,考的都是人的
ProblemSolving(解决问题的能力),不是哪道题你记住了答案就可以了的。"
 对于公司招聘的宗旨,Mr Miller强调了四点,这些是有创造性的公司普遍注
重的员工素质,是想要到知名企业实现自己的事业梦想的人都要具备的素质和能力

要求一:RawSmart(纯粹智慧),与知识无关。
要求二:Long-termPotential(长远学习能力)
要求三:TechnicSkills(技能)
要求四:Professionalism(职业态度)

6、她的回答是:选择前五层楼都不拿,观察各层钻石的大小,做到心中有数
。后五层楼再选择,选择大小接近前五层楼出现过最大钻石大小的钻石。她至今也
不知道这道题的准确答案,也许就没有准确答案,就是考一下你的思路,她如是
说。

7、分析:有个康奈尔的学生写文章说他当时在微软面试时就是碰到了这道题
,最短只能做出在19分钟内过桥。

8、两边一起烧。

9、答案之一:从麻省理工大学一位计算机系教授那里听来的答案,首先在同
等用材的情况下他的面积最大。第二因为如果是方的、长方的或椭圆的,那无聊之
徒拎起来它就可以直接扔进地下道啦!但圆形的盖子嘛,就可以避免这种情况了
)

10、这个乍看让人有些摸不着头脑的问题时,你可能要从问这个国家有多少小
汽车入手。面试者也许会告诉你这个数字,但也有可能说:我不知道,你来告诉
我。那么,你对自己说,美国的人口是2.75亿。你可以猜测,如果平均每个家庭
(包括单身)的规模是2.5人,你的计算机会告诉你,共有1.1亿个家庭。你回忆起
在什么地方听说过,平均每个家庭拥有1.8辆小汽车,那么美国大约会有1.98亿辆
小汽车。接着,只要你算出替1.98亿辆小汽车服务需要多少加油站,你就把问题解
决了。重要的不是加油站的数字,而是你得出这个数字的方法。

12、答案很容易计算的:
假设洛杉矶到纽约的距离为s
那小鸟飞行的距离就是(s/(15+20))*30

13、无答案,看你有没有魄力坚持自己的意见。

14、因为人的两眼在水平方向上对称。

15、从第一盒中取出一颗,第二盒中取出颗,第三盒中取出三颗。
依次类推,称其总量。

16、比较复杂:
A、先用夸脱的桶装满,倒入夸脱。以下简称3-> 5)
夸脱桶中做好标记b1,简称b1)
B、用继续装水倒满中水倒入直到b1 中做标记b2
C、用继续装水倒满中水倒入直到b2
D、空中水倒入标记为b3
E、装满中水倒入直到中水到b3
结束了,现在中水为标准的夸脱水。

20、素数是关,其余是开。

29、允许两数重复的情况下
答案为x=1y=4;甲知道和A=x+y=5,乙知道积B=x*y=4
不允许两数重复的情况下有两种答案
答案1:为x=1y=6;甲知道和A=x+y=7,乙知道积B=x*y=6
答案2:为x=1y=8;甲知道和A=x+y=9,乙知道积B=x*y=8
解:
设这两个数为xy.
甲知道两数之和 A=x+y
乙知道两数之积 B=x*y
该题分两种情况 :
允许重复, 有(1 < = x < = y < = 30)
不允许重复,有(1 < = x < y < = 30)
当不允许重复,即(1 < = x < y < = 30)
1)由题设条件:乙不知道答案
< => B=x*y 解不唯一
=> B=x*y 为非质数
∵ ≠ y
∴ ≠ k*k (其中kN)
结论(推论1)
B=x*y 非质数且 ≠ k*k (其中kN)
即:(68101214151820...)
证明过程略。
2)由题设条件:甲不知道答案
< => A=x+y 解不唯一
=> A > = 5
分两种情况:
A=5A=6xy有双解
A> =7 xy有三重及三重以上解
假设 A=x+y=5
则有双解
x1=1y1=4
x2=2y2=3
代入公式B=x*y
B1=x1*y1=1*4=4(不满足推论1,舍去)
B2=x2*y2=2*3=6
得到唯一解x=2y=3即甲知道答案。
与题设条件:甲不知道答案相矛盾 ,
故假设不成立,A=x+y5
假设 A=x+y=6
则有双解。
x1=1y1=5
x2=2y2=4
代入公式B=x*y
B1=x1*y1=1*5=5(不满足推论1,舍去)
B2=x2*y2=2*4=8
得到唯一解x=2y=4
即甲知道答案
与题设条件:甲不知道答案相矛盾
故假设不成立,A=x+y6
A> =7
∵ xy的解至少存在两种满足推论1的解
B1=x1*y1=2*(A-2)
B2=x2*y2=3*(A-3)
∴ 符合条件
结论(推论2)A > = 7
3)由题设条件:乙说那我知道了"
 => 乙通过已知条件B=x*y及推论(1)(2)可以得出唯一解
即:
A=x+y, A > = 7
B=x*y, (6810121415161820...)
1 < = x < y < = 30
xy存在唯一解
当 B=6 时:有两组解
x1=1y1=6
x2=2y2=3 (∵ x2+y2=2+3=5 < 7不合题意,舍去)
得到唯一解 x=1y=6
当 B=8 时:有两组解
x1=1y1=8
x2=2y2=4 (∵ x2+y2=2+4=6 < 7不合题意,舍去)
得到唯一解 x=1y=8
当 B> 8 时:容易证明均为多重解
结论:
B=6时有唯一解 x=1y=6B=8时有唯一解 x=1y=8
4)由题设条件:甲说那我也知道了"
 =>  甲通过已知条件A=x+y及推论(3)可以得出唯一解
综上所述,原题所求有两组解:
x1=1y1=6
x2=1y2=8
x< =y时,有(1 < = x < = y < = 30)
同理可得唯一解 x=1y=4

31
解:1000
Lg(1000!)=sum(Lg(n))
n=1
段折线代替曲线可以得到
10(0+1)/2+90(1+2)/2+900(2+3)/2=2390
作为近似结果,好象1500~3000 都算对

32F(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
:只要注意[sign(n-m)*sign(m-n)+1]n=m 处取其他点取就可以了

34、米字形的画就行了

转:微软的面试题及答案

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 如果平了:
那么剩下的球中取 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;