以下是應屆畢業生考試網小編搜索整理的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相結合,先自頂向下設計一個概念結構的框架,再自底向上爲框架設計局部概念結構