|
微软程序员测试题 + G ?$ u; L9 w8 m4 f; L
$ p/ ]7 O/ e5 R# T% U$ H一.最基本题型(说明:此类题型比较简单)
3 {, h6 s! c& g& C8 d2 ?: H
+ d$ K* }+ e3 T7 n1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧
8 R5 Q, s* f5 r5 W" S @% Y* _& N& a+ {6 e4 J) l9 N
绳的方法来计时一个小时十五分钟呢?
( `6 B% J* f, u! }: l! `2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可
' j3 f1 `9 q8 \& F5 f$ h/ e6 w" \1 ]1 ]( a( q2 [9 S. W, z& Z
以确定你肯定有两个同一颜色的果冻?(5秒-1分钟) ) d5 {1 h, Z0 ]
3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你 * P' }4 s, [" N5 N v
# C6 N! T+ T. L. \( L3 O如何才能准确称出4公升的水?(40秒-3分钟) " f" f1 k5 K2 v3 ~% h4 d2 ]2 M
4.一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。
8 W- g3 P$ _$ n& }3 U: p, h' b2 w( g% y! m) P
诚实国永远说实话,说谎国永远说谎话。现在你要去说谎国,但不知道应该走哪条路,需要问这两个 7 L ]( A8 I- k: [6 v3 v
4 K* d$ c p1 y/ M* }
人。请问应该怎么问?(20秒-2分钟)
- x% e3 e' G" l2 b' F5.12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个 $ j5 B' Y9 u9 ~3 Q
; m) G) i+ g+ |- {7 D
呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)(5分钟-1小时)
[+ _4 F. s" l a! l. E* k9 c6.在9个点上画10条直线,要求每条直线上至少有三个点?(3分钟-20分钟)
# o, o) S3 y# k! [# }7.在一天的24小时之中,时钟的时针、分针和秒针完全重合在一起的时候有几次?都分别是什么时 ' Z8 q- j" d2 C* z+ }
, B- }5 e& E# N# y! u
间?你怎样算出来的?(5分钟-15分钟)
, {9 b. h/ R8 C y4 T
7 C6 L4 X4 q. C" w; }% h) b! Q
/ U' }; r! s; N1 v# d" v二.没有答案型(说明:这些题显然不是考你智力。而考的是你的反应能力。这种题大多数没有答 - Q2 M5 _$ i* q3 F- q1 K. p
/ K, o7 L' i a' |9 E) W9 o/ j6 t
案,但是要看你的反应喽!) 4 r c; `! F; | [( Z8 s, d) @
4 j2 R4 _% A. c1.为什么下水道的盖子是圆的?
* a9 U+ G. M6 d9 W: U2.中国有多少辆汽车?
) | D. S% g! p& p) `3.将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁? , d3 C- ~+ S$ t% s7 Y
4.如果你要去掉中国的34个省(含自治区、直辖市和港澳特区及台湾省)中的任何一个,你会去掉
7 V) T/ X; A; i; g/ b; Q9 j( j% }8 J! @ @2 _
哪一个,为什么?
. \3 ~9 l, J; c$ d* e! D1 V$ @5.多少个加油站才能满足中国的所有汽车?
5 w0 D, S. T4 ~0 ^/ p$ {$ [6.想象你站在镜子前,请问,为什么镜子中的影象可以颠倒左右,却不能颠倒上下?
7 x% z/ g o8 B/ J7.为什么在任何旅馆里,你打开热水,热水都会瞬间倾泻而出?
7 y& D+ W: N9 D( _/ f+ S8.你怎样将Excel的用法解释给你的奶奶听?
9 B" a% N$ F; U; m s+ b9.你怎样重新改进和设计一个ATM银行自动取款机? : @; ^& m$ H E" M8 G
10.如果你不得不重新学习一种新的计算机语言,你打算怎样着手来开始? 2 d! O& w0 @3 Y. s! ^& n
11.如果你的生涯规划中打算在5年内受到奖励,那获取该项奖励的动机是什么?观众是谁?
. S2 @6 o# y# g S: R }12.如果微软告诉你,我们打算投资五百万美元来启动你的投资计划,你将开始什么样商业计划? . t' W+ O8 Y/ \7 Y* L3 H
8 e' P" Z/ h3 J, N& s+ h+ {$ Y为什么?
* L1 ?, \# e. K13.如果你能够将全世界的电脑厂商集合在一个办公室里,然后告诉他们将被强迫做一件事,那件 3 \) O% q* V: L7 M' N; G8 J
: {! W- [5 g7 Y5 K8 l" G# ~事将是什么?
5 `" w4 `' a' ^0 Q, E* N6 w
# }2 W; c/ {5 K* R7 G% k/ `( V
* d/ V* C2 c: e8 l三.难题(说明:这类题有一定难度,如果得不到答案,也不能说明什么。如果你想到了解题思路
Z! i1 H$ p. V, W
9 {: }, i! S# b$ u,那么答案马上就能出来。如果想不到思路,那么……就别想解出来了。) : S; L7 A g2 J+ M! H; h3 l
' t$ v8 R: O5 E5 T% ?1 H
1.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候
, V* d) f3 q Z( W/ @3 V# k
, T9 G( p3 f/ Q, ~: y% g' C5 U+ k给他们一段金条。如果只允许你两次把金条弄断,你如何给你的工人付费? 6 i" x. g8 q8 K, I9 j# \
2.有一辆火车以每小时15公里的速度离开北京直奔广州,同时另一辆火车每小时20公里的速度从广 + j0 d1 j1 Q1 K! h2 G
. U ~% z& A7 l! ^ `
州开往北京。如果有一只鸟,以30公里每小时的速度和两辆火车同时启动,从北京出发,碰到另一辆
9 F* P2 b) ]5 N
# D# X# f' N( N' z J) P车后就向相反的方向返回去飞,就这样依次在两辆火车之间来回地飞,直到两辆火车相遇。请问,这 2 f n6 @: p" O! Z1 x! o
s- A4 @+ T* f! R: N& G$ R
只鸟共飞行了多长的距离? 9 }4 R+ g" ]; K, Q* s) j. M
3.你有四个装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被污染的药丸的重量+1。
2 ^" W" ^ [5 ?
5 Z* I( h6 j3 z$ ]* k1 p5 v只称量一次,如何判断哪个罐子的药被污染了?
; z$ A/ W- U, ?& R; Z9 ]/ P( y K4.门外三个开关分别对应室内三盏灯,线路良好,在门外控制开关时候不能看到室内灯的情况,现
' P h5 `4 K# U( B6 x
3 K. i% l* S, r4 j( v: F在只允许进门一次,确定开关和灯的对应关系?
9 C; h4 y% Y7 Y; e% v5.人民币为什么只有1、2、5、10的面值?
0 D3 U/ W k" }5 o, E6.你有两个罐子以及50个红色弹球和50个蓝色弹球,随机选出一个罐子, 随机选出一个弹球放入 0 |& f w# i" b" k3 i8 G
1 I0 t0 X |% L8 @" N
罐子,怎么给出红色弹球最大的选中机会?在你的计划里,得到红球的几率是多少?
$ D& M5 V1 c# H. l) i# k% Y
; P. o$ K/ ~: i1 \! o5 @5 e6 O+ _. l
四.超难题(说明:如果你是第一次看到这种题,并且以前从来没有见过类似的题型,并且能够在 + Q9 A, G% t3 h% x- B
* F. O% x `3 @6 q, ^半个小时之内做出答案。只能说明你的智力超常……) + Y7 |+ C2 H& l$ O4 U" X
6 f- h& }# ^6 V9 s6 X
第一题 . 五个海盗抢到了100颗宝石,每一颗都一样大小和价值连城。他们决定这么分: : V& P" h, m9 s, [
抽签决定自己的号码(1、2、3、4、5)
: l% \3 z1 j" r% `+ T0 n* o, b首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案进行分
2 I( M- ?$ J1 ^+ ?
1 O% f$ N% q- H配,否则将被扔进大海喂鲨鱼
* z$ v. W1 H* C: s- D如果1号死后,再由2号提出分配方案,然后剩下的4人进行表决,当且仅当超过半数的人同意时,
8 e! h1 D4 V# R9 R! u5 _ ]& V1 n
9 U" r0 O: [* y, C$ ]& p& j按照他的方案进行分配,否则将被扔入大海喂鲨鱼 + E* S7 ~$ j$ _3 j0 G8 d' ?; g) F' m
依此类推
6 c/ `. G! n) @& i+ p; i, {条件: 每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。
# ~) T3 @+ J* A& @问题: 第一个海盗提出怎样的分配方案才能使自己的收益最大化? $ N4 e) a$ [0 l' N% S# q
1 W6 v, ^) a! J: A, x, d! F
第二题 . 一道关于飞机加油的问题,已知:
! S. ~% V. o2 N% |每个飞机只有一个油箱, # Q9 W. N% x, Y0 y# r
飞机之间可以相互加油(注意是相互,没有加油机)
& h7 e8 N' Z+ K一箱油可供一架飞机绕地球飞半圈,
v' t+ p$ @7 e8 \* N) F问题: 为使至少一架飞机绕地球一圈回到起飞时的飞机场,至少需要出动几架飞机?(所有飞机
: b% {8 q9 O2 @* P9 \4 d
& y' a1 I7 m+ h- s0 v/ g" e从同一机场起飞,而且必须安全返回机场,不允许中途降落,中间没有飞机场)
% d/ E1 N/ F4 }& Q7 d; K) O/ Q" b5 j. b
+ h% G- }* e& L4 s五.主观题(说明:在以后的工作过程中,我们可定会犯这样那样的错误。既然错误已经酿成,损 : e& _4 T) q# g! O
( k/ E3 F" } t# b9 m$ q: t; C, z失在所难免,我们只能想办法把损失减少到最小。如果能巧妙地回答出这些问题,再发生错误的情况 9 a3 z0 {* N' z7 u" F$ ^8 V
/ \# A) f# J# ~2 ^1 ]/ P# X8 `* o下。能让客户有最少的抱怨,公司有最少的损失。)
! I% a' p- F7 _$ `: g) w
5 D: s4 N$ t' E. R: @& j) {1.某手机厂家由于设计失误,有可能造成电池寿命比原来设计的寿命短一半(不是冲放电时间), + {1 N$ T7 M: q' L
9 T1 M f" O7 R5 j5 P& Y5 a
解决方案就是免费更换电池或给50元购买该厂家新手机的折换券。请给所有已购买的用户写信告诉解 $ W3 ^% M# d% v" \4 q# S: ]
: E* u, @ Z3 F' O* \
决方案。 , m8 d. V& \7 [: m# ]. C! j
2.一高层领导在参观某博物馆时,向博物馆馆员小王要了一块明代的城砖作为纪念,按国家规定, / C# L! L& {2 M- ^
8 Y9 L0 s( n4 u) h6 e7 E( \9 E任何人不得将博物馆收藏品变为私有。博物馆馆长需要如何写信给这位领导,将城砖取回。
( P+ S, t( v5 I# m% M# [3.营业员小姐由于工作失误,将2万元的笔记本电脑以1.2万元错卖给李先生,王小姐的经理怎么写 - {4 z+ T8 d- i2 T
( K$ p! y5 t. |) {! {
信给李先生试图将钱要回来? 2 s+ Q( z @1 I
. L |2 L" z' w3 s* ]
. S' ]5 U$ O# H% ?' }3 d六.算法题(说明:这些题就不是什么花样了,考的是你的基础知识怎么样。再聪明而没有实学的 & x$ U- y7 z% D& K# O
7 G* ?3 |$ o" P" Y% {) v( ?7 o人都将会被这些题所淘汰。)
1 W- \0 [- {- N0 B9 s9 k; {* y+ Y& Z
1.链表和数组的区别在哪里?
: |. v. S3 A6 {* y6 Y3 ~. o1 C2.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?
( ^3 ~" j* P+ {3 T' J: x3.编写实现数组排序的一种算法。说明为什么你会选择用这样的方法?
' w& \+ K" O( O# ^; E) P8 K4.请编写能直接实现strstr()函数功能的代码。 ( e: e) L. Z, Z$ z4 a- p4 O) x$ _
5.编写反转字符串的程序,要求优化速度、优化空间。 ! \2 z0 D7 \* U; F' f, {( E
6.在链表里如何发现循环链接? , b6 b+ ?! H( B' [% D5 [
7.给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里。
8 U& B/ k3 H4 A* U4 G+ n8.写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出
# |7 }# E I l s- M! I2 x% k9 r; T5 D5 ?; w, o7 O
一个从字符串到长整形的函数?)
* C$ O) C# _6 j' |1 @( _' W9.给出一个函数来输出一个字符串的所有排列。
P5 u1 Y& z: j' w8 s10.请编写实现malloc()内存分配函数功能一样的代码。
! F3 V! z$ @! [& Q4 j& U& B11.给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。
3 Y6 a+ _. s8 C: G9 I( J12.怎样编写一个程序,把一个有序整数数组放到二叉树中?
" B( m6 ?" H$ B- Q13.怎样从顶部开始逐层打印二叉树结点数据?请编程。
1 S/ h D( U! \% Y( g& y14.怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)? |
|