- 相關推薦
2017計算機二級公共基礎知識練習試題
考生們在備考計算機二級的時候,要及時做題進行鞏固。下面是小編分享的2017計算機二級公共基礎知識練習試題,歡迎大家練習!
(1) 在計算機中,算法是指______。
A. 查詢方法
B. 加工方法
C. 解題方案準確而完整的描述
D. 排序方法
[答案]C
[考點]數據結構與算法
[評析]
A、B、D都過于片面,此題直接選答案也很簡單。
(2) 棧和隊列的共同點是______。
A. 都是先進后出
B. 都是先進先出
C. 只允許在端點處插入和刪除元素
D. 沒有共同點
[答案]C
[考點]數據結構與算法
[評析]
棧是先進后出的,隊列是先進先出的,共同點是只允許在端點處插入和刪除元素。棧都是在一端進與出,而隊列是在一端進在另一端出。
(3) 已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是______。
A. cedba
B. acbed
C. decab
D. deabc
[答案]A
[考點]數據結構與算法
[評析]
后序又叫后根,一次遞歸過程是先左再右最后根;中序是先左再根最后右。
比如下圖:
前序是:abc
中序是:bac
后序是:bca
題中據后序遍歷序列,一眼得知c結點是根,那么據中序deba結點都在一邊,或都在根結點左邊,或右邊;據中序遍歷序列得知全在根結點的左邊。
接下來據后序得出e結點是緊挨著c結點的左子女,再據中序得知d是e的左子女,ba是右子樹。
再據后序得b是e的右子女,再據中序得a是b的右子女。
分析結果得二叉樹圖示如下:
因為我茂葉數據結構是自學的,分析此類型的題我都是用自己的方法(遞歸分析的方法),要邊分析邊畫圖,一步一步連結起來,最后再根據題中的遍歷檢查圖是否畫對,如果都符合題目,最后再可根據圖來得所求的遍歷。
再次聲明,此所有二級公基題全是我一人的思路寫的,如果你覺得不可靠,可以看其它的書。
(4) 在下列幾種排序方法中,要求內存量最大的是______。
A. 插入排序
B. 選擇排序
C. 快速排序
D. 歸并排序
[答案]D
[考點]數據結構與算法
[分析]
我們對比一個排序方法的優越性有"平均時間"、"最壞情況時間"和"輔助空間"。其中輔助空間一般是排序中需要額外的內存開銷,這些內存開銷一般據一些如中間變量(暫存變量)、比較與交換等等來決定。
插入排序和選擇排序的輔助空間都是o(1),快速排序是o(nlog2n),歸并排序是o(n)。
可知歸并排序要求內存量最大,我們也可以從其變量及循環個數也以看出歸并排序要求內存量最大。
(5) 在設計程序時,應采納的原則之一是______。
A. 程序結構應有助于讀者理解
B. 不限制goto語句的使用
C. 減少或取消注解行
D. 程序越短越好
[答案]A
[考點]程序設計基礎
[評析]
前面的題中已解釋過,二級的各種程序設計語言教程都會對結構化程序設有一定的介紹,比如goto語句的限制使用,基本上每本書上都會提到。
其中A,即易讀性比程序的效率更顯得重要,這是結構化程序設計原則提倡的,也是我們進行開發時非常重要的一點。
(6) 下列不屬于軟件調試技術的是______。
A. 強行排錯法
B. 集成測試法
C. 回溯法
D. 原因排除法
[答案]B
[考點]軟件工程基礎
[評析]
我們嚴格區分調試與測試,調試是已知有錯誤而來找錯誤,是被動的;測試有很多種,比如未發現錯誤但不能保證程序沒錯而來找BUG,還比如我們運行測試程序是否符合用戶的要求,是主動的。不用說答案就是B了 :)
A、C、D都是具體的程序調試方法,而B是宏觀的程序測試方法。
測試有單元測試、集成測試、確認測試、系統測試。比如我們在進行單元測試時,發現程序有錯誤,我們再可以根據A、C、D的方法來找錯誤。
題外話:
很多人學軟件工程時認為軟件工程太無聊了,似乎全部都是些背背記記的東西,但對于一個軟件構架師,軟件工程是非常重要的,這就不能是些背背的東西了,最重要的是理解,要徹底地理解,還得有些開發經驗才行。《軟件工程》這學科是從實踐中得出來的,同樣也需要賦予給實踐中去,這樣才有用!
(7) 下列敘述中,不屬于軟件需求規格說明書的作用的是______。
A. 便于用戶、開發人員進行理解和交流
B. 反映出用戶問題的結構,可以作為軟件開發工作的基礎和依據
C. 作為確認測試和驗收的依據
D. 便于開發人員進行需求分析
[答案]D
[考點]軟件工程基礎
[評析]
A、B、C都是作用,D說法有一定的錯誤,開發人員包括很多,比如程序員的工作就不是進行需求分析。
(8) 在數據流圖(DFD)中,帶有名字的箭頭表示______。
A. 控制程序的執行順序
B. 模塊之間的調用關系
C. 數據的流向
D. 程序的組成成分
[答案]C
[考點]軟件工程基礎
[評析]
顧名思義,數據流圖就是帶有方框(外部實體)、圓圈(變換/加工)和帶有名字的箭頭以表示數據的流向。需求分析中常用的分析圖,它遠離計算機上的具體實現,軟件人員和用戶都能看懂,有益于和用戶交流。
(9) SQL語言又稱為______。
A. 結構化定義語言
B. 結構化控制語言
C. 結構化查詢語言
D. 結構化操縱語言
[答案]C
[考點]數據庫設計基礎
[評析]
學VF和ACCESS的朋友輕而易舉選出答案,考其它的朋友們若沒學數據庫技術這一章節,則要記一下了。
Structured Query Language
結構化 查詢 語言(語句)
(10) 視圖設計一般有3種設計次序,下列不屬于視圖設計的是______。
A. 自頂向下
B. 由外向內
C. 由內向外
D. 自底向上
[答案]B
[考點]數據庫設計基礎
[評析]
通常有如下幾種方法:
1、自頂向下。先全局框架,然后逐步細化
2、自底向上。先局部概念結構,再集成為全局結構
3、由里向外。先核心結構,再向外擴張
4、混合策略。1與2相結合,先自頂向下設計一個概念結構的框架,再自底向上為框架設計局部概念結構 (11) 數據結構中,與所使用的計算機無關的是數據的______。
A. 存儲結構
B. 物理結構
C. 邏輯結構
D. 物理和存儲結構
[答案]C
[考點]數據結構與算法
[評析]
通過前面的一些題的解釋,相信此題對大家也很簡單了。
邏輯結構更接近人的思想,比如棧的先進后出的結構,這是邏輯結構,如果研究到了棧在內存中的結構,如地址、地址里的內容等等,這就是物理結構了,我們一般無須過于深入底層地鉆研。
(12) 棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是______。
A. ABCED
B. DBCEA
C. CDABE
D. DCBEA
[答案]D
[考點]數據結構與算法
[評析]
棧是先進后出的,因為在E放入前,A、B、C、D已經依次放進棧里了,故這四個元素出棧的順序只能是D、C、B、A,E可是其中排序的任何位置,答案只有D符合了。
(13) 線性表的順序存儲結構和線性表的鏈式存儲結構分別是______。
A. 順序存取的存儲結構、順序存取的存儲結構
B. 隨機存取的存儲結構、順序存取的存儲結構
C. 隨機存取的存儲結構、隨機存取的存儲結構
D. 任意存取的存儲結構、任意存取的存儲結構
[答案]B
[考點]數據結構與算法
[評析]
順序存儲結構可以以數組為例子,它在內存中的一片連續的儲存空間,從第一個元素到最后一個元素,只要根據下標就可以訪問。二級的各種程序設計語言都有。
鏈式存儲結構可以以C/C++語言中的鏈表為例,各個鏈結點無須存放在一片連續的內存空間,而只需要指針變量指過來指過去,實現隨機存取。
(14) 在單鏈表中,增加頭結點的目的是______。
A. 方便運算的實現
B. 使單鏈表至少有一個結點
C. 標識表結點中首結點的位置
D. 說明單鏈表是線性表的鏈式存儲實現
[答案]A
[考點]數據結構與算法
[評析]
舉個例子,假如我們寫一個實現鏈表刪除一個元素的函數(或過程),供共享用,函數的參數有2個,一個指針變量(指向鏈表的頭結點),一個字符變量(待刪除的元素)。通過鏈表頭結點的指針傳給函數的第一個指針變量參數,就可方便實現是哪一個鏈表的操作。
如果你考的科目沒有指針,此題答案記一下就行了。
(15) 軟件設計包括軟件的結構、數據接口和過程設計,其中軟件的過程設計是指______。
A. 模塊間的關系
B. 系統結構部件轉換成軟件的過程描述
C. 軟件層次結構
D. 軟件開發過程
[答案]B
[考點]軟件工程基礎
[評析]
相當于詳細設計,比如N-S圖就是一種,它不用具體的某種語言實現,但描述了程序的思路,有了這就可以很輕松轉換為某種語言的程序源代碼。這是一種系統結構部件轉換成軟件的過程描述。
(16) 為了避免流程圖在描述程序邏輯時的靈活性,提出了用方框圖來代替傳統的程序流程圖,通常也把這種圖稱為______。
A. PAD圖
B. N-S圖
C. 結構圖
D. 數據流圖
[答案]B
[考點]軟件工程基礎
[評析]
二級科目的很多教程都在前N-S圖的例子,比如C語言教程基本上都有,程序流程圖大部分科目也有例子。這里再舉個例子。
比如:
如果2等于3,則變量a=1,否則a=0。
我們用N-S圖表示:
轉換成VB:
If 2=3 Then
a=1
else
a=0
End If
轉換成C/C++/JAVA:
if(2==3)
a=1;
else
a=0;
(17) 數據處理的最小單位是______。
A. 數據
B. 數據元素
C. 數據項
D. 數據結構
[答案]C
[考點]數據結構與算法
[評析]
此題比較弱智,本來無從解釋。
"數據"過于宏觀,比如數據庫里的所有內容都可叫數據,它是不是數據處理的最小單位呢?
"數據元素"中的"元素",如果要死鉆牛角尖,的確沒"數據項"說得更合適。
"數據結構",這個范圍又過于大了。
(18) 下列有關數據庫的描述,正確的是______。
A. 數據庫是一個DBF文件
B. 數據庫是一個關系
C. 數據庫是一個結構化的數據集合
D. 數據庫是一組文件
[答案]C
[考點]數據庫設計基礎
[評析]
A錯,比如ACCESS數據庫的文件是mdb格式的。
B錯,數據庫里可能有很多個二維表,一個二維表就是一個關系。
D錯,雖有些數據庫底層是些文件組成的,但是從邏輯結構上來說它與文件完全是2個概念,數據庫管理比文件管理更容易、效率更高、安全性更強。
(19) 單個用戶使用的數據視圖的描述稱為______。
A. 外模式
B. 概念模式
C. 內模式
D. 存儲模式
[答案]A
[考點]數據庫設計基礎
[評析]
外模式、模式(概念模式)、內模式(存儲模式),分別是視圖級、概念級、物理級。視圖級即是用戶使用的數據視圖級,主要為局部邏輯結構,因為模式上很多個外模式,外模式到模式的映射定義了局部數據邏輯結構與全局邏輯結構之間的對應關系,表現了數據的邏輯獨立性。模式到內模式則表現了數據物理獨立性。
(20) 需求分析階段的任務是確定______。
A. 軟件開發方法
B. 軟件開發工具
C. 軟件開發費用
D. 軟件系統功能
[答案]D
[考點]軟件工程基礎
[評析]
據前面的題的解釋,相信大家對需求分析有個理性認識了。
分析員對用戶的要求作出分析,并畫出數據流程圖,該圖通俗易懂,不涉及到如何在計算機上實現,這是需求分析階段,用戶也參與,確定軟件系統功能是一個重要的任務。 (21) 算法分析的目的是______。
A. 找出數據結構的合理性
B. 找出算法中輸入和輸出之間的關系
C. 分析算法的易懂性和可靠性
D. 分析算法的效率以求改進
[答案]D
[考點]數據結構與算法
[評析]
為什么要講各種各樣的算法,只要達到功能不就行了嗎?
有些場合為了讓程序效率更高,必須改進算法。
我們二級熟悉的算法改進,如二分法查找比順序查找更快,仔細分析這些算法以求效率改進。
再比如選擇排序、插值排序、冒泡排序,哪個效率高?
我們分析算法,可知如果序列初始比較有序的情況下,冒泡法效率最高。
各種例子都說明D是正確答案。
(22) n個頂點的強連通圖的邊數至少有______。
A. n-1
B. n(n-1)
C. n
D. n+1
[答案]C
[考點]數據結構與算法
[評析]
此題超綱不用看啦!
圖這一節超綱,軟考的程序員的難度也不考的,等考三級也考不到,只有計算機四級與高級程序員或以上級別才考到。
關于圖的概念,我們在這里結合樹來講。
通過前面的一些題,我們了解了樹與二叉樹,其實樹也算是圖的一種,樹從上到下是一對多關系的,而圖不單從上到下,而且可以是任意的多對多聯系,它還可以有回路(結點與線合成回路),無方向的叫無向圖,有箭頭方向的叫有向圖。
連通圖(又叫弱連通圖):有頂點間存在通路(就是2點間有條路徑,從這可到那)(如果是有向圖,則略去方向)。
強連通圖:圖中任何兩點都可相互到達(有向圖不能略去方向)。強連通圖一定是弱連通圖。
此題問要是強連通圖至少應有的邊數,我們可以設想個一個環的特例,假設箭頭全部是順時針(或逆時針),可以構成任何兩點都可到達的強連通圖,假設有n個頂點,我們很快得出它的邊數也為n。
(23) 已知數據表A中每個元素距其最終位置不遠,為節省時間,應采用的算法是______。
A. 堆排序
B. 直接插入排序
C. 快速排序
D. 直接選擇排序 考試大論壇
[答案]B
[考點]數據結構與算法
[評析]
做此題時,我們可以回想一下每個選項的排序原理。
堆排序是邊建堆邊排序的過程,而建堆排序時的效率元素距其最終位置的遠近關系不大。
插入排序是把每個元素挨個比較之前的元素,插入到合適的位置,這種排序的比較次數很不固定,它決定于每個元素距其最終位置。
快速排序的每一趟可確定一個元素的最終位置,但以某個元素為標準的比較次數還是得比較剩下所有的,它的最大的特點是序列初始無序的情況下排序最快。(初始有序并不是每個元素距其最終位置不遠,而是有一些最終相鄰的元素初始已經相鄰了或大致左右的順序已經好了)。
直接選擇排序,就是每一趟選擇序列剩下的元素的一個最大值(或最小值)挨個排在首端(或尾端),是人腦最常使用的方法,所以被人腦最易理解。在電腦上,這種排序效率不受其初始位置的影響。
茂葉特注:上述解釋都是我自己的理解,書上并沒有如此解釋,有錯誤還望大俠們指正!
(24) 用鏈表表示線性表的優點是______。
A. 便于插入和刪除操作
B. 數據元素的物理順序與邏輯順序相同
C. 花費的存儲空間較順序存儲少
D. 便于隨機存取
[答案]A
[考點]數據結構與算法
[評析]
我們知道,如果是緊湊排列的話,數組在刪除一個其中一個元素時極為不方便,因為它需要把后面的元素都要往前移一個位置(插入的話則往后移)。而用鏈表就絕然不同了,它只需要改變指針的指向,指向這指向那的,其它元素都不用動。
所以便于插入和刪除操作。
(25) 下列不屬于結構化分析的常用工具的是______。
A. 數據流圖
B. 數據字典
C. 判定樹
D. PAD圖
[答案]D
[考點]軟件工程基礎
[評析]
通過前面題的解釋,數據流圖屬于分析階段相信大家都有所了解了。
數據字典也是一種分析階段的工具。什么叫數據字典,我們可以這樣理解。假設給了你一個數據流圖,但上面的文字說明,比如"看書"、"練習"、"考試"、"拿證書"…(假設這些是數據(知識)的處理過程,但可能有些人認為有個"測試",實際上他的意思是"考試",如果寫在數據流圖上,其它人認為是"練習測試"的意思,這就造成了數據流圖不一致的理解,而數據流圖是開發人員和用戶都能看懂的,理解肯定是一致的。所以必須有個數據字典,它標識了數據流圖的所有名詞述語,就好比我們用英漢詞典一樣,不會再有不一致的理解了。
判定樹和判定表都是加工描述方法,當然也是分析階段的。
PAD圖(問題分析圖)是詳細設計階段的工具,它的作用類似于程序流程圖和N-S圖。
關于程序流圖和N-S圖,二級很多科目都有介紹,前面的題中我也解釋過。
(26) 軟件開發的結構化生命周期方法將軟件生命周期劃分成______。
A. 定義、開發、運行維護
B. 設計階段、編程階段、測試階段
C. 總體設計、詳細設計、編程調試
D. 需求分析、功能定義、系統設計
[答案]A
[考點]軟件工程基礎
[評析]
我們可從一個軟件的從無到有的過程來看,就是分析人員先分析,開發人員再開發,最終運行和維護。
(27) 在軟件工程中,白箱測試法可用于測試程序的內部結構。此方法將程序看做是______。
A. 循環的集合
B. 地址的集合
C. 路徑的集合
D. 目標的集合
[答案]C
[考點]軟件工程基礎
[評析]
白盒測試,我們要深入源代碼的內部;而黑盒測試,我們只關心輸入與輸出數據是否符合要求。
(28) 在數據管理技術發展過程中,文件系統與數據庫系統的主要區別是數據庫系統具有______。
A. 數據無冗余
B. 數據可共享
C. 專門的數據管理軟件
D. 特定的數據模型
[答案]D
[考點]數據庫設計基礎
[評析]
文件根據一些壓縮技術也可減少冗余,數據庫也有冗余,只是比文件少;
文件也可共享,只是比數據庫共享性能差;
也有專門的文件管理軟件;
數據庫發展的模型依次是:
層次模型、網狀模型、關系模型、面向對象模型。
其中關系模型目前應用最廣泛。
(29) 分布式數據庫系統不具有的特點是______。
A. 分布式
B. 數據冗余
C. 數據分布性和邏輯整體性
D. 位置透明性和復制透明性
[答案]B
[考點]數據庫設計基礎
[評析]
如果論特點,當然是優點,數據冗余是種害處,怎能論特點?
何況分布式數據庫還減少了冗余。
(30) 下列說法中,不屬于數據模型所描述的內容的是______。
A. 數據結構
B. 數據操作
C. 數據查詢
D. 數據約束
[答案]C
[考點]數據庫設計基礎
[評析]
數據模型的三要素
1.數據結構
數據結構用于描述系統的靜態特性。在數據庫系統中,通常按照其數據結構的類型來命名數據模型。
2.數據操作
數據操作用于描述系統的動態特征。數據操作是指對數據庫中各種對象(型)的實例(值)允許執行的操作的集合,包括操作及有關的操作規則。操作有檢索、插入、刪除、修改。
3.數據完整性約束
數據完整性約束是一組完整性規則的集合。完整性規則是給定的數據模型中數據及其聯系所具有的制約和儲存規則,用以限定符合數據模型的數據庫狀態以及狀態的變化,以保證數據的正確、有效和相容。數據模型應該反映和規定本數據模型必須遵守的、基本的、通用的完整性約束。此外,數據模型還應該提供定義完整性約束的機制,以反映具體應用所涉及的數據必須遵守的特定的語義約束。
【計算機二級公共基礎知識練習試題】相關文章:
2016計算機二級考試練習試題及答案08-06
2016計算機二級基礎知識鞏固練習題08-07
計算機公共基礎知識09-03
計算機基礎知識筆試題09-26
計算機的二級公共基礎學習教程09-07
計算機二級公共基礎學習教程09-08
2017計算機二級C語言試題09-25
計算機二級公共基礎學習教程提要09-08
2016計算機二級JAVA全真模擬試題08-06