練習題一
1[單選題]下列敘述中正確的是
A.一個演算法的空間複雜度大,則其時間複雜度也必定大
B.一個演算法的空間複雜度大,則其時間複雜度必定小
C.一個演算法的時間複雜度大,則其空間複雜度必定小
D.演算法的時間複雜度與空間複雜度沒有直接關係
參考答案:D
參考解析:演算法的空間複雜度是指演算法在執行過程中所需要的記憶體空間,演算法的時間複雜度,是指執行演算法所需要的計算工作量,兩者之間並沒有直接關係,答案為D。
2[單選題] 某二叉樹共有12個結點,其中葉子結點只有1個。則該二叉樹的深度為(根結點在第1層)
A.3B.6C.8D.12
參考答案:D
參考解析:二叉樹中,度為0的結點數等於度為2的結點數加1,即n2=n0-1,葉子結點即度為0,nO=1,則n2=0,總結點數為12=no+n1+n2=1+n1+0,則度為1的結點數nl=11,故深度為12,選D。
3[單選題] 下面屬於白盒測試方法的是
A.等價類劃分法
B.邏輯覆蓋
C.邊界值分析法
D.錯誤推測法
參考答案:B
參考解析:白盒測試法主要有邏輯覆蓋、基本路徑測試等。邏輯覆蓋測試包括語句覆蓋、路徑覆蓋、判定覆蓋、條件覆蓋、判斷一條件覆蓋,選擇B。其餘為黑盒測試法。
4[單選題] 若實體A和B是一對多的'聯絡,實體B和C是一對一的聯絡,則實體A和c的聯絡是
A.一對一B.一對多C.多對一D.多對多
參考答案:B
參考解析:A和B為一對多的聯絡,則對於A中的每一個實體,B中有多個實體與之聯絡,而B與C為一對一聯絡,則對於B中的每一個實體,C中之多有一個實體與之聯絡,則可推出對於A中的每一個實體,C中有多個實體與聯絡,所以為一對多聯絡。
58[單選題] 軟體生命週期可分為定義階段、開發階段和維護階段,下面不屬於開發階段任務的是
A.測試B.設計C.可行性研究D.實現
參考答案:C
【解析】開發階段包括分析、設計和實施兩類任務。其中分析、設計包括需求分析、總體設計和詳細設計3個階段,實施則包括編碼和測試兩個階段,C不屬於開發階段。
6[單選題] 軟體設計中模組劃分應遵循的準則是
A.低內聚低耦合
B.高耦合高內聚
C.高內聚低耦合
D.以上說法均錯誤
參考答案:C
參考解析:根據軟體設計原理提出如下優化準則:①劃分模組時,儘量做到高內聚、低耦合,保持模組相對獨立性,並以此原則優化初始的軟體結構。②一個模組的作用範圍應在其控制範圍之內,且判定所在的模組應與受其影響的模組在層次上儘量靠近。③軟體結構的深度、寬度、扇入、扇出應適當。④模組的大小要適中。C正確。
7[單選題] 一般情況下,當對關係R和S進行自然連線時,要求R和S含有一個或者多個共有的
A.記錄B.行C.屬性D.元組
參考答案:C
參考解析:自然連線是一種特殊的等值連線,它滿足下面的條件:①兩關係間有公共域;②通過公共域的等值進行連線,選C。
8[單選題]結構化程式設計中,下面對goto語句使用描述正確的是
A.禁止使用goto語句B.使用goto語句程式效率高C.應避免濫用goto語句D.以上說法均錯誤
參考答案:C
【解析】結構化程式設計中,要注意儘量避免goto語句的使用,故選C。
9[單選題] 下面不屬於軟體需求分析階段主要工作的足
A.需求變更申請B.需求分析C.需求評審D.需求獲取
參考答案:A
【解析】需求分析階段的工作可概括為4個方面:①需求獲取。②需求分析。③編寫需求規格說明書。④需求審評。
10[單選題] 下面不屬於軟體測試實施步驟的是
A.整合測試B.迴歸測試C.確認測試D.單元測試
參考答案:B
【解析】軟體測試主要包括單元測試、整合測試、確認測試和系統測試。