計算機(jī)二級(C++)筆試246_第1頁
計算機(jī)二級(C++)筆試246_第2頁
計算機(jī)二級(C++)筆試246_第3頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、列各題 A 、 B 、C 、D 模擬 計算機(jī)二級 (C+) 筆試 246一、選擇題 ( 每小題 2 分,共 70 分) 四個選項中,只有一個選項是正確的。 第 1 題: 下列選項中不符合良好程序設(shè)計風(fēng)格的是A. 源程序要文檔化B. 數(shù)據(jù)說明的次序要規(guī)范化C. 避免濫用 goto 語句D. 模塊設(shè)計要保證高耦合、高內(nèi)聚參考答案: D答案解析: 編程風(fēng)格是在不影響程序性能的前提下, 有效地編排和組織程序, 以提高可讀性 和可維護(hù)性。要按照規(guī)則進(jìn)行編程。這些規(guī)則包括:程序文檔化。程序文檔應(yīng) 包含恰當(dāng)?shù)臉?biāo)識符、 適當(dāng)?shù)淖⒔夂统绦虻囊曈X組織等。 數(shù)據(jù)說明。 出于閱讀理 解和維護(hù)的需要, 最好使模塊前的說

2、明語句次序規(guī)范化。 功能模塊化。 即把源 程序代碼按照功能劃分為低耦合、高內(nèi)聚的模塊。注意 goto語句的使用。合 理使用 goto 語句可以提高代碼的運行效率, 但 goto 語句的使用會破壞程序的結(jié) 構(gòu)特性。因此,除非確實需要,否則最好不使用 goto 語。因此,本題的正確答 案是 D。第 2 題: 從工程管理角度,軟件設(shè)計一般分為兩步完成,它們是A. 概要設(shè)計與詳細(xì)設(shè)計B. 數(shù)據(jù)設(shè)計與接口設(shè)計C. 軟件結(jié)構(gòu)設(shè)計與數(shù)據(jù)設(shè)計D. 過程設(shè)計與數(shù)據(jù)設(shè)計參考答案: A答案解析:從工程管理的角度, 軟件設(shè)計可分為概要設(shè)計和詳細(xì)設(shè)計兩大步驟。 概要設(shè)計是 根據(jù)需求確定軟件和數(shù)據(jù)的總體框架; 詳細(xì)設(shè)計是

3、將其進(jìn)一步簡化成軟件的算法 或表示和數(shù)據(jù)結(jié)構(gòu)。 而在技術(shù)上, 概要設(shè)計和詳細(xì)設(shè)計又由若干活動組成, 包括 總體結(jié)構(gòu)設(shè)計、數(shù)據(jù)設(shè)計和過程設(shè)計。因此,本題的正確答案是A。第 3 題: 下列選項中不屬于軟件生命周期開發(fā)階段任務(wù)的是A. 軟件測試B. 概要設(shè)計C. 軟件維護(hù)D. 詳細(xì)設(shè)計參考答案: C答案解析: 軟件生命周期由軟件定義、 軟件開發(fā)和軟件維護(hù) 3 個時期構(gòu)成,每個時期又進(jìn)一 步劃分為若干個階段。 軟件定義時期的基本任務(wù)是確定軟件系統(tǒng)的工程需求。 軟 件定義可分為軟件系統(tǒng)的可行性研究和需求分析兩個階段。 軟件開發(fā)時期是具體 設(shè)計和實現(xiàn)在前一時期定義的軟件, 它通常由 5個階段組成: 概要設(shè)

4、計、 詳細(xì)設(shè) 計、編寫代碼、 組裝測試和確認(rèn)測試。 軟件維護(hù)時期的主要任務(wù)是使軟件持久地 滿足用戶的需要。 即當(dāng)軟件在使用過程中發(fā)現(xiàn)錯誤時應(yīng)加以改正: 當(dāng)環(huán)境改變時 應(yīng)該修改軟件, 以適應(yīng)新的環(huán)境; 當(dāng)用戶有新要求時應(yīng)該及時改進(jìn)軟件, 以滿足 用戶的新要求。 根據(jù)上述對軟件生命周期的介紹, 可知選項 c 中的軟件維護(hù)不是 軟件生命周期開發(fā)階段的任務(wù)。因此,本題的正確答案是C。第 4 題: 在數(shù)據(jù)庫系統(tǒng)中,用戶所見的數(shù)據(jù)模式為A. 概念模式B. 外模式C. 內(nèi)模式D. 物理模式參考答案: B 答案解析: 數(shù)據(jù)庫管理系統(tǒng)的三級模式結(jié)構(gòu)由外模式、 模式和內(nèi)模式組成。 外模式也稱子模 式或用戶模式,

