软件设计师习题笔记-重点习题二
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中任意兩個頂點都是連通的,則稱為連通圖。連通可以是直接相連和間接相連,間接相連的兩個頂點不一定有連線。
?
總結
以上是生活随笔為你收集整理的软件设计师习题笔记-重点习题二的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++工作笔记-对容器模板的初步认识
- 下一篇: Linux学习笔记-标准库中的管道操作