程序算法研究

微软程序员测试题
1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧

绳的方法来计时一个小时十五分钟呢? (留一根最后单独烧,把其他的都剪成四分之一短同时烧。)
2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可

以确定你肯定有两个同一颜色的果冻?(5秒-1分钟) (4个)
3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你

如何才能准确称出4公升的水?(40秒-3分钟)
(先打一个5公升导入三公升中,再把三公升倒掉,把五公升剩余的2公升导入三公升中,再打一个五公升,将三

公升的倒满,5公升中便剩余4公升水。)
4.一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。

诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个

人。请问应该怎么问?(20秒-2分钟)
(问一个相同的问题,你们是从那个方向来的,诚实国指向诚实国,谎言国指向诚实国,相反路就是谎言国。)
5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个

呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)(5分钟-1小时)
6.在9个点上画10条直线,要求每条直线上至少有三个点?(3分钟-20分钟)
7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时

间?你怎样算出来的?(5分钟-15分钟)

(5.6.7不会..)
二.没有答案型(说明:这些题显然不是考你智力。而考的是你的反应能力。这种题大多数没有答

案,但是要看你的反应喽!)

1.为什么下水道的盖子是圆的?
2.中国有多少辆汽车?
3.将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁?
4.如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉

哪一个,为什么?
5.多少个加油站才能满足中国的所有汽车?
6.想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下?
7.为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出?
8.你怎样将Excel的用法解释给你的奶奶听?
9.你怎样重新改进和设计一个ATM银行自动取款机?
10.如果你不得不重新学习一种新的计算机语言,你打算怎样着手来开始?
11.如果你的生涯规划中打算在5年内受到奖励,那获取该项奖励的动机是什么?观众是谁?
12.如果微软告诉你,我们打算投资五百万美元来启动你的投资计划,你将开始什么样商业计划?

为什么?
13.如果你能够将全世界的电脑厂商集合在一个办公室里,然后告诉他们将被强迫做一件事,那件

事将是什么?


三.难题(说明:这类题有一定难度,如果得不到答案,也不能说明什么。如果你想到了解题思路

,那么答案马上就能出来。如果想不到思路,那么……就别想解出来了。)

1.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候

给他们一段金条。如果只允许你两次把金条弄断,你如何给你的工人付费?
(切一个1段的,切一个2段的,剩下就不用切了,第一天给他切一个的,第二天给他切两段的,叫他把切一段的

还给你,第三天把切一段的给他,第四天叫它把三段都给你,你给他切剩下的4段的,第五天...用交换方法,不

多写了。)
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.怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)?
 

QQ空间 新浪微博 腾讯微博 人人网 更多 0

网站设计部落-你的建站专家
标签: 程序算法研究 程序员考试题
分类: 经验分享| 发布: admin| 查看: 3 | 发表时间:2012-10-26
原创文章如转载,请注明:转载自网站设计部落  http://www.msheji.com/
本文链接: http://www.msheji.com/jingyan/157.html

你可能感兴趣的:(程序算法研究)