1. 程式人生 > >看騰訊php程式設計師面試題目

看騰訊php程式設計師面試題目

說在前面:

 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