|
微软程序员测试题
) ]' W0 p# r6 _. v8 m3 P& l2 U$ ^5 P, m2 s
一.最基本题型(说明:此类题型比较简单)
) U6 y3 q( e+ E1 A+ a+ q. b; x
' g1 g1 R4 U+ Q& a2 A* @, K1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧 4 u* Z& k4 W1 m1 _4 x
3 G4 A- |' G. Q8 d, b2 W绳的方法来计时一个小时十五分钟呢?
; C7 k( Z& ?- i, N0 g7 u2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可 ) U: {9 Q' A- Y1 p- \4 C/ L3 o
3 {6 y0 Z7 H% A9 [2 o
以确定你肯定有两个同一颜色的果冻?(5秒-1分钟) . F% Z) @+ b- }7 }9 |* ]' a
3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你 # Y `( G. D7 B3 j
( n; S7 b' G) O9 i/ \7 ?0 F如何才能准确称出4公升的水?(40秒-3分钟)
0 {) I: @6 F L! P4.一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。
( H+ w# i# q, `; @6 U9 T
. L5 B: z4 K/ a+ O! F8 C* F. p N) F诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个 ; R; t0 ], P; v b( v1 C
0 p( a3 ?; }8 p O" y
人。请问应该怎么问?(20秒-2分钟)
. o$ K+ p) T* j/ Y. ?5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个 / Z& E5 h+ d" ~* G) z) N" I( Z. [' ~
( h9 l l3 O4 g! M
呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)(5分钟-1小时)
/ q+ T# R& V) a' ]& N: I6.在9个点上画10条直线,要求每条直线上至少有三个点?(3分钟-20分钟)
" r; O/ z- {9 I7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时
6 T1 N( @, I- P: ~' b4 t3 c
2 w0 N) v8 A0 L" j; g间?你怎样算出来的?(5分钟-15分钟)
e H" r4 j- l6 N: A; E. i
9 g1 b' r5 t- M4 d9 \8 Z6 r0 ?) O( x- q
二.没有答案型(说明:这些题显然不是考你智力。而考的是你的反应能力。这种题大多数没有答
" U* V4 v. ^% x3 j" o& X# ^1 Y1 }7 r; k9 E" G( S
案,但是要看你的反应喽!)
$ U: n; R: r% n: l" E% R4 M& a8 @. N% K$ L- K' I& e
1.为什么下水道的盖子是圆的? , v( P% @* w. \0 W. B
2.中国有多少辆汽车?
" ?3 X/ l$ a( O1 B! l7 e, @3.将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁?
0 `. m, j1 o% k# a# j/ F4.如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉
) Y7 H! h$ m8 F9 k1 C5 Q- h p: U' _# \% G& \) D1 k
哪一个,为什么?
9 [$ b3 B0 S$ i/ V2 R+ p5.多少个加油站才能满足中国的所有汽车?
F A! U& R0 Z& W6.想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下? " ?: e% S4 K8 r) _7 S7 R
7.为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出? 1 T# G2 C' s- n, y" h& J9 f
8.你怎样将Excel的用法解释给你的奶奶听?
; j6 k# S" u% E B# B- P9.你怎样重新改进和设计一个ATM银行自动取款机? . O- P$ @. f" v
10.如果你不得不重新学习一种新的计算机语言,你打算怎样着手来开始?
2 h+ y8 y6 V$ D0 Z( H% N11.如果你的生涯规划中打算在5年内受到奖励,那获取该项奖励的动机是什么?观众是谁?
3 t& R) w! M4 i9 A12.如果微软告诉你,我们打算投资五百万美元来启动你的投资计划,你将开始什么样商业计划? ! b1 y9 ]1 M- A! ^/ t
% D, s1 C% a- \9 y/ Z) h
为什么?
0 Y, w; z, h* c4 J- k! t( l13.如果你能够将全世界的电脑厂商集合在一个办公室里,然后告诉他们将被强迫做一件事,那件 - Z* u0 X3 K. v: @5 g; o4 {4 l/ v
; {3 d' O$ q9 }
事将是什么? $ A8 _4 s% I5 f0 V1 G4 Y
+ X8 K& ]1 i3 [( {
/ x# `! m/ T" M8 Y: Z三.难题(说明:这类题有一定难度,如果得不到答案,也不能说明什么。如果你想到了解题思路 ! H" T+ m3 F3 f( O" L
, C" x" ^) t% S9 v% Q,那么答案马上就能出来。如果想不到思路,那么……就别想解出来了。)
# f/ t' q* k, _4 G" Z' t" \
: ~! l9 ~8 }0 V! Z5 i1.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候 7 b3 n. Q0 Y) a; Z4 T( G3 v1 P
! m2 E$ \6 a+ `: E Q' }' ]给他们一段金条。如果只允许你两次把金条弄断,你如何给你的工人付费?
5 w. W6 w1 E; }2.有一辆火车以每小时15公里的速度离开北京直奔广州,同时另一辆火车每小时20公里的速度从广 0 t/ A% W+ E4 s( t$ x8 K5 i( ~, q" D
, r* w- l+ P9 D* z8 |9 ?$ s
州开往北京。如果有一只鸟,以30公里每小时的速度和两辆火车同时启动,从北京出发,碰到另一辆
* y; s, Z5 H8 l0 v
# S$ P4 O1 x1 A5 e, g! }车后就向相反的方向返回去飞,就这样依次在两辆火车之间来回地飞,直到两辆火车相遇。请问,这
8 \0 |+ | D, ?2 l0 y* Z- ~3 g# h- p4 V
只鸟共飞行了多长的距离? ' b1 O; `5 x0 |: F
3.你有四个装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被污染的药丸的重量+1。 ! D% W- _# U5 c+ D& I
" L b0 V9 ^ W/ E* Q只称量一次,如何判断哪个罐子的药被污染了?
! f/ y& }5 v9 C9 ]. m2 S4.门外三个开关分别对应室内三盏灯,线路良好,在门外控制开关时候不能看到室内灯的情况,现
6 S6 o% k' h5 [, E8 }2 t/ e- V5 l. {6 _- g3 m" Q( `
在只允许进门一次,确定开关和灯的对应关系? 9 P# }9 Q4 W8 q6 G( ^
5.人民币为什么只有1、2、5、10的面值?
' B) ?8 Z) R: N5 [/ t6.你有两个罐子以及50个红色弹球和50个蓝色弹球,随机选出一个罐子, 随机选出一个弹球放入 9 z7 }! G! j8 C8 U
' w( F9 U6 q c* f; u罐子,怎么给出红色弹球最大的选中机会?在你的计划里,得到红球的几率是多少? 9 C: [) l0 {) V- e u
! ^& k! D& Y' X: X8 T
% R8 r. \1 }6 w9 ?) z; p四.超难题(说明:如果你是第一次看到这种题,并且以前从来没有见过类似的题型,并且能够在 6 g W9 g) E1 h$ N
0 j- b2 M: u$ a
半个小时之内做出答案。只能说明你的智力超常……)
5 m' q$ V2 P! h! M' k$ l( s2 y9 x3 G; x# L$ N- T; _" h7 s c
第一题 . 五个海盗抢到了100颗宝石,每一颗都一样大小和价值连城。他们决定这么分:
# U) J1 b. s1 y# l l抽签决定自己的号码(1、2、3、4、5) ( o5 p4 l9 P: A! y( w# p
首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案进行分 + d# A- ?& d& G! a2 i; ]/ l# q
5 w* [' v: n# j' @配,否则将被扔进大海喂鲨鱼
+ u2 ^2 @6 j; U8 k如果1号死后,再由2号提出分配方案,然后剩下的4人进行表决,当且仅当超过半数的人同意时, : @* T# w+ H. @) S
$ E5 j- k7 P7 O* _ W
按照他的方案进行分配,否则将被扔入大海喂鲨鱼 $ `9 f. w6 ?& B
依此类推
. `. L6 W- M5 t( h8 L# A条件: 每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。
/ o6 c4 X3 [$ ]* ?问题: 第一个海盗提出怎样的分配方案才能使自己的收益最大化? . X, ]6 j0 B) y
) W, \; S8 o. C" Z% J) Y" v5 N" W9 }第二题 . 一道关于飞机加油的问题,已知: * q3 W( m$ `, f# |8 W3 d
每个飞机只有一个油箱,
7 N/ b, A3 P) f9 {6 u+ p$ e. H, R飞机之间可以相互加油(注意是相互,没有加油机)
+ n8 L! J' @/ {) z3 P1 M" A一箱油可供一架飞机绕地球飞半圈,
4 p; }$ m2 U) S" Q' r问题: 为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机 . y; w$ |- _ Y. t" ?( U: B
2 I# ~& A: F6 a; k2 S4 P
从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场) . B ^! C3 X2 d" z3 V5 d
0 o) o" p/ _) o4 L) Z& n
) z8 {. }8 p/ F+ s% e S五.主观题(说明:在以后的工作过程中,我们可定会犯这样那样的错误。既然错误已经酿成,损 / @! W; x: b% J. t
; L$ [+ u/ M c0 C3 i# G* u失在所难免,我们只能想办法把损失减少到最小。如果能巧妙地回答出这些问题,再发生错误的情况 + b+ Q* o; H- u9 U
% Z# j5 k/ Z8 q7 D下。能让客户有最少的抱怨,公司有最少的损失。) 9 n) n$ }5 o( Y5 V- ]: i# S
( T W* E7 Q0 Z( C2 \: s) v
1.某手机厂家由于设计失误,有可能造成电池寿命比原来设计的寿命短一半(不是冲放电时间),
1 b/ ~6 K* M- @2 s) n
6 Y5 q# u1 z$ u4 s4 ^3 N2 j) ^解决方案就是免费更换电池或给50元购买该厂家新手机的折换券。请给所有已购买的用户写信告诉解 3 M7 Z; A! ?4 U9 p; R" g
$ F1 P1 g+ Q6 q, h决方案。 0 s- S" h1 ~2 W( m! K$ ?, D2 s
2.一高层领导在参观某博物馆时,向博物馆馆员小王要了一块明代的城砖作为纪念,按国家规定, + Y2 g9 u% p: Q& Y% r8 ?
( E7 S+ c7 T! w2 K/ {* s任何人不得将博物馆收藏品变为私有。博物馆馆长需要如何写信给这位领导,将城砖取回。
" w$ C6 K+ W4 F) z0 A* H& n1 C3.营业员小姐由于工作失误,将2万元的笔记本电脑以1.2万元错卖给李先生,王小姐的经理怎么写 6 ^- D" H% F5 H' l
9 `1 F4 `5 q+ V6 H$ L信给李先生试图将钱要回来?
% n, t8 d f9 \3 S, v9 B) w9 M& O: i7 ?$ U5 D# N% t' s
5 X2 D% [" u0 `六.算法题(说明:这些题就不是什么花样了,考的是你的基础知识怎么样。再聪明而没有实学的 9 m# \; R9 w% u$ W$ U) v
7 g! r, r- N* E5 S5 V% i3 |3 e) a; @人都将会被这些题所淘汰。) # l' k2 A5 H$ U7 @' g) ]
$ O/ N$ n" Q5 }; C2 M1.链表和数组的区别在哪里? ( V* g" h! M! S/ D5 ]
2.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?
. y v7 p% \! ^" R8 p( h* R3.编写实现数组排序的一种算法。说明为什么你会选择用这样的方法?
# |$ c: h, g0 _# ]8 y6 ^4.请编写能直接实现strstr()函数功能的代码。
( j+ N5 V1 G! ~( i. T5.编写反转字符串的程序,要求优化速度、优化空间。 1 B7 K9 { `2 n% p6 w! q
6.在链表里如何发现循环链接?
; U u G. ?( \, }$ F( q( Z7.给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里。 . R' J6 o8 C0 ?7 m( s( z7 ~5 X( W! v
8.写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出
* R8 T7 D9 a& J6 t4 T8 Q4 k1 c
/ [" ~7 ]* e- A- T2 I' l! d一个从字符串到长整形的函数?) % ^6 Q F7 H9 M e) c
9.给出一个函数来输出一个字符串的所有排列。
3 |- r+ Q5 M( k10.请编写实现malloc()内存分配函数功能一样的代码。
h5 G2 \$ \. ~1 b11.给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。
' D U) B* S, Q5 s1 [6 n, ~# j12.怎样编写一个程序,把一个有序整数数组放到二叉树中?
4 ~9 u( y8 ^6 t: ~: I3 t13.怎样从顶部开始逐层打印二叉树结点数据?请编程。 6 v9 G e% V0 b; E1 J- _4 W' s
14.怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)? |
|