1. 程式人生 > >軟考錯題知識點彙總

軟考錯題知識點彙總

1、直譯器與編譯器的區別:
直譯器:詞法分析-語法分析-語義分析-執行(速度慢)
編譯器:詞法分析-語法分析-語義分析-中間程式碼生成(速度快)
(不會有程式碼優化和目的碼生成)
2、逆波蘭式,也稱字尾表示式,需要用到棧。
3、ISO/IEC中,易使用性的子特性:易理解、易學習、易操作、吸引性、依從性;
4、虛擬儲存體系由主存+輔存兩級儲存器構成。
5、著作權權利中,發表權的保護期受時間限制。
6、靜態語義錯誤:編譯程式可以發現;
   動態語義錯誤:源程式雖然能夠被編譯執行,但是結果不對。
7、資料庫通常採用三級模式結構:外模式、模式和內模式,分別對應資料庫的檢視、基本表和儲存檔案。
8、分散式資料庫中的一些概念:
分片透明:指使用者不必知道關係資料如何分片的,它們對資料的操作在全域性關係上進行,即關係如何分片對使用者是透明的,因此,當分片改變時應用程式可以不變。分片透明性是最高層次的透明性;
位置透明:指使用者不必知道所操作的資料放在何處,即資料分配到哪個或哪些站點儲存對使用者是透明的,因此資料分片模式的改變,把資料從一個站點轉移到另一個站點將不會影響應用程式,因而應用程式不必改寫;
邏輯透明:最低層次的透明性,該透明性提供資料到區域性資料的映像,即使用者不必關心區域性DBMS支援哪種資料模型、使用哪種有資料操縱語言,資料模型和操縱語言的轉換由系統完成的。
9、POP3採用的是Client/Server模式。
10、CISC是複雜指令系統計算機;
11、VLIW是超長指令字;
12、指令碼語言主要採用解釋方式實現而非編譯;
13、常用的中間程式碼有:字尾式(逆波蘭式)、三地址碼、語法樹等;
14、軟體體系結構中,倉庫風格包含:資料庫系統、超文本系統、黑板系統;
15、三明治測試:是一綜合化結合自上而下和由下往上的測試的測試過程。
16、移進歸約分析法是一種自底向上的語法分析法;
17、滿足BCNF:即不存在關鍵欄位決定關鍵欄位的情況。
18、FTP服務控制埠為21(主動模式),上傳檔案時埠大於1024(被動模式);
19、ping根據由近及遠的原則:
ping 127.0.0.1 先檢查TCP/IP協議棧是否正常;
ping 本地ip 檢查網絡卡是否工作正常;
ping 閘道器地址 檢查和閘道器的連線性;
ping 遠端網站 檢查遠端連線;
20、程式計數器:用於存放下一條指令所在單元的地址的地方。
    累加暫存器:當運算器的算術邏輯單元(ALU)執行算術或邏輯運算時,為ALU提供一個工作區。累加暫存器暫時存放ALU運算的結果資訊。