5、是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結(jié)構(gòu), 是用戶看到的數(shù)據(jù)視圖。 模 式也稱邏輯模式, 是數(shù)據(jù)庫中對全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述, 是所有用戶 所見到的數(shù)據(jù)視圖的總和。 內(nèi)模式也稱存儲模式或物理模式, 是指數(shù)據(jù)在數(shù)據(jù)庫 系統(tǒng)內(nèi)的存儲介質(zhì)上的表示,即對數(shù)據(jù)的物理結(jié)構(gòu)和存取方法的描述。第 5 題: 數(shù)據(jù)庫設(shè)計的 4 個階段是:需求分析、概念設(shè)計、邏輯設(shè)計和A. 編碼設(shè)計B. 測試階段C. 運行階段D. 物理設(shè)計參考答案: D 答案解析: 數(shù)據(jù)庫的生命周期可以分為兩個階段: 一是數(shù)據(jù)庫設(shè)計階段, 二是數(shù)據(jù)庫實現(xiàn)階 段。數(shù)據(jù)庫的設(shè)計階段又分為 4 個子階段,即需求分析、概念設(shè)計、邏輯設(shè)計和 物理設(shè)計。因此,

6、本題的正確答案是 D。第 6 題:A. T=RG 5B. T=RU SC. T=RX SD. T=R/5參考答案: C答案解析:R表中只有一個域名A,有兩個記錄(也叫元組),分別是m和n; S表中有兩個域 名,分別是B和C,其所對應(yīng)的記錄分別為L和3。觀察表T,它是由R的第一 個記錄依次與S的所有記錄組合,然后再由 R的第二個記錄與S的所有記錄組 合,形成的一個新表。 上述運算符合關(guān)系代數(shù)的笛卡兒積運算規(guī)則。 在關(guān)系代數(shù) 中,笛卡兒積運算用“X”來表示。因此,上述運算可以表示為 T=RX So第 7 題: 下列敘述中正確的是A. 個算法的空間復(fù)雜度大,則其時間復(fù)雜度也必定大B. 一個算法的空間

7、復(fù)雜度大,則其時間復(fù)雜度必定小C. 一個算法的時間復(fù)雜度大,則其空間復(fù)雜度必定小D. 上述3種說法都不對 參考答案: D答案解析:時間復(fù)雜度是指一個算法執(zhí)行時間的相對度量; 空間復(fù)雜度是指算法在運行過程 中臨時占用的存儲空間大小的度量。 有時為了加快算法的運行速度, 不得不增加 空間開銷; 有時為了能有效地存儲算法和數(shù)據(jù), 又不得不犧牲運行時間。 時間和 空間的效率往往是矛盾存在的,但是,這不適用于所有的情況,也就是說,時間 復(fù)雜度和空間復(fù)雜度之間雖然經(jīng)常矛盾, 但是二者不存在必然的聯(lián)系。 因此,選 項A、B、C的說法都是錯誤的。第 8 題: 在長為 64 的有序線性表中進(jìn)行順序查找,最壞情況

8、下需要比較的次數(shù)為A. 63B. 64C. 6D. 7參考答案: B答案解析:在長度為 64 的有序線性表中,其中的 64 個數(shù)據(jù)元素是按照從大到小或從小到大 的順序有序排列的。 在這樣的線性表中進(jìn)行順序查找, 最壞的情況就是查找的數(shù) 據(jù)元素不在線性表中或位于線性表的最后。 按照線性表的順序查找算法, 首先用 被查找的數(shù)據(jù)和線性表的第一個數(shù)據(jù)元素進(jìn)行比較。 若相等,則查找成功;否則, 繼續(xù)進(jìn)行比較,即和線性表的第二個數(shù)據(jù)元素進(jìn)行比較。同樣,若相等,則查找 成功;否則,繼續(xù)進(jìn)行比較。以此類推,直到在線性表中查找到該數(shù)據(jù)或查找到 線性表的最后一個元素,算法才結(jié)束。因此,在長度為 64 的有序線性表

