說在前面:
1、以下題目,除了編程任務外其他都需要寫在給你提供的草紙上。紙張是珍貴的地球資源,請節約使用。編程任務在有相應的環境時,會要求上機書寫,實在沒有條件,就只能寫在草紙上了。
2、時間:
基礎任務+進階任務+設計任務 = 90分鐘
編程任務 = 60分鐘
基礎任務:
1、請列舉你能想到的UNIX訊號,並說明訊號用途。
2、請列舉、你能想到的所有的字串尋找演算法,並加註釋簡單說明。
3、有一個IP地址(192.168.0.1),請寫出其32位不帶正負號的整數形式。
4、寫出、你能想到的所有HTTP返回狀態值,並說明用途(比如:返回404表示找不到頁面)
基礎任務-選作(會得到額外分數):
1、畫幾個你最熟悉的SERVER端模型出來(格式不重要,盡量將圖畫清楚,說明思路即可)
進階任務:
1、PHP的垃圾收集機制是怎樣的?
說明:
1)如果,你熟悉PHP源碼,那麼請從源碼入手,回答些問題,會獲得額外加分
2)如果,你不熟悉PHP源碼,那麼盡你所能,多寫點東西,包括利用自己的編程直覺得到的資訊,都可以。
3)對,則有分,錯誤不扣,不寫無分。
2、請寫出HTTP頭,並符合以下要求:
1)這是一個post請求
2)目標:http://www.example.com:8080/test
3)POST變數:
username: test
pwd: test2
intro: Hello world!
4)包含以下COOKIE資訊:
cur_query: you&me
說明:
1)如果,你記不得某個HTTP協議中的指令字了,那麼,無奈這舉是用“漢字”代替。
2)如果,你能記住更多的HTTP協議指令字,那麼多寫幾句,總是沒壞處,對吧?
3)最關鍵的,只需要畫出正確的“輪廓”(還記得httpwatch等工具列印出來的頭部嗎?那就是“輪廓”的含義),也會有分數,但如果,連“輪廓”都寫錯了,那麼就很遺憾了。
設計任務:
1、最近總有人騷擾我們的投票模組,需要你來設計一個投票限制的東東
要求如下:
1)要求每個QQ號碼(假設此QQ號碼在UNIT32內可以表示)10分鐘這內只能投5票。
2)我們的使用者很踴躍,平均每天要有2000萬人左右通過此程式投票。
說明:
1)無需寫代碼,只需要圖跟文字即可。
2)對於關鍵邏輯,請用圖加代碼錶示出來,這也是對你文字表達能力的一個考驗。
3)對你能想到的所有的邊界條件列出來,這是對你邏輯思維全面與敏捷性的考驗。
4)儲存部分,盡你所能吧。如果,你需要一個自己設計的儲存層,那麼把這個儲存層的實現,用文字+圖片方式描述清楚,要是設計合理,你會獲得華麗的獎分。
編程任務:
1、我們碰到了大麻煩,一個新來的傳教士惹惱了上帝,上帝很憤怒,要求我們把聖經(bbe.txt)背熟,直至他說哪個單詞,我們就要飛快的回答出這個單詞在第幾行第幾個單詞位置。聽說你是個優秀的程式員,那麼髟助我們完成這個不可能的任務吧。
要求如下:
1)/myworks/example/bbe.txt,98版本英文聖經一本
2)輸入部分要求如下:php ./example.php [單詞]
3)輸出部分如下:[單詞] 1,2 2,4 5,6 表示:此單詞在1行2列(第二個單詞),2行4列...
說明:
1)此文本4MB之巨...
2)單詞的含義:由英文字母(大小寫),數字(0-9)組成的串
3)提供給你的機器OS為ubuntu 9.10,記憶體只有1G,而且,很不幸的,其中700M用來做了別的
4)上機考試不允許上網,但我裝了man文檔以及讀取CHM以及PDF的閱讀器,在電腦的案頭的CHM檔案夾中,有相應的PHP參考手冊
5)演算法複雜度要求不能大於O(N^2)(就是N的平方)
6)什嗎?PHP低效且用起來不順手,好的,你可以用別的語言來實現。但注意:提供給你的機器上只有python 2.4/perl 5.8/gcc[g++] 4.1