1. 程式人生 > >微軟面試智力題 (附答案)

微軟面試智力題 (附答案)


1、你讓工人為你工作7天,給工人的回報是一根金條。金條平分成相連的7段 
,你必須在每天結束時給他們一段金條,如果只許你兩次把金條弄斷,你如何給你 
的工人付費? 

  2、請把一盒蛋糕切成8份,分給8個人,但蛋糕盒裡還必須留有一份。 

  3、小明一家過一座橋,過橋時是黑夜,所以必須有燈。現在小明過橋要1秒, 
小明的弟弟要3秒,小明的爸爸要6秒,小明的媽媽要8秒,小明的爺爺要12秒。每 
次此橋最多可過兩人,而過橋的速度依過橋最慢者而定,而且燈在點燃後30秒就會 
熄滅。問:小明一家如何過橋? 

  4、一群人開舞會,每人頭上都戴著一頂帽子。帽子只有黑白兩種,黑的至少 
有一頂。每個人都能看到其他人帽子的顏色,卻看不到自己的。主持人先讓大家看 
看別人頭上戴的是什麼帽子,然後關燈,如果有人認為自己戴的是黑帽子,就打自 
己一個耳光。第一次關燈,沒有聲音。於是再開燈,大家再看一遍,關燈時仍然鴉 
雀無聲。一直到第三次關燈,才有劈劈啪啪打耳光的聲音響起。問有多少人戴著黑 
帽子? 

  5、請估算一下CN TOWER電視塔的質量。 

  6、一樓到十樓的每層電梯門口都放著一顆鑽石,鑽石大小不一。你乘坐電梯 
從一樓到十樓,每層樓電梯門都會開啟一次,只能拿一次鑽石,問怎樣才能拿到最 
大的一顆? 

  7、U2合唱團在17分鐘內得趕到演唱會場,途中必需跨過一座橋,四個人從橋 
的同一端出發,你得幫助他們到達另一端,天色很暗,而他們只有一隻手電筒。一 
次同時最多可以有兩人一起過橋,而過橋的時候必須持有手電筒,所以就得有人把 
手電筒帶來帶去,來回橋兩端。手電筒是不能用丟的方式來傳遞的。四個人的步行 
速度各不同,若兩人同行則以較慢者的速度為準。Bono需花1分鐘過橋,Edge需花 
2分鐘過橋,Adam需花5分鐘過橋,Larry需花10分鐘過橋。他們要如何在17分鐘內 
過橋呢? 

  8、燒一根不均勻的繩要用一個小時,如何用它來判斷半個小時 ? 

  9、為什麼下水道的蓋子是圓的? 

  10、美國有多少輛加油站(汽車)? 

  11、有7克、2克砝碼各一個,天平一隻,如何只用這些物品三次將140克的鹽 
分成50、90克各一份? 

  12、有一輛火車以每小時15公里的速度離開洛杉磯直奔紐約,另一輛火車以第 
小時20公里的速度從紐約開往洛杉磯。如果有一隻鳥,以外30公里每小時的速度和 
兩輛火車現時啟動,從洛杉磯出發,碰到另輛車後返回,依次在兩輛火車來回的飛 
行,直道兩面輛火車相遇,請問,這隻小鳥飛行了多長距離? 

  13、你有兩個罐子,50個紅色彈球,50個藍色彈球,隨機選出一個罐子,隨機 
選取出一個彈球放入罐子,怎麼給紅色彈球最大的選中機會?在你的計劃中,得到 
紅球的準確機率是多少? 

  14、想象你在鏡子前,請問,為什麼鏡子中的影像可以顛倒左右,卻不能顛倒 
上下? 

  15、你有四人裝藥丸的罐子,每個藥丸都有一定的重量,被汙染的藥丸是沒被 
汙染的重量+1.只稱量一次,如何判斷哪個罐子的藥被汙染了? 

  16、如果你有無窮多的水,一個3夸脫的和一個5夸脫的提桶,你如何準確稱出 
4夸脫的水? 

  17、你有一桶果凍,其中有黃色,綠色,紅色三種,,閉上眼睛選出同樣顏色 