9、中進(jìn)行 順序查找,最壞的情況下需要比較 64 次。因此,本題的正確答案為 B。第 9 題:數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的A. 存儲問題B. 共享問題C. 安全問題D. 保護(hù)問題參考答案: B答案解析:數(shù)據(jù)庫可以看成是長期存儲在計算機(jī)內(nèi)的、 大量的、有結(jié)構(gòu)的和可共享的數(shù)據(jù)集 合。因此,數(shù)據(jù)庫具有為各種用戶所共享的特點。 不同的用戶可以使用同一個數(shù) 據(jù)庫,可以取出它們所需要的子集, 而且允許子集任意重疊。 數(shù)據(jù)庫的根本目標(biāo) 是要解決數(shù)據(jù)的共享問題。因此,選項 B的說法是正確的。第 10 題:A. ACBDFEGB. ACBDFGEC. ABDCGEFD. FCADBEG參考答案: A答案解析:

10、 二叉樹的中序遍歷遞歸算法為: 如果根不空, 則按中序次序訪問左子樹; 訪 問根結(jié)點:按中序次序訪問右子樹,否則返回。本題中,根據(jù)中序遍歷算法, 應(yīng)首先按照中序次序訪問以C為根結(jié)點的左子樹,然后再訪問根結(jié)點 F,最后才 訪問以E為根結(jié)點的右子樹。遍歷以C為根結(jié)點的左子樹同樣要遵循中序遍歷算 法,因此中序遍歷結(jié)果為 ACBD然后遍歷根結(jié)點F;遍歷以E為根結(jié)點的右子 樹,同樣要遵循中序遍歷算法,因此中序遍歷結(jié)果為EG最后把這3部分的遍歷結(jié)果按順序連接起來,中序遍歷結(jié)果為ACBDFEC因此,本題的正確答案是 A第 11 題:下列有關(guān)內(nèi)聯(lián)函數(shù)的敘述中,正確的是A. 內(nèi)聯(lián)函數(shù)在調(diào)用時發(fā)生控制轉(zhuǎn)移B. 內(nèi)

11、聯(lián)函數(shù)必須通過關(guān)鍵字 inline 來定義C. 內(nèi)聯(lián)函數(shù)是通過編譯器來實現(xiàn)的D. 內(nèi)聯(lián)函數(shù)體的最后一條語句必須是 return語句參考答案: C答案解析: 內(nèi)聯(lián)函數(shù)也具有函數(shù)的基本功能, 可以沒有返回值; 內(nèi)聯(lián)函數(shù)由編譯器在調(diào)用該 函數(shù)時將函數(shù)體的代碼插入到調(diào)用該函數(shù)的語句處, 同時以實參代替形參, 以便 程序在運行時不再進(jìn)行函數(shù)調(diào)用,即在調(diào)用時不發(fā)生控制轉(zhuǎn)移。第 12 題:下列情況中,不會調(diào)用復(fù)制構(gòu)造函數(shù)的是A. 用一個對象去初始化同一類的另一個新對象時B. 將類的一個對象賦予該類的另一個對象時C. 函數(shù)的形參是類的對象,調(diào)用函數(shù)進(jìn)行形參和實參結(jié)合時D. 函數(shù)的返回值是類的對象,函數(shù)執(zhí)行返回

12、調(diào)用時參考答案: D答案解析:用一個對象去初始化同一類的另一個新對象時, 將類的一個對象賦予該類的另一 個對象時, 函數(shù)的形參是類的對象, 調(diào)用函數(shù)進(jìn)行形參和實參結(jié)合時都會調(diào)用復(fù) 制構(gòu)造函數(shù),生成一個新的對象,只有返回值為對象時,才調(diào)用構(gòu)造函數(shù),而不 是復(fù)制構(gòu)造函數(shù),生成一個新對象給函數(shù)返回,故答案為D。第 13 題:下列有關(guān)繼承和派生的敘述中,正確的是A. 如果一個派生類私有繼承其基類, 則該派生類對象不能訪問基類的保護(hù)成員B. 派生類的成員函數(shù)可以訪問基類的所有成員C. 基類對象可以賦值給派生類對象D. 如果派生類沒有實現(xiàn)基類的一個純虛函數(shù),則該派生類是一個抽象類參考答案: A答案解析:派

