1. 程式人生 > >軟體設計師習題筆記-重點習題二

軟體設計師習題筆記-重點習題二

1.在程式執行過程中,Cache與主存的地址對映是由(硬體自動)完成的。

解析:快取記憶體(Cache)的出現有兩個因素:首先是因為CPU效能和速度提高很快而主存速度較慢且價格高,其次是程式執行的區域性性特點。因此才將速度比較快且容量有限的靜態儲存晶片構成Cache,儘可能發揮CPU的高速度。因此必須要用硬體來實現Cache的全部功能。

2.某四級指令流水線分別完成取指、取數、運算、儲存結果四步操作。若完成上述操作的時間依次為8ns、9ns、 4ns、8ns,則該流水線的操作週期應至少為(9)ns 。

解析:流水線週期,只有第一次執行的時候是所有步驟時間相加,後續的非第一次執行的週期為所有步驟中時間最長的那個值,此題求最小週期,即為9ns

3.計算機系統的主存主要是由(DRAM)構成的。

解析:DRAM: 動態隨機存取儲存器; SRAM: 靜態隨機存取儲存器; Cache: 快取記憶體; EEPROM: 電可擦可程式設計只讀儲存器

4.關於海明碼的敘述中,正確的是(海明碼利用奇偶性進行檢錯和糾錯)。

解析:海明碼的檢錯、糾錯基本思想是將有效資訊按某種規律分成若干組,每組安排一個校驗位進行奇偶性測試,然後產生多位檢測資訊,並從中得出具體的出錯位置,最後通過對錯誤位取反(也是原來是1就變成0,原來是0就變成1)來將其糾正。

5.下列攻擊行為中,屬於典型被動攻擊的是(會話攔截)。

解析:計算機網路面臨的安全威脅大致有四種:截獲、中斷、篡改、偽造其中截獲資訊的行為屬於被動攻擊中斷、篡改、偽造資訊的行為屬於主動攻擊

6.(漏洞掃描)不屬於入侵檢測技術

解析:漏洞掃描為另一種安全防護策略。

7.某企業財務系統的需求中,屬於功能需求的是(每個月特定的時間發放員工工資)。

解析:需求分析主要是:功能、效能、資料和介面需求。功能需求:軟體系統必須完成的所有功能。效能需求:響應時間、吞吐量、處理時間等。資料要求:包括基本資料元素、資料元素之間的邏輯關係、資料量和峰值等。描述手段是ER模型。介面需求:描述軟體系統的外部特性。即系統從外部輸入哪些資料,系統向外部輸出哪些資料。

8.將高階語言源程式通過編譯或解釋方式進行翻譯時,可以先生成與源程式等價的某種中間程式碼。以下關手中間程式碼的敘途中,正確的是(字尾式和三地址碼是常用的中間程式碼)。

解析:中間程式碼(Intermediate Representation或者IR):複雜性介於源程式語言和機器語言的一種表示形式。編譯程式鎖使用的中間程式碼有多種形式。常見的有逆波蘭記號,三元式,四元式,和樹形表示。四元式是一種普遍採用的中間程式碼形式,很類似於三地址指令,有時把這類中間表示稱為“三地址程式碼”,這種表示可以看作是一種虛擬三地址機的通用匯編碼,每條”指令“包含操作符和三個地址,兩個是為運算物件的,一個是為結果的。

9.某檔案系統採用多級索引結構。若磁碟塊的大小為1K位元組,每個塊號佔3位元組,那麼採用二級索引時的檔案最大長度為(116281)位元組。

解析:欲求二級索引,首先算出一級索引。一級索引需要使用一個磁碟塊來儲存直接索引的塊號。由題目知,磁碟塊的大小為1K=1024位元組,每個塊號需佔3位元組,則一個磁碟塊可以儲存的塊號的個數為1024/3=341。所以,採用一級索引時,檔案最大長度為1024*341/1024=341KB;採用二級索引時的檔案最大長度為341KB×341=116281KB。

10.用白盒測試方法對如下圖所示的流程圖進行測試。若要滿足分支覆蓋,則至少要(2)個測試用例,正確的測試用例對是((1,1,5;5)和(5,2,20;9))(測試用例的格式為(A,B,X;X))。

11.配置管理貫穿軟體開發的整個過程。以下內容中,不屬於配置管理的是(風險管理)。

解析:軟體配置管理的主要目標是標識變更、控制變更、確保變更更正確的實現、報告有關變更,風險管理是另外一個大類。

12.極限程式設計(XP)的十二個最佳實踐不包括(精心設計)。

解析: 現場客戶 ( On-site Customer ) 程式碼規範 ( Code Standards ) 每週40小時工作制 ( 40-hour Week ) 計劃博弈 ( Planning Game ): 要求結合專案進展和技術情況,確定下一階段要開發與釋出的系統範圍。 系統隱喻 ( System Metaphor ): 通過隱喻來描述系統如何運作、新的功能以何種方式加入到系統。它通常包含了一些可以參照和比較的類和設計模式。 簡單設計 ( Simple Design ) 測試驅動 ( Test-driven ) 程式碼重構 ( Refactoring ) 程式碼重構是指在不改變系統行為的前提下,重新調整、優化系統的內部結構以減少複雜性、消除冗餘、增加靈活性和提高效能。 成對程式設計 ( Pair Programming ) XP 認為開發小組的每個成員都有更改程式碼的權利,所有的人對於全部程式碼負責。 持續整合 ( Continuous Integration ) 提倡在一天中整合系統多次,而且隨著需求的改變,要不斷的進行迴歸測試。 小型釋出 ( Small Release ) 強調在非常短的週期內以遞增的方式釋出新版本,從而可以很容易地估計每個迭代週期的進度,便於控制工作量和風險;同時,也可以及時處理使用者的反饋。

