你們的軟體工程師面試都弱爆了

oschina.net發表於2012-08-17

 一,選擇題(皆為單選):

  1,以下誰是二進位制思想的最早提出者?

  a,伏羲;b,姬昌;c,萊布尼茨;d,柏拉圖。

  答案:A

  解釋:伏羲,中華民族人文始祖,是我國古籍中記載的最早的王。伏羲為人類文明進步做出的具大貢獻是始畫八卦。八卦可以推演出許多事物的變化,預卜事物的發展。八卦是人類文明的瑰寶,是宇宙間的一個高階“資訊庫”。早在十七世紀,德國大數學家萊布尼茲創立“中國學院”,研究八卦,並根據八卦的“兩儀,四象,八卦,十六,三十二,六十四卦”,發明了二進位記數和當地歐洲先進的計算機。八卦中包含的“二進法”,現在廣泛地應用於生物及電子學中。 注意:題中問的是“思想”的最早提出者,所以答案為A

  參考:http://baike.baidu.com/view/13762.htm  百度百科

  2,以下哪個概念和公孫龍的《指物論》中的“指”字含義相近?

  a,變數;b,陣列;c,物件;d,指標。

  答案:D

  解釋:“物莫非指,而指非指。天下無指,物無可以謂物。非指者天下,而物可謂指乎?”這裡的“指”可理解為“指代,指稱”之意,上面一句是《指物論》中的開篇兩句,意思大致如下:世上萬物沒有不能用一個名字來指代的,而這個名字並不是指代名字本身,而是用來指代所對應的事物的。如果沒有名字這種東西存在,則事物便沒有一個方法來稱謂。在一個沒有名字的世界,所有存在的事物可以稱作這個事物嗎?~~~巨汗!由此看來,答案中只有“指標”的含義與之相近,都是與一個事物對應關係的稱謂。

  參考:http://www.housebook.com.cn/2k09/3.htm

  3,藺相如,司馬相如;魏無忌,長孫無忌。下列哪一組對應關係與此類似?

  a,PHP,Python;b,JSP,servlet;c,java,javascript;d,C,C++。

  答案:C

  解釋:藺相如(前329年—前259年),戰國時趙國上卿,今山西柳林孟門人。司馬相如(約前179年—???),字長卿,漢族,蜀郡(今四川省成都人)。魏無忌,號信陵君,魏國第六個國君安釐王魏圉的異母弟。長孫無忌(約597年-659年),字輔機,河南省洛陽人。
由此看來,除了名字中有兩個字相同以外,這兩組四個人相互之間根本沒任何關係。所以答案C最符合。Java和javascript的關係就是雷鋒和雷鋒塔的關係!

  參考:百度百科

  4,秦始皇吞併六國採用了以下哪種演算法思想?

  a,遞迴;b,分治;c,迭代;d,模擬。

  答案:B

  解釋:公元前230年至前221年,秦始皇採取遠交近攻、分化離間、連橫的策略,發動秦滅六國之戰。先後於秦始皇十七年(前秦統一形勢圖230年)滅韓、十九年(前228年)滅趙、二十二年(前225年)滅魏、二十四年(前223年)滅楚、二十五年(前222年)滅燕、二十六年(前221年)滅齊,最張統一六國。

  分治,字面上的解釋是“分而治之”,就是把一個複雜的問題分成兩個或更多的相同或相似的子問題,再把子問題分成更小的子問題……直到最後子問題可以簡單的直接求解,原問題的解即子問題的解的合併。

  由此,分治這種演算法思想與之最為接近。

  參考:http://baike.baidu.com/view/2389.htm

  5,雅典王子忒修斯勇闖克里特島斬殺米諾牛的時候採用了以下哪種演算法?

  a,動態規劃;b,窮舉;c,記憶化搜尋;d,Dijkstra演算法。

  答案:B

  解釋:……聰明而勇敢的忒修斯一進入迷宮,就將線球的一端拴在迷宮的入口處,然後放開線團,沿著曲折複雜的通道,向迷宮深處走去。最後,他終於找到了怪物米諾牛。他抓住米諾牛的角,用阿里阿德涅公主給的劍,奮力殺死米諾牛。……

  而解迷宮的演算法似乎除了窮舉法沒有其它更好的演算法。動態規劃演算法是與分治比較相似的演算法,都是把一個事件所經過的流程劃分為更細更小的過程,再分別處理這些小過程得出最終結果。記憶化搜尋主要思想就是儲存子過程的運算結果,在以後運算中遇到相同的小過程後不再去計算,直接呼叫原先儲存的結果,加快計算。Dijkstra演算法是為求最短路徑提出的演算法。而在迷宮中,每前進一步的路徑的權值都未知,所以不能使用Dijkstra演算法。最終只能選擇窮舉演算法了。

  參考:http://www.china.com.cn/chinese/WISI/231645.htm  

  6,印度電影《寶萊塢機器人之戀》中的機器人七弟採用的智慧演算法最有可能是以下哪一種?

  a,神經網路;b,遺傳演算法;c,模擬退火;d,窮舉演算法。

  答案:A

  解釋:首先,得佩服一下該片的導演,片中誇張的動作和想像力絕對會讓國內的同行大感慚愧的,喜歡看科幻片的千萬不要錯過這部電影,這電影和《三傻大鬧寶萊塢》一樣,名字取得很俗,但內容絕對會讓你眼前一亮的。額……,回到正題,片中的機器人每一個就像一個獨立的神經元一樣,每一個接收到的資訊經過整理後都會傳給其它的機器人,保證了所有機器人的行動統一和協調,故選神經網路演算法。

  參考:http://www.tudou.com/programs/view/W2gCMDVK4Vg/