13、生類的成員函數(shù)在不同的繼承方式下, 能訪問的數(shù)據(jù)成員也不一樣。 在公有繼 承方式下,派生類的成員函數(shù)能訪問基類的公有和保護(hù)成員; 在保護(hù)繼承方式下, 能訪問基類的公有和保護(hù)成員; 而在私有繼承方式下, 則不能訪問基類的任何成 員。可以將派生類對象賦值給基類對象,但不能將基類對象賦值給派生類對象。 如果一個抽象類的派生類中沒有抽象說明純虛函數(shù), 則該函數(shù)在派生類中仍然為 純虛函數(shù),而這個派生類也仍然是一個抽象類。第 14 題: 下列運算不能重載為友元函數(shù)的是A. =()卜>B. +-+-C. >v> =v =D. +=-=*=/=參考答案: A答案解析:C+中規(guī)定“=”、“()

14、”、“”、“- >”不能被重載為友元函數(shù) 第 15 題: 模板對類型的參數(shù)化提供了很好的支持,因此A. 類模板的主要作用是生成抽象類B. 類模板實例化時,編譯器將根據(jù)給出的模板實參生成一個類C. 在類模板中的數(shù)據(jù)成員都具有同樣類型D. 類模板中的成員函數(shù)都沒有返回值 參考答案: B答案解析:類模板是一個通用類, 不知道其數(shù)據(jù)成員和成員函數(shù)的返回類型和形參類型, 系 統(tǒng)會根據(jù)實參的類型來取代類模板中的虛擬類型從而實現(xiàn)不同類的功能。 類模板 中的數(shù)據(jù)成員的類型并非一定要一致。第 16 題:下列關(guān)于C+流的敘述中,正確的是A. 與鍵盤、屏幕、打印機(jī)和通信端口的交互都可以通過流類來實現(xiàn)B. 從流

15、中獲取數(shù)據(jù)的操作稱為插入操作,向流中添加數(shù)據(jù)的操作稱為提取操作C. cin 是一個預(yù)定義的輸入流類D. 輸出流有一個名為open的成員函數(shù),其作用是生成一個新的流對象參考答案: A答案解析:在C+中,所有設(shè)備的交互都通過流來實現(xiàn)。從流中提取數(shù)據(jù)稱為輸入操作,或 者提取操作;向流中添加數(shù)據(jù)稱為輸出操作,或者插入操作。 cin 是標(biāo)準(zhǔn)的輸入 流對象, cout 標(biāo)準(zhǔn)輸入流對象。文件流中有 open 成員函數(shù),其作用是使磁盤文 件同某一已經(jīng)定義的文件流對象建立關(guān)聯(lián)。第 17 題:下列符號中可以用作C+標(biāo)識符的是A. _radiusB. foo barC. elseD. 3 room參考答案: A答案

16、解析:在C+中,變量標(biāo)識符必須以大小寫字母、下畫線開始,是由數(shù)字或者字母下畫 線等組成的一個字符串,其中 C+咲鍵字不能作為標(biāo)識符,不能包含-、+、*、/ 等運算符號。第 18 題: 下列語句中,錯誤的是A. const int buffer=256;B. const int temp;C. const double*point;D. const double*rt=new double(5.5)參考答案: B答案解析:用 const 修飾常量就變?yōu)槌W兞浚?常變量一旦被建立, 就不能被更改。 在被定義 時就應(yīng)該給常變量賦初始值, 而常指針則不同, 被定義后, 它指向的地址不能發(fā) 生改變,但是

17、指向的地址中的數(shù)據(jù)可以改變。第 19 題:有如下程序:int x=3 :dO x-=2:cout vvx:while(!(-x); 執(zhí)行這個程序的輸出結(jié)果是A. 1B. 3OC. 12D. 死循環(huán)參考答案: C答案解析:Do.while()循環(huán)是先執(zhí)行循環(huán)體,然后判斷條件。第一次進(jìn)入循環(huán)x=1,打印1,第二次進(jìn)入循環(huán)x=0,執(zhí)行x-=2后,x=-2,打印x,退出循環(huán)。第 20 題:有如下程序:#includev iostream>using namespace std ;int main( )int*P ;*P=9;coutvv "The value at Pvv *P:ret

18、urn 0 ;編譯運行程序?qū)⒊霈F(xiàn)的情況是A. 編譯時出現(xiàn)語法錯誤,不能生成可執(zhí)行文件B. 運行時一定輸出: The value at P : 9C. 運行時一定輸出:The value at P : *9D. 運行時有可能出錯參考答案: D答案解析:int*p ;指針變量定義時沒有被初始化,也沒有指向具體的地址,所以在后面打印時報錯。應(yīng)當(dāng)做如下初始化:int*p=new int( ); 第 21 題:有如下程序:#include v iostream > using namcspace std ;int main( )void function(double val) ; double