的兩個,抓取同種顏色的兩個。抓取多少個就可以確定你肯定有兩個同一顏色的果 
凍? 

  18、將汽車鑰匙插入車門,向哪個方向旋轉就可以開啟車鎖? 

  19、如果要你能去掉50個州的任何一個,那你去掉哪一個,為什麼? 

  20、對一批編號為1~100 全部開關朝上開的燈進行以下操作 
凡是1 的倍數反方向撥一次開關2 的倍數反方向又撥一次開關3 的倍數反方向 
又撥一次開關。 
  問最後為關熄狀態的燈的編號。 

  21、假設一張圓盤像唱機上的唱盤那樣轉動。這張盤一半是黑色,一半是白色 
。假設你有數量不限的一些顏色感測器。要想確定圓盤轉動的方向,你需要在它周 
圍擺多少個顏色感測器?它們應該被擺放在什麼位置? 

  22、假設時鐘到了12點。注意時針和分針重疊在一起。在一天之中,時針和分 
針共重疊多少次?你知道它們重疊時的具體時間嗎? 

  23、中間只隔一個數字的兩個奇數被稱為奇數對,比如17和19。證明奇數對之 
間的數字總能被6整除(假設這兩個奇數都大於6)。現在證明沒有由三個奇陣列成 
的奇數對。 

  24、一個屋子有一個門(門是關閉的)和3盞電燈。屋外有3個開關,分別與這 
3盞燈相連。你可以隨意操縱這些開關,可一旦你將門開啟,就不能變換開關了。 
確定每個開關具體管哪盞燈。 

  25、假設你有8個球,其中一個略微重一些,但是找出這個球的惟一方法是將 
兩個球放在天平上對比。最少要稱多少次才能找出這個較重的球? 

  26、下面玩一個拆字遊戲,所有字母的順序都被打亂。你要判斷這個字是什麼 
。假設這個被拆開的字由5個字母組成: 
    1.共有多少種可能的組合方式? 
    2.如果我們知道是哪5個字母,那會怎麼樣? 
    3.找出一種解決這個問題的方法。 

  27、有4個女人要過一座橋。她們都站在橋的某一邊,要讓她們在17分鐘內全 
部通過這座橋。這時是晚上。她們只有一個手電筒。最多隻能讓兩個人同時過橋。 
不管是誰過橋,不管是一個人還是兩個人,必須要帶著手電筒。手電筒必須要傳來 
傳去,不能扔過去。每個女人過橋的速度不同,兩個人的速度必須以較慢的那個人 
的速度過橋。 
  第一個女人:過橋需要1分鐘; 
  第二個女人:過橋需要2分鐘; 
  第三個女人:過橋需要5分鐘; 
  第四個女人:過橋需要10分鐘。 
  比如,如果第一個女人與第4個女人首先過橋,等她們過去時,已經過去了10 
分鐘。如果讓第4個女人將手電筒送回去,那麼等她到達橋的另一端時,總共用去 
了20分鐘,行動也就失敗了。怎樣讓這4個女人在17分鐘內過橋?還有別的什麼方 
法? 

  28、如果你有兩個桶,一個裝的是紅色的顏料,另一個裝的是藍色的顏料。你 
從藍色顏料桶裡舀一杯,倒入紅色顏料桶,再從紅色顏料桶裡舀一杯倒入藍顏料桶 
。兩個桶中紅藍顏料的比例哪個更高?通過算術的方式來證明這一點。 



B:瘋狂計算 

  29、已知兩個1~30之間的數字,甲知道兩數之和,乙知道兩數之積。 
  甲問乙:"你知道是哪兩個數嗎?"乙說:"不知道"; 
  乙問甲:"你知道是哪兩個數嗎?"甲說:"也不知道"; 
  於是,乙說:"那我知道了"; 
  隨後甲也說:"那我也知道了"; 
  這兩個數是什麼? 

  30、4,4,10,10,加減乘除,怎麼出24點? 

  31、1000!有幾位數,為什麼? 

  32、F(n)=1 n>8 n<12 
  F(n)=2 n<2 
  F(n)=3 n=6 
  F(n)=4 n=other 
  使用+ - * /和sign(n)函式組合出F(n)函式 
  sign(n)=0 n=0 
  sign(n)=-1 n<0 
  sign(n)=1 n>0 

  33、編一個程式求質數的和例如F(7)=1+3+5+7+11+13+17=58 

  34、。。。 
  請僅用一支筆畫四根直線將上圖9 各點全部連線 

  35、三層四層二叉樹有多少種 

  36、1--100000 數列按一定順序排列,有一個數字排錯,如何糾錯?寫出最好 
