當前位置:才華齋>計算機>計算機二級>

2015下半年全國計算機二級C++預測題答案及解析

計算機二級 閲讀(2.07W)

  一、選擇題

2015下半年全國計算機二級C++預測題答案及解析

(1)D【解析】在程序設計過程中,一個很重要的環節是首先確定實現各種功能的算法,並且用某種工 具將它精確地表達出來。流程圖是其中的工具之一。因此,程序設計的過程應是先畫出流程圖,然 後根據流程圖編制出程序。因此,選項A中的説法是錯誤的。 程序中的註釋是為了提高程序的可讀性。使程序易於理解、易於維護,註釋必須在編制程序的同時加 入。因此,選項B和C中的説法也都是錯誤的。

(2)D【解析】算法的空間複雜度,一般是指執行這個算法所需要的內存空間,它包括算法程序所佔的 空間、輸入的初始數據所佔的存儲空間以及算法執行過程中所需要的額外空間。因此,選項A中的 説法是錯誤的。 雖然算法的計算工作量(即時間複雜度)是問題規模的函數,但它是與數據的存儲結構有密切的關 系。因此,選項B中的説法也是錯誤的。 一個數據結構中的各數據元素在計算機存儲空間中的位置關係與邏輯關係有可能是不同的。因此, 選項C中的説法也是錯誤的。D則是正確的。

(3)A【解析】棧是按照“先進後出“(F1Lo-First In Last Out)或“後進先出”(LIFO一Last IN First Out)的原則組織數據的,因此,棧也被稱為“先進後出”表或“後進先出”表。因此,棧具有記憶作用。

(4)A【解析】按照二叉樹後序遍歷的方法:在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先 遍歷左子樹,然後遍歷右子樹,最後訪問根結點;並且,在遍歷左、右子樹時,仍然先遍歷左子樹,然後 遍歷右子樹,最後訪問根結點。對本題中的二叉樹進行後序遍歷的結果應是ZBTYCPXA.

(5)A【解析】在長度為n的有序線性表中進行二分查找,需要的比較次數為log2n。

(6)D【解析】在結構化分析方法中,數據字典的作用是描述系統中所用到的全部數據和文件的有關 信息。

(7)A【解析】維護是軟件生命週期的最後一個階段,也是持續時間最長、付出代價最大的階段。軟 件工程學的目的就在於提高軟件的可維護性,同時也要設法降低維護的代價。 軟件維護通常有以下四類: ①為糾正使用中出現的錯誤而進行的改正性維護; ②為適應環境變化而進行的適應性維護; ③為改進原有軟件而進行的完善性維護; ④為將來的可維護和可靠而進行的預防性維護。 軟件維護不僅包括程序代碼的維護,還包括文檔的維護。文檔可以分為用户文檔和系統文檔兩類。 但無論是哪類文檔,都必須與程序代碼同時維護。只有與程序代碼完全一致的文檔才有意義和價值。 由此可知,本題中選項B、C、D中的説法都是錯誤的。

(8)C【解析】在關係模型的數據語言中.一般除了運用常規的集合運算(並、交、差、笛卡爾積等)外, 還定義了一些專門的關係運算,如投影、選擇、連接等運算。前者是將關係(即二維表)看成是元組的 集合,這些運算主要是從二維表的行的方向來進行的;後者主要是從二維表的列的方向來進行運算。 因此,選項A與B中的説法都是錯誤的,而選項C中的説法是正確的。

(9)B【解析】顯然,關係表T是關係表R與S的並,即T=RUS。

(10)D【解析】顯然,在數據庫系統階段,數據獨立性最高。

(11)C【解析】注意:VC編譯器分配給整數的內存是4字節。

(12)c【解析】本題考察for循環的三個表達式的用法及其執行順序,本題中for循環的第三個表達 式完成變量自增,以控制for循環的執行次數。

(13)A【解析】C++語言規定在使用scanf輸入時可以用作數據分隔符的有空格,回車和Tab鍵。 用户如果要從鍵盤輸入空格字符,則需要使用其他的輸人方式。

(14)D【解析】邏輯表達式的值輸出結果是數字的形式。c++規定.邏輯假用數字O表示,而邏輯 真則用非零表示。注意:在C++中,如果邏輯表達式的值是非零,則可以認為是真。VC編譯器在 編譯輸出時將邏輯真輸出為l。

(15)A【解析】本題考察混合表達式的展開。

(16)B【解析】本題考察宏定義的使用,宏在使用是如同函數一樣,但卻是在編譯時展開。而函數卻是 在運行時進行計算的。

(17)B【解析】選項A可以排除,原因是類的成員函數的定義必須用域作用符::進行限定;選項C的 限定位置不對,函數的類型應在最前面。根據上下文可以指導,setx為單參成員函數,在定義時也 必須指定參數。因此選項D也可以排除,正確答案為B。

(18)D【解析】本題考察const修飾符的含義及其修飾不同對象的規則。常對象既能被常對象調用, 也能被一般對象調用,一旦const修飾了一個對象.則對象的所有數據成員都無法更新。

(19)D【解析】構造函數和析構函數一樣,是類的特殊的成員函數。其特殊之處在於,構造函數可以 有多個版本以實現不同的初始化方式,不能指定形參和函數類型,這些都是系統默認完成。

(20)D【解析】派生類和基類之間的關係比較重要,派生類不僅可以定義同名的成員變量,還可以調 用或重載基類的同名函數,這是類的多態性的基礎。

(21)B【解析】純虛函數一般提供派生類進行繼承的參考,是多態性的重要保證,一個具有純虛函數 的類稱為抽象類,抽象類可以具有其他類的特點.但不能實例化,其主要目的是作為派生類的基類 存在,處於類層次的高層。