19、val ;function(val) ;eoutvvval ;return 0 ;voidfunction(double val)val=3 : 編譯運行這個程序?qū)⒊霈F(xiàn)的情況是A. 編譯出錯,無法運行B. 輸出:3C. 輸出:3.0D. 輸出一個不確定的數(shù)參考答案: D答案解析:在主函數(shù)中的 val 沒有初始值,而且在調(diào)用函數(shù) function( ) 時采用的是傳值調(diào) 用,所以在函數(shù)中改變 val 的值不會影響到主函數(shù)中的 val 值,故輸出是一個不 確定的值。第 22 題:有如下類定義:class AAint a ;public :intgetRef( )eonstreturna; / in

20、tgetValue( )constreturn a; / vold set(intn)eonsta=n ; / friend void show(AA aA)eonsttoutvva; / ;其中的 4 個函數(shù)定義中正確的是A. B. C. D. 參考答案: B答案解析:友元函數(shù)不能使用con st修飾,故錯誤,的函數(shù)類型和返回類型不匹配。如 果一個類的成員函數(shù)被聲明為 const 類型,表示該函數(shù)不會改變對象的狀態(tài), 也 就是說該函數(shù)不會修改類的非靜態(tài)數(shù)據(jù)成員,而對類的數(shù)據(jù)成員a進(jìn)行了賦值,故不能用const賦值,故錯。第 23 題:有如下程序:#includeusing namespace

21、 std ; fun( )cout vv "Base:fun" public Basepublic :"Derived:fun"vv endl :main( )Derived d ;已知其執(zhí)行后的輸出結(jié)果為: 序中下畫線處應(yīng)填入的語句是v iostream >class Base vv endl :void fun( ) ; dfun( ) ;Base:funusing namespace std ; public : void ;class Derived :eoutvvintreturn 0 ;Derived:fun則程A. Base.fun(

22、 );B. Base:fun( );C. Base->fun( ) ;D. fun( ); 參考答案: B答案解析:從打印結(jié)果可以看出,在對象 d 調(diào)用 fun( ) 函數(shù)時調(diào)用了基類的 fun( ) 函數(shù), 所以,在派生類中應(yīng)該顯式調(diào)用基類的fun()函數(shù),故應(yīng)該寫成:Base:fun(); 第 24 題:面是重載為非成員函數(shù)的運算符函數(shù)原型,其中錯誤的是A. Fraction operator+(FractionB. Fraction operator-(Fraction)C. Fraction&operator=(Fraction&, Fraction) ;?, F

23、raction) ;D.Fraction&operator+=(Fraction&,F(xiàn)raction) ;參考答案: C答案解析:類的賦值運算符“ =”只能被重載為成員函數(shù),不能重載為友元函數(shù)。第 25 題:有如下函數(shù)模板:template v type name T, type naine U > Tcast(U u)return u;其功能是將 U 類型數(shù)據(jù)轉(zhuǎn)換為 T 類型數(shù)據(jù)。已知i 為 int 型變量,下列對模板函數(shù) cast 的調(diào)用中正確的是A. cast(i) ;B. cast v> (i) ;C. cast v char* , int > (i)

