說在前面:
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 php