微軟校園招聘筆試筆經(jīng)超完整版_第1頁
微軟校園招聘筆試筆經(jīng)超完整版_第2頁
微軟校園招聘筆試筆經(jīng)超完整版_第3頁
微軟校園招聘筆試筆經(jīng)超完整版_第4頁
微軟校園招聘筆試筆經(jīng)超完整版_第5頁
已閱讀5頁,還剩82頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、更多IT名企招聘: HYPERLINK http:/51/search/job/famousEnterprise.aspx?email=qq http:/51/search/job/famousEnterprise.aspx?email=qq海量IT職位 HYPERLINK http:/51?email=qq http:/51?email=qq 精彩IT筆經(jīng)面經(jīng) HYPERLINK ?email=qq ?email=qq目錄TOC o 1-3 h z u HYPERLINK l _Toc307821805 Part1筆試題目 PAGEREF _Toc307821805 h 2 HYPERLIN

2、K l _Toc307821806 筆試題一 PAGEREF _Toc307821806 h 2 HYPERLINK l _Toc307821807 微軟實習生招聘 PAGEREF _Toc307821807 h 4 HYPERLINK l _Toc307821808 5.1史上最全的筆面題(含答案) PAGEREF _Toc307821808 h 5 HYPERLINK l _Toc307821809 2011-5-28 微軟筆試 PAGEREF _Toc307821809 h 7 HYPERLINK l _Toc307821810 Microsoft實習生面試時的筆試(英文) PAGERE

3、F _Toc307821810 h 9 HYPERLINK l _Toc307821811 Test for Basic Computer Science Knowledge PAGEREF _Toc307821811 h 12 HYPERLINK l _Toc307821812 微軟的應(yīng)試題完整版(附答案) PAGEREF _Toc307821812 h 16 HYPERLINK l _Toc307821813 筆試題(網(wǎng)絡(luò)大匯總) PAGEREF _Toc307821813 h 24 HYPERLINK l _Toc307821814 Part2筆試經(jīng)驗 PAGEREF _Toc30782

4、1814 h 54 HYPERLINK l _Toc307821815 微軟筆試的一點回憶 PAGEREF _Toc307821815 h 54 HYPERLINK l _Toc307821816 微軟 2010 年 5 月筆試小談 PAGEREF _Toc307821816 h 55 HYPERLINK l _Toc307821817 微軟 2010 年 4 月筆試內(nèi)容 PAGEREF _Toc307821817 h 56 HYPERLINK l _Toc307821818 給參加微軟筆試的同學們一些建議 PAGEREF _Toc307821818 h 57 HYPERLINK l _Toc

5、307821819 微軟軟件開發(fā)筆試歸來 PAGEREF _Toc307821819 h 58 HYPERLINK l _Toc307821820 微軟筆試應(yīng)對經(jīng)驗 PAGEREF _Toc307821820 h 59Part1筆試題目筆試題一1寫出下列算法的時間復雜度。(1)冒泡排序;(2)選擇排序;(3)插入排序;(4)快速排序;(5)堆排序;(6)歸并排序;2寫出下列程序在X86上的運行結(jié)果。struct mybitfields unsigned short a : 4; unsigned short b : 5; unsigned short c : 7; test void main

6、(void) int i; test.a=2; test.b=3; test.c=0; i=*(short *)&test); printf(%dn,i); 3寫出下列程序的運行結(jié)果。unsigned int i=3; couti * -1; 4寫出下列程序所有可能的運行結(jié)果。int a; int b; int c; void F1() b=a*2; a=b; void F2() c=a+1; a=c; main() a=5; /Start F1,F2 in parallel F1(); F2(); printf(a=%dn,a); 5考察了一個CharPrev()函數(shù)的作用。6對 16 Bi

7、ts colors的處理,要求:(1)Byte轉(zhuǎn)換為RGB時,保留高5、6bits;(2)RGB轉(zhuǎn)換為Byte時,第2、3位置零。7一個鏈表的操作,注意代碼的健壯和安全性。要求:(1)增加一個元素;(2)獲得頭元素;(3)彈出頭元素(獲得值并刪除)。8一個給定的數(shù)值由左邊開始升位到右邊第N位,如00101 = 0100 或者0001 0011next = currentNode-next, currentNode-next = newNode. D6. 問以下哪些特征不是 interpreted language(解釋型語言)所獨有的:(我們知道一般分為兩種:解釋型語言 VB,Shell,批處

8、理等;編譯型語言,C,java 等。各有優(yōu)點 )A. 平臺無關(guān)性。(明顯不對,因為 java 才是平臺無關(guān)的)B. 執(zhí)行速度較快(這個問題,以前做作業(yè)時就沒爭論清楚,自己感覺解釋型語言不需要編譯,速度能快一些,但是重復執(zhí)行時,編譯型語言只需要編譯一次,效率高)C. 可以定義動態(tài)變量(應(yīng)該兩種都可以)D.以上都不對7.給了一個二叉樹,讓求后序遍歷的結(jié)果。這個題如果知道后序遍歷,肯定就可以做出來了。盡管不難 還是要搞清楚三者的區(qū)別(哈哈)先序 左根右中序 根左右后序 左右根8.問以下幾種排序方法,在最壞情況下時間復雜度小于 o(n2)的是哪一種(這個題目記得不是很清楚了)A.快排B.插入排序C.合

