常见的面试笔试题 及其解答

 近来找工作,要看一些面经之类的,现在把看过的一些题目放在一起,也好没事自己看看。

 

 

一)、microstrategy  笔试分2部分
第一部分 四道问题 200分
1.acb-bca=abc(记不准了,MS是这个样子) a,b,c都是数字0-9中的一个数,求a,b,c

解:

     acb

  -  bca

-------------

      abc

 

转化成: 100a+10c+a - 100b -10c -a - 100a - 10b -c = 0

即为: 110b +c = 0 , b = 0, c = 0   题目不对的话类似推吧

 

2.三个baskets, 一个里面装满oranges,一个里面装满apples,一个里面装的是oranges+apples。三个baskets外面都贴有label,但是label都是错的。让你只从一个篮子里面拿一个水果,怎么判断三个baskets里面装的是什么

解答:  从贴着apple+orange的篮子拿出来一个,因为是错的,所以里面要不然全是apple,要不然是orange。比如拿出来的是apple,则这个篮子装的是apple,而那个贴apple标签的肯定是orange,然后贴orange的是混合的。

 

3.一个5 gallons buckets 一个3gallons buckets,如何如何取得4gallons water

 

 

4.essay: why you choose field of technology?
全英文,答题也要用英文。

第2部分 分四个catelogies, 自己选两个catelogies做
算法部分
1.C++中virtual function的作用,virtual constructor是什么

vistual funciton 为了后绑定, 实现多态

 

2.21个coins ,有一个heavier,用天平用最少的次数称出来testing 部分就是写两个测试用例

解答:

一般是三分称法,7,7,7---》 7个, 3, 3, 1 ----》3或者1个  1,1,1--->找出最重的

若题目没有指出来是heavier or lighter,第一次需要成两次确认。

 

3. 其他的两个部分一个是DATABASE 一个是os.都是很基础的东西

面试考的都是一些逻辑题目
1、昨天笔试的buckets问题  这次是一个9GALLONS,一个4gallons,想要6gallons的water.

解答:  同上

2、随后一个 如果一个A gallons bucket,一个B gallons bucket,让你得到c gallons water怎么办。

3、天平那个题目,这次是N个小球,其中有一个是重的,要用多少次。(这个见过 做出来了)


3。4个人过桥,一个手电筒,那个题目。如果4个人的速度是TA<=TB<=TC<=TD 要用多少时间。


呵呵,貌似应聘测试的一般是两个部分

一是英文测试,三选一,写一篇短文,例如

Most important discoveries are accidential: seeking for one question,and find the answer to the other question.
无所谓对错,只要给出理由就ok (看来英文作文的练习也是必不可少的呢)

 

二是逻辑推理

(俺的经验也不多,本科也没找过工作,不过腾讯的应聘测试的题目貌似也是逻辑推理居多,我同学应聘的开发倒是全技术的。。)

1 用多少网球可以把一辆公车填满


2 2007的2007次方的最后一位数字是什么  7,9,3,1,即4个一循环,2007 mod 4 = 3 ,即 3(第三个)
3有四张牌,牌的一面分别的E G 4 5
 如果说牌的一面是元音字母,那个另一面是偶数,要验证这条原则是不是正确
应该翻开哪张牌?  提示元音是EOAIU.

 

4  是常见的一个手电过桥题,四个人速度是10 6 3 1 问最短过桥时间

解答:

设 A:10, B: 6, C: 3, D: 1  或者 TA>= TB>= TC >= TD

则,cd--> 3

      d--> 1

     AB->  10

     C-> 3

    cd  -> 3

总共时间为:  3 + 1 + 10 + 3 + 3 = 20


5  两个水桶分别装5加仑和3加仑水,问怎么得到4加仑水,没有其他容器没有标记攻工具(这个题目以前他也出过一样的)

解答:

2次3加仑倒入5加仑,剩下一加仑,然后将5加仑桶倒空,将剩下1加仑倒入,然后再倒入3加仑,即可。

 

 

6  3个房间分别有3个人,怎么能遇见最高那个,原则是你可以进其中任意一间,如果你觉得他最高就说yes,然后游戏中止,如果说no就可以去另一间要求给出策略 和 概率

第一个房间说no,第二个房间比较如果比第一个房间矮就说no,否则说yes。

 

7  64个球,一个偏重,问最少用天平称几次可以找到?(这个也是他常出的题小变了一下)

解答: m = 64. 采用  三分法,最少需要4次。 结论如下:

  一般是 n = min{n | (3 exp n) >= m}

 

8 一个立方体 六面涂了颜色,将它分成1000个小立方体,问至少有两面涂有颜色的小立方体有多少个

