當前位置:學問君>學習教育>考研>

完美時空筆試試題

學問君 人氣:1.98W

前5題是5選3,後5題不作要求

完美時空筆試試題

使用 C++ (VC6、VS2003、VS2005、GCC4.1.2、GCC3.2.2)或java(JDK1.6.0)兩種語言,題目如下:

1.編寫一個用於局域網(同一子網)的、沒有服務器的、可以多人同時聊天的程序,可以給某個人或者全部人發送文字資訊。

2.編寫一個簡單的2人點對點聊天工具,一方利用IP位址和端口連接另一方,可以相互發送文字資訊。

3.編寫一個可以計算四則運算(包含括號)程序,比如輸入字元串" 1 + 2 * 3 / ( 4 - 5)" ,輸出的結果爲" -5" 。

4.模擬一個生產者、消費者問題,自己實現一個支援多線程、有上限的隊列,附帶測試代碼。

5.編寫一個GUI程序。在一個一定長、寬的區域內,隨機分佈有一定數量的矩形(邊與區域的邊平行,並且一定在區域內),當鼠標在該區域內任意一點按下左鍵,找到所有矩形中,某個邊到該點的距離最近的那個矩形,並相對其他矩形特殊的顯示出來。

對下列問題,如果不感興趣,可以略過;如果感興趣,可以選擇性的對一個或者多個問題發表一下自己的認識,看法等等,不要說如何求解。

1.從前有三座塔,分別命名爲X、Y、Z。其中在Z這座塔上,有個一定數量個盤子,比如N個,每個盤子的直徑都不相同,並且按自下往上、從大到小排列。現在想把Z塔上的'盤子都移動到X塔上,並且移動之後,X塔上盤子的順序和Z原來的順序是一樣的。在移動過程中,每次只能移動一個盤子;Y也可以放盤子,但是盤子無論放在哪座塔上,盤子必須按自下往上、從大到小排列。

2.在一個4×4的格子中,放入4個棋子,使得每個棋子相同行、相同列和2個45度斜邊上,都沒有其它棋子。

3.在一個圓桌上,放了8個盤子,每2個盤子中間放了一根筷子;每個盤子前站一個人,如果每人都先用左手拿起左邊的筷子,再去拿右邊的筷子,因爲他右邊的筷子已經被他右邊的人用左手拿起了,所以他沒有辦法湊齊一雙筷子。如果希望每個人都能在某個時刻可以湊齊一雙筷子,該怎麼做。

4.C++中,限制一個類的對象實例,只能在堆上分配,或者只能在棧上分配,有什麼方法沒?

5.C++中的const只能在編譯的時候限制爲常量,如果想在程序執行的時候,做const的限制,有什麼方法沒?