以下是應屆畢業生考試網小編搜尋整理的2017年計算機二級公共基礎知識模擬試題及答案,更多計算機二級考試內容請繼續關注應屆畢業生考試網。
(1) 演算法一般都可以用哪幾種控制結構組合而成______。
A. 迴圈、分支、遞迴
B. 順序、迴圈、巢狀
C. 迴圈、遞迴、選擇
D. 順序、選擇、迴圈
[答案]D
[考點]資料結構與演算法
[評析]
結構化程式設計中,基本的控制結構為順序、選擇、迴圈。各種具體的程式設計語言中的一些控制結構都可以劃分到這些類中。比如VB裡的Select Case語句、 If,C/C++中的switch()、if{}……都屬於選擇控制結構。相應的for迴圈和while語句都屬於迴圈結構。按從上到下順序執行的即是順序控制結構。
(2) 資料的儲存結構是指______。
A. 資料所佔的儲存空間量
B. 資料的邏輯結構在計算機中的表示
C. 資料在計算機中的順序儲存方式
D. 儲存在外存中的資料
[答案]B
[考點]資料結構與演算法
[評析]
這是個基本概念題。儲存空間量只是資料的儲存結構的一個屬性,答案C也太片面,比如連結串列也是種儲存方式,而非線性的還有樹、圖……我們所學的資料結構不涉及到資料在計算機外存(比如硬碟、軟盤)具體的方式,而僅關心它們在記憶體中邏輯結構,比如陣列,它是記憶體中一片連續的資料儲存,我們對每一個元素都可以順序地訪問,只需要知道某一個元素的地址,其它資料元素的地址可以據庫下標與陣列型別(如字元型、整型……)所佔的儲存空間就可算出每個元素的地址,故順序訪問所有元素。但是對於具體資料在記憶體中的物理儲存,我們很少關心。比如某個陣列建立時,它的首地址具體是多少?它們在記憶體中的二進位制表示是什麼的?
另,什麼叫物理結構,什麼叫邏輯結構,可以這樣來理解,就好比物理結構是一個人的肉體,邏輯結構是一個人的靈魂,類似於計算機中硬體與軟體的說法。就好比我們上QQ,傳送訊息、接收訊息,基本上近似大眾人的思維,但傳送訊息與接收訊息這些的具體技術過程或它們在CPU和硬碟上的活動,甚至二進位制是什麼呢?去問騰訊公司
(3) 設有下列二叉樹:
對此二叉樹中序遍歷的結果為______。
A. ABCDEF
B. DBEAFC
C. ABDECF
D. DEBFCA
[答案]B
[考點]資料結構與演算法
[評析]
該題原稿沒圖,故無從解釋,此知識點的詳解部分請看5題
(4) 在面向物件方法中,一個物件請求另一物件為其服務的方式是通過傳送______。
A. 呼叫語句
B. 命令
C. 口令
D. 訊息
[答案]D
[考點]程式設計基礎
[評析]
通過訊息機制。太理論方面的不多說,現舉例說明。
C++:
比如在VC++中,單擊了一個選單命令項"退出",我們要實現退出程式,如何來實現?很簡單,只要向窗體傳送一個PostQuitMessage(0);就可以關閉窗體。
這個在VB中還簡單,三個字元"End"即可解決,相當於向所有窗體傳送一個銷燬窗體的訊息,即"Unload 窗體名"語句。(如果是單個窗體的話,即相當於Unload Me語句)
VB:
Public a As Integer
Private Sub Command1_Click()
a = 20
Print a
End Sub
Private Sub Command2_Click()
Form_Load ''''''''''''''這裡呼叫Form_Load()過程,實用a=10
Print a
End Sub
Private Sub Form_Load()
a = 10
End Sub
命令按紐Command2向其母窗體傳送一個訊息,使其為Command2服務。
Command2是CommandButton類的一個物件,主窗體是窗體類的一個物件。
關於類與物件的理解,請大家看前面的題的詳解。
(5) 檢查軟體產品是否符合需求定義的過程稱為______。
A. 確認測試
B. 整合測試
C. 驗證測試
D. 驗收測試
[答案]A
[考點]軟體工程基礎
[評析]
A、C、D相近,但A為比較正規的說法名詞。
確認測試也稱合格測試或驗收測試,主要由使用者參加,檢驗軟體規格說明的技術標準的符合程度,是保證軟體質量的最後關鍵環節。
單元測試主要採用白盒法,之後再採用整合測試,主要採用黑盒法。這些主要由開發者的工作,而無使用者參與,不是檢查是否符合需求定義的。
什麼叫白盒黑盒?
相當於這樣理解吧:
白盒測試,我們要注意到程式碼;黑盒,我們只關心程式執行的輸入輸出是否正確,一般是大量的測試,主要於非增量測試中使用,而非增量測試又一般適用於規模較小的系統開發。可以想象,一個很大很複雜的系統,我們用黑盒法來整合測試,效果可想而知。
(6) 下列工具中屬於需求分析常用工具的是______。
A. PAD
B. PFD
C. N-S
D. DFD
[答案]D
[考點]軟體工程基礎
[評析]
PAD,問題分析圖,常用於詳細設計;
PFD,程式流程圖,常用於詳細設計,我們很多如C、VB…程式設計書上都有簡單的例項;
N-S,方框圖,比程式流程圖更靈活,也常用於詳細設計;
DFD,資料流圖,遠離具體在計算機上的實現,不懂計算機的使用者也能看懂,用於需求分析。
什麼叫詳細設計?它與我們程式設計有什麼區別?
這樣理解吧,公司的高階程式設計師,就是軟體設計師,他們會搞詳細設計的(在概要設計之後),比如用PAD或N-S畫個圖,它不涉及具體的某種程式設計語言的實現,但程式設計師們都能看懂,程式設計師再用某種語言(比如C、VB、JAVA…)按照圖來寫程式碼。這個過程,高階程式設計師完成設計工作,程式設計師完成寫程式碼工作。
(7) 下面不屬於軟體設計原則的是______。
A. 抽象
B. 模組化
C. 自底向上
D. 資訊隱蔽
[答案]C
[考點]軟體工程基礎
[評析]
我們無論是設計與編寫程式碼,無論是畫資料流圖還是程式流圖,習憒性思維都是先有輸入才有輸出,從下至下。自底向上不是軟體設計的原則。
(8) 索引屬於______。
A. 模式
B. 內模式
C. 外模式
D. 概念模式
[答案]B
[考點]資料庫設計基礎
[評析]
要特別記住此題的答案。
索引的寫入修改了資料庫的物理結構,而不是簡單的邏輯設計。內模式規定了資料在儲存介質上的`物理組織方式、記錄錄址方式。
(9) 在關係資料庫中,用來表示實體之間聯絡的是______。
A. 樹結構
B. 網結構
C. 線性表
D. 二維表
[答案]D
[考點]資料庫設計基礎
[評析]
關係資料庫中的關係,用二維表表示,A為層次資料模型的,B為網狀資料模型的。
資料庫模型分為:
層次模型、網狀模型、關係模型、面向物件模型。
(10) 將E-R圖轉換到關係模式時,實體與聯絡都可以表示成______。
A. 屬性
B. 關係
C. 鍵
D. 域
[答案]B
[考點]資料庫設計基礎
[評析]
基本概念題,實體與聯絡可以表示成關係,關係可以表示成二維表。
(11) 在下列選項中,哪個不是一個演算法一般應該具有的基本特徵______。
A. 確定性
B. 可行性
C. 無窮性
D. 擁有足夠的情報
[答案]C
[考點]程式設計基礎
[評析]
演算法具有確定性、可行性,並擁有足夠的情報。
(12) 希爾排序法屬於哪一種型別的排序法______。
A. 交換類排序法
B. 插入類排序法
C. 選擇類排序法
D. 建堆排序法
[答案]B
[考點]資料結構與演算法
[評析]
Shell排序法 輸入:陣列名稱(也就是陣列首地址)、陣列中元素個數
思想為:在直接插入排序演算法中,每次插入一個數,使有序序列只增加1個節點,
並且對插入下一個數沒有提供任何幫助。如果比較相隔較遠距離(稱為
增量)的數,使得數移動時能跨過多個元素,則進行一次比較就可能消除
多個元素交換。l於1959年在以他名字命名的排序演算法中實現
了這一思想。演算法先將要排序的一組數按某個增量d分成若干組,每組中
記錄的下標相差d.對每組中全部元素進行排序,然後再用一個較小的增量
對它進行,在每組中再進行排序。當增量減到1時,整個要排序的數被分成
一組,排序完成。
下面的函式是一個希爾排序演算法的一個實現,初次取序列的一半為增量,
以後每次減半,直到增量為1。以C語言為例。
void shell_sort(int *x, int n)
{
int h, j, k, t;
for (h=n/2; h>0; h=h/2) /*控制增量*/
{
for (j=h; j {
t = *(x+j);
for (k=j-h; (k>=0 && t<*(x+k)); k-=h)
{
*(x+k+h) = *(x+k);
}
*(x+k+h) = t;
}
}
}
故屬於插入類排序法。
(13) 下列關於佇列的敘述中正確的是______。
A. 在佇列中只能插入資料
B. 在佇列中只能刪除資料
C. 佇列是先進先出的線性表
D. 佇列是先進後出的線性表
[答案]C
[考點]資料構與演算法
[評析]
佇列是先進先出的,棧是先進後出的,2者的區別一定要搞清楚。
(14) 對長度為N的線性表進行順序查詢,在最壞情況下所需要的比較次數為______。
A. N+1
B. N
C. (N+1)/2
D. N/2
[答案]B
[考點]資料結構與演算法
[評析]
很簡單,我們的二級程式設計語言書中都有此演算法,另外還要掌握二分法查詢,這也是我們二級中常考的。
那麼二分法最壞的情況為多少次呢?
>log2 n的最小整數值。
比如n為1,最壞的情況要比較次;
n為18,最壞的情況要比較5次。
二分法適用於已排序的順序表(我們二級語言中都是陣列),考二級書裡的,這裡不再羅嗦。
(15) 資訊隱蔽的概念與下述哪一種概念直接相關______。
A. 軟體結構定義
B. 模組獨立性
C. 模組型別劃分
D. 模擬耦合度
[答案]B
[考點]軟體工程基礎
[評析]
模組獨立性越強,則資訊隱蔽性越好。
舉個例,
VB:
在多重窗體設計時,每個窗體裡的變數儘量與其它窗體裡變數無關,比如少用Public宣告的變數,即全域性變數,當多個窗體共享全域性變數越多時,窗體的獨立性就越差。
C:
標頭檔案裡的一些函式,一般不用到全域性變數,否則在主程式裡出亂子的情況很多,我們在模組化開發時,儘量使每個模組獨立,強功能內聚,分工明確,除錯程式也要方便得多。
C++:
考此項的朋友估計不用我多講,類的封裝性就是一個很好的說明。
(16) 面向物件的設計方法與傳統的的面向過程的方法有本質不同,它的基本原理是______。
A. 模擬現實世界中不同事物之間的聯絡
B. 強調模擬現實世界中的演算法而不強調概念
C. 使用現實世界的概念抽象地思考問題從而自然地解決問題
D. 鼓勵開發者在軟體開發的絕大部分中都用實際領域的概念去思考
[答案]C
[考點]軟體工程基礎
[評析]
我們舉個例,
從各種語言的結構體型別出發,我們知道,結構體中可以定義很多變數,對每個變數執行相同的操作,挨個挨個寫出,很麻煩。假設該結構體有如下變數:
草魚、田魚、鯽魚……
它們都在一口池塘裡,現在執行:它們都上來
傳統的程式設計是:
草魚上來
田魚上來
鯽魚上來
……
一條一條都寫出,是不是很麻煩?
改進一下,我們用個迴圈:
n等於從1到10(假設共有10種魚)
第n種魚上來
還是很麻煩,現實中我們很易想到用"面向物件的思想",池塘裡所有的魚都是一個結構體變數,名為魚,執行:
魚上來
意思即所有的魚都上來。
現特定於面象物件語言中的類,魚,就可以看作為一類。
這就屬於 C 項:
使用現實世界的概念抽象地思考問題從而自然地解決問題
這樣羅嗦的解釋望大家別暈,旨在幫助部分人的確難想通的,為應試,你能背下答案也行。
(17) 在結構化方法中,軟體功能分解屬於下列軟體開發中的階段是______。
A. 詳細設計
B. 需求分析
C. 總體設計
D. 程式設計除錯
[答案]C
[考點]軟體工程基礎
[評析]
從先到後一排,是:
需求分析、總體設計、詳細設計、程式設計除錯
需求分析遠離在計算機上的實現,談不上功能的分解;
有了需求分析的報告,軟體設計員可以思考我要讓軟體怎麼做,開始總體設計,其間將軟體的功能分解,確定模組之間的介面;
有了每個模組功能的分解,再對每個模組進入詳細設計階段;
接下來再是程式設計師的任務,編寫程式碼,開始程式設計除錯。
(18) 軟體除錯的目的是______。
A. 發現錯誤
B. 改正錯誤
C. 改善軟體的效能
D. 挖掘軟體的潛能
[答案]B
[考點]軟體工程基礎
[評析]
一個程式除錯是為了幹什麼?
還不是為了改正錯誤?
發現錯誤?這只是一個過程,改正錯誤之前必須先發現錯誤,總不能目的就僅為發現錯誤吧。
(19) 按條件f對關係R進行選擇,其關係代數表示式為______。
A. R|X|R
B. R|X|R
C. бf(R)
D. ∏f(R)
[答案]C
[考點]資料庫設計基礎
[評析]
C是選擇一行,D是投影一列,二者要區分開。
如果不僅談此題的話,有關關係代數,內容有些多,這裡不是一兩句能說清,可以看看相關《資料庫》的資料中的關係代數,裡面寫得很詳細。為應試,情急之下能記住幾個題答案就行。
(20) 資料庫概念設計的過程中,檢視設計一般有三種設計次序,以下各項中不對的是______。
A. 自頂向下
B. 由底向上
C. 由內向外
D. 由整體到區域性
[答案]D
[考點]資料庫設計基礎
[評析]
通常有如下幾種方法:
1、自頂向下。先全域性框架,然後逐步細化
2、自底向上。先區域性概念結構,再整合為全域性結構 、由裡向外。先核心結構,再向外擴張
1、混合策略。1與2相結合,先自頂向下設計一個概念結構的框架,再自底向上為框架設計區域性概念結構