解答: 分成1000块,涂有2面得小方块是在棱上的,除去8个顶点。 根据对称性,每一维分成10等分,于是有8块有两面颜色

     总共有12条棱,共 12 * 8 = 96。

   (需要证明这样是最少的,用反证法,假设是在一个维上分成1000快,则有998*4块了两面的。这里需要的是棱上的分割总数最少。)

 

9 小船过河 有两组人三个M 三个C (单词不认识hoho) 小船最多可以载两个人,原则是河一边的M的人数不能多于另一边C人数.

解答: 假设从A->B,要求m(B)<=c(A)  (未完)

mc : A--> B     m ccc         mm

c: B--->A         mm ccc        m

m: A--->B       mcc              mmc

:   B---A          mccc            mm

 

 

 

 

10 题目比较长,主要是说有个检验三个数是不是可以构成三角形的函数,每个选项中分别有四组数,问哪个选项中的几组数可以最好的检验这个函数,这个题猜的 不能确定
应该要注意什么
  11  a  b  c
               d
               e   f  g
                       h
                       i
      这9个字母分别唯一的表示1到9中的数字,且每行和每列的三个数之和为13
问c+e+g=?
解答:

    c+e+g = 13.

有道

昨天笔了有道,趁着还有印象,发个笔经,攒攒RP,希望对后面笔的同学能有点帮助
 
找的同学内推动有道,效率挺快的,上周提交的简历,周六就通知收到笔试通知了。
提前到了有道,接待室里已经坐满等着笔试的同学了,之前好像刚笔完一场。
快到点了来了个长得挺可爱的mm把我们领到一个小会议室,墙上都是有道员工的照片,都很年轻的样子。
 
不闲扯了,笔试2个小时,3道算法题,5道单选题,前面还有两个写自己项目经历和兴趣爱好的就不说了
 
选择题
1:5本不同的书分给4个人,每人至少1种,共有几张不同的分法
2:女儿国夫妇都喜欢女孩,他们如果生了男孩会接着生,直到生出女儿为止,问一直这样下去男孩/女孩比例哪个高
3:关于网络协议的陈述找错的,很简单就没记 -_-
4:n个棋手单循环赛,每人必须和其他所有棋手各赛1场,有2个棋手赛完3场退出比赛了,他俩没赛过,比赛结束共赛了72场,问比赛开始有几名棋手
5:有人手表一小时慢3分钟,他4:30对了表,问他的表走到当天10:50时,实际时间是几点?
 
算法题
只允许用C++和java,不让用其他语言,不让用库函数(连strlen()都不让用,汗),不让写伪代码,函数接口都给定了
1:两个字符串a,b,找其中的公共字符,并按在串a中的顺序输出;
2:两颗二叉树t1,t2,结点定义预先给出了,
struct Node
{
  char value;
  struct Node *left;
  struct Node *right;
};
要求实现 int func(struct Node *t1, struct Node *t2),在树t1中,找和t2完全相同的子树个数;
3:实现一个按字典序打印1..n的功能 void printNum(int n)
例如n=120
则打印
1
10
100
101
...
109
110
...
119
120
2
20
21
...
99
 
感觉题目都挺基础,不过由于不让用库函数有的题纠结了半天,最后总算是全部完成了。

还有一道是输出三个三位数,大小比例是1:2:3,尽量优化!1-9中选,每位都不一样,需要有计算过程

 

 

微软笔试面试题集锦

一.最基本题型(说明:此类题型比较简单)

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

 简单计算一下。2/60=1/x+1/30.  x=inf。 不可能

8.

烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的

绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?

 先烧一根,再将绳子折两次(1/4长度),再烧完。

9.

你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。

抓取多少个就可以确定你肯定有两个同一颜色的果冻?

 4个

10.

如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上

下都不均匀,问你如何才能准确称出4公升的水?

 3+3+3-5即可。

11.

一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另

一个是说谎国的。诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,

但不知道应该走哪条路,需要问这两个人。请问应该怎么问?

 问各自从哪里来。于是两人都说从诚实国来。相反的就是说慌国的路 。

12.

12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就

找到那个球。13个呢?

分成三组。 

13.在9个点上画10条直线,要求每条直线上至少有三个点?

 

.     .
   .  
.  .  .
   .
.     .

三竖一横,六斜

14.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有

几次?都分别是什么时间?你怎样算出来的?

 

15.

一位商人有一个40磅的砝码,由于跌落在地而碎成4块.后来,称得每块碎片的重量都

是整磅数,而且可以用这4块来称从1至40磅之间的任意整数磅的重物.问这4块砝码碎片各

重多少?

1+3+9+27

 

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

这种题大多数没有答案,但是要看你的反应喽!)

 

1.为什么下水道的盖子是圆的?

2.中国有多少辆汽车?

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

4.如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的

