2021年11月软件设计师真题解析
計算機指令系統采用多種尋址方式。立即尋址是指操作數包含在指令中,寄存器尋址是指操作數在寄存器中,直接尋址是指操作數的地址在指令中。這三種尋址方式獲取操作數的速度 (1) 。
A. 立即尋址最快,寄存器尋址次之,直接尋址最慢
B. 寄存器尋址最快,立即尋址次之,直接尋址最慢
C. 直接尋址最快,寄存器尋址次之,立即尋址最慢
D. 寄存器尋址最快,直接尋址次之,立即尋址最慢
所屬知識點:計算機組成與體系結構>尋址方式
答案解析:A
有關于尋址方式查詢速度:
立即尋址是操作數直接在指令中,速度是最快的;寄存器尋址是將操作數存放在寄存器中,速度中間;直接尋址方式是指令中存放操作數的地址,速度最慢。
以下關于PCI總線和SCSI總線的敘述中,正確的是 (2) 。
A. PCI總線是串行外總線,SCSI總線是并行內總線
B. PCI總線是串行內總線,SCSI總線是串行外總線
C. PCI總線是并行內總線,SCSI總線是串行內總線
D. PCI總線是并行內總線,SCSI總線是并行外總線
所屬知識點:計算機組成與體系結構>總線系統
答案解析:D
屬于常見總線的分類:
PCI總線:是目前微型機上廣泛采用的內總線,采用并行傳輸方式。
SCS總線:小型計算機系統接口時一條并行外總線,廣泛用于連接軟硬磁盤、光盤、掃描儀等
以下關于中斷方式與DMA方式的敘述中,正確的是 (3) 。
A. 中斷方式與DMA方式都可實現外設與CPU之間的并行工作
B. 程序中斷方式和DMA方式在數據傳輸過程中都不需要CPU的干預
C. 采用DMA方式傳輸數據的速度比程序中斷方式的速度慢
D. 程序中斷方式和DMA方式都不需要CPU保護現場
所屬知識點:計算機組成與體系結構>輸入/輸出技術
答案解析:D
輸入/輸出技術的三種方式:
直接查詢控制:有無條件傳送和程序查詢方式,都需要通過CPU執行程序來查詢外設的狀態,判斷外設是否準備好接收數據或準備好了向CPU輸入的數據。在這種情況下CPU不做別的事情,只是不停地對外設的狀態進行查詢。
中斷方式:當I/O系統與外設交換數據時,CPU無須等待也不必查詢I/O的狀態,而可以抽身來處理其他任務。當I/O系統準備好以后,則發出中斷請求信號通知CPU,CPU接到中斷請求信號后,保存正在執行的程序的現場,轉入I/O中斷服務程序的執行,完成于I/O系統的數據交換,然后再返回被打斷的程序繼續執行。與程序控制方式相比,中斷方式因為CPU無需等待而提高了效率。
DMA:直接寄存器存取方式,是指數據在內存與I/O設備間的直接成塊傳送,即在內存與I/O設備間傳送一個數據塊的過程中,不需要CPU的任何干涉,只需要CPU正在過程開始啟動與過程結束時的處理,實際操作由DMA硬件直接執行完成。
中斷向量提供 (4) 。
A. 被選中設備的地址 B. 待傳送數據的起始地址
C. 中斷服務程序入口地址 D. 主程序的斷點地址
所屬知識點:計算機組成與體系結構>輸入/輸出技術
答案解析:C
屬于輸入輸出技術的中斷方式:
中斷向量表:中斷向量表用來保存各個中斷源的中斷服務程序的入口地址。當外設發出中斷請求信號以后,由中斷控制器確定其中斷號,并根據中斷號查找中斷向量表來取得其中斷服務程序的入口地址,同時INTC把中斷請求信號提交給CPU。
(5) 是一種需要通過周期性刷新來保持數據的存儲器件。
A. SRAM B.DRAM C. FLASH D. EEPROM
所屬知識點:計算機組成與體系結構>層次化存儲體系
答案解析:B
DRAM:動態隨機存取器存儲器,又叫主存,是與CPU直接交換數據的內部存儲器。它可以隨時讀寫(刷新時除外),而且速度很快,通常作為操作系統或其他正在運行中的程序的臨時數據存儲媒介,通過周期性刷新來保持數據的存儲器件,斷電丟失。
SRAM:靜態隨機存取器存儲器,靜態隨機存取存儲器是隨機存取存儲器的一種。所謂的“靜態”,是指這種存儲器只要保持通電,里面儲存的數據就可以恒常保持。
FLASH:閃存,特性介于EPROM和EEPROM之間,類似于EEPROM,也可以使用電信號進行信息的擦除操作。整塊閃存可以在數秒內刪除。
EEPROM:電擦除可編程的只讀存儲器,于EPROM相似,EEPROM中的內容既可以讀出,也可以進行改寫。
某中機器的浮點數表示格式如下(允許非規格化表示)。若階碼以補碼表示,尾數以原碼表示,則1 0001 0 0000000001表示的浮點數是(6) 。
A. 2^-16×2-10 B.2^-15×2^-10
C. 2^-16×(1-2^-10 ) D.2^-15×(1-2^-10)
所屬知識點:計算機組成與體系結構>浮點數的表示
答案解析:B
考查對于浮點數表示。
浮點數表示:N=尾數*基數^指數
其中尾數是用原碼表示,是一個小數,通過表格和題干可知, 0 0000000001是尾數部分,共計后11位,其中第1位為0表示正數,展開得
階碼部分是用補碼表示,是一個整數,通過表格和題干可知,1 0001是整數部分,共計前5位,要計算其具體數值需要將其轉換成原碼,通過第1位符號位1可知其為負數,補碼:10001,反碼:10000 原碼:11111,數據為-15,基數在浮點數表示為2,可得2^-15×2^-10,2^-15表示2的-15次方,
以下可以有效防止計算機病毒的策略是 (7) 。
A. 部署防火墻 B.部署入侵監測系統
C. 安裝并及時升級防病毒軟件 D. 定期備份數據文件
所屬知識點:信息安全>其他網絡安全控制技術
答案解析:C
部署防火墻:防火墻技術是通過有機結合各類用于安全管理與篩選的軟件和硬件設備,幫助計算機網絡于其內、外網之間構建一道相對隔絕的保護屏障,以保護用戶資料與信息安全性的一種技術,并不能有效的防范病毒。
部署入侵檢測系統:入侵檢測系統(intrusion detection system,簡稱“IDS”)是一種對網絡傳輸進行即時監視,在發現可疑傳輸時發出警報或者采取主動反應措施的網絡安全設備。是對一種網絡傳輸的監視技術,并不能有效的防范病毒。
安裝并及時升級防病毒軟件:針對于防病毒軟件本身就是防范病毒最有效最直接的方式。
定期備份數據文件:數據備份是容災的基礎,是指為防止系統出現操作失誤或系統故障導致數據丟失,而將全部或部分數據集合從應用主機的硬盤或陣列復制到其它的存儲介質的過程。是為了防止系統數據流失,不能有效的防范病毒。
AES是一種 (8) 算法。
A. 公鑰加密 B.流密碼 C. 分組加密 D. 消息摘要
所屬知識點:信息安全>對稱加密與非對稱加密
答案解析:C
AES是一個迭代的、對稱密鑰分組的密碼,它可以使用128、192和256位密鑰。并且使用128位分組加密和解密數據。P41頁
下列不能用于遠程登陸或控制的是 (9) 。
A. IGMP B.SSH C. Telnet D. RFB
所屬知識點:信息安全>網絡安全協議
答案解析:A
IGMP:屬于網絡的組播協議,不能實現相關應用層的遠程登錄。
SSH:SSH 為建立在應用層基礎上的安全協議。SSH 是較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。
Telnet:Telnet協議是TCP/IP協議族中的一員,是Internet遠程登錄服務的標準協議和主要方式。它為用戶提供了在本地計算機上完成遠程主機工作的能力。在終端使用者的電腦上使用telnet程序,用它連接到服務器。
RFB:RFB ( Remote Frame Buffer 遠程幀緩沖) 協議是一個用于遠程訪問圖形用戶界面的簡單協議。由于 RFB 協議工作在幀緩沖層,因此它適用于所有的窗口系統和應用程序。
包過濾防火墻對 (10) 的數據報文進行檢查。
A.應用層 B. 物理層 C. 網絡層 D. 鏈路層
所屬知識點:信息安全>防火墻技術
答案解析:C
考查包過濾防火墻的工作原理。
包過濾防火墻是最簡單的一種防火墻,它在網絡層截獲網絡數據包,根據防火墻的規則表,來檢測攻擊行為。包過濾防火墻一般作用在網絡層(IP層),故也稱網絡層防火墻(Network Lev Firewall)或IP過濾器(IP filters)。數據包過濾(Packet Filtering)是指在網絡層對數據包進行分析、選擇。通過檢查數據流中每一個數據包的源IP地址、目的IP地址、源端口號、目的端口號、協議類型等因素或它們的組合來確定是否允許該數據包通過。在網絡層提供較低級別的安全防護和控制。
防火墻通常分為內網、外網和DMZ三個區域,按照受保護程度,從低到高正確的排列次序為 (11) 。
A.內網、外網和DMZ B. 外網、DMZ和內網
C. DMZ、內網和外網 D. 內外、DMZ和外網
所屬知識點:信息安全>防火墻技術
答案解析: B
考查應用級關于屏蔽子網的防火墻。在一個用路由器連接的局域網中,我們可以將網絡劃分為三個區域:安全級別最高的LAN Area(內網),安全級別中等的DMZ區域和安全級別最低的Internet區域(外網)。三個區域因擔負不同的任務而擁有不同的訪問策略。我們在配置一個擁有DMZ區的網絡的時候通常定義以下的訪問控制策略以實現DMZ區的屏障功能。
(12) 是構成我國保護計算機軟件著作權的兩個基本法律文件。
A.《計算機軟件保護條例》和《軟件法》
B. 《中華人民共和國著作權法》和《軟件法》
C. 《中華人民共和國著作權法》和《計算機軟件保護條例》
D. 《中華人民共和國版權法》和《中華人民共和國著作權法》
所屬知識點:法律法規與標準化>保護范圍與對象
答案解析:C
考查知識產權的保護范圍和對象。對于軟件著作權和軟件作品受到《中華人民共和國著作權法》和《計算機軟件保護條例》兩個文件的保護。
X公司接受Y公司的委托開發了一款應用軟件,雙方沒有訂立任何書面合同。在此情形下, (13) 享有該軟件的著作權。
A.X、Y公司共同 B.X公司 C. Y公司 D. X、Y公司均不
所屬知識點:法律法規與標準化>知識產權人確定
答案解析:B
考查委托開發的情況。
有合同約定,著作權歸委托方,那么就歸屬委托方;而在合同中未約定著作權歸屬,歸創作方。對于題干描述說明未簽訂書面合同,則該著作權歸創作方,(X公司接受Y公司的委托),即創作方X公司。
廣大公司(經銷商)擅自復制并銷售工大公司開發的OA軟件已經構成侵權。鴻達公司在不知情時從廣大公司(經銷商)處購入該軟件并已安裝使用。在鴻達公司知道了所使用的軟件為侵權復制的情形下,其使用行為 (14) 。
A.侵權,支付合理費用后可以繼續使用該軟件
B. 侵權,須承擔賠償責任
C. 不侵權,可繼續使用該軟件
D. 不侵權,不需承擔任何法律責任
所屬知識點:法律法規與標準化>侵權判斷
答案解析:A
本題考查知識產權。
我國計算機軟件保護條例第30條規定“軟件的復制品持有人不知道也沒有合理理由應當知道該軟件是侵權復制品的,不承擔賠償責任;但是,應當停止使用、銷毀該侵權復制品。如果停止使用并銷毀該侵權復制品將給復制品使用人造成重大損失的,復制品使用人可以在向軟件著作權人支付合理費用后繼續使用?!兵欉_公司在獲得軟件復制品的形式上是合法的(向經銷商購買),但是由于其沒有得到真正軟件權利人的授權,其取得的復制品仍是非法的,所以鴻達公司的使用行為屬于侵權行為。
鴻達公司應當承擔的法律責任種類和劃分根據主觀狀態來確定。首先,法律確立了軟件著作權人的權利進行絕對的保護原則,即軟件復制品持有人不知道也沒有合理理由應當知道該軟件是侵權復制品的,也必須承擔停止侵害的法律責任,只是在停止使用并銷毀該侵權復制品將給復制品使用人造成重大損失的情況下,軟件復制品使用人可繼續使用,但前提是必須向軟件著作權人支付合理費用。其次,如果軟件復制品持有人能夠證明自己確實不知道并且也沒有合理理由應當知道該軟件是侵權復制品的,軟件復制品持有人除承擔停止侵害外,不承擔賠償責任。
軟件復制品持有人一旦知道了所使用的軟件為侵權復制品時,應當履行停止使用、銷毀該軟件的義務。不履行該義務,軟件著作權人可以訴請法院判決停止使用并銷毀侵權軟件。如果軟件復制品持有人在知道所持有軟件是非法復制品后繼續使用給權利人造成損失的,應該承擔賠償責任。
繪制分層數據流圖(DFD)時需要注意的問題中,不包括(15) 。
A.給圖中的每個數據流、加工、數據存儲和外部實體命名
B. 圖中要表示出控制流
C. 一個加工不適合有過多的數據流
D. 分解盡可能均勻
所屬知識點:軟件工程>數據流圖與數據字典p334
答案解析:B
繪制分層數據流圖,應該嚴格遵循父子圖平衡原則。這就規定了不能出現黑洞、灰洞和奇跡的三種狀況,分解子圖盡可能細致一些。
所以對于:給圖中的每個數據流、加工、數據存儲和外部實體命名、一個加工不適合有過多的數據流、分解盡可能均勻都是需要注意的。
僅有B選項表示圖中要表示出控制流不符合,在分層數據流圖并沒有強調過需要表示出控制流,P334描述如下:
以下關于軟件設計原則的敘述中,不正確的是(16) 。
A.將系統劃分為相對獨立的模塊
B. 模塊之間的耦合盡可能小
C. 模塊規模越小越好
D. 模塊的扇入系數和扇出系數合理
所屬知識點:軟件工程>模塊設計原則
答案解析:C
考查關于軟件設計原則。
軟件設計原則始終強調高內聚、低耦合的設計原則。
具體包括:
保持模塊的大小適中
盡可能減少調用的深度
多扇入,少扇出。
單入口,單出口
模塊的作用域應該在模塊之內
功能應該是可以被預測的。
綜上所述,僅有C選項模塊規模越小越好是不符合設計原則的。
在風險管理中,通常需要進行風險監測,其目的不包括(17) 。
A.消除風險
B. 評估所預測的風險是否發生
C. 保證正確實施了風險緩解步驟
D. 收集用于后續進行風險分析的信息
所屬知識點:項目管理>風險管理
答案解析:A
風險是不以人的意志為轉移的,是不可消除的,風險監測主要是對風險進行預測,評估,收集相關的信息,用來防止風險,從而做好相關的防范措施。
對于評估所預測的風險是否發生、保證正確實施了風險緩解步驟、收集用于后續進行風險分析的信息都是風險監測的目的,至于A選項消除風險,風險是無法被消除掉的,只能盡量避免。
下圖是一個軟件項目的活動圖,其中頂點表示項目里程碑,連接頂點的邊表示活動,邊上的權重表示完成該活動所需要的時間(天),則活動 (18) 不在關鍵路徑上?;顒覤I和EG的松弛時間分別是 (19) 。
(18) A.BD B.BI C.GH D.KL
(19) A.0和1 B.1和0 C.0和2 D.2和0
所屬知識點:項目管理>Gant圖與Pert圖
答案解析:BB
考查項目管理計算問題。
對于關鍵路徑有兩條分別是:ABDIJKL和AEGHKL兩條關鍵路徑,長度為20.
針對第一問,不在關鍵路徑上的活動是BI,其余的BD,GH,KL都在關鍵路徑上。
針對第二問,要求BI和EG的松弛時間,BI活動通過的路徑有兩條ABIJKL和ABIJL,其中兩條路徑的長度都為19,(如果有兩條不同的路徑應該選擇最大的一條),用關鍵路徑減去該路徑的長度20-19=1,表示該活動的松弛時間?;顒覧G位于該關鍵路徑AEGHKL上,關鍵路徑上的活動自由時差和總時差都為0,總時差即松弛時間為0
下圖所示的二叉樹表示的算數表達式是 (20) (其中的*、/、-表示乘、除、減運算)。
20) A.a*bc-d B. a*bc-d C.a*bc-d D.a*b-cd
所屬知識點:程序設計語言>后綴表達式
答案解析:C
本題考查算術表達式相關問題。
算術表達式與樹的中綴表達式類似,按照左根右的順序,其中在算術表達式中符號位表示根。
根據該二叉樹的表示,我們可以得知*為該樹的總根,將左子樹和右子樹分隔開來。左邊部分是a,右邊部分是以-作為右子樹的總根,左邊是b/c,右邊是d,綜合得出算術表達式應該為a*(b/c-d)
對高級程序語言進行編譯的過程中,使用 (21) 來記錄源程序中各個字符的必要信息,以輔助語義的正確性檢查和代碼生成。
(21) A.決策表 B. 符號表 C. 廣義表 D.索引表
所屬知識點:程序設計語言>編譯器工作過程
答案解析:B
考查分析語義分析階段相關問題。
語義分析階段主要是分析各語法結構的含義,檢查源程序是否包含靜態語義錯誤,并收集類型信息提供后面的代碼生成階段使用。
在確認源程序的語法和語義后,可以對其進行翻譯并給出源程序的內部表示。對于聲明語句,需要記錄所遇到的符號的信息,所以應該進行符號表的填查工作,用來記錄源程序中各個符號的必要信息,以輔助語義的正確性檢查和代碼生成。
至于決策表是用于測試的,廣義表是針對數據結構的表示,索引表是數據庫中指示邏輯和物理記錄對應的關系。
下圖所示為一個非確定的有限自動機(NFA),S0為初態,S3為終態。該NFA識別的字符串為 (22) 。
(22) A.不能包含連續的字符“0” B. 不能包含連續的字符“1”
C. 必須以“101”開頭 D. 必須以“101”結尾
所屬知識點:程序設計語言>有限自動機
答案解析:D
本題考查NFA有限自動機相關問題。
針對這類問題,可以采取找出對應反例的形式表示。
S0是初態,S3是終態,識別出從S0為初態到S3為終態的路徑。
可以看到無論如何到達S3終態都需要經過S1-S2,即末尾必須存在”101“結尾的。
對于A和B選項不能包含連續字符的”0“和“1”,我們可以看到在S0初態中,有1個字符串0和1自循環,是可以包含連續的”0“和”1“的,所以錯誤。
對于C選項必須以“101”開頭,說法錯誤,可以任意10的字符開頭
在單處理機計算機系統中有1臺打印機、1臺掃描儀,系統采用先來先服務調度算法。假設系統中有進程P1、P2、P3、P4,其中P1為運行狀態,P2為就緒狀態,P3等待打印機,P4等待掃描儀。此時,若P1釋放了掃描儀,則進程P1、P2、P3、P4的狀態分別為(23) 。
(23) A.等待、運行、等待、就緒 B. 運行、就緒、等待、就緒
C. 就緒、就緒、等待、運行 D. 就緒、運行、等待、就緒
所屬知識點:操作系統>進程的狀態
答案解析:B
考查三態模型相關問題。
在題干提示有相關進程P1,P2,P3,P4,兩個資源打印機和掃描儀,三個狀態:運行,就緒,等待。
首先題干已經明確說明P1處于運行態,釋放了掃描儀,此時P1還有打印機沒有運行完成,應該仍處于運行狀態。
對于P2而言,單處理機計算機系統只允許擁有1個運行狀態,P1此時還未運行完成,未分配對應的CPU,仍處于就緒態。
對于P3而言,等待打印機,處于等待狀態,此時沒有關于打印機的資源釋放,仍處于等待狀態。
對于P4而言,等待掃描儀,處于等待狀態,有相關的掃描儀資源釋放,應該得到相應的資源發生,從等待狀態變成了就緒狀態。
進程P1、P2、P3、P4、P5和P6的前趨圖如下所示。用PV操作控制這6個進程之間同步與互斥的程序如下,程序中的空①和空②處應分別為 (24) ,空③和空④應分別為(25) ,空⑤和空⑥應分別為 (26) 。
(24) A.V(S1)和P(S2)P(S3) B. V(S1)和V(S2)V(S3)
C. P(S1)和P(S2)V(S3) D. P(S1)和V(S2)V(S3)
(25) A.V(S3)和P(S3) B.V(S4)和P(S3)
C. P(S3)和P(S4) D.V(S4)和P(S4)
(26) A.V(S6)和P(S5) B. V(S5)和P(S6)
C. P(S5)和V(S6) D.P(S5)和V(S5)
所屬知識點:操作系統>前趨圖與PV操作
答案解析:DBA
本題考查P,V操作前驅圖相關問題。
對于這種問題,根據箭頭的指向判斷相應的PV操作,先理清楚前趨圖中的邏輯關系:P1沒有前驅,P2的前驅是P1,P3的前驅是P2,P4的前驅是P2,P5的前驅是P3,P6的前驅是P4,P5。前驅就是指只有在前驅進程完成后,該進程才能開始執行。由圖可知,這里進程之間有6條有向弧,分別表示為P1→P2,P2→P3,P2→P4,P3→P5,P4→P6,P5→P6,各個進程間的邏輯關系,那么我們需要設定6個信號量(S1、S2、S3、S4、S5、S6),利用PV操作來控制這些過程。
對于進程P1,完成之后,需要通知P2,所以在P1執行了之后,實現了V(S1)操作。
對于進程P2,開始之前需要申請資源S1,實現P(S1),P2執行完成之后,需要通知P3和P4,實現兩個V操作,分別是V(S2)和V(S3)
對于進程P3,開始之前需要申請資源S2,實現P(S2),P3執行完成之后,需要通知P5,實現V操作,為V(S4)
對于進程P4,開始之前需要申請資源S3,實現P(S3),P4執行完成之后,需要通知P6,實現V操作,為V(S5)
對于進程P5,開始之前需要申請資源S4,實現P(S4),P5執行完成之后,需要通知P6,實現V操作,為V(S6)
對于進程P6,開始之前需要申請資源S5和S6,實現兩個P操作,分別為P(S5)和P(S6)
在磁盤上存儲數據的排列方式會影響服務的總時間。假設每個磁道被劃分成10個物理塊,每個物理塊存放1個邏輯記錄。邏輯記錄R1,R2,…,R10存放在同一個磁道上,記錄的排列順序如下表所示。
假定磁盤的旋轉速度為10ms/周,磁頭當前在R1的開始處。若系統順序處理這些記錄,使用單緩沖區,每個記錄處理時間為2ms,則處理這10個記錄的最長時間為 (27) ;若對存儲數據的排列順序進行優化,處理10個記錄的最少時間為 (28) 。
(27) A.30ms B. 60ms C. 94ms D. 102ms
(28) A.30ms B. 60ms C. 102ms D. 94ms
所屬知識點:操作系統>磁盤管理
答案解析:DA
考查磁盤管理相關計算問題。
整個磁盤如下圖所示,整個磁盤的旋轉速度為10ms/周,共10個磁盤,可知每個磁盤的讀取時間為1ms,對于每個磁盤而言,有讀取的時間1ms,處理時間2ms。
接下來具體的看分析:對于磁盤R1而言,磁頭首先位于R1的開始處(即R10的末尾位置那條線),讀取R1花費1ms時間,磁頭到了R1的末尾處,又需要花費2ms處理它,所以可以得知經過3ms時候,磁頭已經旋轉到了R4的開始處(即R3的末尾處),接下來需要讀取R2并處理R2,這個時候需要將磁頭旋轉到R2的開始處位置,那么需要順時針移動(R4-R1,共計8個磁盤)才到R2的開始處,接下來,讀取R2并處理R2同樣需要花費3ms時間,磁盤也到了R5的開始,也需要旋轉同樣的8個磁盤,依次類推。
除第一個磁盤R1不需要移動磁頭位置,其余9個磁盤都需要移動8個磁盤,即總時間為R1的時間(1+2)ms,后面9個磁盤的時間9*(8+1+2),共計102ms,改善后的磁盤,避免了磁頭的移動,即每個磁盤讀取和處理共計3ms,總共10個磁盤,需要花費3*10=30ms(如下圖所示)
以下關于增量模型優點的敘述中,不正確的是 (29) 。
(29) A.強調開發階段性早期計劃
B. 第一個可交付版本所需要的時間少和成本低
C. 開發由增量表示的小系統所承擔的風險小
D. 系統管理成本低、效率高、配置簡單
所屬知識點:軟件工程>開發模型
答案解析:D
增量模型作為瀑布模型的一個變體,具有瀑布模型的所有優點。此外,它還具有以下優點:第一個可交付版本所需要的成本和時間很少;開發由增量表示的小系統所承擔的風險不大:由于很快發布了第一個版本,因此可以減少用戶需求的變更:運行增量投資,即在項目開始時,可以僅對一個或兩個增量進行投資。
增量模型有以下不足之處:如果沒有對用戶變更的要求進行規劃,那么產生的初始量可能會造成后來增量的不穩定;如果需求不像早期思考的那樣穩定和完整,那么一些增量就可能需要重新開發,重新發布;管理發生的成本、進度和配置的復雜性可能會超出組織的能力
以下關于敏捷統一過程(AUP)的敘述中,不正確的是 (30) 。
(30) A.在大型任務上連續
B. 在小型活動上迭代
C. 每一個不同的系統都需要一套不同的策略、約定和方法論
D. 采用經典的UP階段性活動,即初始化、精化、構件和轉換
所屬知識點:軟件工程>開發模型
答案解析:C
本題考查的是敏捷統一過程(AUP)
敏捷統一過程(AUP)采用“在大型上連續”以及在“小型上迭代”的原理來構建軟件系統。采用經典的UP階段性活動(初始、精化、構建和轉換),提供了一系列活動,能夠使團隊為軟件項目構想出一個全面的過程流。在每個活動里,一個團隊迭代了使用敏捷,并將有意義的軟件增量盡可能快地交付給最終用戶。
在每一個不同地系統都需要一套不同地策略、約定和方法論是屬于敏捷方法-----水晶法的描述。
注意區別這里面是考查敏捷統一過程,而非敏捷方法,兩者之間有區別,P255,256
在ISO/IEC軟件質量模型中,可移植性是指與軟件可從某環境移到另一環境的能力有關的一組屬性,其子特性不包括 (31) 。
(31) A.適應性 B. 易測試性 C. 易安裝性 D.易替換性
所屬知識點:軟件工程>軟件質量保證
答案解析:B
考查ISO/IEC的幾大質量特性。
可移植性包括:適應性、易安裝性、一致性、易替換性,易測試性屬于可維護性的范疇。P300
在軟件開發過程中,系統測試階段的測試目標來自于 (32) 階段。
(32) A.需求分析 B.概要設計 C. 詳細設計 D.軟件實現
所屬知識點:軟件工程>軟件測試相關概念
答案解析:A
考查軟件工程測試相關問題。
可以根據V模型來理解,V模型是測試貫穿于始終。其中系統測試和驗收測試是針對于需求分析,集成測試針對于概要設計,單元測試針對于詳細設計,軟件實現應該是針對于編碼部分
信息系統的文檔是開發人員與用戶交流的工具。在系統規劃和系統分析階段,用戶與系統分析人員交流所使用的文檔不包括 (33) 。
(33) A.可行性研究報告 B. 總體規劃報告
C. 項目開發計劃 D. 用戶使用手冊
所屬知識點:軟件工程>軟件文檔
答案解析:D
本題考查軟件開發工程需求分析相關問題。
用戶與系統分析人員交流所使用的文檔可以包括以下:
可行性研究報告:可行性研究報告是從事一種經濟活動(投資)之前,雙方要從經濟、技術、生產、供銷直到社會各種環境、法律等各種因素進行具體調查、研究、分析,確定有利和不利的因素、項目是否可行,估計成功率大小、經濟效益和社會效果程度,為決策者和主管機關審批的上報文件。是需求分析和客戶人員之間交流所使用或參考的文檔。
總體規劃報告:至少市場/客戶、新產品、人(引進、培養)、設備、成本等方面包括,也是需求分析和客戶人員之間交流所使用或參考的文檔。
項目開發計劃:是指通過使用項目其他專項計劃過程所生成的結果(即項目的各種專項計劃),運用整合和綜合平衡的方法,制定出用于指導項目實施和管理的整合性、綜合性、全局性、協調統一的整合計劃文件。是對需求分析和客戶人員交流所必要的文檔。
至于D選項的用戶使用手冊是詳細描述軟件的功能、性能和用戶界面,使用戶了解到如何使用該軟件的說明書。一般是開發完成之后交付給客戶的。
如下所示代碼(用縮進表示程序塊),要實現語句覆蓋,至少需要 (34) 個測試用例。采用McCabe度量法計算該代碼對應的程序流圖的環路復雜性為 (35) 。
(34) A.1 B. 2 C. 3 D. 4
(35) A.1 B. 2 C. 3 D.4
所屬知識點:軟件工程>McCabe復雜度計算
答案解析:AC
本題考查環路復雜度和Mccabe度量計算的結合考查。
針對于偽代碼而言,我們具體能夠根據其關系判斷,做得應該是將一組數據,按照從小到大的順序進行排序的過程,實質是屬于插入排序的算法。
首先對于第一個問題,要實現語句覆蓋,至少需要多少個測試用例,我們只需要一組數據就能夠得到不斷重復排序后的輸出結果。
對于第二個問題,計算環路復雜度,我們需要做個相關簡圖,如下圖所示,可以根據環路公式V(G)=m-n+2也可以直接數閉環+1,得出其結果為3
系統可維護性是指維護人員理解、改正、改動和改進軟件系統的難易程度,其評價指標不包括 (36) 。
(36) A.可理解性 B. 可測試性 C.可修改性 D. 一致性
所屬知識點:軟件工程>軟件維護類型
答案解析:D
本題考查軟件維護的問題。
注意區別這里面的軟件維護不是ISO/IEC軟件質量保證的維護性,兩者需要進行區別。
在這里的軟件維護的可維護性應該包括:可理解性,可測試性,可修改性。
其中一致性屬于可移植性的范疇。
面向對象設計時包含的主要活動是 (37) 。
(37) A.認定對象,組織對象,描述對象間的相互作用,確定對象的操作
B. 認定對象,定義屬性,組織對象,確定對象的操作
C. 識別類及對象,確定對象的操作,描述對象間的相互作用,識別關系
D. 識別類及對象,定義屬性,定義服務,識別關系,識別包
所屬知識點:面向對象>面向對象開發各階段劃分及任務
答案解析:D
考查關于面向對象的開發階段。
面向對象分析階段:認定對象,組織對象,對象間的相互作用,基于對象的操作。
面向對象設計階段:識別類及對象、定義屬性、定義服務、識別關系、識別包。
面向對象程序設計:程序設計范型、選擇一種OOPL。
面向對象測試:算法層、類層、模板層、系統層。
在面向對象設計時,如果重用了包中的一個類,那么就要重用包中的所有類,這屬于 (38) 原則。
(38) A.接口分離 B. 開放-封閉 C. 共同封閉 D.共同重用
所屬知識點:面向對象>面向對象設計原則
答案解析:D
考查關于面向對象設計的幾大原則。
接口分離原則:使用多個專門的接口要比使用單一的總接口要好。
開放-封閉原則:對擴展開放,對修改關閉。
共同封閉原則:包中的所有類對于同一性質的變化應該是共同封閉的。一個變化若對一個包產生影響,則將對該包里的所有類產生影響,而對于其他的包不造成任何影響。
共同重用原則:一個包里的所有類應該是共同重用的。如果重用了包里的一個類,那么就要重用包中的所有類。
某電商系統在采用面向對象方法進行設計時,識別出網店、商品、購物車、訂單、買家、庫存、支付(微信、支付寶)等類。其中,購物車與商品之間適合采用 (39) 關系,網店與商品之間適合采用 (40) 關系。
(39) A.關聯 B. 依賴 C. 組合 D. 聚合
(40) A. 關聯 B.依賴 C. 組合 D. 聚合
所屬知識點:面向對象>UML圖中的關系
答案解析:DC
本題考查UML類圖的幾種關系。
關聯關系:描述了一組鏈,鏈是對象之間的連接。
依賴關系:一件事物發生改變影響到另一個事務。
聚合關系:整體與部分生命周期不同的關系。
組合關系:整體與部分生命周期相同的關系。
對于購物車和商品而言,網上商店的購物車要能過跟蹤顧客所選的的商品,記錄下所選商品,還要能隨時更新,可以支付購買,能給顧客提供很大的方便。購物車用于存放商品,購物車是整體,商品是部分,他們之間生命周期不同。屬于聚合關系。
對于網店和商品而言,網店里面包含商品,屬于整體和部分生命周期相同的情況,屬于組合關系。
某軟件系統限定:用戶登錄失敗的次數不能超過3次。采用如下所示的UML狀態圖對用戶登錄狀態進行建模,假設活動狀態時Loggingin,那么當ValidEntrty發生時 (41) 。其中,[tries<3]和tries++分別為 (42) 和 (43) 。
(41) A.保持在Loggingin狀態
B. 若[tries<3]為true,則Logging in變為下一個活動狀態
C. Loggingin立刻變為下一個活動狀態
D. 若tries=3為true,則LoggingDenied變為下一個活動狀態
(42) A.狀態 B. 轉換 C. 監護條件 D. 轉換后效果
(43) A.狀態 B. 轉換 C. 監護條件 D. 轉換后效果
所屬知識點:面向對象>UML圖的圖示
答案解析:BCB
本題考查UML狀態圖的問題。
通過狀態圖圖示可知,假設活動狀態是Logging in,那么當Valid Entry發生時,當限制條件[tries=3]會到達Logging Denied狀態,當限制條件[tries<3]Logged in狀態。針對于第一問的描述,僅有B符合狀態圖的表示。
[tries<3]和tries+ +分別表示監護條件和轉換,帶有[]表示限制條件,沒帶[]的具體操作表示一個狀態到另外一個狀態的轉換。
在某系統中,不同組(Group)訪問數據的權限不同,每個用戶(User)可以是一個或多個組中的成員,每個組包含零個或多個用戶?,F要求在用戶和組之間設計映射,將用戶和組之間的關系由映射進行維修,得到如下所示的類圖。該設計采用 (44) 模式,用一個對象來封裝一系列的對象交互;使用戶對象和組對象不需要顯式的相互引用,從而使其耦合松散,而且可以獨立地改變它們之間地交互。該模式屬于 (45) ,該模式適用 (46) 。
44) A.狀態(State) B. 策略(Strategy)
C. 解釋器(Interpreter) D. 中介者(Mediator)
(45) A.創建型類 B. 創建型對象
C. 行為型對象 D. 行為型類
(46) A.需要使用一個算法地不同變體
B. 有一個語言需要解釋執行,并且可將句子表示為一個抽象語法樹
C. 一個對象地行為決定于其狀態且必須在運行時刻根據狀態改變行為
D. 一組對象以定義良好但是復雜的方式進行通信,產生的相互依賴關系結構
混亂且難以理解。
所屬知識點:面向對象>設計模式的圖
答案解析:DCD
本題考查設計模式的問題。
針對于題干和圖示來看,不同組(GROUP)訪問數據的權限不同,每個用戶(User)可以是一個或多個組中的成員,每個組包含零個或多個用戶?,F要求在用戶和組之間設計映射,將用戶和組之間的關系由映射進行維護,在組和用戶之間用UserGroupMapper實現兩者的交互,兩者之間不直接交互,用一個對象來封裝系列的對象交互;使用戶對象和組對象不需要顯式地相互引用,從而使其耦合松散,而且可以獨立地改變它們之間的交互,是典型關于中介者模式的描述和應用。
中介者模式屬于行為型對象模型,可以適用于一組對象以定義良好但是復雜的方式進行通信,產生的相互依賴關系結構混亂且難以理解。
其中以下場景中A選項是對策略模式的描述,B選項是對解釋器的描述,C選項是對狀態模式的描述。綜上所述,本題選擇D,C,D
在設計某購物中心的收銀軟件系統時,要求能夠支持在不同時期推出打折、返利、滿減等不同促銷活動,則適合采用 (47) 模式。
(47) A.策略(Strategy) B. 訪問者(Visitor)
C. 觀察者(Observer) D. 中介者(Mediator)
所屬知識點:面向對象>設計模式的應用場景
答案解析:A
在設計某購物中心的收銀軟件系統時,要求能夠支持在不同時期推出打折、返利、滿減等不同促銷活動,收銀軟件系統的計入規則有:打折、返利、滿減三種不同的策略,每種策略之間封裝起來,可以相互替換,使它們可以獨立的變換,屬于典型的策略模式。
Python語言的特點不包括 (48) 。
(48) A.跨平臺、開源 B. 編譯型
C. 支持面向對象程序設計 D. 動態編程
所屬知識點:程序設計語言>多種程序語言特點
答案解析: B
本題考查python相關問題。
python語義的特點:
跨平臺、開源、簡單易學、面向對象、可移植性、解釋性、開源、高級語言、可擴展性、豐富的庫、動態編程等等
綜上所述B選項錯誤,python不是編譯型語言,而是解釋型語言
在Python語言中 (49) 是一種可變的、有序的序列結構,其中元素可以重復。
(49) A.元組(tuptle) B. 字符串(str)
C. 列表(list) D. 集合(set)
所屬知識點:程序設計語言>多種程序語言特點
答案解析:C
本題考查python語言的用法相關問題。
在Python語言中,是一種可變的、有序的序列結構,其中元素可以重復。
在python中,元組(tuple)、字符串(str)、集合(set)元素都可以重復。并不能強調是一種可變的、有序的序列結構。元組使用小括號 ( ),如mput=(22,33,56),不支持更新,所謂元組的不可變指的是元組所指向的內存中的內容不可變,但可以重新定義賦值,
集合(set)是一個無序的不重復元素序列??梢允褂么罄ㄌ?{ } 或者 set() 函數創建集合,注意:創建一個空集合必須用 set() 而不是 { },因為 { } 是用來創建一個空字典。
字符串不允許更新
而列表(list)是python中最基本的數據結構,是一種有序可重復的集合,可以隨時添加和刪除其中的元素,用方括號表示,如malist=[1,’aaa’,4.6,1,6]。
在Python語言的模塊中, (50) 不支持深度學習模型。
(50) A.TensorFlow B. Matplotlib C.PyTorch D. Keras
所屬知識點:程序設計語言>多種程序語言特點
答案解析:B
本題考查python語言的語法相關。
其中支持Python語言深度學習的有:
TensorFlow:Tensorflow擁有多層級結構,可部署于各類服務器、PC終端和網頁并支持GPU和TPU高性能數值計算,被廣泛應用于谷歌內部的產品開發和各領域的科學研究,支持Python語言深度學習。
PyTorch:PyTorch是一個針對深度學習,并且使用GPU和CPU來優化的tensorlibrary(張量庫)是由Torch7團隊開發,是一個以Python優先的深度學習框架,不僅能實現強大的GPU加速,同時還支持動態的神經網絡。
Keras:Keras是一個由Python編寫的開源人工神經網絡庫,可以作為Tensorflow、Microsoft-CNTK和Theano的高階應用程序接口,進行深度學習模型的設計、調試、評估、應用和可視化。僅有B選項表示的Matplotlib不是,Matplotlib 是一個 Python 的 2D繪圖庫,它以各種硬拷貝格式和跨平臺的交互式環境生成出版質量級別的圖形,不支持深度學習
采用三級模式結構的數據庫系統中,如果對一個表創建聚簇索引,那么改變的是數據庫的 (51) 。
(51) A.外模式 B. 模式 C. 內模式 D. 用戶模式
所屬知識點:數據庫系統>數據庫三級模式結構
答案解析:C
本題考查數據庫三級模式兩級映射。
對于三級模式,分為外模式,模式和內模式。其中外模式對應視圖級別,是用戶與數據庫系統的接口,是用戶用到那部分數據的描述,比如說:用戶視圖;對于模式而言,又叫概念模式,對于表級,是數據庫中全部數據的邏輯結構和特質的描述,由若干個概念記錄類型組成,只涉及類型的描述,不涉及具體的值;而對于內模式而言,又叫存儲模式,對應文件級,是數據物理結構和存儲方式的描述,是數據在數據庫內部表示的表示方法,定義所有內部的記錄類型,索引和文件的組織方式,以及數據控制方面的細節。例如:B樹結構存儲,Hash方法存儲,聚簇索引等等。
設關系模式R(U, F), U={A1, A2, A3, A4},函數依賴集F={A1→A2, A1→A3, A2→A4},關系R的候選碼是 (52) .下列結論錯誤的是 (53) 。
(52) A.A1 B. A2 C. A1A2 D. A1A3
(53) A.A1→A2A3為F所蘊含 B.A1→A4為F所蘊含
C. A1A2→A4為F所蘊含 D.A2→A3為F所蘊含
所屬知識點:數據庫系統>規范化理論基本概念
答案解析:AD
本題考查候選鍵的求法和函數依賴的判斷問題。
第一問求候選鍵,采用圖示法,能夠遍歷所有屬性的即為候選鍵,首先應該找出入度為0的節點,只有A1,如果入度為0的節點,遍歷不了所有節點,那么需要加入一些中間結點(既有入度又有出度)的結點進行遍歷,以它們的組合鍵作為候選鍵。
根據方法,找到入度為0的節點A1,可以發現第一步能夠通過A1決定所有屬性A2(A1→A2),A3(A1→A3),A4(A1→A2,A2→A4,傳遞律得A1→A4)
得出A1為候選鍵。
第二問考查AmStrong公理進行求解相關:
A.A1→A2A3為F所蘊涵,通過A1→A2,A1→A3,得出A1→A2A3(合并規則)
B.A1- > A4為F所蘊涵,通過A1→A2,A2→A4,得出A1→A4(傳遞律)
C.A1A2→A4為F所蘊涵,通過A2→A4,A1→A4(傳遞律),那么兩者的結合鍵為A1A2→A4自然能被F所蘊涵。
D.A2→A3為F所蘊涵,不能推導得出。
給定學生關系S(學號,姓名,學院名,電話,家庭住址),課程關系C(課程號,課程名,選修課程號),選課關系SC(學號,課程號,成績)。查詢“張晉”選修了“市場營銷”課程的學號、學生名、學院名、成績的關系代數表達式為:π1, 2, 3, 7π1, 2, 3(54)?(55)
(54) A. σ2=張晉(S) B.σ2='張晉'(S)
C. σ2=張晉(SC) D. σ2='張晉'(SC)
(55) A.π2, 3(σ2='市場營銷'(C))?SC
B. π2, 3(σ2=市場營銷(SC))?C
C. π1, 2(σ2='市場營銷'(C))?SC
D. π1, 2(σ2=市場營銷(SC))?C
答案解析:本題考查數據庫連接運算,答案BC,查詢“張晉”,這個是條件,這個條件是需要從關系S中查詢,因為只有S中存儲了學生姓名,而且張晉名字是字符串,要用引號表示,這個操作是選擇運算,所以是σ符號,因此選擇B,選修了“市場營銷”這個是查詢操作,也是選擇運算,但是從C關系中選擇,而不是SC中選擇,從而排除BD,只有AC可選,AC的區別是,A是投影第2,3列,C是投影1,2列,但是C和SC關聯的字段應該是課程號,而不是選修課程號,所以應該是投影C的第1,2列,因此選擇C
數據庫的安全機制中,通過提供 (56) 供第三方開發人員調用進行數據更新,從而保證數據庫的關系模式不會被第三方所獲取。
(56) A.觸發器 B. 存儲過程 C. 視圖 D. 索引
所屬知識點:數據庫系統>其它
答案解析:B
本題考查的是數據庫基礎知識。
索引是數據庫中提高查詢效率的一種機制,不能進行數據更新。
視圖一般是提供查詢數據的,具有一定安全機制,但是不能進行數據更新。
觸發器可以作為更新機制,但是無法避免數據庫的關系模式被第三方所獲取,并不安全。
存儲過程方式,可以定義一段代碼,從而提供給用戶程序來調用,具體更新過程通過代碼調用,避免了向第三方提供系統表結構的過程,體現了數據庫的安全機制。所以本題選擇B選項
若棧采用順序存儲方式,現有兩個棧共享空間V[1..n],top[i]代表i(i=1,2)個棧的棧頂(兩個棧都空時top[1]=1、top[2]=n),棧1的底在V[1],棧2的底在V[n],則棧滿(即n個元素暫存在這兩個棧)的條件是 (57) 。
(57) A.top[1]=top[2] B.top[1]+top[2]==1
C. top[1]+top[2]==n D.top[1]-top[2]==1
所屬知識點:數據結構與算法基礎>隊列與棧
答案解析:D
本題考查棧的相關問題。
由題干描述可知,現有兩棧共享空間V[1..n],, top[i]代表i( i=1,2)個棧的棧頂(兩個棧都空時top[1]= 1、top[2]= n),棧1的底在V[1],棧2的底在V[n]。
若按照順序從底到上從V【1】到V【n】都將存入棧內,這個棧共享空間V【1.....n】,可知該棧一分為二,棧1可以是開口向上,底為V【1】,棧2是開口向上,底為V【n】,要使棧滿,就需要保持兩個棧重合,即兩個棧的開口位置相鄰,有top【1】-top【2】==1,如下圖所示:
采用循環隊列的優點是 (58) 。
(58) A.入隊和出隊可以在隊列的同端點進行操作
B. 入隊和出隊操作都不需要移動隊列中的其他元素
C. 避免出現隊列滿的情況
D. 避免出現隊列空的情況
所屬知識點:數據結構與算法基礎>隊列與棧
答案解析:B
本題考查數據結構循環隊列的問題。
1、循環隊列的優點:
可以有效的利用資源。用數組實現隊列時,如果不移動,隨著數據的不斷讀寫,會出現假滿隊列的情況。即尾數組已滿但頭數組還是空的;循環隊列也是一種數組,只是它在邏輯上把數組的頭和尾相連,形成循環隊列,當數組尾滿的時候,要判斷數組頭是否為空,不為空繼續存放數據。
2、循環隊列的缺點:
循環隊列中,由于入隊時尾指針向前追趕頭指針;出隊時頭指針向前追趕尾指針,造成隊空和隊滿時頭尾指針均相等。因此,無法通過條件front==rear來判別隊列是"空"是"滿"。
3、拓展知識:
為充分利用向量空間,克服"假溢出"現象的方法是:將向量空間想象為一個首尾相接的圓環,并稱這種向量為循環向量。存儲在其中的隊列稱為循環隊列。
綜上所述,C,D都不屬于其優點,B選項是循環隊列的優點,A是對棧的描述。
二叉樹的高度是指其層數,空二叉樹的高度為0,僅有根結點的二叉樹高度為1。若某二叉樹中共有1024個結點,則該二叉樹的高度是整數區間 (59) 中的任一值。
(59) A.(10,1024) B. [10,1024]
C. (11,1024) D. [11,1024]
所屬知識點:數據結構與算法基礎>樹與二叉樹的特性
答案解析:D
本題考查關于二叉樹的構造問題。
根據題干描述, 空二叉樹的高度為0,僅有根結點的二叉樹高度為1,當若某二叉樹中共有1024個結點,求其取值范圍?
我們不妨求出取值范圍的極限值,當1024個結點都為根結點的時候,表示1024個二叉樹高度為1,高度累計為1024,區間能夠取到1024,屬于閉區間,排除A,C
再求出其最小值的情況,最小值應該是按照完全二叉樹進行排列,對于二叉樹的規律如下:第一層的結點樹2^0=1,第二層2^1=2,第3層2^2=4,依次類推。
二叉樹的第i層上最多有2i-1個結點,但i>=1,對于第10層來講,則有2的10-1次方,即2的9次方,2的9次方等于512,從第1層到第10層,它的結點算分別是1,2,4,8,16,32,64,128,256,512,這些數據加起來等于1023,2^0+2^1+...+2^9=1023,而題目是說有1024個點,缺少1個結點,因此要加一層,到了第11層,而第11層僅有1個結點,但是它的層次已經到了11層,所以能取到11,屬于閉區間,排除B選項,故表達式取值范圍應該是[11, 1024]。
n個關鍵碼構成的序列k1,k2,…,kn,當且僅當滿足下列關系時稱其為堆。
以下關鍵碼序列中, (60) 不是堆。
(60) A.15,25,21,53,73,65,33
B. 15,25,21,33,73,65,53
C. 73,65,25,21,15,53,33
D. 73,65,25,33,53,15,21
所屬知識點:數據結構與算法基礎>堆
答案解析:C
本題考查堆排序的算法問題。
堆分為大頂堆(根節點大于左孩子和右孩子節點)和小頂堆(根節點小于左孩子節點和右孩子節點)。
根據選項來看,共7個節點,應該是3層的滿二叉樹,符合堆的有A,B,D三個選項。
僅有C選項73,65,25,21,15,53,33,73作為根節點,根大于其左孩子節點65和右孩子節點25都,是大頂堆的構造,第二層65作為左子樹的根節點,大于了其左孩子節點21和右孩子節點15,符合大頂堆的構造;25作為右子樹的根節點,卻小于了其左孩子節點53和右孩子節點33,不符合大頂堆的構造了,故其不是堆。
對有向圖G進行拓撲排序得到的拓撲序列中,頂點Vi在頂點Vj之前,則說明G中 (61) 。
(61) A.一定存在有向弧<Vi,Vj> B.一定不存在有向弧<Vi,Vj>
C. 必定存在從Vi到Vj的路徑 D. 必定存在從Vj到Vi的路徑
所屬知識點:數據結構與算法基礎>圖的拓撲排序
答案解析:B
本題考查拓撲序列的相關問題。
對于拓撲序列,需要按照有向弧的指向,明確其先后順序,例如:存在一條Vi指向Vj的有向弧,那么在拓撲序列中Vi需要寫出Vj前面,其次對于屬于同一層次或者毫無關聯的兩個結點可以不用在意先后順序。
根據題干描述,對有向圖G進行拓撲排序得到的拓撲序列中,頂點Vi在頂點Vj之前,我們試著對以下選項進行分析:
A、一定存在有向弧<Vi, Vj>,說法錯誤,不一定存在,Vi和Vj可以是并列的,并不一定要存在Vi到Vj的有向弧。
B、一定不存在有向弧<Vj, Vi>,說法正確,如果存在有向弧<Vj, Vi>,那么Vj是需要在頂點Vi之前的,則與題干相悖,所以必定不存在。
C、必定存在從Vi到Vj的路徑,說法錯誤,不一定存在,Vi和Vj可以是兩個毫無關聯沒有指向的關系,不會存在相關的路徑。
D、必定存在從Vj到Vi的路徑,說法錯誤,如果存在Vj到Vi的路徑,Vj就會出現在Vi前面。用以下圖為例:
歸并排序算法在排序過程中,將待排序數組分為兩個大小相同的子數組,分別對兩個子數組采用歸并排序算法進行排序,排好序的兩個子數組采用時間復雜度為O(n)的過程合并為一個大數組。根據上述描述,歸并排序算法采用了 (62) 策略。歸并排序算法的最好情況和最壞情況下的時間復雜度為 (63)
(62) A.分治 B.動態規劃 C. 貪心 D. 回溯
(63) A.O(n)和O(nlgn) B.O(n)和O(n2)
C. O(nlgn)和O(nlgn) D.O(nlgn)和O(n2)
所屬知識點:數據結構與算法基礎>排序
答案解析:AC
本題考查歸并排序相關算法。
歸并排序(Merge Sort)是建立在歸并操作上的一種有效,穩定的排序算法,該算法是采用分治法(Divide and Conquer)的一個非常典型的應用。將已有序的子序列合并,得到完全有序的序列;即先使每個子序列有序,再使子序列段間有序。若將兩個有序表合并成一個有序表,稱為二路歸并。歸并排序是運用分治法相關策略,其時間復雜度是由外層的n循環,與內層的歸并過程log2n結合起來得到O(nlgn),歸并排序沒有所謂的最好和最壞排序算法,都為O(nlgn)
已知一個文件中出現的各字符及其對應的頻率如下表所示。采用Huffman編碼,則該文件中字符a和c的碼長分別為 (64) 。若采用Huffman,則字符序列“110001001101”的編碼應為 (65) 。
(64) A.1和3 B.1和4 C.3和3 D.3和4
(65) A.face B. bace C.acde D. fade
所屬知識點:數據結構與算法基礎>最優二叉樹(哈夫曼樹)
答案解析:AA
本題考查哈夫曼樹的構造問題。
根據題中表格字符構造出如下的哈夫曼樹。
組合過程如下:
組成哈夫曼樹的,字符小的在左邊,字符大的在右邊,按照從左到右,從小到大的順序進行組合。第一次組合時,選擇最小的兩上數,即5,9,組成如圖:
,然后去掉字符中的5,9,剩下45,23,12,16,將1加入到序列,此四個數字再從小到大排列,即12,13,14,16,45,形成如圖(因為要按照從左到右的順序排列)
,此時選擇兩個小的12,13,組成一個樹,14和16組成一個樹,形成如圖:
,再將25,30組合,形成如圖:
,此時45應該放左邊,因為哈夫曼樹是從左右到,從小到大的順序,因此第4次組合是:
,最后形成的樹結構,即第1次組合是5,9組成14,第2次組合是12,13組成25,然后將14,16組成30,第3次組合是25,30組成55,第4次組合是45,55組成100。哈夫曼樹規則的左子樹都是0,右子樹都是1,因此形成如圖:
,然后對應字符關系則是如圖:
,根據哈夫曼樹可得:圖中a的長度為1,c的長度為3。
第二空,a:0,b:101,c:100,d:111,e:1101,f:1100。
而對于字序列 “110001001101” 編碼應該為face。
用戶在電子商務網站上使用網上銀行支付時,必須通過 (66) 在Internet與銀行專用網之間進行數據交換。
(66) A.支付網關 B. 病毒網關
C. 出口路由器 D. 堡壘主機
所屬知識點:信息安全>其他網絡安全控制技術
答案解析:A
本題計算機網絡相關交互協議。
用戶在電子商務網站上使用網上銀行支付時,必須通過支付網關才能在Internet與銀行專用網之間進行數據交換。
A、支付網關:是銀行金融網絡系統和Internet網絡之間的接口,是由銀行操作的將Internet上傳輸的數據轉換為金融機構內部數據的一組服務器設備,或由指派的第三方處理商家支付信息和顧客的支付指令。
B、防病毒網關:防病毒網關是一種網絡設備,用以保護網絡內(一般是局域網)進出數據的安全。主要體現在病毒殺除、關鍵字過濾(如色情、反動)、垃圾郵件阻止的功能,同時部分設備也具有一定防火墻(劃分Vlan)的功能。如果與互聯網相連,就需要網關的防病毒軟件。
C、出口路由器:一般指局域網出外網的路由器,或者指一個企業、小區、單位、城域網、省級網絡、國家網絡與外界網絡直接相連的那臺路由器。在網絡間起網關的作用,是讀取每一個數據包中的地址然后決定如何傳送的專用智能性的網絡設備。
D、堡壘主機:堡壘主機是一種被強化的可以防御進攻的計算機,作為進入內部網絡的一個檢查點,以達到把整個網絡的安全問題集中在某個主機上解決,從而省時省力,不用考慮其它主機的安全的目的。事實上,防火墻和包過濾路由器也可以被看作堡壘主機。
ARP報文分為ARP Request和ARP Response,其中ARP Request采用 (67) 進行傳送,ARPResponse采用 (68) 進行傳送。
(67) A.廣播 B.組播 C. 多播 D. 單播
(68) A.廣播 B. 組播 C. 多播 D. 單播
答案:AD,所屬知識點:計算機網絡>協議應用提升
答案解析:AD
本題考查計算機網絡ARP協議。
ARP協議:地址解析協議,作用是由IP地址轉換成MAC地址,在以太網中,一個主機和另一個主機進行直接通信,必須要知道目標主機的MAC地址。但這個目標MAC地址是如何獲得的呢?它就是通過地址解析協議獲得的。所謂“地址解析”就是主機在發送幀前將目標IP地址轉換成目標MAC地址的過程。
ARP請求過程:
任何時候,當主機需要找出這個網絡中的另一個主機的物理地址時,它就可以發送一個ARP請求報文,這個報文包好了發送方的MAC地址和IP地址以及接收方的IP地址。因為發送方不知道接收方的物理地址,所以這個查詢分組會在網絡層中進行廣播。(見圖1)
ARP響應
局域網中的每一臺主機都會接受并處理這個ARP請求報文,然后進行驗證,查看接收方的IP地址是不是自己的地址,只有驗證成功的主機才會返回一個ARP響應報文,這個響應報文包含接收方的IP地址和物理地址。這個報文利用收到的ARP請求報文中的請求方物理地址以單播的方式直接發送給ARP請求報文的請求方。(見圖2)
下面的標記對中 (69) 用于表示網頁代碼的起始和終止。
(69) A.<html></html> B.<head></head>
C. <body></body> D. <meta></meta>
所屬知識點:計算機網絡>HTML語言
答案解析:A
考查關于html相關知識。
標簽限定了文檔的開始點和結束點,在它們之間是文檔的頭部和主體。
標簽就是我們常說的頭部標簽,在它們之間是用來存放一個文檔的頭部元素的主體標簽,body 元素定義文檔的主體。
標簽位于文檔的頭部,不包含任何內容。
標簽的屬性定義了與文檔相關聯的名稱/值對。
以下對路由協議的敘述中,錯誤的是 (70) 。
(70) A.路由協議是通過執行一個算法來完成路由選擇的一種協議
B. 動態路由協議可以分為距離向量路由協議和鏈路狀態路由協議
C. 路由協議是一種允許讓數據包在主機之間傳送信息的一種協議
D. 路由器之間可以通過路由協議學習網絡的拓撲結構
所屬知識點:計算機網絡>路由配置
答案解析:C
本題考查計算機網絡路由協議。
路由協議:是一種指定數據包轉送方式的網上協議。Internet網絡的主要節點設備是路由器,路由器通過路由表來轉發接收到的數據。轉發策略可以是人工指定的(通過靜態路由、策略路由等方法)。在具有較小規模的網絡中,人工指定轉發策略沒有任何問題。但是在具有較大規模的網絡中(如跨國企業網絡、ISP網絡),如果通過人工指定轉發策略,將會給網絡管理員帶來巨大的工作量,并且在管理、維護路由表上也變得十分困難。為了解決這個問題,動態路由協議應運而生。動態路由協議可以讓路由器自動學習到其他路由器的網絡,并且網絡拓撲發生改變后自動更新路由表。網絡管理員只需要配置動態路由協議即可,相比人工指定轉發策略,工作量大大減少,其中動態路由協議又分為距離向量路由協議和鏈路狀態路由協議。
工作原理:路由協議通過在路由器之間共享路由信息來支持可路由協議。路由信息在相鄰路由器之間傳遞,確保所有路由器知道到其它路由器的路徑??傊?#xff0c;路由協議創建了路由表,描述了網絡拓撲結構;路由協議與路由器協同工作,執行路由選擇和數據包轉發功能。
One isthatofasoftwareengineerandtheotherisaDevOpsengineer.Thebiggestdifferentisintheir(71) . SoftwareengineersfocusonhowwellthecomputersoftwarefitstheneedsoftheclientwhileaDevOpsengineerhasabroaderfocusthatincludessoftwaredevelopment,howthesoftwareisdeployedandproviding(72) supportthroughthecloudwhilethesoftwareiscontinually(73) .
softwareengineercreatescomputerprogramsforpeopletousebasedupontheirsecurityandfunctionalityneeds.ADevOpsengineeralsoworksoncomputerapplications,butmanagesthebuilding,deploymentandoperationasa(74) autormatedprocess.Softwareengineersoftenworkseparatelyfromtheoperationssideofabusiness.Theycreatethesoftwareabusinessclientneedsandthenmonitortheperformanceoftheirsoftwareproductstodetermineifupgradesarenecessaryorifmoreseriousimprovementsareneeded.DevOpsengineersworkwiththeoperationalsideofabusinessandmanagetheworkflowto(75) softwaretosmoothlyfunctionwithautomatedprocesses.Bothprofessionsrequireknowledgeofcomputerprogramminglanguages.
(71) A.focus B. process C. goal D. function
(72) A.developing B. deploying C. training D. operational
(73) A.developed B. functional C.constructed D. secure
(74) A.single B. whole C. continuous D.independent
(75) A.develop B. integrate C.analyse D. maintain
所屬知識點:專業英語>專業英語
答案解析:ADBCB
本題考查英語專業知識。
譯文:一個是軟件工程師,另一個是DevOps工程師。最大的不同在于他們的關注點。軟件工程師關注計算機軟件如何滿足客戶的需求,而DevOps工程師關注的范圍更廣,包括軟件開發、軟件如何部署以及在軟件持續運行時通過云提供操作支持。
軟件工程師根據人們的安全性和功能需求創建計算機程序供人們使用。DevOps工程師也處理計算機應用程序,但將構建、部署和操作作為一個連續的自動匹配過程進行管理。軟件工程師通常與企業的運營部門分開工作。他們創建業務客戶所需的軟件,然后監控其軟件產品的性能,以確定是否需要升級或是否需要更大的改進。DevOps工程師與業務的運營部門合作,并管理工作流,以集成軟件,使其與自動化流程順利運行。這兩種職業都需要計算機編程語言的知識。
試題一、
某現代農業種植基地為進一步提升農作物種植過程的智能化,欲開發智慧農業平臺,集管理和銷售于一體,該平臺的主要功能有:
(1)信息維護。農業專家對農作物、環境等監測數據的監控處理規則進行維護。
(2)數據采集。獲取傳感器上傳的農作物長勢、土壤墑情、氣候等連續監測數據,解析后將監測信息進行數據處理、可視化和存儲等操作。
(3)數據處理。對實時監測信息根據監控處理規則進行監測分析,將分析結果進行可視化并進行存儲、遠程控制,對歷史監測信息進行綜合統計和預測,將預測信息進行可視化和存儲。
(4)遠程控制。根據監控處理規則對分析結果進行判定,依據判定結果自動對控制器進行遠程控制。平臺也可以根據農業人員提供的控制信息對控制器進行遠程控制。
(5)可視化。實時向農業人員展示監測信息:實時給農業專家展示統計分析結果和預測信息或根據農業專家請求進行展示。
現采用結構化方法對智慧農業平臺進行分析與設計,獲得如圖1-1所示的上下文數據流圖和圖1-2所示的0層數據流圖。
【問題1】(4分)
使用說明中的詞語,給出圖1-1中的實體E1?E4的名稱。
【問題1】答案(4分)
E1:傳感器
E2:農業專家
E3:農業人員
E4:控制器
【問題2】(4分)
使用說明中的詞語,給出圖1-2中的數據存儲D1?D4的名稱。
【問題2】答案(4分)
D1:監控處理規則表
D2:監測信息表
D3:分析結果表
D4:預測信息表
【問題3】(4分)
根據說明和圖中術語,補充圖1-2中缺失的數據流及其起點和終點。
【問題3】答案(4分)
數據流名稱 起點 終點
分析結果 D3 P5
預測信息 D4 P5
歷史監測信息 D2 P3
監控處理規則 D1 P4
請求展示 E2 P5
【問題4】(3分)
根據說明,“數據處理”可以分解為哪些子加工?進一步進行分解時,需要注意哪三種常見的錯誤?
【問題4】答案(3分)
“數據處理”可以分解為:監測分析實時監測信息;分析結果可視化、存儲、遠程控制;綜合統計和預測歷史監測信息;預測信息可視化、存儲;
需要注意:
1、加工有輸入但是沒有輸出
2、加工有輸出但是沒有輸入
3、加工的輸入不足以產生輸出
試題二、
某汽車維修公司為了便于管理車輛的維修情況,擬開發一套汽車維修管理系統,請根據下述需求描述完成該系統的數據庫設計。
【需求分析結果】
(1)客戶信息包括:客戶號、客戶名、客戶性質、折扣率、聯系人、聯系電話??蛻粜再|有個人或單位??蛻籼栁ㄒ粯俗R客戶關系中的每一個元組。
(2)車輛信息包括:車牌號、車型、顏色和車輛類別。一個客戶至少有一輛車,一輛車只屬于一個客戶。
(3)員工信息包括:員工號、員工名、崗位、電話、家庭住址。其中,員工號唯一標識員工關系中的每一個元組。崗位有業務員、維修工、主管。業務員根據車輛的故障情況填寫維修單。
(4)部門信息包括:部門號、名稱、主管和電話。其中,部門號唯一確定部門關系的每一個元組。每個部門只有一名主管,但每個部門有多名員工,每名員工只屬于一個部門。
(5)維修單信息包括:維修單號、車牌號、維修內容、工時。其中,維修單號唯一標識維修單關系中的每一個元組。一個維修工可以接多張維修單,但一張維修單只對應一個維修工。
【概念模型設計】
根據需求階段收集的信息,設計的實體聯系圖(不完整)如圖2-1所示
【邏輯結構設計】
根據概念模型設計階段完成的實體聯系圖,得出如下關系模式(不完整):
客戶(客戶號,客戶名,(a) ,折扣率,聯系人,聯系電話)
車輛(車牌號,(b),車型,顏色,車輛類別)
員工(員工號,員工名,崗位,(c) ,電話,家庭住址)
部門(部門號,名稱,主管,電話)
維修單(維修單號, (d) ,維修內容,工時)
【問題1】(6分)
根據問題描述,補充3個聯系,完善圖2-1的實體聯系圖。聯系名可以用聯系1、聯系2和聯系3代替,聯系的類型為1:1、1:n和m:n(或1:1、1:*和*:*)
【問題1】答案(6分)
【問題2】(4分)
根據題意,將關系模式中的空(a)?(d)的屬性補充完整,并填入答題紙對應的位置上。
【問題2】答案(4分)
(a)客戶性質
(b)客戶號
(c)部門號
(d)車牌號,維修工
【問題3】(2分)
分別給出車輛關系和維修單關系的主鍵和外鍵。
【問題3】答案(2分)
車輛關系的主鍵:車牌號;外鍵:客戶號。
維修單關系的主鍵:維修單號;外鍵:車牌號,維修工。
【問題4】(3分)
如果一張維修單涉及多項維修內容,需要多個維修工來處理,那么哪個聯系類型會發生何種變化?你認為應該如何解決這一問題?
【問題4】答案(2分)
維修工和維修單之間的聯系類型會發生變化,這個聯系會從1:n變成m:n,應該修改原來維修單屬性,變成:維修單號,車牌號兩個屬性,然后增加新的關系模式-維修記錄,關系模式如下:
維修記錄:維修單號,維修工,維修內容,工時
試題三、
某游戲公司欲開發一款吃金幣游戲。游戲的背景為一種回廊式迷宮(Maze),在迷宮的不同位置上設置有墻。迷宮中有兩種類型的機器人(Robos):小精靈(PacMan)和幽靈(Ghost)。游戲的目的就是控制小精靈在迷宮中游走,吞吃迷宮路徑上的金幣,且不能被幽靈抓到。幽靈在迷宮中游走,并會吃掉遇到的小精靈。機器人游走時,以單位距離的倍數計算游走路徑的長度。當迷宮中至少存在一個小精靈和一個幽靈時,游戲開始。
機器人上有兩種傳感器,使機器人具有一定的感知能力。這兩種傳感器分別是:
(1)前向傳感器(FrontSensor)。探測在機器人當前位置的左邊、右邊和前方是否有墻(機器人遇到墻時,必須改變游走方向)。機器人根據前向傳感器的探測結果,決定朝哪個方向運動。
(2)近距離傳感器(ProxiSensor)。探測在機器人的視線范圍內(正前方)是否存在隱藏的金幣或幽靈。近距離傳感器并不報告探測到的對象是否正在移動以及朝哪個方向移動。但是如果近距離傳感器的連續兩次探測結果表明被探測對象處于不同的位置,則可以推到出該對象在移動。
另外,每個機器人都設置有一個計時器(Timer),用于支持執行預先定義好的定時事件。機器人的動作包括:原地向左或向右旋轉90°、向前或向后移動。
建立迷宮:用戶可以使用編輯器(Editor)編寫迷宮文件,建立用戶自定義的迷宮。將迷宮文件導入游戲系統建立用戶自定義的迷宮。
現采用面向對象分析與設計方法開發該游戲,得到如圖3-1所示的用例圖以及圖3-2所示的初始類圖。
【問題1】(3分)
根據說明中的描述,給出圖3-1中U1~U3所對應的用例名。
【問題1】答案(3分)
U1:編寫迷宮文件
U2:導入迷宮文件
U3:設置計時器
【問題2】(4分)
圖3-1中用例U1~U3分別與哪個(哪些)用例之間有關系,是何種關系?
【問題2】答案(4分)
U1和U2與建立迷宮用例是泛化關系;
U3與操作機器人是包含關系
【問題3】(8分)
根據說明中的描述,給出圖3-2中C1~C8所對應的類名。
【問題3】答案(8分)
C1 機器人(Robos)
C2 計時器(Timer)
C3 小精靈(PacMan);
C4 幽靈(Ghost)(C3與C4可換)
C5 傳感器
C6 前向傳感器(FrontSensor);
C7 近距離傳感器(ProxiSesor)(C6與C7可換)
C8 迷宮(Maze)
試題四、
生物學上通常采用編輯距離來定義兩個物種DNA序列的相似性,從而刻畫物種之間的進化關系。具體來說,編輯距離是指將一個字符串變換為另一個字符所需要的最小操作次數。操作有三種,分別為:插入一個字符、刪除一個字符以及將一個字符修改為另一個字符。用字符數組str1和str2分別表示長度為len1和len2的字符串,定義二維數組d記錄求解編輯距離的子問題最優解,則該二維數組可以遞歸定義為:
C代碼
下面是算法的C語言實現。
(1)常量和變更說明
A,B:兩個字符數組
d:二維數組
i,j:循環變量
temp:臨時變量
【問題1】(8分)
根據說明和C代碼,填充C代碼中的空(1)?(4)。
【問題1】答案(8分)
(1) d[0][j] = j
(2) str1[i–1] == str2[j–1]
(3) d[i–1][j–1] + 1
(4) d[len1][len2]
【問題2】(4分)
根據說明和C代碼,算法采用了(5)設計策略,時間復雜度為(6)(用O符合表示,兩個字符串的長度分別用m和n表示)。
【問題2】答案(4分)
(5)動態規劃法
(6)O(mn) 或 O(m * n)
【問題3】(3分)
已知兩個字符串A=“CTGA”和B=“ACGCTA”,根據說明和C代碼,可得出這兩個字符串的編輯距離為(7) 。
【問題3】答案(4分)
(7)4
試題五、
享元(FlyWeight)模式主要用于減少創建對象的數量,以降低內存占用,提高性能?,F要開發一個網絡圍棋程序,允許多個玩家聯機下棋。由于只有一臺服務器,為節省內存空間,采用享元模式實現該程序,得到如圖6-1所示的類圖。
答案:
(1)public abstract void draw()
(2)Piece
(3)Piece
(4)piece.draw()
(5)piece.draw()
答案解析:
對于第一空,可知該空需要填寫的是Piece類里面的方法,對于其方法在圖中都無法找出,可以根據其實現類(BlackPiece和WhitePiece類)來看,對應得是方法publicvoid draw( ),又由于其在抽象類Piece里面,所以是抽象方法,需要加上關鍵詞abstract,則為public abstract void draw( )
對于第二空,可知該空填寫的是動態數組Arraylist的泛型,<>里面填寫得應該是對應的m_arrayPiece的類型,用類進行修飾,可知其屬于Piece類,填寫的應該是Piece
對于第三空,可知該空填寫的是對象創建的聲明對象過程,格式應該為類名 對象名稱=null,可知該對象piece對應的類是Piece(類名字母大寫)
對于第四空和第五空,根據注釋來看,是放黑子和白子的過程,已知實例化該對象piece,具體的放黑子和白子過程,都需要調用draw()方法來指向,故第4空和第5空填寫的應該都是piece.draw()
文字描述還是粗糙單調,視頻講解更精彩入味,歡迎B站找我,歡迎本站留言。
兔年新年走隆運,祥瑞如意萬事順,幸福美滿樂暢懷,喜色盈門快樂多,金銀財寶數不盡,財氣亨通福相隨,祝朋友新年快樂!
總結
以上是生活随笔為你收集整理的2021年11月软件设计师真题解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wincap的安装与环境配置
- 下一篇: 易语言 服务器抓包,易语言调用winca