方法。兩個數字呢? 

  37、連結表和陣列之間的區別是什麼? 

  38、做一個連結表,你為什麼要選擇這樣的方法? 

  39、選擇一種演算法來整理出一個連結表。你為什麼要選擇這種方法?現在用 
O(n)時間來做。 

  40、說說各種股票分類演算法的優點和缺點。 

  41、用一種演算法來顛倒一個連結表的順序。現在在不用遞迴式的情況下做一遍 
。 
  42、用一種演算法在一個迴圈的連結表裡插入一個節點,但不得穿越連結表。 

  43、用一種演算法整理一個數組。你為什麼選擇這種方法? 

  44、用一種演算法使通用字串相匹配。 

  45、顛倒一個字串,優化速度,優化空間。 

  46、顛倒一個句子中的詞的順序,比如將"我叫克麗絲"轉換為"克麗絲叫我", 
實現速度最快,移動最少。 

  47、找到一個子字串,優化速度,優化空間。 

  48、比較兩個字串,用O(n)時間和恆量空間。 

  49、假設你有一個用1001個整陣列成的陣列,這些整數是任意排列的,但是你 
知道所有的整數都在1到1000(包括1000)之間。此外,除一個數字出現兩次外, 
其他所有數字只出現一次。假設你只能對這個陣列做一次處理,用一種演算法找出重 
復的那個數字。如果你在運算中使用了輔助的儲存方式,那麼你能找到不用這種方 
式的演算法嗎? 

  50、不用乘法或加法增加8倍。現在用同樣的方法增加7倍。 

C:創造性應用 

  51、營業員小姐由於工作失誤,將2萬元的膝上型電腦以1.2萬元錯賣給李先生 
,王小姐的經理怎麼寫信給李先生試圖將錢要回來? 

  52、如何將計算機技術應用於一幢100層高的辦公大樓的電梯系統上?你怎樣 
優化這種應用?工作日時的交通、樓層或時間等因素會對此產生怎樣的影響? 

  53、你如何對一種可以隨時存在檔案中或從因特網上拷貝下來的作業系統實施 
保護措施,防止被非法複製? 

  54、你如何重新設計自動取款機? 

  55、假設我們想通過電腦來操作一臺微波爐,你會開發什麼樣的軟體來完成這 
個任務? 

  56、你如何為一輛汽車設計一臺咖啡機? 

  56、如果你想給微軟的Word系統增加點內容,你會增加什麼樣的內容? 

  57、你會給只有一隻手的使用者設計什麼樣的鍵盤? 

  58、你會給失聰的人設計什麼樣的鬧鐘? 




參考答案: 

1、day1 給1 段, 
  day2 讓工人把1 段歸還給2 段, 
  day3 給1 段, 
  day4 歸還1 2 段,給4 段。 
  day5 依次類推…… 

  2、面對這樣的怪題,有些應聘者絞盡腦汁也無法分成;而有些應聘者卻感到 
此題實際很簡單,把切成的8份蛋糕先拿出7份分給7人,剩下的1份連蛋糕盒一起分 
給第8個人。 

  4、假如只有一個人戴黑帽子,那他看到所有人都戴白帽,在第一次關燈時就 
應自打耳光,所以應該不止一個人戴黑帽子;如果有兩頂黑帽子,第一次兩人都只 
看到對方頭上的黑帽子,不敢確定自己的顏色,但到第二次關燈,這兩人應該明白 
,如果自己戴著白帽,那對方早在上一次就應打耳光了,因此自己戴的也是黑帽子 
,於是也會有耳光聲響起;可事實是第三次才響起了耳光聲,說明全場不止兩頂黑 
帽,依此類推,應該是關了幾次燈,有幾頂黑帽。 

  5、比如你怎樣快速估算支架和柱子的高度、球的半徑,算出各部分的體積等 