13.以下關於管道過濾器體系結構的優點的敘述中,不正確的是(提高效能)。

解析: 管道/過濾器體系結構具有許多很好的特點: (1)使得軟構件具有良好的隱蔽性和高內聚、低耦合的特點; (2)允許設計者將整個系統的輸入/輸出行為看成是多個過濾器的行為的簡單合成; (3)支援軟體重用。重要提供適合在兩個過濾器之間傳送的資料,任何兩個過濾器都可被連線起來; (4)系統維護和增強系統性能簡單。新的過濾器可以新增到現有系統中來;舊的可以被改進的過濾器替換掉; (5)允許對一些如吞吐量、死鎖等屬性的分析; (6)支援並行執行。每個過濾器是作為一個單獨的任務完成,因此可與其它任務並行執行; 但是,這樣的系統也存在著若干不利因素: (1)通常導致程序成為批處理的結構。這是因為雖然過濾器可增量式地處理資料,但它們是獨立的,所以設計者必須將每個過濾器看成一個完整的從輸入到輸出的轉換。 (2)不適合處理互動的應用。當需要增量地顯示改變時,這個問題尤為嚴重。 (3)因為在資料傳輸上沒有通用的標準,每個過濾器都增加了解析和合成資料的工作,這樣就導致了系統性能下降,並增加了編寫過濾器的複雜性。綜合分析現有管道一過濾器體系結構的研究成果,可以發現管道一過濾器體系結構沒有給出管道和過濾器如何組裝以實現系統的方法,也沒有給出過濾器通過管道進行資料傳輸的方式,而且對過濾器和管道各自內部結構沒有清晰的描述,因此可以認為管道一過濾器體系結構沒有深入對管道一過濾器本質進行揭示。

14.模組A將學生資訊,即學生姓名、學號、手機號等放到一個結構體中,傳遞給模組B。模組A和B之間的藕合型別為(標記)藕合。

解析: 資料耦合:一個模組訪問另一個模組時,彼此之間是通過簡單資料引數 (不是控制引數、公共資料結構或外部變數) 來交換輸入、輸出資訊的。 標記耦合:一組模組通過引數表傳遞記錄資訊,就是標記耦合。這個記錄是某一資料結構的子結構,而不是簡單變數。其實傳遞的是這個資料結構的地址; 控制耦合:如果一個模組通過傳送開關、標誌、名字等控制資訊,明顯地控制選擇另一模組的功能,就是控制耦合。 內容耦合:當一個模組直接修改或操作另一個模組的資料,或者直接轉入另一個模組時,就發生了內容耦合。此時,被修改的模組完全依賴於修改它的模組。

15.如圖所示的UML類圖中,Magazine和Page之間為(組合)關係。

解析: 組合關係是整體與部分的關係,但部分不能離開整體而單獨存在。如公司和部門是整體和部分的關係,沒有公司就不存在部門。組合關係是關聯關係的一種,是比聚合關係還要強的關係,它要求普通的聚合關係中代表整體的物件負責代表部分的物件的生命週期。在UML類圖中用帶實心菱形的實線來體現,其中菱形指向整體。

16.編譯過程中進行的語法分析主要是分析(程式語句的結構是否合法)。

解析: 詞法分析和語法分析的本質都是對源程式的結構進行分析 語義分析階段是分析各語法結構的含義,檢查源程式是否包含靜態語義錯誤,並收集型別資訊後供後面的程式碼生成階段使用。語義分析的一個主要工作是進行型別分析和檢查。

17.採用三級結構/兩級映像的資料庫體系結構,如果對資料庫的一張表建立聚簇索引,改變的是資料庫的(內模式)。

解析: 聚簇索引的順序就是資料的物理儲存順序,,基本表文件和索引檔案一起構成了資料庫系統的內模式

18.設S是一個長度為n的非空字串,其中的字元各不相同,則其互異的非平凡子串(非空且不同於S本身)個數為((n+2) (n-1)/2)。

解析: 本題可以利用特殊值計算。當n=1時,由於非平凡子串不包括其本身,所以個數應該0個。

19.假設某訊息中只包含7個字元{a,b,c,d,e,f,g},這7個字元在訊息中出現的次數為{5,24,8,17,34,4,13} ,利用哈夫曼樹(最優二叉樹)為該訊息中的字元構造符合字首編碼要求的不等長編碼。各字元的編碼長度分別為(a:4,b:2,c:3,d:3,e:2,f:4,g:3)。

解析: 哈夫曼樹

20.設某二叉樹採用二叉連結串列表示(即結點的兩個指標分別指示左、右孩子)。當該二叉樹包含k個節點時,其二叉連結串列節點中必有(k+1)個空的孩子指標。

解析: 特殊值帶入法

21.關於無向連通圖G的敘述中,不正確的是(G中任意兩個頂點之間均有邊存在)

解析: 在無向圖G中,若從頂點vi到頂點Vj有路徑,則稱頂點Vi和頂點Vj是連通的。如果無向圖G中任意兩個頂點都是連通的,則稱為連通圖。連通可以是直接相連和間接相連,間接相連的兩個頂點不一定有連線。