9、并排序D.棧排序9. 現(xiàn)有 n+1 這么大的存儲空間(可以理解有這么一個大小為 n+1 的數(shù)組),中間存了1,n+1范圍內(nèi)的n 個數(shù),說明丟失了一個數(shù),現(xiàn)在要找出這個丟失的數(shù),問最好情況下時間復雜度是多少A.o(1)B.o(n)C.o(n2)D.o(nlogn)10.是一道程序題,由于太長,無從記憶編程題部分用 C,C+,C#,或 Java 中的一種來編寫以下程序?,F(xiàn)在給你一個 字符串,其中特殊的字符只有兩種 space(空格)( ),newline(換行)(/n)。 現(xiàn)在讓你來去除其中多余的空格。具體要求1.連續(xù)的空格只能當保留其中一個2. 該字符串的開頭不能有空格3. 該字符串的結(jié)尾不能有

10、空格4. 任何/n 的前面或才后面都不能存在多余的空格為了得到很高的分數(shù),還需要滿足以下條件1.不能申請新的字符串空間2.對給出的字符串只能遍歷一遍不能使用任何庫函數(shù)。我們給了兩個供你調(diào)用的函數(shù)int intIsSpace(char str)()當字符不為空格時,將返回 0當字符為空格時,將返回其它任意非 0 值int intIsNewLine(char str)()當字符不為換行時,將返回 0當字符為換行時,將返回其它任意非 0 值程序編寫完成后,請編寫測試用例,并說明它完成的作用。Microsoft實習生面試時的筆試(英文)Microsoft實習生面試時的筆試(45分鐘)(總第2次筆試)

11、(08年微軟實習生電子科技大學成都學院面試) 總共2大題第一題 (數(shù)據(jù)結(jié)構(gòu)題)讀程序 補充程序中缺少的部分 難度不大 本次筆試程序的內(nèi)容是數(shù)據(jù)結(jié)構(gòu)中的線性表的鏈式存儲程序中出現(xiàn)需要補充的幾個主要的函數(shù):線性鏈表的創(chuàng)建,插入,刪除,判斷鏈表是否為循環(huán)鏈表。程序用c語言描述 ,指針一定要掌握好。以下程序自己所寫僅供參考:(以下程序在vc6.0中編譯通過)/Copyrights huchen /描述:程序描述了單鏈表的創(chuàng)建,插入,刪除 /注意:判斷是否循環(huán)鏈表由讀者自己實現(xiàn) /作者:胡琛 /日期:2007-7-22, 16:38:25#include #define ERROR_OK 0#defin

12、e ERROR_OUT_OF_MEMORY 1#define ERROR_OVERFLOW 2struct LNode int data; LNode *next;/創(chuàng)建一個鏈表 length為要創(chuàng)建鏈表的大小, head為頭指針int CreateList(LNode *&head, int length)head = new LNode();if(!head)return ERROR_OUT_OF_MEMORY;head-next = NULL;LNode *p;printf(please enter the element:n);for(int i = 0; i data);p-next