等。招聘官的說法:"就CNTOWER這道題來說,它和一般的謎語或智力題還是有區別 
的。我們稱這類題為’快速估算題’,主要考的是快速估算的能力,這是開發軟體 
必備的能力之一。當然,題目只是手段,不是目的,最終得到一個結果固然是需要 
的,但更重要的是對考生得出這個結果的過程也就是方法的考察。"Mr Miller為記 
者舉例說明了一種比較合理的答法,他首先在紙上畫出了CN TOWER的草圖,然後快 
速估算支架和各柱的高度,以及球的半徑,算出各部分體積,然後和各部分密度運 
算,最後相加得出一個結果。 
  這一類的題目其實很多,如:"估算一下密西西比河裡的水的質量。""如果你 
是田納西州州長,請估算一下治理好康柏蘭河的汙染需要多長時間。" 
  "估算一下一個行進在小雨中的人5分鐘內身上淋到的雨的質量。" 
  Mr Miller接著解釋道:"像這樣的題目,包括一些推理題,考的都是人的 
ProblemSolving(解決問題的能力),不是哪道題你記住了答案就可以了的。" 
  對於公司招聘的宗旨,Mr Miller強調了四點,這些是有創造性的公司普遍注 
重的員工素質,是想要到知名企業實現自己的事業夢想的人都要具備的素質和能力 
。 
  要求一:RawSmart(純粹智慧),與知識無關。 
  要求二:Long-termPotential(長遠學習能力)。 
  要求三:TechnicSkills(技能)。 
  要求四:Professionalism(職業態度)。 

  6、她的回答是:選擇前五層樓都不拿,觀察各層鑽石的大小,做到心中有數 
。後五層樓再選擇,選擇大小接近前五層樓出現過最大鑽石大小的鑽石。她至今也 
不知道這道題的準確答案,"也許就沒有準確答案,就是考一下你的思路,"她如是 
說。 

  7、分析:有個康奈爾的學生寫文章說他當時在微軟面試時就是碰到了這道題 
,最短只能做出在19分鐘內過橋。 

  8、兩邊一起燒。 

  9、答案之一:從麻省理工大學一位計算機系教授那裡聽來的答案,首先在同 
等用材的情況下他的面積最大。第二因為如果是方的、長方的或橢圓的,那無聊之 
徒拎起來它就可以直接扔進地下道啦!但圓形的蓋子嘛,就可以避免這種情況了 


  10、這個乍看讓人有些摸不著頭腦的問題時,你可能要從問這個國家有多少小 
