软件设计师习题笔记-重点习题一
1.對有n個結點、e條邊且采用數組表示法(即鄰接矩陣存儲)的無向圖進行深度優先遍歷,時間復雜度為(O(n^2))。
解析:鄰接矩陣有n*n個點,算法需要遍歷鄰接矩陣的每一個點所以時間復雜度是O(n*n)
2.浮點數的表示分為階和尾數兩部分。兩個浮點數相加時,需要先對階,即(將小階向大階對齊,同時將尾數右移n位?)(n為階差的絕對值)。
解析:對階時,小數向大數看齊;對階是通過較小數的尾數右移實現的。
3.流水線的吞吐率是指單位時間流水線處理的任務數,如果各段流水的操作時間不同,則流水線的吞吐率是(最長流水段操作時間)的倒數。
解析:流水線的吞吐率是指單位時間流水線處理機輸出的結果的數目,因此流水線的吞吐率為一個流水級時間的倒數,即最長流水級時間的倒數。
4.數據字典是結構化分析的一個重要輸出。數據字典的條目不包括(外部實體)。
解析:數據字典是指對數據的數據項、數據結構、數據流、數據存儲、處理邏輯、外部實體等進行定義和描述,其目的是對數據流程圖中的各個元素做出詳細的說明,使用數據字典為簡單的建模項目。其條目有數據流、數據項、數據存儲、基本加工等。
5.某商店業務處理系統中,基本加工“檢查訂貨單”的描述為:若訂貨單金額大于5000元,且欠款時間超過60天,則不予批準;若訂貨單金額大于5000元,且欠款時間不超過60天,則發出批準書和發貨單;若訂貨單金額小于或等于500元,則發出批準書和發貨單,若欠款時間超過60天,則還要發催款通知書。現采用決策表表示該基本加工,則條件取值的組合數最少是(3)。
解析:
根據題意可得出如下決策表:
| 條件項 | 條件值 | |||
| 1 | 2 | 3 | 4 | |
| >5000元 | Y | Y | N | N |
| >60 天 | Y | N | Y | N |
| 批準書 | N | Y | Y | Y |
| 發貨單 | N | Y | Y | Y |
| 催款通知書 | N | N | Y | N |
其中第2條和第4條可進行合并,故該條件取值的組合數為3。
6.工作量估算模型 COCOMO II的層次結構中,估算選擇不包括(用例數)。
解析:COCOMOII模型也需要使用規模估算信息,在模型層次結構中有3種不同規模估算選擇,即:對象點、功能點和代碼行。
7.(Lisp)是一種函數式編程語言。
解析:LISP是一種通用高級計算機程序語言,長期以來壟斷人工智能領域的應用。LISP作為因應人工智能而設計的語言,是第一個聲明式系內函數式程序設計語言,有別于命令式系內過程式的C、Fortran和面向對象的Java、C#等結構化程序設計語言。
8.假設鐵路自動售票系統有n個售票終端,該系統為每個售票終端創建一個進程Pi(i=1,2,…,n)管理車票銷售過程。假設Tj(j=1,2,…,m)單元存放某日某趟車的車票剩余票數,Temp為Pi進程的臨時工作單元,x為某用戶的購票張數。Pi進程的工作流程如下圖所示,用P操作和Ⅴ操作實現進程間的同步與互斥。初始化時系統應將信號量S賦值為(1)。圖中(a)、(b)和(c)處應分別填入(P(S)、V(S)和V(S))。
解析:S的賦值為1的原因:信號量S應當是該單元數,對某日某趟車為一個單元的話,單元數只能為1。第二空為(a)應為申請資源,(b)(c)應當為釋放資源,故是一個P,兩個V操作。
9.I/O設備管理軟件一般分為4個層次,如下圖所示。圖中①②③分別對應(與設備無關的系統軟件、設備驅動程序、中斷處理程序)。
?
解析:具體層次從上往下分別為用戶級I/O層、設備無關I/O層、設備驅動程序、中斷處理程序、硬件。
硬件:完成具體的I/O操作。
中斷處理程序:I/O完成后喚醒設備驅動程序。
設備驅動程序:設置寄存器,檢查設備狀態。
設備無關I/O層:設備名解析、阻塞進程、分配緩沖區。
用戶級I/O層:發出I/O調用。
10.軟件維護工具不包括(配置管理)工具。
解析:輔助軟件維護過程中的活動的軟件稱為“軟件維護工具”,它輔助維護人員對軟件代碼及其文檔進行各種維護活動。軟件維護工具主要有:1、版本控制工具;2、文檔分析工具;3、開發信息庫工具;4、逆向工程工具;5、再工程工具;6、配置管理支持工具。
11.對下圖所示的程序流程圖進行判定覆蓋測試,則至少需要(2)個測試用例。采用 McCabe度量法計算其環路復雜度為(3)。
?
解析:
1.判定覆蓋是設計足夠多的測試用例,使得程序中的每一個判斷至少獲得一次“真”和一次“假”,即使得程序流程圖中的每一個真假分支至少被執行一次。根據題意,只需2個測試用例即可。
2.根據環路復雜度的計算公式V(G)=m-n+2=11-10+2=3。(箭頭為m,控件為n)
12.軟件調試的任務就是根據測試時所發現的錯誤,找出原因和具體的位置,進行改正。其常用的方法中,(歸納法)是指從測試所暴露的問題出發,收集所有正確或不正確的數據,分析它們之間的關系,提出假想的錯誤原因,用這些數據來證明或反駁,從而查出錯誤所在。
解析:所謂演繹推理,就是從一般性的前提出發,通過推導即“演繹”,得出具體陳述或個別結論的過程。歸納法以一系列經驗事物或知識素材為依據,尋找出其服從的基本規律或共同規律,并假設同類事物中的其他事物也服從這些規律,從而將這些規律作為預測同類事物的其他事物的基本原理的一種認知方法。
13.在下列機制中,(動態綁定)是指過程調用和響應調用所需執行的代碼在運行時加以結合;而(靜態綁定)是過程調用和響應調用所需執行的代碼在編譯時加以結合。
解析:程序運行過程中,把函數(或過程)調用與響應調用所需要的代碼相結合的過程稱為動態綁定。靜態綁定是指在程序編譯過程中,把函數(方法或者過程)調用與響應調用所需的代碼結合的過程稱之為靜態綁定。
14.語法制導翻譯是一種(靜態語義分析)方法。
解析:翻譯的任務:首先是語義分析和正確性檢查,若正確,則翻譯成中間代碼或目標代碼。其基本思想是,根據翻譯的需要設置文法符號的屬性,以描述語法結構的語義。例如,一個變量的屬性有類型,層次,存儲地址等。表達式的屬性有類型,值等。屬性值的計算和產生式相聯系。隨著語法分析的進行,執行屬性值的計算,完成語義分析和翻譯的任務。
總結
以上是生活随笔為你收集整理的软件设计师习题笔记-重点习题一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt工作笔记-QMap查找时要注意的问题
- 下一篇: Qt工作笔记-Qt文档阅读笔记-setM