(22)C【解析】構造函數包括默認構造函數和拷貝構造函數等,析構函數和構造函數~樣屬於類的特 殊的成員函數。而友元函數則是為了增加類的訪問靈活行而允許其他類的成員函數或全局函數訪 問類的內部變量或成員函數的一種機制,其缺點是破壞了類的封裝性。

(23)A【解析】c++語言中為了簡化繼承關係,規定多重繼承中可訪問性規則同單繼承規則。

(24)A【解析】本題考察const修飾符的作用。注意:const位置不同,其修飾的部分也是不同的。本 題中const修飾的是ptr所指的對象本身,所以,ptr是可以重新指向新的對象,而pt,一>a則無法 被更新。

(25)A【解析】本題考察引用的'定義既使用。引用是C++中新引入的概念,其使用方法同變量,而 其本質同指針,具有指針的靈活性。引用必須用變量進行賦值,不能用常量或常數。

(26)C【解析】可以説類來源於結構體,兩者有相似之處。但類的功能更強大一些,不僅增加了操作, 還能夠隱藏和包含其成員變量或成員函數。

(27)L:【解析】輸出流對象包括基本的輸出設備,如顯示器,內存和文件,而輸入流對象則包括鍵盤, 文件以及其他輸入設備。

(28)C【解析】本題考察cln流對象的幾種成員函數get,getline的使用規則。流提取符>>在提取 字符時,遇到C++規定的分隔符如空格,回車和’Fab鍵時自動分割.故本題正確答案為C。

(29)D【解析】本題考察cin流對象的幾種成員函數get,gedine,read及流提取符>>的使用規則。

(30)D【解析】c++中沒有規定文件打開時的隱含打開方式,因此考生在寫程序是必須指定打開方 式,否則將出現錯誤。

(31)B【解析】常數據成員不能背更新。因此可以排除選項C和D。常數據成員所包含的值不能被更 新,所以必須被初始化,如果初始化則常數據成員裏的隨機值是沒有實際意義的。

(32)A【解析】類的構造函數的作用就是在類實例化對象時,即對象還沒有生成時完成一些初始化 的工作。此時,析構函數和靜態成員函數都還沒有建立,而友元函數是類外部的函數,根本無法完 成類的實例化工作。

(33)A【解析】如果重載了賦值運算符後,對象之間是可以賦值的,對象如C++中其他內置的數據 類型一樣,可以作為函數參數、數組元素,其他對象的成員存在。

(34)C【解析】 同上題。

(35)A【解析】是否是重載函數,需要給編譯器提供足夠的信息判斷。其主要的依據是函數的名字, 參數的類型,函數的返回值類型。

  二、填空題

(1)【l】存儲結構【解析】數據結構分為邏輯結構與存儲結構,循環隊列屬於存儲結構。 因此,本題的正確答案為存儲結構。

(2)【2】n(n一1)/2 【解析】在最壞情況下,冒泡排序所需要的比較次數為n(n一1)/2。

(3)【3】420【解析】一般二叉樹有一個性質:在任意一棵二叉樹中,度為O的結點(即葉子結點)總是 比度為2的結點多一個。 在根據完全二叉樹的定義,在一棵完全二叉樹中,最多有1個度為1的結點。 綜合以上兩點可以得到如下結論: 沒一棵完全二叉樹具有n個結點。如果n為偶數,則在該二叉樹中有n/2個葉子結點以及n/2—1個度為2的結點.還有1個是度為1的結點;如果n為奇數.則在該二叉樹中有[n/2]+1個葉子結點 以及[n/2]個度為2的結點.沒有度為l的結點。 在本題中,完全二又樹共有839個結點.839是奇數,因此.在該二叉樹中有420個葉子結點以及419個度為2的結點.沒有度為l的結點。

(4)【4】格式化模型【解析】數據模型分為格式化模型與非格式化模型,層次模型與網狀模型屬於格 式化模型。

(5)【5】關係 【解析】在關係模型中,把數據看成一個二維表,每一個二維表稱為一個關係。

(6)【6】C【解析】本題考察強制類型轉化,char()在這裏作為一個強制類型轉化函數存在,將整數轉 化為字符。

(7)【7】比較兩個整數a和b的大小,若a>b則返回l,若a等於b,則返回O,否則返回一1。

(8)【8】a>O&&b>O&&c>O&&a+b>c&&b+c)a&&c+a>b

【解析】本題考察考生將實際問題轉換為邏輯表達式的能力。根據三角形的基本定理 “兩邊和大於第三邊”可窮舉出其表達式。

(9)【9】i=3 【解析】本題考察考生的for語句和if語句綜合使用能力。本題的情況適用於希望在 滿足指定值時停止循環的情況。

(10)【lO】不能是表達式【解析】引用是變量的別名,其實質是變量的地址。return在返回值時,如果 其後為表達式,則系統為該表達式生成一個臨時變量用於存放該表達式的結果,函數執行完畢之後 該變量被系統回收,因此.返回的該變量的地址對調用函數來説已經沒有意義了。

(11)【11】防止對類對象自己給自己賦值【解析】 防止對象給自己賦值,這是一種自毀行為.這種行為 如果不加以判斷,可能造成無意識的破壞。

(12)【12】return(strcmp(a,b)

(13)【13】修改本對象的值【解析】本題巧妙的使用this指針來完成類的不同實例進行的修改自身數 據成員的操作。

(14)【14】a=lO,this一>a=5【解析】本題考察在類的成員函數定義中,如果出現類的數據成員和成 員函數的局部變量同名的情況下,如何正確引用合適的變量或數據成員。本題巧妙的採用了this

指針完成這種標識。

(15)【15】Derived=O Sample=9【解析】本題考察派生類和基類的構造函數,析構函數的執行順序。