第一部分(必做):計算機科學基礎
1、長爲N的字符串中匹配長度爲M的子串的算法複雜度是()
A. O(N) B. O(M+N) C. O(N+logM) D. O(M+logN)
答:B
2、以下排序算法中,哪些是穩定的排序算法(多選)()
A.冒泡 B.插入 C.合併 D.希爾 E.快速排序
答:ABC
3、以下是一顆平衡二叉樹,請畫出插入鍵值3以後的這顆平衡二叉樹。
答:圖略
4、給定兩個整數集合A和B,每個集合都包含20億個不同整數,請給出快速計算A∩B的算法,算法可使用外存,但是要求佔用內存不能超過4GB。
- 答: 將集合A是的整數,根據n%10不同,分別裝入10個文件中,依次命名爲a0,a1……,a9。同理,將集合B分別裝入10個文件中,依次命名爲b0,b1,……,b9。那麼A和B編號不同的文件中,一定不會有相同的整數。只需分另求出a0與b0中共有的元素、a1與b1中共有的元素……
- 利用bitmap,將bitmap清0,讀入文件ai,依次處理每個數,即將bitmap的第(n/10)位置1。然後讀入文件bi,依次處理每個數,即:若bitmap第(n/10)位爲1,則這個數屬於A∩B
- 答:堆排序。將N個數中的前K個建立一個小頂堆。每讀入一個新的整數,就把它插入到堆中,調整堆,但是每次調整都只調整前K個元素。從第K+1個位置開始的元素都忽略。時間爲NlogK
- 答:13
- 邏輯地址 = 邏輯頁號 + 頁內偏移
- 邏輯頁面數爲8,因此邏輯頁號長度爲3,頁面的大小爲1024,因此頁面偏移的長度爲10.
- 如果求物理地址多少位,則是15
7、關於網絡ISO各層協議的問題,把左右相對應。
應用層 |
|
網卡 |
表示層 |
|
路由IP |
會話層 |
|
交換機 |
網絡層 |
|
TCP/UDP |
傳輸層 |
|
HTTP/DNS |
數據鏈路層 |
|
ASCII |
物理層 |
|
PRC,SQL |
答:貌似連線題?
- (1)網卡的作用就是把數據進行串並轉換(串連數據是比特流形式的,存在與本計算機內部,而計算機與計算機之間是通過幀形式的數據來進行數據傳輸的),MAC子層規定了如何在物理線路上傳輸的frame,LLC的作用是識別不同協議類型然後進行encapsulation(封包), 所以精確的說,網卡工作在數據鏈路層的MAC子層.
- (2)路由IP屬於網絡層
- (3)ISO的術語稱之爲中繼(relay)系統。根據中繼系統所在的層次,可以有以下五種中繼系統:
- 1.物理層(即常說的第一層、層L1)中繼系統,即轉發器(repeater)。
- 2.數據鏈路層(即第二層,層L2),即網橋或橋接器(bridge)。
- 3.網絡層(第三層,層L3)中繼系統,即路由器(router)。
- 4.網橋和路由器的混合物橋路器(brouter)兼有網橋和路由器的功能。
- 5.在網絡層以上的中繼系統,即網關(gateway).
- 我們經常說到的以太網交換機實際是一個基於網橋技術的多端口第二層網絡設備,即數據鏈路層
- (4)TCP/UDP屬於傳輸層
- (5)HTTP/DNS屬於應用層
- (6)表示層位於OSI分層結構的第六層,它的主要作用之一是爲異種機通信提供一種公共語言,以便能進行互操作。這種類型的服務之所以需要,是因爲不同的計算機體系結構使用的數據表示法不同。例如,IBM主機使用EBCDIC編碼,而大部分PC機使用的是ASCII碼。在這種情況下,便需要會話層來完成這種轉換。ASCII屬於表示層
- (7)PRC,SQL屬於哪一層呢?
- 答:Bride模式
- (1)Bridge模式 的用意是"將抽象化(Abstraction)與實現化(Implementation)脫耦,使得二者可以獨立地變化"。
- (2)Observer模式定義對象間的一對多的依賴關係,當一個對象的狀態發生改變時, 所有依賴於它的對象都得到通知並被自動更新。
- (3)Strategy模式 定義一系列算法,把他們封裝起來,並使他們可以互相替換。
- 將策略加以封裝爲一個物件,而不是將策略寫死在某個類中,如此一來,策略可以獨立於客戶端,隨時增加變化、增加或減少策略,即使是修改每個策略的內容,也不會對客戶端程式造成影響。
- (4)Mediator模式 用一箇中介對象來封裝一系列關於對象交互行爲。
9、數據庫系統提供兩種不同類型的語言,分別是自含式語言和嵌入式語言,來供數據庫管理員及開發者管理,查詢和更新。
10、數據庫理論中取出右側關係中所有與左側關係的任一元組都不匹配的元組,用空值填充所有來自左側關係的屬性,再把產生的元組加到自然連接的結果上,這種連接運算稱爲?
- 答:左外連接
- 表的聯結、運算符學習筆記
- 1.等值聯結
- 兩個表的相同列的值必須相等。
- 等值聯結也稱爲 簡單聯結 或 內聯結
- 2.非等值聯結
- 非等值聯結是包含非等號運算符的聯結條件
- 3.外聯結
- 通過外聯結返回不直接匹配的記錄。
- 外聯結運算符只能出現在表達式的一側,即缺少信息的那一側。他將從一個表中返回在另一個表中沒有直接匹配的行。
- 包含外聯結的條件不能用IN 運算符,也不能通過OR運算符鏈接到另一個條件。
- 4.自聯結
- 自己聯結自己的一種聯結形式
- 5.交叉聯結:
- 返回兩個表的交叉乘積 這與兩個表之間的笛卡爾乘積是相同的 CROSS JOIN
- 6.自然聯結:
- NATURAL JOIN 子句是以兩個表中具有相同名稱的所有列爲基礎。
- 它選擇兩個表中那些在所有匹配的列中值相等的行。
- 如果列具有相同的名稱 但是數據類型不同,就會返回一個錯誤。
- 7.USING子句
- 如果幾個列具有相同的名稱,但是數據類型不匹配,則可以使用USING 子句來修改NATURAL JOIN子句 以指定要用於等值聯結的列。
- 在多個列匹配時,使用USING子句只匹配一個列。
- 在引用列中不要使用表名或別名
- 對於使用Using限制只用一個相同列來關聯的,where條件當中出現的相同的列則必須限定爲某一個表的列 否則因產生歧義而拋出錯誤
- 8.使用ON子句創建聯結
- 自然聯結的聯結條件基本上是具有相同名稱的所有列的等值聯結。
- 要制定任意條件或指定要聯結的列,可以使用ON子句。
- 聯結條件與其他搜索條件分開。
- 9 INNER 與 OUTER 聯結
- 在SQL:99標準中,只返回匹配行的兩個表之間的聯結叫做:內聯結。
- 兩個表之間的聯結不但返回內聯結結果而且返回左(或右)表不匹配行的結果。
- 兩個表之間的聯結不但返回內聯結結果而且返回左聯結和右聯結不相匹配的結果,這樣的聯結就是完全外聯結
- 關於左/右外聯結的理解:
- 由於左右兩個表完全匹配的情況稱爲 內聯結,那麼左外聯結則可以理解爲除了匹配的結果外,還將列出左表匹配以外的記錄。
- 右外聯結則是除了顯示兩表匹配的結果,還將顯示右表除匹配結果以外的記錄。
11、關於索引的概念的選擇題,沒有拍全
12、關於數據庫事務,簡述事務的特性,事務的其它東東(忘記了)
第二部分 全是JAVA內容,沒有拍下來
第三部分 專業類,根據崗位不同,試題不同。測試工程師(網易寶)
1、 談談你對軟件測試的理解,可以包括測試流程、測試類型、測試目的等。請回答你認爲最重要的部分,儘量控制字數。
2、 請描述http請求get和post的區別。
- GET與POST方法有以下區別:
- (1) 在客戶端,Get方式在通過URL提交數據,數據在URL中可以看到;POST方式,數據放置在HTML HEADER內提交。
- (2) GET方式提交的數據最多只能有1024字節,而POST則沒有此限制。
- (3) 安全性問題。正如在(1)中提到,使用 Get 的時候,參數會顯示在地址欄上,而 Post 不會。所以,如果這些數據是中文數據而且是非敏感數據,那麼使用 get;如果用戶輸入的數據不是中文字符而且包含敏感數據,那麼還是使用 post爲好。
- (4) 安全的和冪等的。所謂安全的意味着該操作用於獲取信息而非修改信息。冪等的意味着對同一URL 的多個請求應該返回同樣的結果。換句話說,GET 請求一般不應產生副作用。從根本上講,其目標是當用戶打開一個鏈接時,她可以確信從自身的角度來看沒有改變資源。POST 請求就不那麼輕鬆了。POST 表示可能改變服務器上的資源的請求。
- 表單提交中get和post方式的區別歸納如下幾點:
- (1)get是從服務器上獲取數據,post是向服務器傳送數據。
- (2)對於表單的提交方式,在服務器端只能用Request.QueryString來獲取Get方式提交來的數據,用Post方式提交的數據只能用Request.Form來獲取。
- (3)一般來說,儘量避免使用Get方式提交表單,因爲有可能會導致安全問題。比如說在登陸表單中用Get方式,用戶輸入的用戶名和密碼將在地址欄中暴露無遺。但是在分頁程序中,用Get方式就比用Post好。
3、 請描述進程與線程的區別。
答:見Linux2.6進程
4、 現在讓你測試一個程序,這個程序有三個輸入框,分別是輸入三角形的3條邊,旁邊有一個確認按鈕,你點擊按鈕可能會彈出這麼幾種結果:不是三角形,銳角三角形,直角三角形,鈍角三角形,等腰三角形,等邊三角形,請詳細描述下測試的過程以及需要注意的點。
5、 程序運行時會遇到很多系統給予的中斷事件,手機系統中,中斷事件是一個很常見的現象,比如來電通知,短信提醒等。請寫出你所知的中斷事件,排列出優先級,如果有一個通訊錄同步軟件需要測試,請寫出哪些操作需要關注中斷事件。
6、 某大學圖書館信息管理系統需要設計一張圖書信息表,請給出以下問題的答案(默認採用MySQL語法,若採用其他數據庫可註明)
a) 請設計表結構,並且用SQL語句寫出建表語句
b) 向你設計的表中插入5條圖書記錄。
c) 檢索出“機械工業出版社”出版的2007年以後的書名包含“軟件測試”的圖書。
d) 如果表中的某兩列,比如“書名”和“出版社”需要經常一起使用查詢,請用SQL語句爲該表設計一個索引以提高查詢效率。
e) 請描述索引的優點和缺點。
7、 編程題。存在一個名爲user.csv的文件,csv中的內容是以逗號作爲分隔符的,裏面依次存儲了用戶的id,name,mail信息。請寫一段程序,輸出用戶信息中mail是以163結尾的所有用戶的name。
內容格式如下:
Id,name,mail
1,Kevin,[email protected]
2,micheal,[email protected]
8、 編程題。編寫代碼把16進製表示的串轉換爲3進製表示的串。例如x=”5”,則返回:”12”;又例如:x=”F”,則返回”120”。
最後推薦一些資料、書籍和講座給大家,供大家參考:
《編程之美》;
《劍指offer》;
《編程珠璣》;(這本書很經典,但是難度相對較大,建議先看編程之美和劍指offer,然後在讀這本)
秒殺99%的海量數據處理面試題http://blog.csdn.net/v_july_v/article/details/7382693;
《Cracking the Coding Interview: 150 Programming Questions and Solutions》,順便貼個此本書的題解:http://hawstein.com/posts/ctci-solutions-contents.html,且其中文版《程序員面試金典》即將由圖靈教育出版社出版;
IT筆試面試網站:http://www.dy1280.com
本文轉載自:http://blog.csdn.net/mishifangxiangdefeng/article/details/7882340