當前位置:學識都>好好學習>考研>

高盛筆試題

學識都 人氣:1.19W

1、A是一個用戶自定義類。
int a = 100;
A *ptr = new A [a];
delete ptr;
這段代碼是幹什麼的,有個錯誤請指出來,如何提高效率?
分析:
這段代碼創建了一個包含100個類A的實例的數組。這個代碼中刪除對象數組佔據內存空間的方式是“delete[]”而不是“delete”,因此應該改成:delete[] ptr。因爲創建的是100個元素的數組,因此不需要一個單獨的變量a,直接如下修改:
A *ptr = new A [100];
delete[] ptr;
2、How to calculate (1 + 2 + 3 + … + n)?
老師分析:不要用老師講的for循環來計算累計值,而是使用等差數列計算公式,這樣效率會高很多
int F(int n)
{
return n*(n+1)/2;
}
3、在一個火車站:每10分鐘就有一火車離站向南開去;每10分鐘,也有另外一輛火車離站向北開去。每天,你到達這個火車站的時間並不是固定的(換言之,在時間上你是隨機到達火車站的)。但是在你每次到達以後,你就會乘坐最先到站的火車離開,而不管它是往北或者是往南開。這樣在乘坐了一年以後,你發現在90%的天數裏,你所乘坐的是南行的火車。請問這是爲什麼?
分析:答案是“南行的火車時間比北行的'時間早1分鐘”。
比如:南行的時刻表爲:12:00,12:10,12:20,12:30,、、、
北行的火車時間表爲:12:01,12:11,12:21,12:31,、、、
這樣的話,除非是你在到達的時候爲12:00以後而在12:01之前,那麼,從12:02到12:10之間,你都會乘坐南行火車。依此類推、、、這樣的話,你在每10分鐘裏,乘坐南行火車的機率爲90%。
4、你獨自一人在一孤島上等待着救護人員的到來,但他們只會在第10天到達(今天是第零天)。你手頭上有兩種藥品:“甲”和“乙”各10粒。想要活到第二天的話,你必須吃一粒“甲”和一粒“乙”。可是,今天由於不小心你把“甲”和“乙”的顆粒混在了一塊,而你又無法辨認出哪粒是“甲”、哪粒是 “乙”來。想要活到第十天的話,你需要怎麼去做?
分析:把20顆粒藥碾碎,並混合均勻,然後平均分出10份,每次食用一份。 此題目的啓示爲:做事不要拘泥於條條框框。
 

高盛筆試題

TAGS:筆試 高盛