24、 ;D. cast v double , int > (i) ;參考答案: D答案解析:選擇A、B錯在沒有給T參數(shù)類型,在函數(shù)的返回值中應(yīng)該為T確定一個確切的類型。選項C錯在賦給T的類型和函數(shù)中返回值的類型不匹配,故答案為Db第 26 題:若磁盤上已存在某個文本文件,其全路徑文件名為 d: ncretest.txt ,下列 語句中不能打開該文件的是A. ifstream file("d:ncretest.txt");B. ifstream file("d: ncretest.txt") ;C. ifstream file;file open(&qu

25、ot;d : ncretest.txt") ;D. ifstream*pFile=new ifstream("d: ncretest.txt") ;參考答案: A答案解析:文件流的打開路徑用“ ”隔開,而不是“ ”,但可以用“ / ”隔開第 27 題:有如下類定義:class Foopublic :Foo(int v) :value(v)/ Foo()/ private :Foo( )/ int value=0; / ;其中存在語法錯誤的行是A. B. C. D.參考答案: D答案解析:類的數(shù)據(jù)成員只能被定義類型, 而不能對其設(shè)置默認(rèn)值。 如果要設(shè)置默認(rèn)值需要 在

26、構(gòu)造函數(shù)的參數(shù)中進(jìn)行設(shè)置。第 28 題:有如下類定義: class Point int x_ ,y_;public :Point( ) :x_(0) ,y_(0)Point(int x , int y=0) :x_(x) ,y_(y) ; 若執(zhí)行語句: Point a(2) ,b3 ,*c4 ; 則 Point 類的構(gòu)造函數(shù)被調(diào)用的次數(shù)是A. 2 次B. 3 次C. 4次D. 5次參考答案: C答案解析:a(2) 執(zhí)行一次,調(diào)用帶參構(gòu)造函數(shù); b3 生成一個對象數(shù)組, 所以執(zhí)行 3 次無參 構(gòu)造函數(shù),生成 3 個對象數(shù)組元素; *c4 定義一個對象指針,并沒產(chǎn)生對象, 所以沒有調(diào)用構(gòu)造函數(shù)。第

27、 29 題:有如下類定義:class Test public :Test()a=0 ;C=0; t/ static int g( )return a Test:b=b ; ; b;const int c/ static int在標(biāo)注號碼int f(intA)constthis-> a=a; ; / void h(int B./ private : int a ; ;int Test:b=0 :的行中,能被正確編譯的是A. B. C. D. 參考答案: D答案解析:類的常變量一旦被定義就不能更改,所以選項A錯。定義常成員函數(shù)不能更新對 象的數(shù)據(jù)成員,也不能調(diào)用該類中的普通函數(shù), 更不能改變

28、該類的數(shù)據(jù)成員的值。 靜態(tài)成員函數(shù)不能訪問非靜態(tài)數(shù)據(jù)成員。第 30 題:有如下程序:#include v lostream > using namespace std ;class Apublic :A( )cout vv "A" ; A( )cout vv"A" ;class B : public AA*P;public :B( )cout vv "B" ; P=new A( ) ; B( )cout vv"B" deleteP; ;int main( )B obj ;return 0 ;程序的輸出結(jié)果是A

29、. BAA A B AB. ABA B A AC. BAA B A AD. ABA A B A參考答案: B答案解析: 基類與派生類的構(gòu)造函數(shù)與析構(gòu)函數(shù)的執(zhí)行順序是先執(zhí)行基類的構(gòu)造函數(shù), 然后 執(zhí)行派生類的構(gòu)造函數(shù)。 刪除對象時, 先執(zhí)行派生類的析構(gòu)函數(shù), 最后執(zhí)行基類 的析構(gòu)函數(shù)成員。第 31 題:有如下類定義:class MyBaseint k ;public :MyBase(int n=0) :k(n)int value( )constreturn k; ;class MyDerived :MyBaseint j ;public :MyDerived(int i) : j(i)int g

30、etK( )eonstreturn k ; intgetJ( )constreturn j ; ;編譯時發(fā)現(xiàn)有一處語法錯誤,對這個錯誤最準(zhǔn)確的描述是A. 函數(shù) getK 試圖訪問基類的私有成員變量 KB. 在類MyDerived的定義中,基類名MyBase前缺少關(guān)鍵字public > protected 或 privateC. 類MyDerived缺少一個無參的構(gòu)造函數(shù)D. 類MyDerived的構(gòu)造函數(shù)沒有對基數(shù)數(shù)據(jù)成員K進(jìn)行初始化參考答案: A答案解析:派生類的成員函數(shù)不能訪問基類的私有函數(shù) 第 32 題: 在一個派生類對象結(jié)束其生命周期時A. 先調(diào)用派生類的析構(gòu)函數(shù),后調(diào)用基類的析

31、構(gòu)函數(shù)B. 先調(diào)用基類的析構(gòu)函數(shù),后調(diào)用派生類的析構(gòu)函數(shù)C. 如果基類沒有定義析構(gòu)函數(shù),則只調(diào)用派生類的析構(gòu)函數(shù)D. 如果派生類沒有定義析構(gòu)函數(shù),則只調(diào)用基類的析構(gòu)函數(shù)參考答案: B答案解析:在刪除派生類對象時,應(yīng)先執(zhí)行派生類的析構(gòu)函數(shù),然后執(zhí)行基類的析構(gòu)函數(shù) 第 33 題:有如下運算重載函數(shù)定義: Double operator+(int i , int k)return double(i+k) ;但定義有錯誤,對這個錯誤的最準(zhǔn)確的描述是A. + 只能作為成員函數(shù)重載,而這里的 +是作為非成員函數(shù)重載的B. 兩個 int 型參數(shù)的和應(yīng)該是 int 型,而這里將 +的返回類型聲明為 doubl

32、eC. 沒有將運算符重載函數(shù)聲明為某個類的友元D. C+已經(jīng)提供了求兩個int型數(shù)據(jù)之和運算符+,不能再定義同樣的運算符參考答案: C答案解析: “+”作為雙目運算符,在對其進(jìn)行重載時,如果重載為成員函數(shù),則只需要定 義一個形參;如果重載為友元函數(shù),則需要定義兩個形參。從題干中可以看出, 在重載函數(shù)聲明中,沒有 friend 關(guān)鍵字,卻有兩個形參,故會提示友元函數(shù)重 載報錯。第 34 題:語句 ofstream f("SALARY DAT", ios_base:app) 的功能是建立流對象 f ,并 試圖打開文件SALARY DAT與f關(guān)聯(lián),而且A. 若文件存在,則將其置為

33、空文件;若文件不存在,則打開失敗B. 若文件存在,則將文件指針定位于文件尾;若文件不存在,則建立一個新 文件C. 若文件存在,則將文件指針定位于文件首;若文件不存在,則打開失敗D. 若文件存在,則打開失敗;若文件不存在,則建立一個新文件參考答案: B答案解析:ios_base:app 所表示的文件打開方式為: 如果文件存在則將文件指針指向文件 尾,否則就建立一個新文件。第 35 題:有如下程序:#include v iostream >using namespace std :class Apublic :virtual void funcl( )coutvv "A1"

34、; ; class B :publicvv"B1"; voidint main( )A*p=new B;return 0 :運行程void func2( )cout vv "A2"; ;A public :void funcl( )coutfllnc2( )cout vv"B2"; ;p->funcl( );p->func2( ) ;序,屏幕上將顯示輸出A.B182B.A1A2C. BlA2D. AlB2參考答案: B答案解析:基類指針可以指向派生類對象, 但是指針只能訪問繼承自基類的成員, 而不能訪問派生類中的新增加成員

35、或重新定義后的成員。故p- >funcl( ) ;p- >func2();都執(zhí)行基類的成員函數(shù),打印 A1A2。二、填空題 ( 每空 2 分,共 30 分)第 36 題:參考答案:3詳細(xì)解答: 題目中的圖形是倒置的樹狀結(jié)構(gòu),這是用層次圖表示的軟件結(jié)構(gòu)。在結(jié)構(gòu)圖 中同一層次模塊的最大模塊個數(shù)稱為結(jié)構(gòu)的寬度, 它表示控制的總寬度。 根據(jù)上 述結(jié)構(gòu)圖寬度的定義, 從圖中可以看出, 第二層的模塊個數(shù)最多, 即為 3。因此, 這個系統(tǒng)結(jié)構(gòu)圖的寬度就為 3。第 37 題:的任務(wù)是診斷和改正程序中的錯誤。參考答案:或程序調(diào)試(階段)或軟件調(diào)試(階段)或Debug(階段) 詳細(xì)解答:軟件測試的目的

36、是發(fā)現(xiàn)程序中的錯誤, 而調(diào)試的目的是確定程序中錯誤的位 置和引起錯誤的原因, 并加以改正。 換句話說, 調(diào)試的目的就是診斷和改正程序 中的錯誤。調(diào)試不是測試,但是它總是發(fā)生在測試之后。因此,本題的正確答案 是調(diào)試(階段)或程序調(diào)試(階段)或軟件調(diào)試(階段)或Debug(階段) 第 38 題: 一個關(guān)系表的行稱為 。參考答案:記錄或元組 詳細(xì)解答: 關(guān)系是關(guān)系數(shù)據(jù)模型的核心。關(guān)系可以用一個表來直觀地表示,表的每一列 表示關(guān)系的一個屬性, 每一行表示一個元組或記錄。 因此, 本題的正確答案是元 組或記錄。第 39 題:按“先進(jìn)后出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是 參考答案: 棧或 Stack詳細(xì)解答:

37、棧和隊列是兩種特殊的線性表, 其特殊性在于對它們的操作只能在表的端點 進(jìn)行。棧中的數(shù)據(jù)按照后進(jìn)先出的原則進(jìn)行組織, 而隊列中的數(shù)據(jù)按照先進(jìn)先出 的原則進(jìn)行組織。因此,本題的正確答案是棧 (stack) 。第 40 題: 數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊列屬于 。參考答案:線性結(jié)構(gòu) 詳細(xì)解答: 數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),其中隊列是屬于線性結(jié)構(gòu)。隊列有兩 種存儲結(jié)構(gòu):一種是順序存儲結(jié)構(gòu),稱為順序隊列;另一種是鏈?zhǔn)酱鎯Y(jié)構(gòu),稱 為鏈隊列。題目中所說的帶鏈的隊列就是指鏈隊列。 無論隊列采取哪種存儲結(jié)構(gòu), 其本質(zhì)還是隊列,還屬于一種線性結(jié)構(gòu)。因此,本題的正確答案是線性結(jié)構(gòu)。第 41 題

