經(jīng)典的微軟面試題目及參考答案(2)
經(jīng)典的微軟面試題目及參考答案
經(jīng)典的微軟面試題目及參考答案
第一組題答案:
1)三根繩,第一根點燃兩端,第二根點燃一端,第三根不點
第一根繩燒完(30分鐘)后,點燃第二根繩的另一端,第二根繩燒完(45分鐘)后,點燃第三根繩子兩端,第三根繩燒完(1小時15分)后,計時完成
2)根據(jù)抽屜原理,4個
3)3升裝滿;3升-〉5升(全注入);3升裝滿;3升-〉5升(剩1升);5升倒掉;3升-〉5升(注入1升);3升裝滿;3升-〉5升;完成(另:可用回溯法編程求解)
4)問其中一人:另外一個人會說哪一條路是通往誠實國的?回答者所指的那條路必然是通往說謊國的。
5)12個球:
第一次:4,4 如果平了:
那么剩下的球中取3放左邊,取3個好球放右邊,稱:
如果左邊重,那么取兩個球稱一下,哪個重哪個是次品,平的話第三個重,是次品,輕的話同理
如果平了,那么剩下一個次品,還可根據(jù)需要稱出次品比正品輕或者重
如果不平:
那么不妨設(shè)左邊重右邊輕,為了便于說明,將左邊4顆稱為重球,右邊4顆稱為輕球,剩下4顆稱為好球
取重球2顆,輕球2顆放在左側(cè),右側(cè)放3顆好球和一顆輕球
如果左邊重
稱那兩顆重球,重的一個次品,平的話右邊輕球次品
如果右邊重
稱左邊兩顆輕球,輕的一個次品
如果平
稱剩下兩顆重球,重的一個次品,平的話剩下那顆輕球次品
13個球:
第一次:4,4,如果平了
剩5顆球用上面的方法仍舊能找出次品,只是不能知道次品是重是輕
如果不平,同上
6)
o o o
o o o
o o o
7)
23次,因為分針要轉(zhuǎn)24圈,時針才能轉(zhuǎn)1圈,而分針和時針重合兩次之間的間隔顯然> 1小時,它們有23次重合機會,每次重合中秒針有一次重合機會,所以是23次 重合時間可以對照手表求出,也可列方程求出
8)
在地球表面種樹,做一個地球內(nèi)接的正四面體,內(nèi)接點即為所求
第二組 無標(biāo)準(zhǔn)答案
第三組
1、 分成1,2,4三段,第一天給1,第二天給2取回1,第3天給1,第4天給4取回1、2,第5天給1,第6天給2取回1,第七天給1
2、 求出火車相遇時間,鳥速乘以時間就是鳥飛行的距離
3、 四個罐子中分別取1,2,3,4顆藥丸,稱出比正常重多少,即可判斷出那個罐子的藥被污染
4、 三個開關(guān)分別:關(guān),開,開10分鐘,然后進屋,暗且涼的為開關(guān)1控制的燈,亮的為開關(guān)2控制的燈,暗且熱的為開關(guān)3控制的燈
5、 因為可以用1,2,5,10組合成任何需要的貨幣值,日常習(xí)慣為10進制
6、 題意不理解、、、*_*
7、 012345 0126(9)78
第四組 都是很難的題目
第一題:97 0 1 2 0 或者 97 0 1 0 2 (提示:可用逆推法求出)
第二題:3架飛機5架次,飛法:
ABC 3架同時起飛,1/8處,C給AB加滿油,C返航,1/4處,B給A加滿油,B返航,A到達1/2處,C從機場往另一方向起飛,3/4處,C同已經(jīng)空油箱的A平分剩余油量,同時B從機場起飛,AC到7/8處同B平分剩余油量,剛好3架飛機同時返航。所以是3架飛機5架次。第三題:需要建立數(shù)學(xué)模型
(提示,嚴(yán)格證明該模型最優(yōu)比較麻煩,但確實可證,大膽猜想是解題關(guān)鍵)
題目可歸結(jié)為求數(shù)列 an=500/(2n+1) n=0,1,2,3、、、、、、的和Sn什么時候大于等于1000,解得n> 6
當(dāng)n=6時,S6=977、57
所以第一個中轉(zhuǎn)點離起始位置距離為1000-977、57=22、43公里
所以第一次中轉(zhuǎn)之前共耗油 22、43*(2*7+1)=336、50升
此后每次中轉(zhuǎn)耗油500升
所以總耗油量為7*500+336、50=3836、50升
第四題:需要建立數(shù)學(xué)模型
題目可歸結(jié)為求自然數(shù)列的和S什么時候大于等于100,解得n> 13
第一個杯子可能的投擲樓層分別為:14,27,39,50,60,69,77,84,90,95,99,100
第五題:3和4(可嚴(yán)格證明)
設(shè)兩個數(shù)為n1,n2,n1> =n2,甲聽到的數(shù)為n=n1+n2,乙聽到的數(shù)為m=n1*n2 證明n1=3,n2=4是唯一解
證明:要證以上命題為真,不妨先證n=7
1)必要性:
i) n> 5 是顯然的,因為n <4不可能,n=4或者n=5甲都不可能回答不知道
ii) n> 6 因為如果n=6的話,那么甲雖然不知道(不確定2+4還是3+3)但是無論是2,4還是3,3乙都不可能說不知道(m=8或者m=9的話乙說不知道是沒有道理的)
iii) n <8 因為如果n> =8的話,就可以將n分解成 n=4+x 和 n=6+(x-2),那么m可以是4x也可以是6(x-2)而4x=6(x-2)的必要條件是x=6即n=10,那樣n又可以分解成8+2,所以總之當(dāng)n> =8時,n至少可以分解成兩種不同的合數(shù)之和,這樣乙說不知道的時候,甲就沒有理由馬上說知道。
以上證明了必要性
2)充分性
當(dāng)n=7時,n可以分解成2+5或3+4
顯然2+5不符合題意,舍去,容易判斷出3+4符合題意,m=12,證畢
于是得到n=7 m=12 n1=3 n2=4是唯一解。第六題:7只(數(shù)學(xué)歸納法證明)
1)若只有1只病狗,因為病狗主人看不到有其他病狗,必然會知道自己的狗是病狗(前提是一定存在病狗),所以他會在第一天把病狗處決。
2)設(shè)有k只病狗的話,會在第k天被處決,那么,如果有k+1只,病狗的主人只會看到k只病狗,而第k天沒有人處決病狗,病狗主人就會在第k+1天知道自己的狗是病狗,于是病狗在第k+1天被處決
3)由1)2)得,若有n只病狗,必然在第n天被處決
第七題:(提示:可用圖論方法解決)
BONO&EDGE過(2分),BONO將手電帶回(1分),ADAM&LARRY過(10分),EDGE將手電帶回(2分),BONO&EDGE過(2分) 2+1+10+2+2=17分鐘
第八題:
約定好一個人作為報告人(可以是第一個放風(fēng)的人)
規(guī)則如下:
1、報告人放風(fēng)的時候開燈并數(shù)開燈次數(shù)
2、其他人第一次遇到開著燈放風(fēng)時,將燈關(guān)閉
3、當(dāng)報告人第100次開燈的時候,去向監(jiān)獄長報告,要求監(jiān)獄長放人、、、、、、 按照概率大約30年后(10000天)他們可以被釋放
第五組無標(biāo)準(zhǔn)答案
第六組部分題參考答案:
4、
char * strcpy(char * pstrDest,const char * pstrSource)
{
assert((pstrDest!=NULL)&&(pstrSource!=NULL));
char * pstr=pstrDest;
while((*(pstrDest++)=*(pstrSource++))!= '
經(jīng)典的微軟面試題目及參考答案(2)
經(jīng)典的微軟面試題目及參考答案
經(jīng)典的微軟面試題目及參考答案
第一組題答案:
1)三根繩,第一根點燃兩端,第二根點燃一端,第三根不點
第一根繩燒完(30分鐘)后,點燃第二根繩的另一端,第二根繩燒完(45分鐘)后,點燃第三根繩子兩端,第三根繩燒完(1小時15分)后,計時完成
2)根據(jù)抽屜原理,4個
3)3升裝滿;3升-〉5升(全注入);3升裝滿;3升-〉5升(剩1升);5升倒掉;3升-〉5升(注入1升);3升裝滿;3升-〉5升;完成(另:可用回溯法編程求解)
4)問其中一人:另外一個人會說哪一條路是通往誠實國的?回答者所指的那條路必然是通往說謊國的。
5)12個球:
第一次:4,4 如果平了:
那么剩下的球中取3放左邊,取3個好球放右邊,稱:
如果左邊重,那么取兩個球稱一下,哪個重哪個是次品,平的話第三個重,是次品,輕的話同理
如果平了,那么剩下一個次品,還可根據(jù)需要稱出次品比正品輕或者重
如果不平:
那么不妨設(shè)左邊重右邊輕,為了便于說明,將左邊4顆稱為重球,右邊4顆稱為輕球,剩下4顆稱為好球
取重球2顆,輕球2顆放在左側(cè),右側(cè)放3顆好球和一顆輕球
如果左邊重
稱那兩顆重球,重的一個次品,平的話右邊輕球次品
如果右邊重
稱左邊兩顆輕球,輕的一個次品
如果平
稱剩下兩顆重球,重的一個次品,平的話剩下那顆輕球次品
13個球:
第一次:4,4,如果平了
剩5顆球用上面的方法仍舊能找出次品,只是不能知道次品是重是輕
如果不平,同上
6)
o o o
o o o
o o o
7)
23次,因為分針要轉(zhuǎn)24圈,時針才能轉(zhuǎn)1圈,而分針和時針重合兩次之間的間隔顯然> 1小時,它們有23次重合機會,每次重合中秒針有一次重合機會,所以是23次 重合時間可以對照手表求出,也可列方程求出
8)
在地球表面種樹,做一個地球內(nèi)接的正四面體,內(nèi)接點即為所求
第二組 無標(biāo)準(zhǔn)答案
第三組
1、 分成1,2,4三段,第一天給1,第二天給2取回1,第3天給1,第4天給4取回1、2,第5天給1,第6天給2取回1,第七天給1
2、 求出火車相遇時間,鳥速乘以時間就是鳥飛行的距離
3、 四個罐子中分別取1,2,3,4顆藥丸,稱出比正常重多少,即可判斷出那個罐子的藥被污染
4、 三個開關(guān)分別:關(guān),開,開10分鐘,然后進屋,暗且涼的為開關(guān)1控制的燈,亮的為開關(guān)2控制的燈,暗且熱的為開關(guān)3控制的燈
5、 因為可以用1,2,5,10組合成任何需要的貨幣值,日常習(xí)慣為10進制
6、 題意不理解、、、*_*
7、 012345 0126(9)78
第四組 都是很難的題目
第一題:97 0 1 2 0 或者 97 0 1 0 2 (提示:可用逆推法求出)
第二題:3架飛機5架次,飛法:
ABC 3架同時起飛,1/8處,C給AB加滿油,C返航,1/4處,B給A加滿油,B返航,A到達1/2處,C從機場往另一方向起飛,3/4處,C同已經(jīng)空油箱的A平分剩余油量,同時B從機場起飛,AC到7/8處同B平分剩余油量,剛好3架飛機同時返航。所以是3架飛機5架次。第三題:需要建立數(shù)學(xué)模型
(提示,嚴(yán)格證明該模型最優(yōu)比較麻煩,但確實可證,大膽猜想是解題關(guān)鍵)
題目可歸結(jié)為求數(shù)列 an=500/(2n+1) n=0,1,2,3、、、、、、的和Sn什么時候大于等于1000,解得n> 6
當(dāng)n=6時,S6=977、57
所以第一個中轉(zhuǎn)點離起始位置距離為1000-977、57=22、43公里
所以第一次中轉(zhuǎn)之前共耗油 22、43*(2*7+1)=336、50升
此后每次中轉(zhuǎn)耗油500升
所以總耗油量為7*500+336、50=3836、50升
第四題:需要建立數(shù)學(xué)模型
題目可歸結(jié)為求自然數(shù)列的和S什么時候大于等于100,解得n> 13
第一個杯子可能的投擲樓層分別為:14,27,39,50,60,69,77,84,90,95,99,100
第五題:3和4(可嚴(yán)格證明)
設(shè)兩個數(shù)為n1,n2,n1> =n2,甲聽到的數(shù)為n=n1+n2,乙聽到的數(shù)為m=n1*n2 證明n1=3,n2=4是唯一解
證明:要證以上命題為真,不妨先證n=7
1)必要性:
i) n> 5 是顯然的,因為n <4不可能,n=4或者n=5甲都不可能回答不知道
ii) n> 6 因為如果n=6的話,那么甲雖然不知道(不確定2+4還是3+3)但是無論是2,4還是3,3乙都不可能說不知道(m=8或者m=9的話乙說不知道是沒有道理的)
iii) n <8 因為如果n> =8的話,就可以將n分解成 n=4+x 和 n=6+(x-2),那么m可以是4x也可以是6(x-2)而4x=6(x-2)的必要條件是x=6即n=10,那樣n又可以分解成8+2,所以總之當(dāng)n> =8時,n至少可以分解成兩種不同的合數(shù)之和,這樣乙說不知道的時候,甲就沒有理由馬上說知道。
以上證明了必要性
2)充分性
當(dāng)n=7時,n可以分解成2+5或3+4
顯然2+5不符合題意,舍去,容易判斷出3+4符合題意,m=12,證畢
于是得到n=7 m=12 n1=3 n2=4是唯一解。第六題:7只(數(shù)學(xué)歸納法證明)
1)若只有1只病狗,因為病狗主人看不到有其他病狗,必然會知道自己的狗是病狗(前提是一定存在病狗),所以他會在第一天把病狗處決。
2)設(shè)有k只病狗的話,會在第k天被處決,那么,如果有k+1只,病狗的主人只會看到k只病狗,而第k天沒有人處決病狗,病狗主人就會在第k+1天知道自己的狗是病狗,于是病狗在第k+1天被處決
3)由1)2)得,若有n只病狗,必然在第n天被處決
第七題:(提示:可用圖論方法解決)
BONO&EDGE過(2分),BONO將手電帶回(1分),ADAM&LARRY過(10分),EDGE將手電帶回(2分),BONO&EDGE過(2分) 2+1+10+2+2=17分鐘
第八題:
約定好一個人作為報告人(可以是第一個放風(fēng)的人)
規(guī)則如下:
1、報告人放風(fēng)的時候開燈并數(shù)開燈次數(shù)
2、其他人第一次遇到開著燈放風(fēng)時,將燈關(guān)閉
3、當(dāng)報告人第100次開燈的時候,去向監(jiān)獄長報告,要求監(jiān)獄長放人、、、、、、 按照概率大約30年后(10000天)他們可以被釋放
第五組無標(biāo)準(zhǔn)答案
第六組部分題參考答案:
4、
char * strcpy(char * pstrDest,const char * pstrSource)
{
assert((pstrDest!=NULL)&&(pstrSource!=NULL));
char * pstr=pstrDest;
while((*(pstrDest++)=*(pstrSource++))!= '\0 ');
return pstr;
}
5、
char * strrev(char * pstr) {
assert(pstr!=NULL);
char * p=pstr;
char * pret=pstr; while(*(p++)!= '\0 '); p--;
char tmp;
while(p> pstr)
{
tmp=*p;
*(p--)=*(pstr);
*(pstr++)=tmp; }
return pret;
看過“經(jīng)典的微軟面試題”的人還看了:
return pstr;
}
5、
char * strrev(char * pstr) {
assert(pstr!=NULL);
char * p=pstr;
char * pret=pstr; while(*(p++)!= '
經(jīng)典的微軟面試題目及參考答案(2)
經(jīng)典的微軟面試題目及參考答案
經(jīng)典的微軟面試題目及參考答案
第一組題答案:
1)三根繩,第一根點燃兩端,第二根點燃一端,第三根不點
第一根繩燒完(30分鐘)后,點燃第二根繩的另一端,第二根繩燒完(45分鐘)后,點燃第三根繩子兩端,第三根繩燒完(1小時15分)后,計時完成
2)根據(jù)抽屜原理,4個
3)3升裝滿;3升-〉5升(全注入);3升裝滿;3升-〉5升(剩1升);5升倒掉;3升-〉5升(注入1升);3升裝滿;3升-〉5升;完成(另:可用回溯法編程求解)
4)問其中一人:另外一個人會說哪一條路是通往誠實國的?回答者所指的那條路必然是通往說謊國的。
5)12個球:
第一次:4,4 如果平了:
那么剩下的球中取3放左邊,取3個好球放右邊,稱:
如果左邊重,那么取兩個球稱一下,哪個重哪個是次品,平的話第三個重,是次品,輕的話同理
如果平了,那么剩下一個次品,還可根據(jù)需要稱出次品比正品輕或者重
如果不平:
那么不妨設(shè)左邊重右邊輕,為了便于說明,將左邊4顆稱為重球,右邊4顆稱為輕球,剩下4顆稱為好球
取重球2顆,輕球2顆放在左側(cè),右側(cè)放3顆好球和一顆輕球
如果左邊重
稱那兩顆重球,重的一個次品,平的話右邊輕球次品
如果右邊重
稱左邊兩顆輕球,輕的一個次品
如果平
稱剩下兩顆重球,重的一個次品,平的話剩下那顆輕球次品
13個球:
第一次:4,4,如果平了
剩5顆球用上面的方法仍舊能找出次品,只是不能知道次品是重是輕
如果不平,同上
6)
o o o
o o o
o o o
7)
23次,因為分針要轉(zhuǎn)24圈,時針才能轉(zhuǎn)1圈,而分針和時針重合兩次之間的間隔顯然> 1小時,它們有23次重合機會,每次重合中秒針有一次重合機會,所以是23次 重合時間可以對照手表求出,也可列方程求出
8)
在地球表面種樹,做一個地球內(nèi)接的正四面體,內(nèi)接點即為所求
第二組 無標(biāo)準(zhǔn)答案
第三組
1、 分成1,2,4三段,第一天給1,第二天給2取回1,第3天給1,第4天給4取回1、2,第5天給1,第6天給2取回1,第七天給1
2、 求出火車相遇時間,鳥速乘以時間就是鳥飛行的距離
3、 四個罐子中分別取1,2,3,4顆藥丸,稱出比正常重多少,即可判斷出那個罐子的藥被污染
4、 三個開關(guān)分別:關(guān),開,開10分鐘,然后進屋,暗且涼的為開關(guān)1控制的燈,亮的為開關(guān)2控制的燈,暗且熱的為開關(guān)3控制的燈
5、 因為可以用1,2,5,10組合成任何需要的貨幣值,日常習(xí)慣為10進制
6、 題意不理解、、、*_*
7、 012345 0126(9)78
第四組 都是很難的題目
第一題:97 0 1 2 0 或者 97 0 1 0 2 (提示:可用逆推法求出)
第二題:3架飛機5架次,飛法:
ABC 3架同時起飛,1/8處,C給AB加滿油,C返航,1/4處,B給A加滿油,B返航,A到達1/2處,C從機場往另一方向起飛,3/4處,C同已經(jīng)空油箱的A平分剩余油量,同時B從機場起飛,AC到7/8處同B平分剩余油量,剛好3架飛機同時返航。所以是3架飛機5架次。第三題:需要建立數(shù)學(xué)模型
(提示,嚴(yán)格證明該模型最優(yōu)比較麻煩,但確實可證,大膽猜想是解題關(guān)鍵)
題目可歸結(jié)為求數(shù)列 an=500/(2n+1) n=0,1,2,3、、、、、、的和Sn什么時候大于等于1000,解得n> 6
當(dāng)n=6時,S6=977、57
所以第一個中轉(zhuǎn)點離起始位置距離為1000-977、57=22、43公里
所以第一次中轉(zhuǎn)之前共耗油 22、43*(2*7+1)=336、50升
此后每次中轉(zhuǎn)耗油500升
所以總耗油量為7*500+336、50=3836、50升
第四題:需要建立數(shù)學(xué)模型
題目可歸結(jié)為求自然數(shù)列的和S什么時候大于等于100,解得n> 13
第一個杯子可能的投擲樓層分別為:14,27,39,50,60,69,77,84,90,95,99,100
第五題:3和4(可嚴(yán)格證明)
設(shè)兩個數(shù)為n1,n2,n1> =n2,甲聽到的數(shù)為n=n1+n2,乙聽到的數(shù)為m=n1*n2 證明n1=3,n2=4是唯一解
證明:要證以上命題為真,不妨先證n=7
1)必要性:
i) n> 5 是顯然的,因為n <4不可能,n=4或者n=5甲都不可能回答不知道
ii) n> 6 因為如果n=6的話,那么甲雖然不知道(不確定2+4還是3+3)但是無論是2,4還是3,3乙都不可能說不知道(m=8或者m=9的話乙說不知道是沒有道理的)
iii) n <8 因為如果n> =8的話,就可以將n分解成 n=4+x 和 n=6+(x-2),那么m可以是4x也可以是6(x-2)而4x=6(x-2)的必要條件是x=6即n=10,那樣n又可以分解成8+2,所以總之當(dāng)n> =8時,n至少可以分解成兩種不同的合數(shù)之和,這樣乙說不知道的時候,甲就沒有理由馬上說知道。
以上證明了必要性
2)充分性
當(dāng)n=7時,n可以分解成2+5或3+4
顯然2+5不符合題意,舍去,容易判斷出3+4符合題意,m=12,證畢
于是得到n=7 m=12 n1=3 n2=4是唯一解。第六題:7只(數(shù)學(xué)歸納法證明)
1)若只有1只病狗,因為病狗主人看不到有其他病狗,必然會知道自己的狗是病狗(前提是一定存在病狗),所以他會在第一天把病狗處決。
2)設(shè)有k只病狗的話,會在第k天被處決,那么,如果有k+1只,病狗的主人只會看到k只病狗,而第k天沒有人處決病狗,病狗主人就會在第k+1天知道自己的狗是病狗,于是病狗在第k+1天被處決
3)由1)2)得,若有n只病狗,必然在第n天被處決
第七題:(提示:可用圖論方法解決)
BONO&EDGE過(2分),BONO將手電帶回(1分),ADAM&LARRY過(10分),EDGE將手電帶回(2分),BONO&EDGE過(2分) 2+1+10+2+2=17分鐘
第八題:
約定好一個人作為報告人(可以是第一個放風(fēng)的人)
規(guī)則如下:
1、報告人放風(fēng)的時候開燈并數(shù)開燈次數(shù)
2、其他人第一次遇到開著燈放風(fēng)時,將燈關(guān)閉
3、當(dāng)報告人第100次開燈的時候,去向監(jiān)獄長報告,要求監(jiān)獄長放人、、、、、、 按照概率大約30年后(10000天)他們可以被釋放
第五組無標(biāo)準(zhǔn)答案
第六組部分題參考答案:
4、
char * strcpy(char * pstrDest,const char * pstrSource)
{
assert((pstrDest!=NULL)&&(pstrSource!=NULL));
char * pstr=pstrDest;
while((*(pstrDest++)=*(pstrSource++))!= '\0 ');
return pstr;
}
5、
char * strrev(char * pstr) {
assert(pstr!=NULL);
char * p=pstr;
char * pret=pstr; while(*(p++)!= '\0 '); p--;
char tmp;
while(p> pstr)
{
tmp=*p;
*(p--)=*(pstr);
*(pstr++)=tmp; }
return pret;
看過“經(jīng)典的微軟面試題”的人還看了:
char tmp;
while(p> pstr)
{
tmp=*p;
*(p--)=*(pstr);
*(pstr++)=tmp; }
return pret;
看過“經(jīng)典的微軟面試題”的人還看了: