|
微软程序员测试题 $ n, \) j$ t5 \5 V( `3 `0 q/ O3 g
C4 w p$ a' a$ A6 S6 c
一.最基本题型(说明:此类题型比较简单) + M! A# |1 w7 B4 c# G- D3 W1 S
# @- I c+ b& y$ i$ u. ~6 X1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧
$ A3 s/ U9 w" z- n: B
. m4 r; b, D+ ?" b8 V# A6 E2 z绳的方法来计时一个小时十五分钟呢?
6 \' d8 `8 `* a$ ^4 f2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可 ' w- f: Z# O+ m5 N0 n+ r9 d
5 {* a% S0 G, h0 G! g以确定你肯定有两个同一颜色的果冻?(5秒-1分钟) 9 p* |9 j0 j) w" d
3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你
1 C* I! H8 |+ ]* m7 ^ G9 \/ F8 n( C6 m7 L
如何才能准确称出4公升的水?(40秒-3分钟) ' o- M9 R2 |# X. f
4.一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。
v# J$ l% a; H9 Q% ^! C" Q [; Z5 S# ^) B
诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个 5 y' k7 M Z% h2 T1 \
& L! C! W, K$ G% H3 x: t
人。请问应该怎么问?(20秒-2分钟) / M* j* E9 q; C7 Z4 s
5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个
* y; T$ r: i3 w' C5 t0 w
* G: z- e2 F i* {呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)(5分钟-1小时)
0 U' ]3 ~; T3 a0 z2 q& u8 W4 l6.在9个点上画10条直线,要求每条直线上至少有三个点?(3分钟-20分钟)
! V5 v8 t: |8 d7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时 3 q, A; f% a r& ^5 s
+ |8 r$ k; K+ N4 \, c间?你怎样算出来的?(5分钟-15分钟) - z. l6 ]/ e3 }! ~( c" s' y6 |) ~
# l/ T7 |+ z! i2 y0 i/ S
( J1 `& V/ r" d( c% A8 ^+ t二.没有答案型(说明:这些题显然不是考你智力。而考的是你的反应能力。这种题大多数没有答 ' `) s2 w6 c) B c' ]: g- }
$ j8 M- m2 b$ J i案,但是要看你的反应喽!) # t8 r; K% @9 G( B& r
, P4 R1 X/ I$ h" L& f) w1.为什么下水道的盖子是圆的? ! e$ {8 X. d! h
2.中国有多少辆汽车? $ H, ~0 g/ K2 J7 t R
3.将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁? + I# A5 W2 V; S' ?" U
4.如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉
7 c* g0 T( q' p; X: i2 o2 ]2 F" d) j7 {
哪一个,为什么?
8 }5 h- f: f% L: x4 ^& f& I5.多少个加油站才能满足中国的所有汽车? . h+ t, E; H z5 J2 @' m" }; Z6 w% Q1 y% R
6.想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下? 7 R* V) t# O. k: Y
7.为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出? . K2 A" H- v1 k! \2 j6 ]. u# J
8.你怎样将Excel的用法解释给你的奶奶听?
, r5 U* J/ U6 J* s2 ^: }; Q2 i9.你怎样重新改进和设计一个ATM银行自动取款机?
: n: r; U8 k% i# P10.如果你不得不重新学习一种新的计算机语言,你打算怎样着手来开始?
& e: E& A& v% D+ A& |9 }$ R11.如果你的生涯规划中打算在5年内受到奖励,那获取该项奖励的动机是什么?观众是谁? k' G6 q. T1 S! ~: z; G
12.如果微软告诉你,我们打算投资五百万美元来启动你的投资计划,你将开始什么样商业计划?
3 R% J7 u+ {# Y) v5 _7 j4 F
. G3 C: [+ v# ^+ B) X为什么? E7 x6 \. ~4 g8 E( Y- U2 q; _/ D
13.如果你能够将全世界的电脑厂商集合在一个办公室里,然后告诉他们将被强迫做一件事,那件
2 `7 e$ C5 U; |1 W* K
1 [! X6 N( c1 [; ^, w) o* z% Q" a事将是什么? 4 p# R& x5 U8 o4 _
: h E8 Y3 Z% O# v
- F: s8 k! N* p# D7 D& {三.难题(说明:这类题有一定难度,如果得不到答案,也不能说明什么。如果你想到了解题思路
o& r" a. |8 u [
) O! d$ w3 \6 m' `* L1 q,那么答案马上就能出来。如果想不到思路,那么……就别想解出来了。)
2 l- f+ g0 G* ]) z" g' S5 q( S% N- M1 P: T3 c5 n& i/ I, O
1.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候 ! B X8 T% p9 X7 M& v
' X l. |2 i0 M4 F1 s* `& E) E给他们一段金条。如果只允许你两次把金条弄断,你如何给你的工人付费? $ H4 r% Y7 r9 a: T
2.有一辆火车以每小时15公里的速度离开北京直奔广州,同时另一辆火车每小时20公里的速度从广 1 Q6 R1 q) T7 E! n( D8 f$ f. A
+ E3 F( x6 M" `1 q
州开往北京。如果有一只鸟,以30公里每小时的速度和两辆火车同时启动,从北京出发,碰到另一辆
- Y: d5 y% g: s; X( o) p7 v+ s; R# i0 f
车后就向相反的方向返回去飞,就这样依次在两辆火车之间来回地飞,直到两辆火车相遇。请问,这
3 z2 }, U4 k6 y2 e+ _- i7 g* d9 O& F+ Z; k0 {; k
只鸟共飞行了多长的距离?
9 `+ L2 e: M! s' Z$ {* W) M7 B5 {3.你有四个装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被污染的药丸的重量+1。 ' A# z) Y, K/ l# t
& K) w% l( N y5 ?/ c: H只称量一次,如何判断哪个罐子的药被污染了? Q; d7 W4 |) s2 o" V
4.门外三个开关分别对应室内三盏灯,线路良好,在门外控制开关时候不能看到室内灯的情况,现
4 D9 e4 L/ }. z C- K5 x7 j; ?3 p# h4 G: ~
在只允许进门一次,确定开关和灯的对应关系?
2 G, N% I- L# Q, ~5.人民币为什么只有1、2、5、10的面值? * h+ x* i2 q; {) ]$ E
6.你有两个罐子以及50个红色弹球和50个蓝色弹球,随机选出一个罐子, 随机选出一个弹球放入 * _* s( n) F5 ^+ T4 E
3 W8 r$ e% X: n7 e" f; h
罐子,怎么给出红色弹球最大的选中机会?在你的计划里,得到红球的几率是多少? 7 I1 d) R4 B9 Y+ X- l
5 V6 Y+ n( x: j6 I$ C! d0 |9 A3 k
- W3 {$ f: q W. w8 U5 g
四.超难题(说明:如果你是第一次看到这种题,并且以前从来没有见过类似的题型,并且能够在
: I9 Z7 r: ~1 H; l
* a9 t( M7 [" o半个小时之内做出答案。只能说明你的智力超常……)
+ b, p' N8 Q( v* T" F
9 `6 R" B3 p3 U( m. [) m第一题 . 五个海盗抢到了100颗宝石,每一颗都一样大小和价值连城。他们决定这么分: 8 q/ ]; }8 p( ~! E! D1 @
抽签决定自己的号码(1、2、3、4、5) 4 }% ~- `) m/ T$ D9 ^6 u4 ]+ m
首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案进行分 & q2 n x' r C K5 n2 |6 z
5 j5 k |$ f; x% ^- z# V# F I, B配,否则将被扔进大海喂鲨鱼 : v7 }6 m* J$ c
如果1号死后,再由2号提出分配方案,然后剩下的4人进行表决,当且仅当超过半数的人同意时,
. o0 u& f E7 F* r8 z
, n8 A& S+ L& n/ P7 a# S按照他的方案进行分配,否则将被扔入大海喂鲨鱼
" D* D3 U% G9 [+ o依此类推
3 B8 G& S1 u5 s条件: 每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。 + L& b9 b$ m& G& ~2 t f6 w2 t
问题: 第一个海盗提出怎样的分配方案才能使自己的收益最大化? $ h* Y( p, O) B& u
) E+ s0 A( h. X, b9 R _) P
第二题 . 一道关于飞机加油的问题,已知: 3 r) c5 o) w/ L2 X
每个飞机只有一个油箱, / \4 _+ _1 Q5 R1 ?; g3 {6 ^2 T
飞机之间可以相互加油(注意是相互,没有加油机)
! B/ C# U. t& G( M# E0 h# L一箱油可供一架飞机绕地球飞半圈,
- v" u' E ]: [- m( u* z4 L问题: 为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机
. @$ T0 ~, a6 G" M% V2 F" |, c0 @* |: W" ?# R9 L8 O
从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)
2 R& F& z$ h2 p
+ q) p2 k! s; I r2 q. `3 F) q# C4 v3 ]
五.主观题(说明:在以后的工作过程中,我们可定会犯这样那样的错误。既然错误已经酿成,损 9 c, [$ [# W: S# }
9 J% Z* _( t/ k# A/ q
失在所难免,我们只能想办法把损失减少到最小。如果能巧妙地回答出这些问题,再发生错误的情况 0 v2 Z' r: O, X+ |
$ g' B, Z: q, Y% W下。能让客户有最少的抱怨,公司有最少的损失。) $ N' S( W: W- i" I+ W7 e
% L! G/ O2 f' w# z. j B7 f4 _) d8 I
1.某手机厂家由于设计失误,有可能造成电池寿命比原来设计的寿命短一半(不是冲放电时间),
% s3 g( D/ h) q! }( a2 {9 B: z$ U7 y) E( {1 Z
解决方案就是免费更换电池或给50元购买该厂家新手机的折换券。请给所有已购买的用户写信告诉解
: ^, D, [; ^- v3 @3 k$ q( S3 l9 S) o! @9 m
决方案。
, q8 B- M! W& s; e" F2.一高层领导在参观某博物馆时,向博物馆馆员小王要了一块明代的城砖作为纪念,按国家规定, . U q' x' a) I1 Q! C5 R
2 ~# `$ i/ o6 `! l
任何人不得将博物馆收藏品变为私有。博物馆馆长需要如何写信给这位领导,将城砖取回。
( }% v! i2 h; O3.营业员小姐由于工作失误,将2万元的笔记本电脑以1.2万元错卖给李先生,王小姐的经理怎么写
( \* K) A. w( g. n1 {
$ c# \; ?& s& s( s7 g# L, U信给李先生试图将钱要回来? $ T! g, J! f Q3 P0 R
! t$ N! t8 z* Q i" l3 {8 G0 T8 _8 v. Q
1 f$ y7 _$ N* l, A b: l `/ h
六.算法题(说明:这些题就不是什么花样了,考的是你的基础知识怎么样。再聪明而没有实学的
! [4 T# B3 G- z
& q* g" D5 D k+ ?* I# m- M人都将会被这些题所淘汰。) ( [3 G7 e# ?0 R( E; N5 r3 X
; P8 L% q( v3 G4 V3 F& D8 a% ~1.链表和数组的区别在哪里? 6 W+ ~. @" r9 |5 ? E/ {
2.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?
/ K2 ^3 V N/ P& Z3 ~6 Q9 A3.编写实现数组排序的一种算法。说明为什么你会选择用这样的方法?
* F6 g7 C0 J. u$ p! G4.请编写能直接实现strstr()函数功能的代码。 * X& U0 q6 x) {; |
5.编写反转字符串的程序,要求优化速度、优化空间。 ; Q/ l; r' p3 f! R5 B
6.在链表里如何发现循环链接? 9 I& M# o# |0 L- \: d" y* ?
7.给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里。
4 N: d6 N v* J# b+ k8.写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出 : k. t9 V4 K1 E& B" @
8 ?8 M/ B8 W _. Y( ~3 z4 m一个从字符串到长整形的函数?) / C# R: O+ y& `/ e: L
9.给出一个函数来输出一个字符串的所有排列。 6 F/ Q$ m5 R" B/ T9 F
10.请编写实现malloc()内存分配函数功能一样的代码。
5 J0 v, _+ i% |( C11.给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。
! T8 T4 u" J5 J. x12.怎样编写一个程序,把一个有序整数数组放到二叉树中? ( e2 u8 @* G" \4 b) H
13.怎样从顶部开始逐层打印二叉树结点数据?请编程。 * n( R6 B9 E- e9 S
14.怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)? |
|