38、:若有定義語句:int*a , b;,則變量b的數(shù)據(jù)類型是。參考答案:int詳細(xì)解答:缺數(shù)據(jù)類型。第 42 題:已知數(shù)組a中的元素個數(shù)為n,下列語句的作用是將下標(biāo)為i的元素移動到下標(biāo)為i-1的單元,其中 K i v n。例如,當(dāng)n=4, a中原有數(shù)據(jù)為1、2、3、4 時,則移動后 a 中元素為 2、3、4、4。請將語句補充完整:for(inti=O ; i v n-1 ; i+)ai=a 。參考答案:ai+1詳細(xì)解答:實現(xiàn)由后面一個數(shù)組元素將前一個數(shù)組元素進(jìn)行覆蓋,故應(yīng)該為ai=ai+1。第 43 題:已知遞歸函數(shù) f 的定義如下:int f(int n)if(n v = 1)return 1

39、 ; / 遞歸結(jié)束情況 f5=5*f3=5*3*f1 else return n*f(n-2);/ 遞歸 則函數(shù)調(diào)用語句 f(5) 的返回值是 。參考答案:15詳細(xì)解答: 函數(shù)遞歸調(diào)用, f(5)=5*f(3)=5*(3*f(1)=15。第 44 題:創(chuàng)建對象數(shù)組時,對數(shù)組的每一個元素都將調(diào)用一次構(gòu)造函數(shù),如果沒有顯式 給出數(shù)組元素的初值,則調(diào)用默認(rèn)構(gòu)造函數(shù),下列程序涉及對象數(shù)組的創(chuàng)建和 單個對象的創(chuàng)建,其輸出結(jié)果是 。#includev iostream >using namespace std ; class Foo public :Foo(int x)eout vv 'A&

40、#39; ; Foo( );int main( )Foo f3, g(3) ;return O ;參考答案: A數(shù)組 f3 調(diào)用的是無參構(gòu)造函數(shù),而 g(3) 調(diào)用的是第一個有參構(gòu)造函數(shù), 故打印 A。第 45 題: 已知下列程序的輸出結(jié)果是 42,請將下畫線處缺失的部分補充完整。#include v iostream >using namespace std ;class Fooint value ;public :Foo( ) :value(0)void setValue(int value)=value ;/ 給 Foo 的數(shù)據(jù)成員 value 賦值void print( )eou

41、tvv value ;int main( )Foo f ; f.setValue(42) ; f.print() ; return 0 ;參考答案:this.value詳細(xì)解答: 為類的數(shù)據(jù)成員賦值,將從形參傳遞來的實參賦值給類數(shù)據(jù)成員,為區(qū)分名字可以使用 this 指針。第 46 題:有如下程序:#include v iostream >using namespaee std ;class ONEpublic :virtual void f( )coutvv "1" ;class TWO:public ONEpublic :TWO( )1 cout vv "2" ;cl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論