<embed>

  7,《公孫龍子》記載:“齊王之謂尹文曰:‘寡人甚好士,以齊國無士,何也?’尹文曰:‘願聞大王之所謂士者。’齊王無以應。”這說明了齊王:

  a,昏庸無道;b,是個結巴;c,不會下定義;d,不會定義自己的需求。

  答案:D

  解釋:上文翻譯:齊王對尹文說,我喜歡有能力的人,但是齊國卻沒有這種人,是什麼原因呢?尹文回答,希望大王解釋一下你所希望有能力的人是一種什麼樣的人呢。齊王卻回答不出來。

  這說明齊王連自己希望得到一個什麼樣的人都沒有定義,所以選D

  參考:無

  8,惠施曾提出過“卵有毛”的命題,以下哪一項是導致這個錯誤命題的原因:

  a,混淆了名稱空間;b,引入了錯誤的包;c,衍生類未過載;d,呼叫了危險的指標。

  答案:A

  解釋:辯者說:“如果雞蛋裡沒毛,那麼孵出來的小雞怎麼身上有毛?“惠施說:“雞蛋裡只有蛋清和蛋黃,沒有毛。你什麼時候看見過雞蛋裡面有毛了?小雞身上的毛是小雞身上的毛,不是雞蛋裡的毛。“但是辯者不能接受。辯論雙方都以“眼見為實“做標準,從而忽視了從沒有毛到有毛的轉化過程。不知道生物學對此會作出什麼解釋,從方法上來講,他們沒有界定毛從無到有的界限,似乎都不接受“小雞身上的毛也可能是雞蛋裡的毛“的模糊區域。