任何一个,你会去掉哪一个,为什么?

5.多少个加油站才能满足中国的所有汽车?

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

7.为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出?

8.你怎样将Excel的用法解释给你的奶奶听?

9.你怎样重新改进和设计一个ATM银行自动取款机?

10.如果你不得不重新学习一种新的计算机语言,你打算怎样着手来开始?

11.如果你的生涯规划中打算在5年内受到奖励,那获取该项奖励的动机是什么?

观众是谁?

12.如果微软告诉你,我们打算投资五百万美元来启动你的投资计划,你将开始什

么样商业计划?为什么?

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

做一件事,那件事将是什么?

 

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

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

那么……就别想解出来了。)

 

1.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,

你必须在每天结束的时候给他们一段金条。如果只允许你两次把金条弄断,

你如何给你的工人付费?

4+2+1

2.有一辆火车以每小时15公里的速度离开北京直奔广州,同时另一辆火车

每小时20公里的速度从广州开往北京。如果有一只鸟,以30公里每小时的速

度和两辆火车同时启动,从北京出发,碰到另一辆车后就向相反的方向返回

去飞,就这样依次在两辆火车之间来回地飞,直到两辆火车相遇。请问,这

只鸟共飞行了多长的距离?

3.你有四个装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被

污染的药丸的重量+1。只称量一次,如何判断哪个罐子的药被污染了?

1+2+3+4,称总重量。

4.门外三个开关分别对应室内三盏灯,线路良好,在门外控制开关时候不能

看到室内灯的情况,现在只允许进门一次,确定开关和灯的对应关系?

先开一个,开一会。然后开另一个。然后进去房间。热的为开过。


5.人民币为什么只有1、2、5、10的面值?

6.你有两个罐子以及50个红色弹球和50个蓝色弹球,随机选出一个罐子,

随机选出一个弹球放入罐子,怎么给出红色弹球最大的选中机会?在你的计

划里,得到红球的几率是多少?

 1个罐子一个红球,一个罐子49红球+50红球。

概率为1*1/2+(49/99)*1/2=0.74

四.超难题(说明:如果你是第一次看到这种题,并且以前从来没有见过类

似的题型,并且能够在半个小时之内做出答案。只能说明你的智力超常……)

 

第一题  五个海盗抢到了100颗宝石,每一颗都一样大小和价值连城。

他们决定这么分:

抽签决定自己的号码(1、2、3、4、5)

首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,

按照他的方案进行分配,否则将被扔进大海喂鲨鱼如果1号死后,再由2号提

出分配方案,然后剩下的4人进行表决,当且仅当超过半数的人同意时,按照

他的方案进行分配,否则将被扔入大海喂鲨鱼

依此类推

条件:每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。

问题:第一个海盗提出怎样的分配方案才能使自己的收益最大化?

 

第二题 . 一道关于飞机加油的问题,已知:

每个飞机只有一个油箱,

飞机之间可以相互加油(注意是相互,没有加油机)

一箱油可供一架飞机绕地球飞半圈,

问题:

为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?

(所有飞机从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间

没有飞机场)

3架,5次飞行

分别在1/8, 1/4, -1/4, -1/8处进行加油。

 

五.主观题(说明:在以后的工作过程中,我们可定会犯这样那样的错误。

既然错误已经酿成,损失在所难免,我们只能想办法把损失减少到最小。

如果能巧妙地回答出这些问题,再发生错误的情况下。能让客户有最少的抱

怨,公司有最少的损失。)

 

1.某手机厂家由于设计失误,有可能造成电池寿命比原来设计的寿命短一半

(不是冲放电时间),解决方案就是免费更换电池或给50元购买该厂家新手机

的折换券。请给所有已购买的用户写信告诉解决方案。

2.一高层领导在参观某博物馆时,向博物馆馆员小王要了一块明代的城砖作

为纪念,按国家规定,任何人不得将博物馆收藏品变为私有。博物馆馆长需要

如何写信给这位领导,将城砖取回。

3.营业员小姐由于工作失误,将2万元的笔记本电脑以1.2万元错卖给李先生,

王小姐的经理怎么写信给李先生试图将钱要回来?

 

六.算法题(说明:这些题就不是什么花样了,考的是你的基础知识怎么样。

再聪明而没有实学的人都将会被这些题所淘汰。)

 

1.链表和数组的区别在哪里?

2.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?

3.编写实现数组排序的一种算法。说明为什么你会选择用这样的方法?

4.编写能直接实现strstr()函数功能的代码。

5.编写反转字符串的程序,要求优化速度、优化空间。

6.在链表里如何发现循环链接?

7.给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里。

   参见: http://paste.ubuntu.org.cn/45528

 

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结构的特点,优点

你可能感兴趣的:(算法与数据结构)