- 相關(guān)推薦
2015下半年全國計算機二級C++預(yù)測題答案及解析
一、選擇題
(1)D【解析】在程序設(shè)計過程中,一個很重要的環(huán)節(jié)是首先確定實現(xiàn)各種功能的算法,并且用某種工 具將它精確地表達出來。流程圖是其中的工具之一。因此,程序設(shè)計的過程應(yīng)是先畫出流程圖,然 后根據(jù)流程圖編制出程序。因此,選項A中的說法是錯誤的。 程序中的注釋是為了提高程序的可讀性。使程序易于理解、易于維護,注釋必須在編制程序的同時加 入。因此,選項B和C中的說法也都是錯誤的。
(2)D【解析】算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間,它包括算法程序所占的 空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行過程中所需要的額外空間。因此,選項A中的 說法是錯誤的。 雖然算法的計算工作量(即時間復(fù)雜度)是問題規(guī)模的函數(shù),但它是與數(shù)據(jù)的存儲結(jié)構(gòu)有密切的關(guān) 系。因此,選項B中的說法也是錯誤的。 一個數(shù)據(jù)結(jié)構(gòu)中的各數(shù)據(jù)元素在計算機存儲空間中的位置關(guān)系與邏輯關(guān)系有可能是不同的。因此, 選項C中的說法也是錯誤的。D則是正確的。
(3)A【解析】棧是按照“先進后出“(F1Lo-First In Last Out)或“后進先出”(LIFO一Last IN First Out)的原則組織數(shù)據(jù)的,因此,棧也被稱為“先進后出”表或“后進先出”表。因此,棧具有記憶作用。
(4)A【解析】按照二叉樹后序遍歷的方法:在訪問根結(jié)點、遍歷左子樹與遍歷右子樹這三者中,首先 遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點;并且,在遍歷左、右子樹時,仍然先遍歷左子樹,然后 遍歷右子樹,最后訪問根結(jié)點。對本題中的二叉樹進行后序遍歷的結(jié)果應(yīng)是ZBTYCPXA.
(5)A【解析】在長度為n的有序線性表中進行二分查找,需要的比較次數(shù)為log2n。
(6)D【解析】在結(jié)構(gòu)化分析方法中,數(shù)據(jù)字典的作用是描述系統(tǒng)中所用到的全部數(shù)據(jù)和文件的有關(guān) 信息。
(7)A【解析】維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長、付出代價最大的階段。軟 件工程學(xué)的目的就在于提高軟件的可維護性,同時也要設(shè)法降低維護的代價。 軟件維護通常有以下四類: ①為糾正使用中出現(xiàn)的錯誤而進行的改正性維護; ②為適應(yīng)環(huán)境變化而進行的適應(yīng)性維護; ③為改進原有軟件而進行的完善性維護; ④為將來的可維護和可靠而進行的預(yù)防性維護。 軟件維護不僅包括程序代碼的維護,還包括文檔的維護。文檔可以分為用戶文檔和系統(tǒng)文檔兩類。 但無論是哪類文檔,都必須與程序代碼同時維護。只有與程序代碼完全一致的文檔才有意義和價值。 由此可知,本題中選項B、C、D中的說法都是錯誤的。
(8)C【解析】在關(guān)系模型的數(shù)據(jù)語言中.一般除了運用常規(guī)的集合運算(并、交、差、笛卡爾積等)外, 還定義了一些專門的關(guān)系運算,如投影、選擇、連接等運算。前者是將關(guān)系(即二維表)看成是元組的 集合,這些運算主要是從二維表的行的方向來進行的;后者主要是從二維表的列的方向來進行運算。 因此,選項A與B中的說法都是錯誤的,而選項C中的說法是正確的。
(9)B【解析】顯然,關(guān)系表T是關(guān)系表R與S的并,即T=RUS。
(10)D【解析】顯然,在數(shù)據(jù)庫系統(tǒng)階段,數(shù)據(jù)獨立性最高。
(11)C【解析】注意:VC編譯器分配給整數(shù)的內(nèi)存是4字節(jié)。
(12)c【解析】本題考察for循環(huán)的三個表達式的用法及其執(zhí)行順序,本題中for循環(huán)的第三個表達 式完成變量自增,以控制for循環(huán)的執(zhí)行次數(shù)。
(13)A【解析】C++語言規(guī)定在使用scanf輸入時可以用作數(shù)據(jù)分隔符的有空格,回車和Tab鍵。 用戶如果要從鍵盤輸入空格字符,則需要使用其他的輸人方式。
(14)D【解析】邏輯表達式的值輸出結(jié)果是數(shù)字的形式。c++規(guī)定.邏輯假用數(shù)字O表示,而邏輯 真則用非零表示。注意:在C++中,如果邏輯表達式的值是非零,則可以認為是真。VC編譯器在 編譯輸出時將邏輯真輸出為l。
(15)A【解析】本題考察混合表達式的展開。
(16)B【解析】本題考察宏定義的使用,宏在使用是如同函數(shù)一樣,但卻是在編譯時展開。而函數(shù)卻是 在運行時進行計算的。
(17)B【解析】選項A可以排除,原因是類的成員函數(shù)的定義必須用域作用符::進行限定;選項C的 限定位置不對,函數(shù)的類型應(yīng)在最前面。根據(jù)上下文可以指導(dǎo),setx為單參成員函數(shù),在定義時也 必須指定參數(shù)。因此選項D也可以排除,正確答案為B。
(18)D【解析】本題考察const修飾符的含義及其修飾不同對象的規(guī)則。常對象既能被常對象調(diào)用, 也能被一般對象調(diào)用,一旦const修飾了一個對象.則對象的所有數(shù)據(jù)成員都無法更新。
(19)D【解析】構(gòu)造函數(shù)和析構(gòu)函數(shù)一樣,是類的特殊的成員函數(shù)。其特殊之處在于,構(gòu)造函數(shù)可以 有多個版本以實現(xiàn)不同的初始化方式,不能指定形參和函數(shù)類型,這些都是系統(tǒng)默認完成。
(20)D【解析】派生類和基類之間的關(guān)系比較重要,派生類不僅可以定義同名的成員變量,還可以調(diào) 用或重載基類的同名函數(shù),這是類的多態(tài)性的基礎(chǔ)。
(21)B【解析】純虛函數(shù)一般提供派生類進行繼承的參考,是多態(tài)性的重要保證,一個具有純虛函數(shù) 的類稱為抽象類,抽象類可以具有其他類的特點.但不能實例化,其主要目的是作為派生類的基類 存在,處于類層次的高層。
(22)C【解析】構(gòu)造函數(shù)包括默認構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù)等,析構(gòu)函數(shù)和構(gòu)造函數(shù)~樣屬于類的特 殊的成員函數(shù)。而友元函數(shù)則是為了增加類的訪問靈活行而允許其他類的成員函數(shù)或全局函數(shù)訪 問類的內(nèi)部變量或成員函數(shù)的一種機制,其缺點是破壞了類的封裝性。
(23)A【解析】c++語言中為了簡化繼承關(guān)系,規(guī)定多重繼承中可訪問性規(guī)則同單繼承規(guī)則。
(24)A【解析】本題考察const修飾符的作用。注意:const位置不同,其修飾的部分也是不同的。本 題中const修飾的是ptr所指的對象本身,所以,ptr是可以重新指向新的對象,而pt,一>a則無法 被更新。
(25)A【解析】本題考察引用的定義既使用。引用是C++中新引入的概念,其使用方法同變量,而 其本質(zhì)同指針,具有指針的靈活性。引用必須用變量進行賦值,不能用常量或常數(shù)。
(26)C【解析】可以說類來源于結(jié)構(gòu)體,兩者有相似之處。但類的功能更強大一些,不僅增加了操作, 還能夠隱藏和包含其成員變量或成員函數(shù)。
(27)L:【解析】輸出流對象包括基本的輸出設(shè)備,如顯示器,內(nèi)存和文件,而輸入流對象則包括鍵盤, 文件以及其他輸入設(shè)備。
(28)C【解析】本題考察cln流對象的幾種成員函數(shù)get,getline的使用規(guī)則。流提取符>>在提取 字符時,遇到C++規(guī)定的分隔符如空格,回車和’Fab鍵時自動分割.故本題正確答案為C。
(29)D【解析】本題考察cin流對象的幾種成員函數(shù)get,gedine,read及流提取符>>的使用規(guī)則。
(30)D【解析】c++中沒有規(guī)定文件打開時的隱含打開方式,因此考生在寫程序是必須指定打開方 式,否則將出現(xiàn)錯誤。
(31)B【解析】常數(shù)據(jù)成員不能背更新。因此可以排除選項C和D。常數(shù)據(jù)成員所包含的值不能被更 新,所以必須被初始化,如果初始化則常數(shù)據(jù)成員里的隨機值是沒有實際意義的。
(32)A【解析】類的構(gòu)造函數(shù)的作用就是在類實例化對象時,即對象還沒有生成時完成一些初始化 的工作。此時,析構(gòu)函數(shù)和靜態(tài)成員函數(shù)都還沒有建立,而友元函數(shù)是類外部的函數(shù),根本無法完 成類的實例化工作。
(33)A【解析】如果重載了賦值運算符后,對象之間是可以賦值的,對象如C++中其他內(nèi)置的數(shù)據(jù) 類型一樣,可以作為函數(shù)參數(shù)、數(shù)組元素,其他對象的成員存在。
(34)C【解析】 同上題。
(35)A【解析】是否是重載函數(shù),需要給編譯器提供足夠的信息判斷。其主要的依據(jù)是函數(shù)的名字, 參數(shù)的類型,函數(shù)的返回值類型。
二、填空題
(1)【l】存儲結(jié)構(gòu)【解析】數(shù)據(jù)結(jié)構(gòu)分為邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),循環(huán)隊列屬于存儲結(jié)構(gòu)。 因此,本題的正確答案為存儲結(jié)構(gòu)。
(2)【2】n(n一1)/2 【解析】在最壞情況下,冒泡排序所需要的比較次數(shù)為n(n一1)/2。
(3)【3】420【解析】一般二叉樹有一個性質(zhì):在任意一棵二叉樹中,度為O的結(jié)點(即葉子結(jié)點)總是 比度為2的結(jié)點多一個。 在根據(jù)完全二叉樹的定義,在一棵完全二叉樹中,最多有1個度為1的結(jié)點。 綜合以上兩點可以得到如下結(jié)論: 沒一棵完全二叉樹具有n個結(jié)點。如果n為偶數(shù),則在該二叉樹中有n/2個葉子結(jié)點以及n/2—1個度為2的結(jié)點.還有1個是度為1的結(jié)點;如果n為奇數(shù).則在該二叉樹中有[n/2]+1個葉子結(jié)點 以及[n/2]個度為2的結(jié)點.沒有度為l的結(jié)點。 在本題中,完全二又樹共有839個結(jié)點.839是奇數(shù),因此.在該二叉樹中有420個葉子結(jié)點以及419個度為2的結(jié)點.沒有度為l的結(jié)點。
(4)【4】格式化模型【解析】數(shù)據(jù)模型分為格式化模型與非格式化模型,層次模型與網(wǎng)狀模型屬于格 式化模型。
(5)【5】關(guān)系 【解析】在關(guān)系模型中,把數(shù)據(jù)看成一個二維表,每一個二維表稱為一個關(guān)系。
(6)【6】C【解析】本題考察強制類型轉(zhuǎn)化,char()在這里作為一個強制類型轉(zhuǎn)化函數(shù)存在,將整數(shù)轉(zhuǎn) 化為字符。
(7)【7】比較兩個整數(shù)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
【解析】本題考察考生將實際問題轉(zhuǎn)換為邏輯表達式的能力。根據(jù)三角形的基本定理 “兩邊和大于第三邊”可窮舉出其表達式。
(9)【9】i=3 【解析】本題考察考生的for語句和if語句綜合使用能力。本題的情況適用于希望在 滿足指定值時停止循環(huán)的情況。
(10)【lO】不能是表達式【解析】引用是變量的別名,其實質(zhì)是變量的地址。return在返回值時,如果 其后為表達式,則系統(tǒng)為該表達式生成一個臨時變量用于存放該表達式的結(jié)果,函數(shù)執(zhí)行完畢之后 該變量被系統(tǒng)回收,因此.返回的該變量的地址對調(diào)用函數(shù)來說已經(jīng)沒有意義了。
(11)【11】防止對類對象自己給自己賦值【解析】 防止對象給自己賦值,這是一種自毀行為.這種行為 如果不加以判斷,可能造成無意識的破壞。
(12)【12】return(strcmp(a,b)
(13)【13】修改本對象的值【解析】本題巧妙的使用this指針來完成類的不同實例進行的修改自身數(shù) 據(jù)成員的操作。
(14)【14】a=lO,this一>a=5【解析】本題考察在類的成員函數(shù)定義中,如果出現(xiàn)類的數(shù)據(jù)成員和成 員函數(shù)的局部變量同名的情況下,如何正確引用合適的變量或數(shù)據(jù)成員。本題巧妙的采用了this
指針完成這種標識。
(15)【15】Derived=O Sample=9【解析】本題考察派生類和基類的構(gòu)造函數(shù),析構(gòu)函數(shù)的執(zhí)行順序。
【下半年全國計算機二級C++預(yù)測題答案及解析】相關(guān)文章:
2015年9月全國計算機二級C++預(yù)測題答案及解析06-19
2015下半年計算機二級C++考試預(yù)測題答案及解析08-31
2015下半年全國計算機考試二級C++預(yù)測卷答案及解析10-05
計算機二級C++程序題及答案解析10-25
二級C++上機沖刺題及答案解析10-10