汽車入手。面試者也許會告訴你這個數字,但也有可能說:"我不知道,你來告訴 
我。"那麼,你對自己說,美國的人口是2.75億。你可以猜測,如果平均每個家庭 
(包括單身)的規模是2.5人,你的計算機會告訴你,共有1.1億個家庭。你回憶起 
在什麼地方聽說過,平均每個家庭擁有1.8輛小汽車,那麼美國大約會有1.98億輛 
小汽車。接著,只要你算出替1.98億輛小汽車服務需要多少加油站,你就把問題解 
決了。重要的不是加油站的數字,而是你得出這個數字的方法。 

  12、答案很容易計算的: 
  假設洛杉磯到紐約的距離為s 
  那小鳥飛行的距離就是(s/(15+20))*30。 

  13、無答案,看你有沒有魄力堅持自己的意見。 

  14、因為人的兩眼在水平方向上對稱。 

  15、從第一盒中取出一顆,第二盒中取出2 顆,第三盒中取出三顆。 
  依次類推,稱其總量。 

  16、比較複雜: 
  A、先用3 夸脫的桶裝滿,倒入5 夸脫。以下簡稱3->5) 
  在5 夸脫桶中做好標記b1,簡稱b1)。 
  B、用3 繼續裝水倒滿5 空3 將5 中水倒入3 直到b1 在3 中做標記b2 
  C、用5 繼續裝水倒滿3 空5 將3 中水倒入5 直到b2 
  D、空3 將5 中水倒入3 標記為b3 
  E、裝滿5 空3 將5 中水倒入3 直到3 中水到b3 
  結束了,現在5 中水為標準的4 夸脫水。 

  20、素數是關,其餘是開。 

  29、允許兩數重複的情況下 
  答案為x=1,y=4;甲知道和A=x+y=5,乙知道積B=x*y=4 
  不允許兩數重複的情況下有兩種答案 
  答案1:為x=1,y=6;甲知道和A=x+y=7,乙知道積B=x*y=6 
  答案2:為x=1,y=8;甲知道和A=x+y=9,乙知道積B=x*y=8 
  解: 
  設這兩個數為x,y. 
  甲知道兩數之和 A=x+y; 
  乙知道兩數之積 B=x*y; 
  該題分兩種情況 : 
  允許重複, 有(1 <= x <= y <= 30); 
  不允許重複,有(1 <= x < y <= 30); 
  當不允許重複,即(1 <= x < y <= 30); 
  1)由題設條件:乙不知道答案 
  <=> B=x*y 解不唯一 
  => B=x*y 為非質數 
  又∵ x ≠ y 
  ∴ B ≠ k*k (其中k∈N) 
  結論(推論1): 
  B=x*y 非質數且 B ≠ k*k (其中k∈N) 
  即:B ∈(6,8,10,12,14,15,18,20...) 
  證明過程略。 
  2)由題設條件:甲不知道答案 
  <=> A=x+y 解不唯一 
  => A >= 5; 
  分兩種情況: 
  A=5,A=6時x,y有雙解 
  A>=7 時x,y有三重及三重以上解 
  假設 A=x+y=5 
  則有雙解 
  x1=1,y1=4; 
  x2=2,y2=3 
  代入公式B=x*y: 
  B1=x1*y1=1*4=4;(不滿足推論1,捨去) 
  B2=x2*y2=2*3=6; 
  得到唯一解x=2,y=3即甲知道答案。 
  與題設條件:"甲不知道答案"相矛盾 , 
  故假設不成立,A=x+y≠5 
  假設 A=x+y=6 
  則有雙解。 
  x1=1,y1=5; 
  x2=2,y2=4 
  代入公式B=x*y: 
  B1=x1*y1=1*5=5;(不滿足推論1,捨去) 
  B2=x2*y2=2*4=8; 
  得到唯一解x=2,y=4 
  即甲知道答案 
  與題設條件:"甲不知道答案"相矛盾 
  故假設不成立,A=x+y≠6 
  當A>=7時 
  ∵ x,y的解至少存在兩種滿足推論1的解 
  B1=x1*y1=2*(A-2) 
  B2=x2*y2=3*(A-3) 
  ∴ 符合條件 
  結論(推論2):A >= 7 
  3)由題設條件:乙說"那我知道了" 
  =>乙通過已知條件B=x*y及推論(1)(2)可以得出唯一解 
  即: 
  A=x+y, A >= 7 
  B=x*y, B ∈(6,8,10,12,14,15,16,18,20...) 
  1 <= x < y <= 30 
  x,y存在唯一解 
  當 B=6 時:有兩組解 
  x1=1,y1=6 
  x2=2,y2=3 (∵ x2+y2=2+3=5 < 7∴不合題意,捨去) 
  得到唯一解 x=1,y=6 
  當 B=8 時:有兩組解 
  x1=1,y1=8 
  x2=2,y2=4 (∵ x2+y2=2+4=6 < 7∴不合題意,捨去) 
  得到唯一解 x=1,y=8 
  當 B>8 時:容易證明均為多重解 
  結論: 
  當B=6時有唯一解 x=1,y=6當B=8時有唯一解 x=1,y=8 
  4)由題設條件:甲說"那我也知道了" 
  => 甲通過已知條件A=x+y及推論(3)可以得出唯一解 
  綜上所述,原題所求有兩組解: 
  x1=1,y1=6 
  x2=1,y2=8 
  當x<=y時,有(1 <= x <= y <= 30); 
  同理可得唯一解 x=1,y=4 

  31、 
  解:1000 
  Lg(1000!)=sum(Lg(n)) 
  n=1 
  用3 段折線代替曲線可以得到 
  10(0+1)/2+90(1+2)/2+900(2+3)/2=2390 
  作為近似結果,好象1500~3000 都算對 

  32、F(n)=1 n>8 n<12 
  F(n)=2 n<2 
  F(n)=3 n=6 
  F(n)=4 n=other 
  使用+ - * /和sign(n)函式組合出F(n)函式 
  sign(n)=0 n=0 
  sign(n)=-1 n<0 
  :sign(n)=1 n>0 
  解:只要注意[sign(n-m)*sign(m-n)+1]在n=m 處取1 其他點取0 就可以了 

  34、米字形的畫就行了 

  59、答案是和家人告別.