13、 = head-next;head-next = p;return ERROR_OK;/插入一個節(jié)點 int Insert(LNode *head, int location)int index = 1;while(index next)head = head-next;+index;if(!(head-next)printf(overflow!n);return ERROR_OVERFLOW;LNode *p = new LNode();if(!p)return ERROR_OUT_OF_MEMORY;printf(input an number you want insert:n);sca

14、nf(%d, &(p-data);p-next = head-next;head-next = p;return ERROR_OK;/刪除一個節(jié)點int Delete(LNode *head, int location)int index = 1;while(index next) /index 保證指針指向要插入位置的前一個節(jié)點, / 第2個條件保證指針越界后指向最后一個節(jié)點head = head-next;+index;if(!(head-next)printf(overflow!n);return ERROR_OVERFLOW;LNode *p = head-next;head-next

15、 = p-next;delete p;return ERROR_OK;void ShowLinkList(LNode *head)printf(LinkList:);LNode *p = head-next;while(p)printf(%d , p-data);p = p-next;printf(n);void main()LNode *head = NULL;int initialLength,location;printf(please input an number to initilize the LinkList:n); /初始化鏈表的元素個數(shù)scanf(%d, &initialL

16、ength);if(!CreateList(head, initialLength)printf(Create LinkList Success! n);ShowLinkList(head);printf(please input an location you want to insert to:n);scanf(%d, &location);if(!Insert(head, location)printf(Insert success!n);ShowLinkList(head);printf(please input an location you want to delete:n);sc

17、anf(%d, &location);if(!Delete(head, location)printf(Delete success!n);ShowLinkList(head);第一題總結(jié):把數(shù)據(jù)結(jié)構(gòu)中的基礎(chǔ)打牢(不可能一直考鏈表) 第二題英譯中英語文章:長度 和難度都跟四級中閱讀理解的文章差不多Test for Basic Computer Science KnowledgeMicrosoft Technology CenterTest for Basic Computer Science KnowledgeDear candidates, Welcome to Microsoft Chin

18、a Technology Center and thank you for your interests in becoming a software development engineer. In order to help ensure you have adequate skills for this position, please spend next 30 minutes to complete the following test. This is designed to test some of the basic computer science knowledge you

19、 are required to have. It is by no means a comprehensive test of all the skills you need for this position. It does help us to make a preliminary judgment on whether or not you are a good fit for this position. Please use English to answer questions. It is OK if time runs out before you can complete

20、 all the questions.Your Name: _ Date: _Questions #11) How would you calculate the hash value of a string? 2) List two major requirements of a hashing functionQuestions #2: Logical expressionsAssuming A, B, C are conditions. You can write logical expression that yields specific results. For example,A

21、BResult000011101111Expression “A or B” will give above resultABResult000011100110Expression “(not A) and B” will give above resultPlease write the simplest logical expression that will give the following results (using only and, or, not operators)ABCResult00000011010101101001101011001111Expression:A

22、BCResult00000010010101111000101111001111Expression:Please rewrite the following If statements (in C) into just one If statementFor example, if ( a 10 )if ( b 10 & b 10 & b 15 )Run(); else if ( b 6 )Run();Questions #3Please write a function in C to copy one string to another, while return the largest

23、 letter in the string. Please do not use any C runtime function. char StringCopy( char *pszSrc, char *pszDst, int maxSize )pszSrc: points to the source stringpszDst: points to the target string, where source string will be copied tomaxSize: max. number of characters allowed to be copied The followin

24、g code will display “Z”char sz100;char ch;ch = StringCopy( “Test Zoo”, sz );printf( ch );Questions #4Binary tree can be used for storing and searching data. Please draw a binary tree, constructed by entering the following numbers in sequence:8, 3, 10, 50, 9, 20, 1, -5, 2, 70, 35, 45, -10, 49, 0Pleas

25、e draw a balanced binary tree using the same set of numbers as above.Questions #5Please define the data structure required to store a linked list of integer and write a routine to delete an integer from a given linked list of integers.Questions #6Please explain the difference between array and link-

26、list.If you are asked to implement a stack, will you use array, or link-list, or both? What are the limitations of using each one?Questions #7 (Windows Programming)What is a message pump in Windows?Please list names of Windows message that is sent when:A window is created:_A window needs to be paint

27、ed:_A window is destroyed: _微軟的應(yīng)試題完整版(附答案)網(wǎng)上有不少Microsoft的測試題,引來不少的眼光。在這里把所有的測試題加以整理,再附上答案。(個別題目答案有多種,文本僅代表作者的思路)每道題的后面會給出一個時間。這個時間是作者做出該題所用的時間。(注意,這不是什么標準時間,相信所有瀏覽本試卷的朋友都會在某一道或多道題上找到靈感,迅速解題的) ! 一最基本題型(說明:此類題型比較簡單)1.燒一根不均勻的繩,從頭燒到尾總共需要1個小時?,F(xiàn)在有若干條材質(zhì)相同的繩子,問如何用燒繩的方法來計時一個小時十五分鐘呢?(這道題我當初想了一個小時)2.你有一桶果凍,其中有

28、黃色、綠色、紅色三種,閉上眼睛抓取同種顏色的兩個。抓取多少個就可以確定你肯定有兩個同一顏色的果凍?(5秒-1分鐘)3.如果你有無窮多的水,一個3公升的提捅,一個5公升的提捅,兩只提捅形狀上下都不均勻,問你如何才能準確稱出4公升的水?(40秒-3分鐘)4.一個岔路口分別通向誠實國和說謊國。來了兩個人,已知一個是誠實國的,另一個是說謊國的。誠實國永遠說實話,說謊國永遠說謊話?,F(xiàn)在你要去說謊國,但不知道應(yīng)該走哪條路,需要問這兩個人。請問應(yīng)該怎么問?(20秒-2分鐘)5.12個球一個天平,現(xiàn)知道只有一個和其它的重量不同,問怎樣稱才能用三次就找到那個球。13個呢?(注意此題并未說明那個球的重量是輕是重,

29、所以需要仔細考慮)(5分鐘-1小時) _6.在9個點上畫10條直線,要求每條直線上至少有三個點?(3分鐘-20分鐘).在一天的24小時之中,時鐘的時針、分針和秒針完全重合在一起的時候有幾次?都分別是什么時間?你怎樣算出來的?(5分鐘-15分鐘)二沒有答案型(說明:這些題顯然不是考你智力。而考的是你的反應(yīng)能力。這種題大多數(shù)沒有答案,但是要看你的反應(yīng)嘍?。?.為什么下水道的蓋子是圓的?2.中國有多少輛汽車?3.將汽車鑰匙插入車門,向哪個方向旋轉(zhuǎn)就可以打開車鎖?4.如果你要去掉中國的34個?。ê灾螀^(qū)、直轄市和港澳特區(qū)及臺灣?。┲械娜魏我粋€,你會去掉哪一個,為什么?5.多少個加油站才能滿足中國的所有

30、汽車?6.想象你站在鏡子前,請問,為什么鏡子中的影象可以顛倒左右,卻不能顛倒上下?7.為什么在任何旅館里,你打開熱水,熱水都會瞬間傾瀉而出?8.你怎樣將Excel的用法解釋給你的奶奶聽?9.你怎樣重新改進和設(shè)計一個ATM銀行自動取款機?10.如果你不得不重新學習一種新的計算機語言,你打算怎樣著手來開始?如果你的生涯規(guī)劃中打算在5年內(nèi)受到獎勵,那獲取該項獎勵的動機是什么?觀眾是誰?如果微軟告訴你,我們打算投資五百萬美元來啟動你的投資計劃,你將開始什么樣商業(yè)計劃?為什么?13.如果你能夠?qū)⑷澜绲碾娔X廠商集合在一個辦公室里,然后告訴他們將被強迫做一件事,那件事將是什么?三難題(說明:這類題有一定難

31、度,如果得不到答案,也不能說明什么。如果你想到了解題思路,那么答案馬上就能出來。如果想不到思路,那么就別想解出來了。)你讓工人為你工作7天,回報是一根金條,這個金條平分成相連的7段,你必須在每天結(jié)束的時候給他們一段金條。如果只允許你兩次把金條弄斷,你如何給你的工人付費?2.有一輛火車以每小時15公里的速度離開北京直奔廣州,同時另一輛火車每小時20公里的速度從廣州開往北京。如果有一只鳥,以30公里每小時的速度和兩輛火車同時啟動,從北京出發(fā),碰到另一輛車后就向相反的方向返回去飛,就這樣依次在兩輛火車之間來回地飛,直到兩輛火車相遇。請問,這只鳥共飛行了多長的距離? .3.你有四個裝藥丸的罐子,每個藥

32、丸都有一定的重量,被污染的藥丸是沒被污染的藥丸的重量+1。只稱量一次,如何判斷哪個罐子的藥被污染了?4.門外三個開關(guān)分別對應(yīng)室內(nèi)三盞燈,線路良好,在門外控制開關(guān)時候不能看到室內(nèi)燈的情況,現(xiàn)在只允許進門一次,確定開關(guān)和燈的對應(yīng)關(guān)系?5.人民幣為什么只有1、2、5、10的面值?6.你有兩個罐子以及50個紅色彈球和50個藍色彈球,隨機選出一個罐子,隨機選出一個彈球放入罐子,怎么給出紅色彈球最大的選中機會?在你的計劃里,得到紅球的幾率是多少?u四超難題(說明:如果你是第一次看到這種題,并且以前從來沒有見過類似的題型,并且能夠在半個小時之內(nèi)做出答案。只能說明你的智力超常)第一題 . 五個海盜搶到了100

33、顆寶石,每一顆都一樣大小和價值連城。他們決定這么分:抽簽決定自己的號碼(1、2、3、4、5)首先,由1號提出分配方案,然后大家表決,當且僅當超過半數(shù)的人同意時,按照他的方案進行分配,否則將被扔進大海喂鯊魚如果1號死后,再由2號提出分配方案,然后剩下的4人進行表決,當且僅當超過半數(shù)的人同意時,按照他的方案進行分配,否則將被扔入大海喂鯊魚依此類推條件:每個海盜都是很聰明的人,都能很理智地做出判斷,從而做出選擇。問題:第一個海盜提出怎樣的分配方案才能使自己的收益最大化?第二題 . 一道關(guān)于飛機加油的問題,已知:每個飛機只有一個油箱, 飛機之間可以相互加油(注意是相互,沒有加油機)一箱油可供一架飛機繞

34、地球飛半圈,問題:為使至少一架飛機繞地球一圈回到起飛時的飛機場,至少需要出動幾架飛機?(所有飛機從同一機場起飛,而且必須安全返回機場,不允許中途降落,中間沒有飛機場)五主觀題(說明:在以后的工作過程中,我們可定會犯這樣那樣的錯誤。既然錯誤已經(jīng)釀成,損失在所難免,我們只能想辦法把損失減少到最小。如果能巧妙地回答出這些問題,再發(fā)生錯誤的情況下。能讓客戶有最少的抱怨,公司有最少的損失。)1.某手機廠家由于設(shè)計失誤,有可能造成電池壽命比原來設(shè)計的壽命短一半(不是沖放電時間),解決方案就是免費更換電池或給50元購買該廠家新手機的折換券。請給所有已購買的用戶寫信告訴解決方案。2.一高層領(lǐng)導在參觀某博物館時

35、,向博物館館員小王要了一塊明代的城磚作為紀念,按國家規(guī)定,任何人不得將博物館收藏品變?yōu)樗接小2┪镳^館長需要如何寫信給這位領(lǐng)導,將城磚取回。3.營業(yè)員小姐由于工作失誤,將2萬元的筆記本電腦以1.2萬元錯賣給李先生,王小姐的經(jīng)理怎么寫信給李先生試圖將錢要回來?六.算法題(說明:這些題就不是什么花樣了,考的是你的基礎(chǔ)知識怎么樣。再聰明而沒有實學的人都將會被這些題所淘汰。)1.鏈表和數(shù)組的區(qū)別在哪里?2.編寫實現(xiàn)鏈表排序的一種算法。說明為什么你會選擇用這樣的方法?3.編寫實現(xiàn)數(shù)組排序的一種算法。說明為什么你會選擇用這樣的方法?4.請編寫能直接實現(xiàn)strstr()函數(shù)功能的代碼。5.編寫反轉(zhuǎn)字符串的程序

36、,要求優(yōu)化速度、優(yōu)化空間。6.在鏈表里如何發(fā)現(xiàn)循環(huán)鏈接? .7.給出洗牌的一個算法,并將洗好的牌存儲在一個整形數(shù)組里。8.寫一個函數(shù),檢查字符是否是整數(shù),如果是,返回其整數(shù)值。(或者:怎樣只用4行代碼編寫出一個從字符串到長整形的函數(shù)?)9.給出一個函數(shù)來輸出一個字符串的所有排列。.請編寫實現(xiàn)malloc()內(nèi)存分配函數(shù)功能一樣的代碼。給出一個函數(shù)來復制兩個字符串A和B。字符串A的后幾個字節(jié)和字符串B的前幾個字節(jié)重疊。12.怎樣編寫一個程序,把一個有序整數(shù)數(shù)組放到二叉樹中?13.怎樣從頂部開始逐層打印二叉樹結(jié)點數(shù)據(jù)?請編程。 14.怎樣把一個鏈表掉個順序(也就是反序,注意鏈表的邊界條件并考慮空鏈

37、表)?答案解答與提示一最基本題型1.一要一頭燒,一根從兩頭燒,再有一根做參照,兩頭燒完的記下位置(即燒到這里要半小時),把參照的那根從標記位置處剪開,取其中一段A。一頭燒的那根燒完后(就是一個小時后),把A從兩頭開始燒,燒完后即為十五分鐘,加起來共一小時十五分鐘。2.4個。3.大桶裝滿水,倒入小桶,大桶剩下2公升水。小桶水倒掉,大桶剩2公升水倒入小桶中,大桶再裝滿后,倒入小桶至小桶滿,大桶即剩公升4.如果參加過類似于奧林匹克數(shù)學班的,都應(yīng)做過這些題。問他你的國家怎么走,他肯定指向的是誠實國。5.12個時可以找出那個是重還是輕,13個時只能找出是哪個球,輕重不知。把球編為。(13個時編號為)第一

38、次稱:先把與放天平兩邊,如相等,說明特別球在剩下4個球中。把與作第二次稱量,如相等,說明特別,把與作第三次稱量即可判斷是是重還是輕如說明要么是中有一個輕的,要么是重的。把與作第三次稱量,如相等說明重,不等可找出誰是輕球。如左邊右邊,說明左邊有輕的或右邊有重的把與做第二次稱量 如相等,說明中有一個重,把與作第三次稱量即可判斷是與中誰是重球如說明要么是是輕的,要么中有一個是重的。 .把與作第三次稱量,如相等說明輕,不等可找出誰是重球。如左邊右邊,參照相反進行。當13個球時,第步以后如下進行。把與作第二次稱量,如相等,說明特別,把與作第三次稱量即可判斷是還是特別,但判斷不了輕重了。不等的情況參見第步

39、的6. 見下面的點10條線的情況是 123 456 789 148 159 247 258 269 357 368 注意是24小時不是小時。首先考察時針與分針的情況,很容易看出分針轉(zhuǎn)一圈與時針只重合一次,就是一小時一次。但11時與0時的分鐘區(qū)內(nèi)共享一個重合點,所只二沒有答案型1.圓井蓋掉不下去2.一千萬3.順時針方向。4. 5.十萬個6.答案是This feature is by design. 如果考官要求給出更加合理的解釋,就對他說:如果您對此問題有更多疑問,請與它的供應(yīng)商(或者與它的發(fā)明人)聯(lián)系。答案是眼睛是左右長著的。7.如果不傾瀉而出,這家旅館將沒有人去住。8.告訴她這是最先進的東西

40、,她不需要動手,我來幫她做就可以。9.我想斯皮爾伯格來回答這道題是在合適不過得了。10.我覺得回放飛網(wǎng)呆上半個月比較合適。 11.這題我沒有任何想法,因為沒有工作經(jīng)驗,所以完全沒聽明白他問的是什么!12.做微軟的OEM,這樣能夠更好的服務(wù)微軟。13.把主機箱集成在一個液晶顯示器中!只準開發(fā)我們認證的驅(qū)動!三難題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個藥丸,設(shè)第一丸

41、子應(yīng)重為X,稱得的重量是10X+t,t是幾就是第幾個罐子污染了。4.先開一個,開很長時間。然后關(guān)掉,再開另一個。出去看,亮著的那個不用說。剩下的兩個不亮的,按照燈泡的溫度來進行判斷。5.可以用三張以內(nèi)組成任何面額。6.不清楚??赡苁?0%。四.超難題設(shè)5個人分別是假設(shè)前面的都扔海里了,由來分,無論他怎么分(包括全給),都面臨被否決扔海里的危險。所以,當來分時,一個不給,全由獨吞,為了避免被扔海里的危險,也要同意,的方案成立那么,在分時,是肯定要反對的,要贏得的同意,必須多給一個,否則有可能否決(對來說,反正來分時還是0,你不多給一個就否決),所以的分配方案一定是:98011 # A. 回到來的

42、分配,由于肯定反對,為了贏得的同意,必須在分配方案的基礎(chǔ)上給他們加一個,由于只需再爭取兩票,中可以排除爭取一個,從收益來說,排除中的一個即可,那么的分配方案為:971(或)1 其它都不給!二) 如果機場本身不可以加油的話那么最少需要架架同時起飛,到1/6圈時,兩架飛機把各自油箱中的1/3加給另外一架,這兩架剩的油正好可以原路飛回,被加油機可以飛到5/6圈處。第架飛機在環(huán)球飛機飛到4/6圈時起飛去接應(yīng),兩飛機在5/6圈處相遇,環(huán)球機剛好用完油,加油機把1/3的油給環(huán)球機,兩飛機剛好都能飛回五.主觀題1.告訴用戶我公司為答謝廣大顧客長時間以來的厚愛,顧客可以持原電池免費更換使用壽命為原電池一倍的新

43、型電池?;蛘呖梢猿仲徺I發(fā)票,獲得50元購買該廠家新手機的折換券。2.信件如下:xxx領(lǐng)導:您好!我館近期將展出一批珍貴文物,讓更多的人能夠真正的體會到中華民族文明的悠久、燦爛。我們希望能將您所擁有的明代的城磚展出。并且我們將在博物館內(nèi)設(shè)置專欄,宣傳您對中華民族悠久文化的保存所作出的巨大貢獻,讓更多的華夏子孫看到,并且親身體驗到華夏文明的悠久歷史,從而加強中華民族的凝聚力! !解釋:領(lǐng)導看過這封信以后,如果不拿出城磚。那么也就說明他不想讓更多的人看到中華民族的燦爛文明,不想讓中華民族有更強的凝聚力。自然也就會拿出城磚。如果領(lǐng)導問到何時展出完畢,可以告訴他博物館希望永久展出這些物品,領(lǐng)導自然也就無

44、話可說了。3.信件如下:3尊敬的顧客,您好!由于工作人員的失誤,誤將一臺樣品機賣給您。為了您能夠更好的使用我公司的產(chǎn)品,我公司決定為您免費更換同等價位的筆記本一臺。并且我們有性價比更加優(yōu)越的xxxII 型筆記本電腦,售價20000元人民幣。如果您此時購買,我們將會以19000元的優(yōu)惠價格售出。 六算法題請參考數(shù)據(jù)結(jié)構(gòu)和計算機算法類書籍,作者就不再抄書了。附(1):燒繩子類問題總結(jié):一般給出的繩子都是不均勻的。如果一根為一小時,那么半個小時的計算方法是從兩頭燒。十五分鐘的計算方法是從兩頭燒,同時從中間任何一個地方開始燒,這樣這根繩子就有四個燃燒點,時間自然是一個燃燒點的四分之一。如果計算十分鐘的

45、時間,那么就讓繩子有六個燃燒點,方法就不用說了吧!附(2):天平稱球問題解答以及總結(jié):將球分為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;如

46、果不等,答案為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個球的稱法,至今本人仍沒想出來。望高手賜教

47、??偨Y(jié):(轉(zhuǎn)載)天平稱重,有兩個托盤比較輕重,加上托盤外面,也就是每次稱重有3個結(jié)果,就是ln3/ln2比特信息。n個球要知道其中一個不同的球,如果知道那個不同重量的球是輕還是重,找出來的話那就是n個結(jié)果中的一種,就是有l(wèi)n(n)/ln2比特信息,如果不知道輕重,找出來就是2n(n個球中的一個,輕或者重,所以是2n)個結(jié)果中的一種,那就是ln(2n)/ln2比特信息。假設(shè)我們要稱k次,根據(jù)信息理論,那顯然兩種情況就分別有:1. k*ln3/ln2=ln(n)/ln2(k=1)解得k=ln(n)/ln3 2. k*ln3/ln2=ln(2n)/ln2(k1)解得k=ln(2n)/ln3 這是得到

48、下限,可以很輕易證明滿足條件的最小正整數(shù)k就是所求。比如稱3次知道輕重可以從33=27個球中找出不同的球出來,如果不知道輕重就只能從(33-1)/2=13個球中找出不同的球出來。 筆試題(網(wǎng)絡(luò)大匯總)微軟研究院是一個聽起來就牛 B 的地方啊,反正我是進不去,不過不妨礙我看看他的筆試題到底是怎么樣的。下面四道題就是微軟研究院的筆試題目,題后附有我的解答。微軟研究院(亞洲)的網(wǎng)址是:/asia/1改錯#include #include class CBufferchar * m_pBuffer;int m_size;public:CBuffer()m_pBuffer=NULL;CBuffer()F

49、ree();void Allocte(int size) (3) m_size=size;m_pBuffer= new charsize;private:void Free()if(m_pBuffer!=NULL)delete m_pBuffer;m_pBuffer=NULL;public:void SaveString(const char* pText) conststrcpy(m_pBuffer, pText);char* GetBuffer() constreturn m_pBuffer;void main (int argc, char* argv)CBuffer buffer1;b

50、uffer1.SaveString(Microsoft);printf(buffer1.GetBuffer();答:改正后主要改正 SaveString 函數(shù)將void SaveString(const char* pText) conststrcpy(m_pBuffer, pText);改為void SaveString(const char* pText) (1)Allocte(strlen(pText)+1); (2)strcpy(m_pBuffer, pText);原因:(1) const 成員函數(shù)表示不會修改數(shù)據(jù)成員,而 SaveString 做不到,去掉 const 聲明(2) m

51、_pBuffer 指向 NULL,必須用 Allocte 分配空間才能賦值。(3) 另外需要將 Allocte 成員函數(shù)聲明為私有成員函數(shù)更符合實際2.下來程序想打印“Welcome MSR Asia”,改正錯誤#include #include char * GetName (void)/To return “MSR Asia” Stringchar name=MSR Asia;return name;void main(int argc, char* argv)char name32;/Fill in zeros into namefor(int i=0;i=32;i+)namei=0;/

52、copy “Welcome” to namename=Welcome;/Append a blank charname8= ;/Append string to namestrcat(name,GetName();/print outprintf(name);答:改正后為#include #include char * GetName (void)/To return “MSR Asia” String/char name=MSR Asia; (1)char *name=(char *)malloc(strlen(MSR Asia)+1);strcpy(name,MSR Asia);retur

53、n name;void main(int argc, char* argv)char name32;/Fill in zeros into namefor(int i=0;i=32;i+)namei=0;/copy “Welcome” to name/name=Welcome; (2)strcat(name,Welcome );/Append a blank char/ name8= ; (3)/Append string to namechar *p=GetName(); (4)strcat(name,p);free (p);/print outprintf(name);原因:(1)在函數(shù)內(nèi)

54、部定義的變量在函數(shù)結(jié)束時就清空了,必須動態(tài)分配內(nèi)存(2)字符串賦值語句錯誤,應(yīng)該用 strcat(3)該語句無效,可去掉(4)定義一個指針指向動態(tài)分配的內(nèi)存,用完后需用 free 語句釋放3寫出下面程序的輸出結(jié)果#include class Apublic:void FuncA()printf(FuncA calledn);virtual void FuncB()printf(FuncB calledn);class B: public Apublic:void FuncA()A:FuncA();printf(FuncAB calledn);virtual void FuncB()printf

55、(FuncBB calledn);void main(void)B b;A *pa;pa=&b;A *pa2=new A;b.FuncA(); (1)b.FuncB(); (2)pa-FuncA(); (3)pa-FuncB(); (4)pa2-FuncA(); (5)pa2-FuncB();delete pa2;答:1b.FuncA(); 輸出FuncA calledFuncAB called2b.FuncB();輸出FuncBB called上兩者好理解,直接調(diào)用類 B 的相應(yīng)成員函數(shù)3pa-FuncA();輸出FuncA called 調(diào)用類 A 的 FuncA()4pa-FuncB()

56、;輸出FuncBB called 調(diào)用類 B 的 FuncB(),原因是 C+的動態(tài)決議機制,當基類函數(shù)聲明為 virtual 時,指向派生類對象的基類指針來調(diào)用該函數(shù)會選擇派生類的實現(xiàn),除非派生類沒有才調(diào)用基類的虛函數(shù)。還有一點注意的是:指向基類類型的指針可以指向基類對象也可以指向派生類對象,如 pa=&b;5. pa2-FuncA();pa2-FuncB();輸出FuncA calledFuncB called這也好理解,直接調(diào)用類 A 的相應(yīng)成員函數(shù)4In the main() function, after ModifyString(text) is called, whats the

57、 value of text?#include #include int FindSubString(char* pch)int count=0;char* p1=pch;while(*p1!=0)if(*p1=p11-1)p1+;count+;elsebreak;int count2=count;while(*p1!=0)if(*p1=p11+1)p1+;count2-;elsebreak;if(count2=0)return count;return 0;void ModifyString(char* pText)char* p1=pText;char* p2=p1;while(*p1!=

58、0)int count=FindSubString(p1);if(count0)*p2+=*p1;sprintf(p2, %I, count);while(*p2!= 0)p2+;p1+=count+count+1;else*p2+=*p1+;void main(void)char text32=XYBCDCBABABA;ModifyString(text);printf(text);答:我不知道這個結(jié)構(gòu)混亂的程序到底想考察什么,只能將最后運行結(jié)果寫出來是 XYBCDCBAIBAAP1912太久不用 C 和 C+寫程序,腦袋一團糟,對著屏幕手都僵了,寫出漏洞百出的代碼,于是決定找些題連連,找回

59、編程的感覺。上周日是微軟 2005 校園招聘的第一場筆試,其中有一道編程題目:給定一單鏈表的表頭指針和指向其中一個節(jié)點的指針,要求以該指針為頭將原鏈表逆序排列,例如:N1-N2-N3-N4-N5-NULL pHEAD = N1,pSTART = N3,返回 N3-N2-N1-N5-N4-NULLN1-N2-N3-N4-N5-NULL pHEAD = N1,pSTART = N5,返回這個 N5-N4-N3-N2-N1-NULLN1-N2-N3-N4-N5-NULL pHEAD = N1,pSTART = N1,返回這個 N1-N5-N4-N3-N2-NULL不允許額外分配存儲空間,不允許遞歸,

60、可以使用臨時變量??戳艘幌掳嫔系挠懻?,思路就被固定在那個里面了,基本的算法就是將整個鏈表逆序,并將頭節(jié)點鏈接到尾節(jié)點,新的頭節(jié)點的下一個節(jié)點鏈接到空。一開始被逆序搞昏了頭,顧此失彼,趕著去雜志社見社長,就帶著問題上了公車,在車上拿筆比劃,有了大致的思路,晚上回到宿舍把完整的代碼寫了出來,還是比較簡潔的。原題似乎還要求體現(xiàn)基本異常處理,不知道該怎么辦了。難道還要判斷一下頭指針是否為空,和 pStart 是否在鏈表中?typedef struct node int value;struct node *next; node;void ReverseList(node *pHead, node *p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論