狀態暫存器:又叫條件碼暫存器,它是計算機系統的核心部件——運算器的一部分,狀態暫存器用來存放兩類資訊:一類是體現當前指令執行結果的各種狀態資訊(條件碼),如有無進位(CF位)、有無溢位(OV位)、結果正負(SF位)、結果是否為零(ZF位)、奇偶標誌位(P位)等;另一類是存放控制資訊(PSW:程式狀態字暫存器),如允許中斷(IF位)、跟蹤標誌(TF位)等。
地址暫存器:用來儲存當前CPU所訪問的記憶體單元的地址。
21、海明校驗碼:假設為n個數據位設定k個校驗位,則校驗位能表示2^k個狀態,可用其中的一個狀態指出 "沒有發生錯誤",用其餘的2 ^k -1個狀態指出有錯誤發生在某一位,包括n個數據位和k個校驗位,因此校驗位的位數應滿足如下關係:2^k-1 ≥ n + k;
22、二叉查詢樹查詢最差的情況:單支樹;
23、在UML中,通訊圖不是互動圖;
24、生成器模式:又叫建造者模式,將一個複雜的物件,分成多分,使同樣的構建過程,能有不同的表示,這樣的設計模式被稱為建造者模式。
25、結構事物:類、介面、協作、活動類、元件、節點;
行為事物:是UML模型中動態部分,代表時間和空間的操作。帶箭頭的直線、傳遞的訊息、狀態圖;
組織事物:組織事物被稱為分組事物,組織事務通常把具有相同屬性的事務組合在一起,組織裡面的內容比較複雜,但是組織和組織之間的結構簡單。在UML中組織事務只有包。
輔助事物:輔助事物也被稱為註釋事物,在UML中只有註釋。
26、中介者就是一個處於眾多物件,並恰當地處理眾多物件之間相互之間的聯絡的角色。中介者模式和觀察者模式是互相競爭的模式。
27、軟體維護其效能水平有關的能力。包括的子特性有成熟性、容錯性和易恢復性。
28、CMM:是指“能力成熟度模型”。它是對於軟體組織在定義、實施、度量、控制和改善其軟體過程的實踐中各個發展階段的描述。CMM的核心是把軟體開發視為一個過程,並根據這一原則對軟體開發和維護過程進行監控和研究。
CMM是一種用於評價軟體承包能力以改善軟體質量的方法,側重於軟體開發過程的管理及工程能力的提高與評估。分為五個等級:一級為初始級,二級為可重複級,三級為已定義級,四級為已管理級,五級為優化級。
29、中間程式碼是源程式的一種內部表示,或稱中間語言。中間程式碼的表達形式有語法樹,字尾式,三地址程式碼。
30、各個模型之間的對比:
瀑布模型:簡單,分階段,使用者參與且預先確定需求,適用於需求易於完善定義且不易變更的軟體系統;
快速原型:不要求需求預先完備定義,支援使用者參與,支援需求的漸進式完善和確認,能夠適應使用者需求的變化,適用於需求複雜、難以確定的軟體系統;
增量模型:軟體產品被增量式一塊塊開發,允許開發活動進行並行和重疊;適用於需求比較穩定的系統;
迭代模型:不要求一次性地開發出完整的軟體系統,將軟體開發視為一個逐步獲取用廣需求、完善軟體產品的過程;適用於需求難以確定、不斷變更的系統;
螺旋模型:風險評估;適用於軟體開發風險較大的軟體系統;
噴泉模型:以需求為動力;可以提高軟體專案開發效率,節省開發時間,適應於面向物件的軟體開發過程。
31、概要設計:把軟體按照一定的原則分解為模組層次,賦予每個模組一定的任務,並確定模組間呼叫關係和介面。
詳細設計:各個模組可以分給不同的人去並行設計。設計者的工作物件是一個模組,根據概要設計賦予的區域性任務和對外介面,設計並表達出模組的演算法、流程、狀態轉換;
32、策略模式:策略模式定義了一系列的演算法,並將每一個演算法封裝起來,而且使它們還可以相互替換。策略模式讓演算法獨立於使用它的客戶而獨立變化。
抽象工廠:象工廠模式是所有形態的工廠模式中最為抽象和最具一般性的一種形態。抽象工廠模式是指當有多個抽象角色時,使用的一種工廠模式。抽象工廠模式可以向客戶端提供一個介面,使客戶端在不必指定產品的具體的情況下,建立多個產品族中的產品物件。
觀察者模式:觀察者模式(有時又被稱為釋出(publish )-訂閱(Subscribe)模式、模型-檢視(View)模式、源-收聽者(Listener)模式或從屬者模式)是軟體設計模式的一種。在此種模式中,一個目標物件管理所有相依於它的觀察者物件,並且在它本身的狀態改變時主動發出通知。這通常透過呼叫各觀察者所提供的方法來實現。此種模式通常被用來實現事件處理系統。
中介者模式:定義一箇中介物件來封裝系列物件之間的互動。中介者使各個物件不需要顯示地相互引用,從而使其耦合性鬆散,而且可以獨立地改變他們之間的互動。
狀態模式: 當一個物件的內在狀態改變時允許改變其行為,這個物件看起來像是改變了其類。主要解決的是當控制一個物件狀態轉換的條件表示式過於複雜時的情況。把狀態的判斷邏輯轉移到表示不同的一系列類當中,可以把複雜的邏輯判斷簡單化。
33、動態規劃與分治法最大的差別是:適合於用動態規劃法求解的問題,經分解後得到的子問題往往不是互相獨立的(即下一個子階段的求解是建立在上一個子階段的解的基礎上,進行進一步的求解)。
分治策略:對於一個規模為n的問題,若該問題可以容易地解決(比如說規模n較小)則直接解決,否則將其分解為k個規模較小的子問題,這些子問題互相獨立且與原問題形式相同,遞迴地解這些子問題,然後將各子問題的解合併得到原問題的解。
貪心演算法:在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的僅是在某種意義上的區域性最優解。
回溯法:一種選優搜尋法,按選優條件向前搜尋,以達到目標。但當探索到某一步時,發現原先選擇並不優或達不到目標,就退回一步重新選擇,這種走不通就退回再走的技術為回溯法,而滿足回溯條件的某個狀態的點稱為“回溯點”。
分支界限法:類似於回溯法,也是一種在問題的解空間樹T上搜索問題解的演算法。但在一般情況下,分支限界法與回溯法的求解目標不同。回溯法的求解目標是找出T中滿足約束條件的所有解,而分支限界法的求解目標則是找出滿足約束條件的一個解,或是在滿足約束條件的解中找出使某一目標函式值達到極大或極小的解,即在某種意義下的最優解。
34、引數多型:採用引數化模板,通過給出不同的型別引數,使得一個結構有多種型別。
包含多型:同樣的操作可用於一個型別及其子型別。(注意是子型別,不是子類。)包含多型一般需要進行執行時的型別檢查。
過載多型:同一個名(操作符﹑函式名)在不同的上下文中有不同的型別。程式設計語言中基本型別的大多數操作符都是過載多型的。通俗的講法,就是c++中的函式過載。
強制多型:編譯程式通過語義操作,把操作物件的型別強行加以變換,以符合函式或操作符的要求。程式設計語言中基本型別的大多數操作符,在發生不同型別的資料進行混合運算時,編譯程式一般都會進行強制多型。
35、DMZ:demilitarized zone,即隔離區,它是為了解決安裝防火牆後外部網路不能訪問內部網路伺服器的問題,而設立的一個非安全系統與安全系統之間的緩衝區,在這個小網路區域內可以放置一些必須公開的伺服器設施,如企業Web伺服器、FTP伺服器和論壇等;
36、SISD機器是一種傳統的序列計算機,它的硬體不支援任何形式的平行計算,所有的指令都是序列執行。
SIMD是採用一個指令流處理多個數據流。這類機器在數字訊號處理、影象處理、以及多媒體資訊處理等領域非常有效。
MISD是採用多個指令流來處理單個數據流。由於實際情況中,採用多指令流處理多資料流才是更有效的方法,因此MISD只是作為理論模型出現,沒有投入到實際應用之中。
MIMD機器可以同時執行多個指令流,這些指令流分別對不同資料流進行操作。最新的多核計算平臺就屬於MIMD的範疇;
37、在windows系統中,系統會自動通過檔名建立檔案關聯來決定使用什麼程式開啟該影象檔案;
38、當用戶通過鍵盤或滑鼠進入某應用系統時,通常最先獲得鍵盤或滑鼠輸入資訊的是中斷處理程式;
39、CPU響應中斷請求和響應DMA請求的本質區別是:響應中斷時CPU仍然控制匯流排,而響應DMA請求時,CPU要讓出匯流排;
CPU響應程式中斷方式請求是在一條指令執行結束時。
40、 通過DNS伺服器實現網路負載均衡則是一種保證使用者網路訪問的方式。其方法有啟用迴圈,新增每個Web伺服器的主機記錄。
41、並列爭球法使用了迭代的方法;
42、內聚的幾種形式:
偶然內聚:如果一個模組的各成分之間毫無關係,則稱為偶然內聚,也就是說模組完成一組任務,這些任務之間的關係鬆散,實際上沒有什麼聯絡。
邏輯內聚:幾個邏輯上相關的功能被放在同一模組中,則稱為邏輯內聚。如一個模組讀取各種不同型別外設的輸入。
時間內聚:如果一個模組完成的功能必須在同一時間內執行(如系統初始化),但這些功能只是因為時間因素關聯在一起,則稱為時間內聚。
通訊內聚:如果一個模組的所有成分都操作同一資料集或生成同一資料集,則稱為通訊內聚。
順序內聚:如果一個模組的各個成分和同一個功能密切相關,而且一個成分的輸出作為另一個成分的輸入,則稱為順序內聚。
過程內聚:構件或者操作的組合方式是,允許在呼叫前面的構件或操作之後,馬上呼叫後面的構件或操作,即使兩者之間沒有資料進行傳遞。
資訊內聚:模組完成多個功能,各個功能都在同一資料結構上操作,每一項功能有一個唯一的入口點。這個模組將根據不同的要求,確定該模組執行哪一個功能。由於這個模組的所有功能都是基於同一個資料結構(符號表),因此,它是一個資訊內聚的模組。
功能內聚:模組的所有成分對於完成單一的功能都是必須的,則稱為功能內聚。
43、在面向物件方法中,支援多型的是動態繫結;
44、UML狀態圖中轉換,需要事件標記和警界條件滿足時才會進入目標狀態;
45、二叉樹高度:log(n+1);