微軟的應試題完整版(附答案)

網上有不少Microsoft的測試題,引來不少的眼光。在這裏把所有的測試題加以整理,再附上答案。(個別題目答案有多種,文本僅代表作者的思路)每道題的後面會給出一個時間。這個時間是作者做出該題所用的時間。(注意,這不是什麼標準時間,相信所有瀏覽本試卷的朋友都會在某一道或多道題上找到靈感,迅速解題的

一.最基本題型(說明:此類題型比較簡單
1.燒一根不均勻的繩,從頭燒到尾總共需要1個小時。現在有若干條材質相同的繩子,問如何用燒繩的方法來計時一個小時十五分鐘呢?(這道題有點BT
2.你有一桶果凍,其中有黃色、綠色、紅色三種,閉上眼睛抓取同種顏色的兩個。抓取多少個就可以確定你肯定有兩個同一顏色的果凍?(5秒-1分鐘,呵呵,看了答案才知道很簡單
3.如果你有無窮多的水,一個3公升的提捅,一個5公升的提捅,兩隻提捅形狀上下都不均勻,問你如何才能準確稱出4公升的水?(40秒-3分鐘
4.一個岔路口分別通向誠實國和說謊國。來了兩個人,已知一個是誠實國的,另一個是說謊國的。誠實國永遠說實話,說謊國永遠說謊話。現在你要去說謊國,但不知道應該走哪條路,需要問這兩個人。請問應該怎麼問?(20秒-2分鐘
5.12個球一個天平,現知道只有一個和其它的重量不同,問怎樣稱才能用三次就找到那個球。13個呢?(注意此題並未說明那個球的重量是輕是重,所以需要仔細考慮)(5分鐘-1小時
6.在9個點上畫10條直線,要求每條直線上至少有三個點?(3分鐘-20分鐘
7.在一天的24小時之中,時鐘的時針、分針和秒針完全重合在一起的時候有幾次?都分別是什麼時間?你怎樣算出來的?(5分鐘-15分鐘

二.沒有答案型(說明:這些題顯然不是考你智力。而考的是你的反應能力。這種題大多數沒有答案,但是要看你的反應嘍!
1.爲什麼下水道的蓋子是圓的?
2.中國有多少輛汽車?
3.將汽車鑰匙插入車門,向哪個方向旋轉就可以打開車鎖?
4.如果你要去掉中國的34個省(含自治區、直轄市和港澳特區及臺灣省)中的任何一個,你會去掉哪一個,爲什麼?
5.多少個加油站才能滿足中國的所有汽車?
6.想象你站在鏡子前,請問,爲什麼鏡子中的影象可以顛倒左右,卻不能顛倒上下?
7.爲什麼在任何旅館裏,你打開熱水,熱水都會瞬間傾瀉而出?
8.你怎樣將Excel的用法解釋給你的奶奶聽?
9.你怎樣重新改進和設計一個ATM銀行自動取款機?
10.如果你不得不重新學習一種新的計算機語言,你打算怎樣着手來開始?
11.如果你的生涯規劃中打算在5年內受到獎勵,那獲取該項獎勵的動機是什麼?觀衆是誰?
12.如果微軟告訴你,我們打算投資五百萬美元來啓動你的投資計劃,你將開始什麼樣商業計劃?爲什麼?
13.如果你能夠將全世界的電腦廠商集合在一個辦公室裏,然後告訴他們將被強迫做一件事,那件事將是什麼?

三.難題(說明:這類題有一定難度,如果得不到答案,也不能說明什麼。如果你想到了解題思路,那麼答案馬上就能出來。如果想不到思路,那麼……就別想解出來了。
1.你讓工人爲你工作7天,回報是一根金條,這個金條平分成相連的7段,你必須在每天結束的時候給他們一段金條。如果只允許你兩次把金條弄斷,你如何給你的工人付費?
2.有一輛火車以每小時15公里的速度離開北京直奔廣州,同時另一輛火車每小時20公里的速度從廣州開往北京。如果有一隻鳥,以30公里每小時的速度和兩輛火車同時啓動,從北京出發,碰到另一輛車後就向相反的方向返回去飛,就這樣依次在兩輛火車之間來回地飛,直到兩輛火車相遇。請問,這隻鳥共飛行了多長的距離?
3.你有四個裝藥丸的罐子,每個藥丸都有一定的重量,被污染的藥丸是沒被污染的藥丸的重量+1。只稱量一次,如何判斷哪個罐子的藥被污染了?
4.門外三個開關分別對應室內三盞燈,線路良好,在門外控制開關時候不能看到室內燈的情況,現在只允許進門一次,確定開關和燈的對應關係?
5.人民幣爲什麼只有1、2、5、10的面值?
6.你有兩個罐子以及50個紅色彈球和50個藍色彈球,隨機選出一個罐子, 隨機選出一個彈球放入罐子,怎麼給出紅色彈球最大的選中機會?在你的計劃裏,得到紅球的機率是多少?

四.超難題(說明:如果你是第一次看到這種題,並且以前從來沒有見過類似的題型,並且能夠在半個小時之內做出答案。只能說明你的智力超常……

第一題 . 五個海盜搶到了100顆寶石,每一顆都一樣大小和價值連城。他們決定這麼分:
抽籤決定自己的號碼(1、2、3、4、5
首先,由1號提出分配方案,然後大家表決,當且僅當超過半數的人同意時,按照他的方案進行分配,否則將被扔進大海喂鯊魚
如果1號死後,再由2號提出分配方案,然後剩下的4人進行表決,當且僅當超過半數的人同意時,按照他的方案進行分配,否則將被扔入大海喂鯊魚
依此類推
條件:每個海盜都是很聰明的人,都能很理智地做出判斷,從而做出選擇。
問題:第一個海盜提出怎樣的分配方案才能使自己的收益最大化?

第二題 . 一道關於飛機加油的問題,已知:
每個飛機只有一個油箱,
飛機之間可以相互加油(注意是相互,沒有加油機
一箱油可供一架飛機繞地球飛半圈,
問題:
爲使至少一架飛機繞地球一圈回到起飛時的飛機場,至少需要出動幾架飛機?(所有飛機從同一機場起飛,而且必須安全返回機場,不允許中途降落,中間沒有飛機場

五.主觀題(說明:在以後的工作過程中,我們可定會犯這樣那樣的錯誤。既然錯誤已經釀成,損失在所難免,我們只能想辦法把損失減少到最小。如果能巧妙地回答出這些問題,再發生錯誤的情況下。能讓客戶有最少的抱怨,公司有最少的損失。
1.某手機廠家由於設計失誤,有可能造成電池壽命比原來設計的壽命短一半(不是衝放電時間),解決方案就是免費更換電池或給50元購買該廠家新手機的折換券。請給所有已購買的用戶寫信告訴解決方案。
2.一高層領導在參觀某博物館時,向博物館館員小王要了一塊明代的城磚作爲紀念,按國家規定,任何人不得將博物館收藏品變爲私有。博物館館長需要如何寫信給這位領導,將城磚取回。
3.營業員小姐由於工作失誤,將2萬元的筆記本電腦以1.2萬元錯賣給李先生,王小姐的經理怎麼寫信給李先生試圖將錢要回來? (這道題超級BT,Fly.C4推薦您必看!

六.算法題(說明:這些題就不是什麼花樣了,考的是你的基礎知識怎麼樣。再聰明而沒有實學的人都將會被這些題所淘汰。
1.鏈表和數組的區別在哪裏?
2.編寫實現鏈表排序的一種算法。說明爲什麼你會選擇用這樣的方法?
3.編寫實現數組排序的一種算法。說明爲什麼你會選擇用這樣的方法?
4.請編寫能直接實現strstr()函數功能的代碼。
5.編寫反轉字符串的程序,要求優化速度、優化空間。
6.在鏈表裏如何發現循環鏈接?
7.給出洗牌的一個算法,並將洗好的牌存儲在一個整形數組裏。
8.寫一個函數,檢查字符是否是整數,如果是,返回其整數值。(或者:怎樣只用4行代碼編寫出一個從字符串到長整形的函數?
9.給出一個函數來輸出一個字符串的所有排列。
10.請編寫實現malloc()內存分配函數功能一樣的代碼。
11.給出一個函數來複制兩個字符串A和B。字符串A的後幾個字節和字符串B的前幾個字節重疊。
12.怎樣編寫一個程序,把一個有序整數數組放到二叉樹中?
13.怎樣從頂部開始逐層打印二叉樹結點數據?請編程。
14.怎樣把一個鏈表掉個順序(也就是反序,注意鏈表的邊界條件並考慮空鏈表)?


[解答與提示]

一.最基本題型
1.一要一頭燒,一根從兩頭燒,再有一根做參照,兩頭燒完的記下位置(即燒到這裏要半小時),把參照的那根從標記位置處剪開,取其中一段A。
一頭燒的那根燒完後(就是一個小時後),把A從兩頭開始燒,燒完後即爲十五分鐘,加起來共一小時十五分鐘。
2.4個。
3.大桶裝滿水,倒入小桶,大桶剩下2公升水。小桶水倒掉,大桶剩2公升水倒入小桶中,大桶再裝滿後,倒入小桶至小桶滿,大桶即剩4公升
4.如果參加過類似於奧林匹克數學班的,都應做過這些題。問他你的國家怎麼走,他肯定指向的是誠實國。
5.12個時可以找出那個是重還是輕,13個時只能找出是哪個球,輕重不知。
把球編爲①②③④⑤⑥⑦⑧⑨⑩⑾⑿。(13個時編號爲⒀
第一次稱:先把①②③④與⑤⑥⑦⑧放天平兩邊,
  ㈠如相等,說明特別球在剩下4個球中。
    把①⑨與⑩⑾作第二次稱量,
    ⒈如相等,說明⑿特別,把①與⑿作第三次稱量即可判斷是⑿是重還是輕
    ⒉如①⑨<⑩⑾說明要麼是⑩⑾中有一個重的,要麼⑨是輕的。
      把⑩與⑾作第三次稱量,如相等說明⑨輕,不等可找出誰是重球。
    ⒊如①⑨>⑩⑾說明要麼是⑩⑾中有一個輕的,要麼⑨是重的。
      把⑩與⑾作第三次稱量,如相等說明⑨重,不等可找出誰是輕球。
  ㈡如左邊<右邊,說明左邊有輕的或右邊有重的
    把①②⑤與③④⑥做第二次稱量
    ⒈如相等,說明⑦⑧中有一個重,把①與⑦作第三次稱量即可判斷是⑦與⑧中誰是重球
    ⒉如①②⑤<③④⑥說明要麼是①②中有一個輕的,要麼⑥是重的。
      把①與②作第三次稱量,如相等說明⑥重,不等可找出誰是輕球。
    ⒊如①②⑤>③④⑥說明要麼是⑤是輕的,要麼③④中有一個是重的。
      把③與④作第三次稱量,如相等說明⑤輕,不等可找出誰是重球。
  ㈢如左邊>右邊,參照㈡相反進行。
當13個球時,第㈠步以後如下進行。
  把①⑨與⑩⑾作第二次稱量,
  ⒈如相等,說明⑿⒀特別,把①與⑿作第三次稱量即可判斷是⑿還是⒀特別,但判斷不了輕重了。
  ⒉不等的情況參見第㈠步的⒉⒊
6. 見下面的點 10條線的情況是 123 456 789 148 159 247 258 269 357 368
① ② ③

 ④⑤⑥

⑦ ⑧ ⑨

7.注意是24小時不是12小時。
首先考察時針與分針的情況,很容易看出分針轉一圈與時針只重合一次,就是一小時一次。但11時與0時的分鐘區內共享一個重合點,所只24


二.沒有答案型
1.圓井蓋掉不下去
2.一千萬
3.順時針方向。
4.
5.十萬個
6.答案是"This feature is by design." 如果考官要求給出更加合理的解釋,就對他說:"如果您對此問題有更多疑問,請與它的供應商(或者與它的發明人)聯繫"。 答案是眼睛是左右長着的。
7.如果不傾瀉而出,這家旅館將沒有人去住。
8.告訴她這是最先進的東西,她不需要動手,我來幫她做就可以。
9.我想斯皮爾伯格來回答這道題是在合適不過得了。
10.我覺得回放飛網呆上半個月比較合適。
11.這題我沒有任何想法,因爲沒有工作經驗,所以完全沒聽明白他問的是什麼!
12.做微軟的OEM,這樣能夠更好的服務微軟。
13.把主機箱集成在一個液晶顯示器中! 只准開發我們認證的驅動!

三.難題
1.切兩刀,分爲1/7、2/7、4/7三段。第一天給1/7;第二天給2/7,要回1/7;第三天給1/7 ;第四天給4/7 要回1/7+2/7;第五天給1/7;第六天給2/7,要會1/7;第七天給1/7
2.北京到廣州距離的30/35。
3.依次從四個罐子中取出1、2、3、4個藥丸,設第一丸子應重爲X,稱得的重量是10X+t,t是幾就是第幾個罐子污染了。
4.先開一個,開很長時間。然後關掉,再開另一個。出去看,亮着的那個不用說。剩下的兩個不亮的,按照燈泡的溫度來進行判斷。
5.可以用三張以內組成任何面額。
6.不清楚。可能是50%。

四.超難題
一) 設5個人分別是①②③④⑤
假設前面的都扔海里了,由④來分,無論他怎麼分(包括全給⑤),都面臨被否決扔海里的危險。
所以,當③來分時,④⑤一個不給,全由③獨吞,④爲了避免被扔海里的危險,也要同意,③的方案成立。
那麼,在②分時,③是肯定要反對的,要贏得④⑤的同意,必須多給一個,否則有可能否決(對④⑤來說,反正③來分時還是0,你不多給一個就否決),所以②的分配方案一定是:②98 ③0 ④1 ⑤1
回到①來的分配,由於②肯定反對,爲了贏得③④⑤的同意,必須在②分配方案的基礎上給他們加一個,由於只需再爭取兩票,③④⑤中可以

排除爭取一個,從收益來說,排除④⑤中的一個即可,那麼①的分配方案爲:①97 ③1 ④(或⑤)1 其它都不給!

二) 如果機場本身不可以加油的話 那麼最少需要4架
3架同時起飛,到1/6圈時,兩架飛機把各自油箱中的1/3加給另外一架,這兩架剩的油正好可以原路飛回,被加油機可以飛到5/6圈處。
第4架飛機在環球飛機飛到4/6圈時起飛去接應,兩飛機在5/6圈處相遇,環球機剛好用完油,加油機把1/3的油給環球機,兩飛機剛好都能飛回


五.主觀題
1.告訴用戶我公司爲答謝廣大顧客長時間以來的厚愛,顧客可以持原電池免費更換使用壽命爲原電池一倍的新型電池。或者可以持購買發票,獲得50元購買該廠家新手機的折換券。
2.信件如下:
"xxx領導:您好!
我館近期將展出一批珍貴文物,讓更多的人能夠真正的體會到中華民族文明的悠久、燦爛。我們希望能將您所擁有的明代的城磚展出。並且我們將在博物館內設置專欄,宣傳您對中華民族悠久文化的保存所作出的巨大貢獻,讓更多的華夏子孫看到,並且親身體驗到華夏文明的悠久歷史,從而加強中華民族的凝聚力!"
解釋:
領導看過這封信以後,如果不拿出城磚。那麼也就說明他不想讓更多的人看到中華民族的燦爛文明,不想讓中華民族有更強的凝聚力。自然也就會拿出城磚。如果領導問到何時展出完畢,可以告訴他博物館希望永久展出這些物品,領導自然也就無話可說了。

3.信件如下:
" 尊敬的顧客,您好!
由於工作人員的失誤,誤將一臺樣品機賣給您。爲了您能夠更好的使用我公司的產品,我公司決定爲您免費更換同等價位的筆記本一臺。並且我們有性價比更加優越的xxxII 型筆記本電腦,售價20000元人民幣。如果您此時購買,我們將會以19000元的優惠價格售出。"


六.算法題
請參考數據結構和計算機算法類書籍,作者就不再抄書了。

附(1):燒繩子類問題總結:
一般給出的繩子都是不均勻的。如果一根爲一小時,那麼半個小時的計算方法是從兩頭燒。十五分鐘的計算方法是從兩頭燒,同時從中間任何一個地方開始燒,這樣這根繩子就有四個燃燒點,時間自然是一個燃燒點的四分之一。如果計算十分鐘的時間,那麼就讓繩子有六個燃燒點,方法就不用說了吧!

附(2):天平稱球問題解答以及總結:
將球分爲a b c d; e f g h; i j k l 三組。

第一次稱量,比較 abcd efgh

情形一:
兩者重量相等,此時說明答案在ijkl中。
稱量ij,
如果相等,說明答案在kl中。拿k與a比較,如果相等,答案爲l;如果不等,答案爲k。
如果不等,說明答案在ij中。拿i與a比較,如果相等,答案爲j;如果不等,答案爲i。


情形二:
abcd輕。
在efgh中取出fgh,替換掉abcd中的bcd。 在ijkl中取出jkl,補充到原來fgh的位置。
如果afgh輕,說明答案爲a或e。稱量ab,如果相等,答案爲e;如果不等,答案爲a。
如果afgh重,說明答案在fgh中。稱量fg,如果相等,答案爲h;如果不等,重者爲答案。
如果一樣重,答案在bcd中。稱量bc,如果相等,答案爲d;如果不等,輕者爲答案。

情形三:
abcd重。
在efgh中取出fgh,替換掉abcd中的bcd。 在ijkl中取出jkl,補充到原來fgh的位置。
如果afgh重,答案爲a或e。稱量ab,如果相等,答案爲e;如果不等,答案爲a。
如果afgh輕,答案在fgh中。稱量fg,如果相等,答案爲h;如果不等,輕者爲所求。
如果一樣重,答案在bcd中。稱量bc,如果相等,答案爲d;如果不等,重者爲答案。

至於13個球的稱法,至今本人仍沒想出來。望高手賜教。

總結:(轉載)
天平稱重,有兩個托盤比較輕重,加上托盤外面,也就是每次稱重有3個結果,就是ln3/ln2比特信息。n個球要知道其中一個不同的球,如果知道那個不同重量的球是輕還是重,找出來的話那就是n個結果中的一種,就是有ln(n)/ln2比特信息,如果不知道輕重,找出來就是2n(n個球中的一個,輕或者重,所以是2n)個結果中的一種,那就是ln(2n)/ln2比特信息。

假設我們要稱k次,根據信息理論,那顯然兩種情況就分別有:
1. k*ln3/ln2>=ln(n)/ln2 (k>=1) 解得k>=ln(n)/ln3
2. k*ln3/ln2>=ln(2n)/ln2 (k>1) 解得k>=ln(2n)/ln3
這是得到下限,可以很輕易證明滿足條件的最小正整數k就是所求。比如稱3次知道輕重可以從3^3=27個球中找出不同的球出來,如果不知道輕重就只能從(3^3-1)/2=13個球中找出不同的球出來。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章