參考:http://siyiheng1985.blog.163.com/blog/static/70886438200841811644294/

  9,下面哪種物件導向的方法可以讓你變得富有?

  a,繼承;b,封裝;c,多型;d,抽象。

  答案:A

  解釋:有一個笑話是這樣的——一小朋友問一富翁:先生你為啥那麼有錢呢?

  富翁說:小的時候我跟你一樣什麼也沒有,爸爸給我一個蘋果,於是我就把那個蘋果賣了,用賺到的錢再買兩個蘋果,然後再賣了買四個蘋果。

  小朋友若有所思,說:先生我好像懂了。

  富翁先生說:你懂你妹啊,後來我爹死了,我繼承了他所有的遺產。

  參考:無 

  10,明朝時期張居正改革的一條鞭法的主要思想是:

  a,程式導向;b,萬物皆數;c,統一介面;d,泛型程式設計。

  答案:C

  解釋:一條鞭法,把原來的田賦、徭役和雜稅合併起來,折成銀兩,分攤到田畝上,按田畝多少收稅。政府只收取銀兩,不再管理和收取其它形式的稅收。而介面的思想是提供一個對外的通道,而不用管內部是怎麼實現的。故選C

  參考:http://zhidao.baidu.com/question/32259675.html

 二,匹配題(分析A中的句子所體現的演算法,和B中的演算法一一匹配):

  A:

  1,江南可採蓮,蓮葉何田田,魚戲蓮葉間。魚戲蓮葉東,魚戲蓮葉西,魚戲蓮葉南,魚戲蓮葉北。——漢樂府《江南》

  2,眾裡尋他千百度,驀然回首,那人卻在燈火闌珊處。——辛棄疾《青玉案》

  3,從前有座山,山裡有座廟,廟裡有個老和尚,再給小和尚講故事,故事內容是:從前有座山,山裡有座廟,廟裡有個老和尚,再給小和尚講故事,故事內容是:從前有座山,山裡有座廟,廟裡有個老和尚,再給小和尚講故事,故事內容是……

  4,只勸樓臺追後主,不愁弓矢下殘唐。——孔尚任《桃花扇》

  5,飛鳥之影,未嘗動也。——《莊子》

  B:

  1,貪心;2,回溯;3,窮舉;4,分治;5,遞迴;

  答案:A中,1為窮舉,2為回溯,3為遞迴,4為貪心,5為分治。

  解釋:A中,1窮舉了東西南北,2回首一詞點明是回溯法,3中遞迴很明顯,4中後主是指的是南唐末代皇帝李煜,當時南唐的滅亡已經無可避免,但是仍然有人希望勸說李煜回心轉意,以挽回南唐的滅亡,過上奢華的生活,實屬貪心不足。5中說的是飛鳥的影子在每一個時刻都在一個特定的位置,而把這些時刻細細的劃分開看的話,這些影子是沒有動的。

  參考:無

 三,閱讀理解(閱讀下文,回答後面的問題):

  美國的貝爾實驗室設計了最初的C語言

  刻在UNIX作業系統距今已有三四十年

  你在螢幕前凝視資料的繾綣

  我卻在旁輕輕敲打鍵盤把你的夢想展現

  迴圈 遞迴 貪心 動規 是誰的從前

  喜歡在匈牙利演算法中你我牽手的畫面

  經過MSRA門前我以大牛之名許願

  思念像斐波那契數列般漫延

  當軟工淪落在設計的文件間

  演算法依舊是永垂不朽的詩篇

  我給你的愛寫在程式間

  深藏在最長不下降子序列裡面

  幾萬組資料流過後發現

  我的心依然不變

  我給你的愛寫在程式間

  深藏在最長不下降子序列裡面

  用無盡的程式碼刻下了永遠

  那已儲存千年的誓言

  一切又重演

  我算了很多遍

  時間複雜度還是趨於無限

  我只想要這樣永遠連結在你的身邊

  1,題目中的MSRA是什麼的縮寫?

  答案:Microsoft Research Asia 微軟亞洲研究院的簡寫

  2,試賞析“思念像斐波那契數列般漫延”一句。

  答案:斐波那契數列就是諸如1,1,2,3,4,7,11,18,29之類的每一項都是前兩項之和的數列,這樣得到的一個無限長度的數列。這一句用一個無限的數列來比喻對另一個人的思念,非常地形象和生動,這思念就如同平靜的湖面被投入小石子一樣,湖面的波紋一圈一圈又一圈的無限擴散開去。這思念開始時很小,只是小石子的驀然闖入,便一發不可收拾,本緊閉的心扉豁然間決堤,內心無限的情緒突然宣洩,思念越來越悠長,思念越來越深沉。此句還暗含太極生兩儀,兩儀生四象,四象生八卦的道理,從開始的很小,到最後的越來越大,以達到致於無法收拾的地步,形象地表達出對另一個思念的無窮無盡!oh,姑娘你遇上好人了,嫁了吧!(這首詩改編自周杰倫的《愛在西元前》)

  3,請結合時代背景,談談你對“當軟工淪落在設計的文件間,演算法依舊是永垂不朽的詩篇”一句的理解。

  答案:“當軟工淪落在設計的文件間”是對當今社會某些公司照搬其它大公司成功經驗的調侃,在這些公司中,往往是一些非常年輕的人員,有可能是才踏出校園的學生,有可能才工作一兩年的,因為這些公司可能正處於開始發展階段,所以每個人的任務都相當的重,但是公司還要員工在開發時編寫文件,無疑員工的重擔又加大一份,所以員工便產生一個逆反心理,便通過這種方式發洩出來,並用上淪落一詞,以表達上蒼不照顧的情緒。實際上,在軟體工發比較成熟的一些國家,寫文件是一項非常正式的工作,因為管理階層會以此來保證軟體的質量和開發進度,並且把這些文件作為軟體開發中溝通的有效工具,這些文件也是明確開發員工之間的職責的一個依據。

  然而,在我國,從文化上來說,中國的文化階層歷來喜歡務虛而不務實,大家在討論的時候都侃侃而談,但一旦想落實紙面上就沒有人願意幹了。這也表現在到現在為止,還沒有聽說中國出過軟體開發大師級人物。而軟體行業前一段時間還被稱為高科技,這一方面也造成了開發人員浮躁的心態。

  “演算法依舊是永垂不朽的詩篇”說明了演算法在軟體開發中的重要性。當今,硬體的發展遠遠跟不上軟體的發展,隨著生活水平的提高,我們需要處理的資訊呈爆炸式的增長,雖然硬體裝置可以提高處理這些資訊的速度,但是還遠遠不夠,而在軟體中,一個壞的演算法根本無法同一個好的演算法相比擬,而一個好的演算法,可以成百上千倍地提高計算速度,有時甚至是無法計算壞的演算法與好演算法的差距的。可見,在很多情況下,一個好的演算法,遠遠比一個新的硬體要提升的效率要多,所以演算法仍然是軟體開發中的一個重中之重,演算法依舊是永垂不朽的詩篇!

  4,“幾萬組資料流過後發現,我的心依然不變”一句體現了演算法的什麼特性?

  答案:這句話體現了演算法的高效性。這問話的意思是處理過幾萬組資料後,伺服器的記憶體或cpu佔用並沒有改變多少,可見演算法之高效!

  5,就“喜歡在匈牙利演算法中你我牽手的畫面”一句,談談你對匈牙利演算法的理解。

  答案:這句話描繪了一個完美匹配的情景,你與我惺惺相惜,你與我感同身受,你與我合二為一,你與我在心靈境界的融合上,已經達到了最大化。而匈牙利演算法正是應描繪這種情景而生的。匈牙利演算法是眾多用於解決線性任務分配問題的演算法之一,是用來解決二分圖最大匹配問題的經典演算法,可以在多項式時間內解決問題。

相關文章