全國(guó)計(jì)算機(jī)二級(jí)C++考題真題_第1頁(yè)
全國(guó)計(jì)算機(jī)二級(jí)C++考題真題_第2頁(yè)
全國(guó)計(jì)算機(jī)二級(jí)C++考題真題_第3頁(yè)
全國(guó)計(jì)算機(jī)二級(jí)C++考題真題_第4頁(yè)
全國(guó)計(jì)算機(jī)二級(jí)C++考題真題_第5頁(yè)
已閱讀5頁(yè),還剩82頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 2006年9月考試真題(第24次)1. 從工程管理角度,軟件設(shè)計(jì)一般分為兩步完成,它們是_。A、概要設(shè)計(jì)與詳細(xì)設(shè)計(jì) B、過(guò)程控制 C、軟件結(jié)構(gòu)設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)D、程序設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)從工程管理角度看,軟件設(shè)計(jì)分為兩步完成:概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)(又稱結(jié)構(gòu)設(shè)計(jì))將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu)、確定系統(tǒng)級(jí)接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫(kù)模式;詳細(xì)設(shè)計(jì)確立每個(gè)模塊的實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用適當(dāng)方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。 故本題答案為A。2. 數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是解決數(shù)據(jù)的_。A、存儲(chǔ)問(wèn)題 B、共享問(wèn)題 C、安全問(wèn)題 D、保護(hù)問(wèn)題由于數(shù)據(jù)的集成性使得數(shù)據(jù)可為多個(gè)應(yīng)用所共享,特別是在網(wǎng)絡(luò)發(fā)達(dá)的今天,

2、數(shù)據(jù)庫(kù)與網(wǎng)絡(luò)的結(jié)合擴(kuò)大了數(shù)據(jù)關(guān)系的應(yīng)用范圍。數(shù)據(jù)的共享本身又可極大地減少數(shù)據(jù)冗余性,不僅減少了不必要的存儲(chǔ)空間,更為重要的是可以避免數(shù)據(jù)的不一致性。因此,數(shù)據(jù)庫(kù)設(shè)計(jì)的根本目標(biāo)是要解決數(shù)據(jù)共享問(wèn)題。 故本題答案為B。3. 在數(shù)據(jù)庫(kù)系統(tǒng)中,用戶所見(jiàn)數(shù)據(jù)模式為_(kāi)。A、概念模式 B、外模式 C、內(nèi)模式 D、物理模式數(shù)據(jù)庫(kù)管理系統(tǒng)的三級(jí)模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。外模式又稱為子模式,或用戶模式,是指數(shù)據(jù)庫(kù)用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式又稱為邏輯模式,是數(shù)據(jù)庫(kù)中對(duì)全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見(jiàn)到的數(shù)據(jù)視圖的總和。外模式是模式的一部分。內(nèi)模式又稱為存儲(chǔ)模式或物理模式

3、,是指數(shù)據(jù)在數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)的存儲(chǔ)介質(zhì)上的表示,即對(duì)數(shù)據(jù)的物理結(jié)構(gòu)和存取方式的描述。 故本題答案為B。4. 在長(zhǎng)度為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為_(kāi)。A、63 B、64 C、6 D、7在進(jìn)行順序查找過(guò)程中,如果線性表中的第1個(gè)元素就是被查找元素,則只需做一次比較就查找成功,查找效率最高;但如果被查找的元素是線性表中的最后一個(gè)元素,或者被查找的元素根本就不在線性表中,則為了查找這個(gè)元素需要與線性表中所有的元素進(jìn)行比較,這是順序查找的最壞情況。所以對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下需要比較n次。 故本題答案為B。5. 對(duì)下列二叉樹(shù)進(jìn)行中序遍歷的結(jié)果是_。A、ACB

4、DFEG B、ACBDFGE C、ABDCGEF D、FCADBEG 二叉樹(shù)的中序遍歷指在訪問(wèn)根結(jié)點(diǎn)、遍歷左子樹(shù)與遍歷右子樹(shù)這三者中,首先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù);并且遍歷左、右子樹(shù)時(shí),仍然先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù)。 故本題答案為A。6. 下列選項(xiàng)中不屬于軟件生命周期開(kāi)發(fā)階段任務(wù)的是_。A、軟件測(cè)試 B、概要設(shè)計(jì) C、軟件維護(hù) D、詳細(xì)設(shè)計(jì)軟件生命周期分為軟件定義、軟件開(kāi)發(fā)及軟件維護(hù)。其中軟件開(kāi)發(fā)階段的任務(wù)中軟件設(shè)計(jì)階段可分解成概要設(shè)計(jì)階段和詳細(xì)設(shè)計(jì)階段;軟件維護(hù)不屬于軟件開(kāi)發(fā)階段。 故本題答案為C。7. 下列敘述中正確的是_。A、一個(gè)算法的空間復(fù)雜度大,

5、則其時(shí)間復(fù)雜度也必定大B、一個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小C、一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小 D、上述三種說(shuō)法都不對(duì)算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和空間復(fù)雜度:算法在運(yùn)行過(guò)程中需輔助存儲(chǔ)空間的大小稱為算法的空間復(fù)雜度;算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,即算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù),為了能夠比較客觀地反映出一個(gè)算法的效率,在度量一個(gè)算法的工作量時(shí),不僅應(yīng)該與所使用的計(jì)算機(jī)、程序設(shè)計(jì)語(yǔ)言以及程序編制者無(wú)關(guān),而且還應(yīng)該與算法實(shí)現(xiàn)過(guò)程中的許多細(xì)節(jié)無(wú)關(guān)。為此,可以用算法在執(zhí)行過(guò)程中所需基本運(yùn)算的執(zhí)行次數(shù)來(lái)度量算法的工作量。 故本題答案為D。8. 下列選項(xiàng)中

6、不符合良好程序設(shè)計(jì)風(fēng)格的是_。A、源程序要文檔化B、數(shù)據(jù)說(shuō)明的次序要規(guī)范化C、避免濫用goto語(yǔ)句 D、模塊設(shè)計(jì)要保證高耦合、高內(nèi)聚良好的程序設(shè)計(jì)風(fēng)格可以使程序結(jié)構(gòu)清晰合理,使程序代碼便于維護(hù),因此,程序設(shè)計(jì)風(fēng)格對(duì)保證程序的質(zhì)量很重要。主要應(yīng)注意和考慮下述一些因素:1、源程序要文檔化;2、數(shù)據(jù)說(shuō)明的次序要規(guī)范化;3、語(yǔ)句的結(jié)構(gòu)應(yīng)該簡(jiǎn)單直接,不應(yīng)該為提高效率而把語(yǔ)句復(fù)雜化,避免濫用goto語(yǔ)句。模塊設(shè)計(jì)要保證低耦合、高內(nèi)聚。 故本題答案為D。9. 設(shè)有如下三個(gè)關(guān)系表 R S T 下列操作中正確的是_。A、T=RS B、RS C、 D、T=RS從圖中可以看出,關(guān)系T是關(guān)系R和關(guān)系S的簡(jiǎn)單擴(kuò)充,而擴(kuò)

7、充的符號(hào)為,所以答案為。 故本題答案為C。10. 數(shù)據(jù)庫(kù)設(shè)計(jì)的四個(gè)階段是:需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和_。A、編碼設(shè)計(jì) B、測(cè)試階段 C、運(yùn)行階段 D、物理設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)分為以下6個(gè)設(shè)計(jì)階段:需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、實(shí)施階段及數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)階段。 故本題答案為D。11. 下列運(yùn)算符不能重載為友元函數(shù)的是_。A、= () - B、+ - + - C、 = 以及所有的類(lèi)型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,不能重載為友元函數(shù)。 故本題答案為A。12. 語(yǔ)句ofstream f(,ios_base:app);的功能是建立流對(duì)象f,并試圖打開(kāi)文件與f關(guān)聯(lián),而且_。A、若

8、文件存在,將其置為空文件;若文件不存在,打開(kāi)失敗B、若文件存在,將文件指針定位于文件尾;若文件不存在,建立一個(gè)新文件C、若文件存在,將文件指針定位于文件首;若文件不存在,打開(kāi)失敗D、若文件存在,打開(kāi)失敗;若文件不存在,建立一個(gè)新文件本題考查的是文件流的輸出。 ofstream f(SALARY.DAT,ios_base:app);是以ios_base:app方式打開(kāi)文件,若文件存在,將文件指針定位于文件尾;若文件不存在,建立一個(gè)新文件。 故本題答案為B。 13. 有如下程序#include using namespace std;class A public: virtual void fun

9、c1()coutAl; void func2()coutA2;class B:public A public: void func1()coutB1; void func2()coutfunc1(); p-func2(); return 0;運(yùn)行此程序,屏幕上將顯示輸出_。A、B1B2 B、A1A2 C、B1A2 D、A1B2本題考查的是派生類(lèi)。 派生類(lèi)B由基類(lèi)A公有繼承而來(lái)。調(diào)用p-func1();后,執(zhí)行派生類(lèi)B的函數(shù)void func1();調(diào)用p-func2();后,執(zhí)行基類(lèi)的函數(shù)void func2(),因?yàn)樘摂M函數(shù)是根據(jù)對(duì)象的實(shí)際類(lèi)型調(diào)用,非虛擬函數(shù)是根據(jù)指針類(lèi)型調(diào)用。故通過(guò)指針p

10、調(diào)用func2時(shí)將直接調(diào)用基類(lèi)中的void func2()。 故本題答案為C。14. if語(yǔ)句的語(yǔ)法格式可描述為: 格式1:if()或 格式2:if()else關(guān)于上面的語(yǔ)法格式,下列表述中錯(cuò)誤的是_。A、部分可以是一個(gè)if語(yǔ)句,例如if(if(a=0) ) B、部分可以是一個(gè)if語(yǔ)句,例如if() if() C、如果在前加上邏輯非運(yùn)算符!并交換和的位置,語(yǔ)句功能不變D、部分可以是一個(gè)循環(huán)語(yǔ)句,例如if()while() 本題考查的是if語(yǔ)句。 if為關(guān)鍵字,通常是一個(gè)表達(dá)式;if子句和else子句可以是任何類(lèi)型的語(yǔ)句,當(dāng)然也可以是ifelse語(yǔ)句本身和while語(yǔ)句。 ifelse語(yǔ)句的基本

11、執(zhí)行過(guò)程是:首先計(jì)算的值,如果此值不為0(真),則執(zhí)行,然后忽略,而去執(zhí)行if語(yǔ)句之后的下一條語(yǔ)句;如果此值為0(假),則執(zhí)行,然后忽略,然后繼續(xù)執(zhí)行if語(yǔ)句之后的下一條語(yǔ)句。 故本題答案為A。15. 下列語(yǔ)句中,錯(cuò)誤的是_。A、const int buffer=256; B、const double *point;C、int const buffer=256;D、double *const point;本題考查的是符號(hào)常量定義。 const int buffer=256; /聲明常量buffer const double *point; /聲明常量指針*point,*point不可變,但po

12、int的值可以改變 int const buffer=256; /聲明常量buffer double *const point; /聲明的point是常量,*point可變,但point的值不可以改變,point不是外部的,必須在聲明初始化常量對(duì)象。可改為: double aa = 123.45; double *const point = &aa; 故本題答案為D。16. 關(guān)于運(yùn)算符重載,下列表述中正確的是_。A、C+已有的任何運(yùn)算符都可以重載 B、運(yùn)算符函數(shù)的返回類(lèi)型不能聲明為基本數(shù)據(jù)類(lèi)型C、在類(lèi)型轉(zhuǎn)換符函數(shù)的定義中不需要聲明返回類(lèi)型D、可以通過(guò)運(yùn)算符重載來(lái)創(chuàng)建C+中原來(lái)沒(méi)有的運(yùn)算符本題考

13、查的是運(yùn)算符重載。 運(yùn)算符重載是針對(duì)C+中原有的運(yùn)算符進(jìn)行的,不可能通過(guò)重載創(chuàng)造出新的運(yùn)算符,故選項(xiàng)D錯(cuò)誤。除了.、.*、-*、:、?:這5個(gè)運(yùn)算符外,其它運(yùn)算符都可以重載,故選項(xiàng)A錯(cuò)誤。運(yùn)算符函數(shù)的返回類(lèi)型可以聲明為基本數(shù)據(jù)類(lèi)型,故選項(xiàng)B錯(cuò)誤。在重載類(lèi)型轉(zhuǎn)換符時(shí),由于運(yùn)算符本身已經(jīng)表示出返回值類(lèi)型,因此不需要返回值類(lèi)型的聲明。 故本題答案為C。17. 關(guān)于在調(diào)用模板函數(shù)時(shí)模板實(shí)參的使用,下列敘述正確的是_。A、對(duì)于虛擬類(lèi)型參數(shù)所對(duì)應(yīng)的模板實(shí)參,如果能從模板函數(shù)的實(shí)參中獲得相同的信息,則都可以省略B、對(duì)于虛擬類(lèi)型參數(shù)所對(duì)應(yīng)的模板實(shí)參,如果他們是參數(shù)表中的最后的若干參數(shù),則都可以省略C、對(duì)于虛擬

14、類(lèi)型參數(shù)所對(duì)應(yīng)的模板實(shí)參,若能夠省略則必須省略D、對(duì)于常規(guī)參數(shù)所對(duì)應(yīng)的模板實(shí)參,任何情況下都不能省略本題考查的是函數(shù)模板中模板實(shí)參的省略。 對(duì)于虛擬類(lèi)型參數(shù)所對(duì)應(yīng)的模板實(shí)參,如果從模板函數(shù)的實(shí)參表中獲得的信息已經(jīng)能夠判定其中部分或全部虛擬類(lèi)型參數(shù),而且它們又正好是參數(shù)表中最后的若干參數(shù),則模板實(shí)參表中的那幾個(gè)參數(shù)可以省略。反之,對(duì)于某個(gè)模板實(shí)參,如果從模板函數(shù)的實(shí)參表中無(wú)法獲得相同的信息,就不能省略;或者雖然能夠獲得同樣的信息,但在它后面還有不能省略的實(shí)參,則其自身還是不能省略,故選項(xiàng)A和B錯(cuò)誤。對(duì)于虛擬類(lèi)型參數(shù)所對(duì)應(yīng)的模板實(shí)參,若能夠省略可以省略,也可以不省略,故選項(xiàng)C錯(cuò)誤。常規(guī)參數(shù)的信息無(wú)

15、法從模板函數(shù)的實(shí)參表中獲得,因此在調(diào)用時(shí)必須顯式的說(shuō)明。 故本題答案為D。18. 若有下面的函數(shù)調(diào)用: fun(a+b,3,max(n-1,b)則fun的實(shí)參個(gè)數(shù)是_。 A、3 B、4 C、5 D、6本題考查的是函數(shù)的調(diào)用。 在C+中,是由逗號(hào)分開(kāi)的,分別說(shuō)明函數(shù)的各個(gè)參數(shù)。在fun()函數(shù)中它包括3個(gè)形參,a+b,3和max(n-1,b);當(dāng)調(diào)用一個(gè)函數(shù)時(shí),實(shí)參與形參一對(duì)一地匹配,所以實(shí)參個(gè)數(shù)也是3個(gè)。 故本題答案為A。19. 下列有關(guān)內(nèi)聯(lián)函數(shù)的敘述中,正確的是_。A、內(nèi)聯(lián)函數(shù)在調(diào)用時(shí)發(fā)生控制轉(zhuǎn)移 B、內(nèi)聯(lián)函數(shù)必須通過(guò)關(guān)鍵字inline來(lái)定義C、內(nèi)聯(lián)函數(shù)是通過(guò)編譯器來(lái)實(shí)現(xiàn)的 D、內(nèi)聯(lián)函數(shù)函數(shù)

16、體的最后一條語(yǔ)句必須是return語(yǔ)句本題考查的是內(nèi)聯(lián)函數(shù)。 在C+中使用inline關(guān)鍵字來(lái)定義內(nèi)聯(lián)函數(shù)。inline關(guān)鍵字放在函數(shù)定義中函數(shù)類(lèi)型之前。不過(guò)編譯器會(huì)將在類(lèi)的說(shuō)明部分定義的任何函數(shù)都認(rèn)定為內(nèi)聯(lián)函數(shù),即使它們沒(méi)有inline說(shuō)明。一個(gè)內(nèi)聯(lián)函數(shù)可以有,也可以沒(méi)有return語(yǔ)句。內(nèi)聯(lián)函數(shù)在程序執(zhí)行時(shí)并不產(chǎn)生實(shí)際函數(shù)調(diào)用,而是在函數(shù)調(diào)用處將函數(shù)代碼展開(kāi)執(zhí)行。內(nèi)聯(lián)函數(shù)是通過(guò)編譯器來(lái)實(shí)現(xiàn)的。 故本題答案為C。20. 在公有繼承的情況下,允許派生類(lèi)直接訪問(wèn)的基類(lèi)成員包括_。A、公有成員 B、公有成員和保護(hù)成員 C、公有成員、保護(hù)成員和私有成員 D、保護(hù)成員本題考查的是派生類(lèi)。 派生類(lèi)中的成

17、員不能訪問(wèn)基類(lèi)中的私有成員,可以訪問(wèn)基類(lèi)中的公有成員和保護(hù)成員。此時(shí)派生類(lèi)對(duì)基類(lèi)中各成員的訪問(wèn)能力與繼承方式無(wú)關(guān),但繼承方式將影響基類(lèi)成員在派生類(lèi)中的訪問(wèn)控制屬性。 故本題答案為B。21. 有如下程序:#include using namespace std;class Obj static int i;public: Obj()i+; Obj()i-; static int getVal()return i;int Obj:i=0;void f()Obj ob2;coutob2.getVal();int main() Obj obl; f(); Obj*ob3=new Obj;coutget

18、Val(); delete ob3;coutObj:getVal(); return 0;程序的輸出結(jié)果是_。 A、232 B、231 C、222 D、221本題主要考查了C+中類(lèi)的靜態(tài)成員。 由于i是類(lèi)Obj的靜態(tài)成員,該成員被類(lèi)的所有實(shí)例共享。當(dāng)定義ob1時(shí),系統(tǒng)自動(dòng)調(diào)用構(gòu)造函數(shù)Obj(),i的值將加1;調(diào)用函數(shù)f()時(shí),在定義ob2時(shí)系統(tǒng)會(huì)自動(dòng)調(diào)用構(gòu)造函數(shù)Obj(),i的值將再加1;調(diào)用ob2.getVal();后,將i的值輸出,輸出值為2;當(dāng)調(diào)用函數(shù)f()即將結(jié)束時(shí),系統(tǒng)自動(dòng)調(diào)用析構(gòu)函數(shù)Obj(),i的值將減1;當(dāng)定義ob3時(shí),系統(tǒng)自動(dòng)調(diào)用構(gòu)造函數(shù)Obj(),i的值將加1,調(diào)用cout

19、getVal();后,將i的值輸出,輸出值為2;調(diào)用delete ob3后將執(zhí)行Obj的析構(gòu)函數(shù)Obj(),執(zhí)行后,i的值將減1,Obj:getVal()為類(lèi)的一個(gè)靜態(tài)成員函數(shù),其作用是返回私有靜態(tài)成員變量i的值1。 故本題答案為D。22. 下列有關(guān)繼承和派生的敘述中,正確的是_。A、如果一個(gè)派生類(lèi)私有繼承其基類(lèi),則該派生類(lèi)中的成員不能訪問(wèn)基類(lèi)的保護(hù)成員B、派生類(lèi)的成員函數(shù)可以訪問(wèn)基類(lèi)的所有成員 C、基類(lèi)對(duì)象可以賦值給派生類(lèi)對(duì)象D、如果派生類(lèi)沒(méi)有實(shí)現(xiàn)基類(lèi)的一個(gè)純虛函數(shù),則該派生類(lèi)是一個(gè)抽象類(lèi)本題考查的是拷貝構(gòu)造函數(shù)。 拷貝構(gòu)造函數(shù)通常在以下3種情況下會(huì)被調(diào)用: (1)用類(lèi)的一個(gè)已知的對(duì)象去初始

20、化該類(lèi)的另一個(gè)正在創(chuàng)建的對(duì)象。 (2)采用傳值調(diào)用方式時(shí),對(duì)象作為函數(shù)實(shí)參傳遞給函數(shù)形參。 (3)對(duì)象作為函數(shù)返回值。 故本題答案為B。23. 下列情況中,不會(huì)調(diào)用拷貝構(gòu)造函數(shù)的是_。A、用一個(gè)對(duì)象去初始化同一類(lèi)的另一個(gè)新對(duì)象時(shí)B、將類(lèi)的一個(gè)對(duì)象賦值給該類(lèi)的另一個(gè)對(duì)象時(shí)C、函數(shù)的形參是類(lèi)的對(duì)象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時(shí)D、函數(shù)的返回值是類(lèi)的對(duì)象,函數(shù)執(zhí)行返回調(diào)用時(shí)本題考查的是拷貝構(gòu)造函數(shù)。 拷貝構(gòu)造函數(shù)通常在以下3種情況下會(huì)被調(diào)用: (1)用類(lèi)的一個(gè)已知的對(duì)象去初始化該類(lèi)的另一個(gè)正在創(chuàng)建的對(duì)象。 (2)采用傳值調(diào)用方式時(shí),對(duì)象作為函數(shù)實(shí)參傳遞給函數(shù)形參。 (3)對(duì)象作為函數(shù)返回值。 故本題

21、答案為B。24. 有如下程序#include #include using namespace std;int main() coutsetprecision(3)fixedsetfill(*)setw(8); cout12.345_34.567; return 0;若程序的輸出是: 則程序中下劃線處遺漏的操作符是_。A、setprecision B、fixed C、setfill(*) D、setw(8)本題考查的是輸入輸出寬度的控制和輸出精度的控制。 setw(int n);設(shè)置輸入輸出的寬度。 setprecision(int n);設(shè)置浮點(diǎn)數(shù)的精度(有效位數(shù)或小數(shù)位數(shù))。 setfil

22、l(char c);設(shè)置填充字符。 由程序可以看出,本題設(shè)置小數(shù)的輸出寬度為8,小數(shù)位數(shù)為3。輸出數(shù)據(jù)時(shí),如果數(shù)據(jù)寬度小于8,則空閑的位置用*填充。 故本題答案為D。25. 有如下的運(yùn)算符重載函數(shù)定義:double operator +(int i,int k)return double(i+k);但定義有錯(cuò)誤,對(duì)這個(gè)錯(cuò)誤最準(zhǔn)確的描述是_。A、+只能作為成員函數(shù)重載,而這里的+是作為非成員函數(shù)重載的B、兩個(gè)int型參數(shù)的和也應(yīng)該是int型,而這里將+的返回類(lèi)型聲明為doubleC、沒(méi)有將運(yùn)算符重載函數(shù)聲明為某個(gè)類(lèi)的友元D、C+已經(jīng)提供了求兩個(gè)int型數(shù)據(jù)之和的運(yùn)算符+,不能再定義同樣的運(yùn)算符本

23、題考查的是運(yùn)算符的重載。 在C+中可以對(duì)用戶自定義類(lèi)的運(yùn)算符進(jìn)行重載,但不能諸如int,char,double等內(nèi)置類(lèi)型運(yùn)算符進(jìn)行重載。 故本題答案為D。26. 有如下程序#include using namespace std; class Base protected: Base()coutA; Base(char c)coutc;class Derived:public Basepublic: Derived(char c)coutc;int main() Derived d1(B); return 0; 執(zhí)行這個(gè)程序屏幕上將顯示輸出_。 A、B B、BA C、AB D、BB本題考查的是

24、派生的構(gòu)造函數(shù)和基類(lèi)的構(gòu)造函數(shù)的調(diào)用順序。 建立派生類(lèi)對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下: (1)執(zhí)行基類(lèi)的構(gòu)造函數(shù)。 (2)執(zhí)行成員對(duì)象的構(gòu)造函數(shù)。 (3)執(zhí)行派生類(lèi)的構(gòu)造函數(shù)。 派生類(lèi)Derived由基類(lèi)Base公有派生而來(lái)。在派生類(lèi)構(gòu)造函數(shù)聲明時(shí)系統(tǒng)會(huì)自動(dòng)調(diào)用基類(lèi)的缺省構(gòu)造函數(shù)。調(diào)用Derived d1(B);后,執(zhí)行類(lèi)Derived的構(gòu)造函數(shù)的Derived(char c)定義,系統(tǒng)會(huì)自動(dòng)調(diào)用基類(lèi)的缺省構(gòu)造函數(shù)Base(),輸出字母A;再執(zhí)行派生類(lèi)的構(gòu)造函數(shù)Derived(char c),輸出字母B。 故本題答案為C。27. 關(guān)于關(guān)鍵字class和typename,下列表述中正確的是_。A

25、、程序中的typename都可以替換為class B、程序中的class都可以替換為typenameC、在模板形參表中只能用typename來(lái)聲明參數(shù)的類(lèi)型D、在模板形參表中只能用class或typename來(lái)聲明參數(shù)的類(lèi)型本題考查的是模板形參。 模板形參分為兩種類(lèi)型:虛擬類(lèi)型參數(shù)和常規(guī)參數(shù)。虛擬類(lèi)型參數(shù)須用typename或class定義。常規(guī)參數(shù)用具體的類(lèi)型修飾符(如int、double、char*等)定義,故選項(xiàng)C和D錯(cuò)誤。在定義模板時(shí),關(guān)鍵字typename與class可以互相交換,但在定義類(lèi)時(shí),只能使用class。typename僅僅用于定義模板,故程序中所有的typename都可以

26、替換成class,但對(duì)于用于類(lèi)定義的class不能使用typename來(lái)替換。 故本題答案為A。28. 在一個(gè)派生類(lèi)對(duì)象結(jié)束其生命周期時(shí)_。A、先調(diào)用派生類(lèi)的析構(gòu)函數(shù)后調(diào)用基類(lèi)的析構(gòu)函數(shù)B、先調(diào)用基類(lèi)的析構(gòu)函數(shù)后調(diào)用派生類(lèi)的析構(gòu)函數(shù)C、如果基類(lèi)沒(méi)有定義析構(gòu)函數(shù),則只調(diào)用派生類(lèi)的析構(gòu)函數(shù)D、如果派生類(lèi)沒(méi)有定義析構(gòu)函數(shù),則只調(diào)用基類(lèi)的析構(gòu)函數(shù)本題考查的是派生類(lèi)析構(gòu)函數(shù)的執(zhí)行順序。 當(dāng)主函數(shù)結(jié)束時(shí),派生類(lèi)析構(gòu)函數(shù)的執(zhí)行順序是:先執(zhí)行派生類(lèi)的析構(gòu)函數(shù),再執(zhí)行成員對(duì)象的析構(gòu)函數(shù),最后執(zhí)行基類(lèi)的析構(gòu)函數(shù)。 故本題答案為A。29. 有如下類(lèi)定義:class MyBase int k;public: MyBa

27、se(int n=0):k(n) int value()constreturn k;class MyDerived:MyBase int j;public: MyDerived(int i):j(i) int getK()constreturn k; int getj()constreturn j;編譯時(shí)發(fā)現(xiàn)有一處語(yǔ)法錯(cuò)誤,對(duì)這個(gè)錯(cuò)誤最準(zhǔn)確的描述是_。A、函數(shù)getK試圖訪問(wèn)基類(lèi)的私有成員變量kB、在類(lèi)MyDerived的定義中,基類(lèi)名MyBase前缺少關(guān)鍵字public、protected或privateC、類(lèi)MyDerived缺少一個(gè)無(wú)參的構(gòu)造函數(shù)D、類(lèi)MyDerived的構(gòu)造函數(shù)沒(méi)有對(duì)基

28、類(lèi)數(shù)據(jù)成員k進(jìn)行初始化本題考查的是派生類(lèi)訪問(wèn)權(quán)限。 在一個(gè)派生類(lèi)中,其成員由兩部分構(gòu)成:一部分是從基類(lèi)繼承得到的,另一部分是自己定義的新成員,所有這些成員仍然分為公有、私有和保護(hù)三種訪問(wèn)屬性。其中,從基類(lèi)繼承下來(lái)的全部成員構(gòu)成派生類(lèi)的基類(lèi)部分,這部分的私有成員是派生類(lèi)不能直接訪問(wèn)的,公有成員和保護(hù)成員則是派生類(lèi)可以直接訪問(wèn)的。 故本題答案為A。30. 有如下程序#include #include using namespace std;class MyClass public: MyClass()coutA; MyClass(char c)coutc; MyClass()coutB;int m

29、ain() MyClass pl,*p2; p2=new MyClass(X); delete p2; return 0;執(zhí)行這個(gè)程序屏幕上將顯示輸出_。A、ABX B、ABXB C、AXB D、AXBB本題考查的是析構(gòu)函數(shù)和構(gòu)造函數(shù)。 在定義對(duì)象p1時(shí)由系統(tǒng)自動(dòng)調(diào)用構(gòu)造函數(shù)MyClass(),輸出字母A;用new創(chuàng)建單個(gè)對(duì)象MyClass(X)時(shí),要根據(jù)參數(shù)調(diào)用相應(yīng)的構(gòu)造函數(shù)MyClass(char c),輸出字母X;在執(zhí)行delete時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用析構(gòu)函數(shù)MyClass(),輸出字母B,當(dāng)對(duì)象的生存周期即將結(jié)束時(shí)系統(tǒng)會(huì)自動(dòng)調(diào)用析構(gòu)函數(shù)MyClass(),輸出字母B。 故本題答案為D。3

30、1. 以下關(guān)鍵字不能用來(lái)聲明類(lèi)的訪問(wèn)權(quán)限的是_。A、public B、static C、protected D、private本題考查的是類(lèi)的定義。類(lèi)定義的一般格式如下: class public: /公有成員,外部接口 protected: /保護(hù)成員 private: /私有成員 ; 關(guān)鍵字public、private和protected稱為訪問(wèn)權(quán)限修飾符,他們限制了類(lèi)成員的訪問(wèn)控制范圍。 故本題答案為B。32. 有如下程序#includeusing namespace std;int i=1;class Funpublic: static int i; int value()return

31、 i-1; int value()constreturn i+1;int Fun:i=2;int main() int i=3; Fun fun1; const Fun fun2; _ return 0;若程序的輸出結(jié)果是:123則程序中下劃線處遺漏的語(yǔ)句是_。A、coutfun1.value()Fun:ifun2.value();B、coutFun:ifun1.value()fun2.value();C、coutfun1.value()fun2.value()Fun:i;D、coutfun2.value()Fun:ifun1.value();本題主要考查了常對(duì)象的一些概念。 由于i是類(lèi)Fun

32、的靜態(tài)成員,該成員被類(lèi)的所有實(shí)例共享。對(duì)于類(lèi)中的靜態(tài)成員函數(shù),可以通過(guò)類(lèi)名:函數(shù)名的方法來(lái)調(diào)用,并且該函數(shù)只能訪問(wèn)類(lèi)中的靜態(tài)成員。在C+中,對(duì)于常對(duì)象的成員函數(shù)調(diào)用,將自動(dòng)調(diào)用其常成員函數(shù)。在本題中執(zhí)行fun1.value(),將調(diào)用原型為int value();的函數(shù),i的值返回1;執(zhí)行fun2.value();,將調(diào)用原型為int value()const;的函數(shù),i的值返回3;執(zhí)行Fun:i時(shí),調(diào)用類(lèi)的靜態(tài)成員i,i的值返回2。 故本題答案為A。33. 有如下說(shuō)明 int a10=1,2,3,4,5,6,7,8,9,10,*p=a;則數(shù)值為9的表達(dá)式是_。A、*p+9 B、*(p+8)

33、C、*p+=9 D、p+8本題考查的是指針與數(shù)組。 數(shù)組的下標(biāo)是從0到數(shù)組的長(zhǎng)度減1。*(p+i)是取數(shù)組的第i+1個(gè)元素,即下標(biāo)為i的元素。因此*(p+8)取數(shù)組的第9個(gè)元素,即元素9。 故本題答案為B。34. 下列符號(hào)中,正確的C+標(biāo)識(shí)符是_。A、enum B、2b C、foo-9 D、_32本題考查的是標(biāo)識(shí)符。 標(biāo)識(shí)符是一個(gè)以字母或下劃線開(kāi)頭的,由字母、數(shù)字、下劃線組成的字符串。標(biāo)識(shí)符不能與任意一個(gè)關(guān)鍵字同名。 故本題答案為D。35. 下列關(guān)于輸入流類(lèi)成員函數(shù)getline()的描述中,錯(cuò)誤的是_。A、該函數(shù)是用來(lái)讀取鍵盤(pán)輸入的字符串的 B、該函數(shù)讀取的字符串長(zhǎng)度是受限制的C、該函數(shù)讀取

34、字符串時(shí),遇到終止符便停止 D、該函數(shù)讀取字符串時(shí),可以包含空格本題考查的是文件流的輸入輸出。 函數(shù)getline(char_type* s,streamsize n,char_type delim)的作用是從當(dāng)前位置開(kāi)始提取字符存入s所指向的具有n各字節(jié)的字符空間。字符的提取與存儲(chǔ)在遇到下列情況時(shí)停止: (1)已提取并存儲(chǔ)了n-1個(gè)字符; (2)到流尾,無(wú)字符可提??; (3)下一個(gè)要提取的字符等于結(jié)束標(biāo)志delim。 故本題答案為B。36. 按先進(jìn)后出原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是_。標(biāo)準(zhǔn)答案為:棧 考生答案為:棧棧和隊(duì)列都是一種特殊的操作受限的線性表,只允許在端點(diǎn)處進(jìn)行插入和刪除。二者的區(qū)別是:

35、棧只允許在表的一端進(jìn)行插入或刪除操作,是一種“先進(jìn)后出”的線性表;而隊(duì)列只允許在表的一端進(jìn)行插入操作,在另一端進(jìn)行刪除操作,是一種“先進(jìn)先出”的線性表。37. 下列軟件系統(tǒng)結(jié)構(gòu)圖的寬度為_(kāi)。 標(biāo)準(zhǔn)答案為:3 或 三 考生答案為:3軟件系統(tǒng)結(jié)構(gòu)圖的寬度:整體控制跨度(最大模塊數(shù)的層)的表示。38. _的任務(wù)是診斷和改正程序中的錯(cuò)誤。標(biāo)準(zhǔn)答案為:程序調(diào)試 或 調(diào)試 考生答案為:軟件測(cè)試程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。它與軟件測(cè)試不同,軟件測(cè)試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)誤,然后借助于一定的調(diào)試工具去找出軟件錯(cuò)誤的具體位置。軟件測(cè)試貫穿整個(gè)軟件生命期,調(diào)試主要在開(kāi)發(fā)階段。3

36、9. 一個(gè)關(guān)系表的行稱為_(kāi)。標(biāo)準(zhǔn)答案為:元組 或 記錄 考生答案為:元組設(shè)計(jì)數(shù)據(jù)庫(kù)的目的實(shí)質(zhì)上是設(shè)計(jì)出滿足實(shí)際應(yīng)用需求的實(shí)際關(guān)系模型;關(guān)系中的行稱為元組,對(duì)應(yīng)存儲(chǔ)文件中的記錄,關(guān)系中的列稱為屬性,對(duì)應(yīng)存儲(chǔ)文件中的字段。40. 數(shù)據(jù)結(jié)構(gòu)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu),帶鏈的隊(duì)列屬于_。標(biāo)準(zhǔn)答案為:線性結(jié)構(gòu) 考生答案為:線性結(jié)構(gòu)與棧類(lèi)似,隊(duì)列也是線性表,也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。41. 創(chuàng)建對(duì)象數(shù)組時(shí),對(duì)數(shù)組的每一個(gè)元素都將調(diào)用一次構(gòu)造函數(shù),如果沒(méi)有顯式給出數(shù)組元素的初值,則調(diào)用缺省構(gòu)造函數(shù)。下列程序涉及到對(duì)象數(shù)組的創(chuàng)建和單個(gè)對(duì)象的創(chuàng)建,其輸出結(jié)果是_。#includeusing namespace st

37、d;class Foopublic: Foo(int x)coutA; Foo();int main() Foo f3,g(3); return 0;標(biāo)準(zhǔn)答案為:A 考生答案為:AAAA本題考查的是類(lèi)的對(duì)象數(shù)組和成員對(duì)象。 從程序可以看出f3是類(lèi)Foo的一個(gè)對(duì)象數(shù)組,因?yàn)閒3沒(méi)有顯式的給定初值,所以系統(tǒng)自動(dòng)調(diào)用缺省構(gòu)造函數(shù)Foo();在定義類(lèi)Foo的對(duì)象g(3)時(shí),執(zhí)行相應(yīng)的構(gòu)造函數(shù)Foo(int x),輸出字母A。42. 插入排序算法的主要思想是:每次從未排序序列中取出的一個(gè)數(shù)據(jù),插入到已排序序列中的正確位置。InsertSort類(lèi)的成員函數(shù)sort()實(shí)現(xiàn)了插入排序算法。請(qǐng)將畫(huà)線處缺失的部

38、分補(bǔ)充完整。class InsertSortpublic: InsertSort(int*a0,int n0):a(a0),n(n0) /參數(shù)a0是某數(shù)組首地址,n是數(shù)組元素個(gè)數(shù)void sort()/此函數(shù)假設(shè)已排序序列初始化狀態(tài)只包含a0,未排序序列初始為a1 an-1 for(int i=1;i0;-j) if(t=aj-1)break; aj=aj-1; aj=t;protected: int*a,n; /指針a用于存放數(shù)組首地址,n用于存放數(shù)組元素個(gè)數(shù);標(biāo)準(zhǔn)答案為:j=I 考生答案為:j=i-1本題考查的是插入排序。 在Sort函數(shù)中,實(shí)現(xiàn)函數(shù)的插入排序算法,若隊(duì)列中已有i個(gè)數(shù),則向

39、其中插入第i+1個(gè)數(shù)時(shí),依次與從下標(biāo)為i-1到下標(biāo)為0的數(shù)比較,如果后面的數(shù)小于前面的數(shù),則交換這兩個(gè)數(shù),否則說(shuō)明該數(shù)已排好序,直接跳出內(nèi)層循環(huán),故此空應(yīng)填j=i。43. 如果不使用多態(tài)機(jī)制,那么通過(guò)基類(lèi)的指針雖然可以指向派生類(lèi)對(duì)象,但是只能訪問(wèn)從基類(lèi)繼承的成員。下列程序沒(méi)有使用多態(tài)機(jī)制,其輸出結(jié)果是_。#includeusing namespace std;class Basepublic: void print()coutB;class Derived:public Basepublic: void print()coutprint(); pd-print(); delete pd; re

40、turn 0;標(biāo)準(zhǔn)答案為:BD 考生答案為:BD本題考查的是派生類(lèi)。 派生類(lèi)Derived由基類(lèi)Base公有繼承而來(lái),是基類(lèi)的子類(lèi)型。調(diào)用pb-print();后,執(zhí)行基類(lèi)的函數(shù)void print(),因?yàn)楸M管pb的函數(shù)print()可以對(duì)類(lèi)Base的公有派生類(lèi)Derived的對(duì)象pd進(jìn)行操作,但是只能使用從基類(lèi)Base中繼承的成員;調(diào)用pd-print();后,執(zhí)行派生類(lèi)的函數(shù)void print()。44. 若有定義語(yǔ)句:int *a,b;,則變量b的數(shù)據(jù)類(lèi)型是_。標(biāo)準(zhǔn)答案為:整型 或 int 考生答案為:int本題考查的是變量的定義。 int *a,b;把a(bǔ)定義為一個(gè)int類(lèi)型的指針;

41、把b定義為一個(gè)整型變量。45. 在聲明派生類(lèi)時(shí),如果不顯式地給出繼承方式,缺省的類(lèi)繼承方式是私有繼承private。已知有如下類(lèi)定義:classe Baseprotected: void fun();class Derived:Base;則Base類(lèi)中的成員函數(shù)fun(),在Derived類(lèi)中的訪問(wèn)權(quán)限是_。(注意:要求填寫(xiě)private、protected或public中的一項(xiàng))。標(biāo)準(zhǔn)答案為:private 考生答案為:private46. 下列程序的輸出結(jié)果是_。#includeusing namespace std;class A int a;public: A():a(9) virtu

42、al void print() constcouta;class B:public A char b;public: B()b=S; void print() constcoutprint(); show(d1); show(d2); return 0;標(biāo)準(zhǔn)答案為:9SS9S 考生答案為:9SS9S本題主要考查了缺省構(gòu)造函數(shù)。 在d1、d2定義時(shí)分別調(diào)用它們的構(gòu)造函數(shù)。調(diào)用d1.print();后,執(zhí)行類(lèi)A的virtual void print()函數(shù);調(diào)用d2.print();后,執(zhí)行派生類(lèi)B的構(gòu)造函數(shù)void print();調(diào)用p-print();后,執(zhí)行執(zhí)行派生類(lèi)B的構(gòu)造函數(shù)void

43、print();調(diào)用show(d1);后,調(diào)用函數(shù)show(A&x),再調(diào)用類(lèi)A的virtual void print()函數(shù);調(diào)用show(d2);后,調(diào)用函數(shù)show(A&x),再調(diào)用派生類(lèi)B的構(gòu)造函數(shù)void print()。47. 已知遞歸函數(shù)f的定義如下:int f(int n) if(n=1) return 1; /遞歸結(jié)束情況 else return n*f(n-2); /遞歸則函數(shù)調(diào)用語(yǔ)句f(5)的返回值是_。標(biāo)準(zhǔn)答案為:15考生答案為:120本題主要考查了遞歸算法。 函數(shù)每次將f(n)的值轉(zhuǎn)換成相應(yīng)的關(guān)系式n*f(n-2),直到f(1)時(shí)為止。所以f(5)=5*f(5-2)=

44、5*3*f(1)=5*3*1=15。48. 已知數(shù)組a中的元素個(gè)數(shù)為n,下列語(yǔ)句的作用是將下標(biāo)為i的元素移動(dòng)到下標(biāo)為i-1的單元,其中1=in。例如,當(dāng)n=4,a中原有的數(shù)據(jù)為1,2,3,4時(shí),則移動(dòng)后a中元素變?yōu)?,3,4,4。請(qǐng)將語(yǔ)句補(bǔ)充完整:for(int i=0;in-1;i+) ai=a_;標(biāo)準(zhǔn)答案為:i+1 或 1+I 考生答案為:i+1本題考查循環(huán)的基本應(yīng)用。 解題思路為:循環(huán)條件是in-1,循環(huán)的結(jié)果是把將下標(biāo)為i的元素移動(dòng)到下標(biāo)為i-1的單元,即ai+1的值賦給ai,所以答案是i+1。49. 己知下列程序的輸出結(jié)果是42,請(qǐng)將畫(huà)線處缺失的部分補(bǔ)充完整。#includeusin

45、g namespace std;class Foo int value;public: Foo():value(0) void setValue(int value) _=value; /給Foo的數(shù)據(jù)成員value賦值 void print()coutvalue 或 Foo:value 或 (*this).value 考生答案為:本題考查的是this指針。 this指針,它是成員函數(shù)的所屬對(duì)象的指針,它指向類(lèi)對(duì)象的地址。本題要輸出42,也就是要把f.setValue(42);中的42賦值給Foo的數(shù)據(jù)成員value,因此橫線處缺少的是給Foo的數(shù)據(jù)成員value賦值的語(yǔ)句,所以答案為this

46、-value或Foo:value。MyClass類(lèi)的定義中,對(duì)賦值運(yùn)算符=進(jìn)行重載。請(qǐng)將畫(huà)線處缺失的部分補(bǔ)充完整。_ MyClass:operator=(const MyClass& rhs) if(this=&rhs) return *this; value=rhs.value; return *this;標(biāo)準(zhǔn)答案為:MyClass& 考生答案為:本題考查的是運(yùn)算符的重載。 一個(gè)類(lèi)如果要重載運(yùn)算符=,通常也就需要定義自己特有的拷貝構(gòu)造函數(shù)??梢栽陬?lèi)體中增加:(const & operator MyClass& rhs);然后在MyClass的類(lèi)體外給出它的完整定義:MyClass & MyC

47、lass:operator=(const MyClass& rhs).因此在MyClass類(lèi)的定義中缺少M(fèi)yClass&語(yǔ)句。2010年3月考試真題(第31次)1. 數(shù)據(jù)流程圖(DFD圖)是_。A、軟件概要設(shè)計(jì)的工具 B、軟件詳細(xì)設(shè)計(jì)的工具C、結(jié)構(gòu)化方法的需求分析工具 D、面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ叱R?jiàn)的需求分析方法有:結(jié)構(gòu)化分析方法和面向?qū)ο蟮姆治龇椒?。結(jié)構(gòu)化分析就是使用數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、結(jié)構(gòu)化英語(yǔ)、判定表和判定樹(shù)等工具,來(lái)建立一種新的、稱為結(jié)構(gòu)化規(guī)格說(shuō)明的目標(biāo)文檔。 故本題答案為C。2. 軟件(程序)調(diào)試的任務(wù)是_。A、診斷和改正程序中的錯(cuò)誤 B、盡可能多地發(fā)現(xiàn)程序中的

48、錯(cuò)誤C、發(fā)現(xiàn)并改正程序中的所有錯(cuò)誤 D、確定程序中錯(cuò)誤的性質(zhì)程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。它與軟件測(cè)試不同,軟件測(cè)試是盡可能多地發(fā)現(xiàn)軟件中的錯(cuò)誤。先要發(fā)現(xiàn)軟件的錯(cuò)誤,然后借助于一定的調(diào)試工具去執(zhí)行找出軟件錯(cuò)誤的具體位置。軟件測(cè)試貫穿整個(gè)軟件生命期,調(diào)試主要在開(kāi)發(fā)階段。 故本題答案為A。3. 軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是_。A、編輯軟件 B、操作系統(tǒng) C、教務(wù)管理系統(tǒng) D、瀏覽器軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件(或工具軟件)。應(yīng)用軟件是為解決特定領(lǐng)域的應(yīng)用而開(kāi)發(fā)的軟件。例如,事務(wù)處理軟件,工程與科學(xué)計(jì)算軟件,實(shí)時(shí)處

49、理軟件,嵌入式軟件,人工智能軟件等應(yīng)用性質(zhì)不同的各種軟件。系統(tǒng)軟件是計(jì)算機(jī)管理自身資源,提高計(jì)算機(jī)使用效率并為計(jì)算機(jī)用戶提供各種服務(wù)的軟件。如操作系統(tǒng),編譯程序,匯編程序,網(wǎng)絡(luò)軟件,數(shù)據(jù)庫(kù)管理系統(tǒng)等,所以選項(xiàng)B屬于系統(tǒng)軟件。 故本題答案為B。4. 軟件生命周期可分為定義階段,開(kāi)發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計(jì)屬于_。A、定義階段 B、開(kāi)發(fā)階段 C、維護(hù)階段 D、上述三個(gè)階段軟件生命周期可分為軟件定義、軟件開(kāi)發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段。軟件開(kāi)發(fā)階段包括概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試四個(gè)活動(dòng)階段。 故本題答案為B。5. 下列敘述中正確的是_。A、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行查找,最壞情況下需要的比較次數(shù)為nB

50、、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為(n/2)C、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為D、對(duì)長(zhǎng)度為n的有序鏈表進(jìn)行對(duì)分查找,最壞情況下需要的比較次數(shù)為對(duì)于長(zhǎng)度為n的有序線性表,在最壞情況下,二分查找只需要比較次,而順序查找需要比較n次。二分法查找只適用于順序存儲(chǔ)的有序表,如果采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),也只能用順序查找,所以選項(xiàng)A是正確的。 故本題答案為A。6. 有兩個(gè)關(guān)系R和T如下:則由關(guān)系R得到關(guān)系T的操作是_。A、選擇 B、投影 C、交 D、并從關(guān)系中找出滿足給定條件的元組的操作稱為選擇。選擇是從行的角度進(jìn)行的運(yùn)算,即從水平方向抽取記錄。由圖可知關(guān)

51、系R通過(guò)運(yùn)算得到關(guān)系T,關(guān)系T與關(guān)系R相比,屬性的個(gè)數(shù)沒(méi)有發(fā)生變化,記錄的條數(shù)發(fā)生了變化。因此所使用的運(yùn)算應(yīng)該是選擇。 故本題答案為A。7. 算法的時(shí)間復(fù)雜度是指_。A、算法的執(zhí)行時(shí)間 B、算法所處理的數(shù)據(jù)量 C、算法程序中的語(yǔ)句或指令條數(shù)D、算法在執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)所謂算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。為了能夠比較客觀地反映出一個(gè)算法的效率,在度量一個(gè)算法的工作量時(shí),不僅應(yīng)該與所使用的計(jì)算機(jī)、程序設(shè)計(jì)語(yǔ)言以及程序編制者無(wú)關(guān),而且還應(yīng)該與算法實(shí)現(xiàn)過(guò)程中的許多細(xì)節(jié)無(wú)關(guān)。為此,可以用算法在執(zhí)行過(guò)程中所需基本運(yùn)算的執(zhí)行次數(shù)來(lái)度量算法的工作量。 故本題答案為D。8. 數(shù)據(jù)庫(kù)

52、設(shè)計(jì)中,用E-R圖來(lái)描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它屬于數(shù)據(jù)庫(kù)設(shè)計(jì)的_。A、需求分析階段 B、邏輯設(shè)計(jì)階段 C、概念設(shè)計(jì)階段 D、物理設(shè)計(jì)階段E-R圖是E-R模型的一種非常直觀的圖的形式表示,它描述信息結(jié)構(gòu)但不涉及信息在計(jì)算機(jī)中的表示,它是數(shù)據(jù)庫(kù)概念設(shè)計(jì)階段的工具。 故本題答案為C。9. 在學(xué)生管理的關(guān)系數(shù)據(jù)庫(kù)中,存取一個(gè)學(xué)生信息的數(shù)據(jù)單位是_。A、文件 B、數(shù)據(jù)庫(kù) C、字段 D、記錄實(shí)體是概念世界中的基本單位,屬性附屬于實(shí)體,它本身并不構(gòu)成獨(dú)立單位。屬性有屬性域,每個(gè)實(shí)體可取屬性域內(nèi)的值。一個(gè)實(shí)體的所有屬性取值組成了一個(gè)值集叫元組(或稱記錄)。在概念世界中,可以用元組表示實(shí)體,也

53、可用它區(qū)別不同的實(shí)體。所以在學(xué)生管理的關(guān)系數(shù)據(jù)庫(kù)中,存取一個(gè)學(xué)生信息的數(shù)據(jù)單位是元組(或記錄)。 故本題答案為D。10. 數(shù)據(jù)庫(kù)管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語(yǔ)言是_。A、數(shù)據(jù)定義語(yǔ)言 B、數(shù)據(jù)管理語(yǔ)言 C、數(shù)據(jù)操縱語(yǔ)言 D、數(shù)據(jù)控制語(yǔ)言數(shù)據(jù)定義語(yǔ)言(DDL):該語(yǔ)言負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建。 數(shù)據(jù)操縱語(yǔ)言(DML):該語(yǔ)言負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢及增、刪、改等操作。 數(shù)據(jù)控制語(yǔ)言(DCL):該語(yǔ)言負(fù)責(zé)數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能。 故本題答案為A。11. 有如下兩個(gè)類(lèi)定義class XX private: double x1; protected:

54、double x2; public: double x3;class YY:protected XX private: double y1; protected: double y2; public: double y3;在類(lèi)YY中保護(hù)成員變量的個(gè)數(shù)是_。A、1 B、2 C、3 D、4本題主要考查了類(lèi)的繼承與派生。 類(lèi)的繼承方式有三種:公有(public)繼承、保護(hù)(protected)繼承和私有(private)繼承。當(dāng)派生類(lèi)從基類(lèi)保護(hù)繼承時(shí),基類(lèi)的公有成員和保護(hù)成員在派生類(lèi)中都為保護(hù)成員。本題派生類(lèi)YY從基類(lèi)XX保護(hù)繼承,因此基類(lèi)XX的公有成員x3和保護(hù)成員x2都成為派生類(lèi)YY的保護(hù)成員,

55、再加上派生類(lèi)YY自身的保護(hù)成員y2,因此類(lèi)YY中有3個(gè)保護(hù)成員。 故本題答案為C。12. 在C+中,cin是一個(gè)_。A、類(lèi) B、對(duì)象 C、模板 D、函數(shù)本題主要考查了I/O流。 在C+中,數(shù)據(jù)的輸入與輸出是通過(guò)I/O流來(lái)實(shí)現(xiàn),cin和cout是預(yù)定義的流類(lèi)對(duì)象。 故本題答案為B。13. 若x和y是程序中的兩個(gè)整型變量,則下列if語(yǔ)句中正確的是_。A、if(x=0) y=1;else y=2; B、if(x=0) then y=1 else y=2;C、if(x=0) y=1 else y=2; D、if x=0 y=1; else y=2;本題主要考查了if語(yǔ)句。 if語(yǔ)句的語(yǔ)法形式為: if

56、(表達(dá)式) 語(yǔ)句1 else 語(yǔ)句2 在C+中,if語(yǔ)句中沒(méi)有then,語(yǔ)句最后必須有一個(gè)分號(hào),因此選項(xiàng)A正確,選項(xiàng)B和選項(xiàng)C錯(cuò)誤;在選項(xiàng)D中,表達(dá)式x=0應(yīng)該用圓括號(hào)括起來(lái),因此選項(xiàng)D錯(cuò)誤。 故本題答案為A。14. 將運(yùn)算符+重載為非成員函數(shù),下列原型聲明中,錯(cuò)誤的是_。A、MyClock operator + (MyClock,long); B、MyClock operator + (MyClock,MyClock);C、MyClock operator + (long,long); D、MyClock operator + (long,MyClock);本題主要考查了運(yùn)算符的重載。 運(yùn)算

57、符的重載是針對(duì)新類(lèi)型數(shù)據(jù)的實(shí)際需要,對(duì)原有運(yùn)算符進(jìn)行適當(dāng)?shù)母脑?。一般?lái)講,重載的功能應(yīng)當(dāng)與原有功能類(lèi)似,不能改變?cè)\(yùn)算符的操作對(duì)象個(gè)數(shù),同時(shí)至少要有一個(gè)操作對(duì)象是自定義類(lèi)型。選項(xiàng)A、選項(xiàng)B和選項(xiàng)D的兩個(gè)參數(shù)中至少有一個(gè)參數(shù)是自定義類(lèi)型,因此選項(xiàng)A、選項(xiàng)B和選項(xiàng)D正確。選項(xiàng)C中兩個(gè)參數(shù)都是基本數(shù)據(jù)類(lèi)型,沒(méi)有自定義類(lèi)型,因此選項(xiàng)C錯(cuò)誤。 故本題答案是C。15. 要定義整型數(shù)組x,使之包括初值為0的三個(gè)元素,下列語(yǔ)句中錯(cuò)誤的是_。A、int x3=0,0,0; B、int x=0; C、static int x3=0; D、int x=0,0,0;本題主要考查了一維數(shù)組的定義與初始化。 一維數(shù)組的定

58、義形式為: 數(shù)據(jù)類(lèi)型 數(shù)組名數(shù)組元素個(gè)數(shù); 數(shù)組的初始化就是在聲明數(shù)組時(shí)給部分或全部元素賦初值。選項(xiàng)A定義了有三個(gè)元素的整型數(shù)組x,并初始化三個(gè)元素的值為0,因此選項(xiàng)A正確;當(dāng)聲明數(shù)組時(shí)沒(méi)有給出數(shù)組元素個(gè)數(shù),但是有初始化列表,數(shù)組元素個(gè)數(shù)由列表中元素個(gè)數(shù)來(lái)確定,因此選項(xiàng)D正確;選項(xiàng)B沒(méi)有給出數(shù)組元素個(gè)數(shù),并且在初始化列表中只給一個(gè)元素值,因此選項(xiàng)B定義了只有一個(gè)元素的整型數(shù)組,故選項(xiàng)B錯(cuò)誤;對(duì)于數(shù)值類(lèi)型數(shù)組,如果給定的數(shù)值不夠,則沒(méi)有指定數(shù)值的元素將初始化為0,因此選項(xiàng)C正確。 故本題答案為B。16. 下列控制格式輸入輸出的操作符中,能夠設(shè)置浮點(diǎn)數(shù)精度的是_。A、setprecision B、

59、setw C、setfill D、showpoint本題主要考查了輸出流的格式控制。 setprecision(int n)用于控制輸出流顯示浮點(diǎn)數(shù)的精度,整數(shù)n代表顯示的浮點(diǎn)數(shù)數(shù)字的個(gè)數(shù)。因此選項(xiàng)A正確。 setw(int n)用于預(yù)設(shè)輸入輸出寬度。 setfill(char c)用于預(yù)設(shè)填充字符。 showpoint用于給浮點(diǎn)數(shù)顯示小數(shù)點(diǎn)和尾部的0。 因此選項(xiàng)B、選項(xiàng)C和選項(xiàng)D不正確。 故本題答案為A。17. 若MyTemp是一個(gè)只有一個(gè)虛擬類(lèi)型參數(shù)的類(lèi)模板,且有如下語(yǔ)句序列MyTemp p2;MyTemp p32;編譯系統(tǒng)在處理上面的語(yǔ)句序列時(shí),所生成的模板MyTemp的實(shí)例的個(gè)數(shù)是_。

60、A、1 B、2 C、3 D、0本題主要考核類(lèi)模板。 類(lèi)模板聲明的語(yǔ)法形式為: template class 類(lèi)名 類(lèi)成員聲明 使用類(lèi)模板來(lái)建立對(duì)象時(shí),應(yīng)按如下形式聲明: 類(lèi)名 對(duì)象名1,對(duì)象名n; 在定義對(duì)象的過(guò)程中,編譯系統(tǒng)會(huì)自動(dòng)地根據(jù)需要生成相應(yīng)的類(lèi)定義,這種依據(jù)類(lèi)模板生成類(lèi)定義的過(guò)程稱為類(lèi)模板的實(shí)例化。類(lèi)模板實(shí)例化所生成的每一個(gè)類(lèi)定義就是相應(yīng)類(lèi)模板的一個(gè)實(shí)例,因此類(lèi)模板的實(shí)例個(gè)數(shù)由類(lèi)型參數(shù)的種類(lèi)決定。本題使用類(lèi)模板MyTemp定義對(duì)象時(shí)指定了兩種類(lèi)型參數(shù):double和long,因此所生成的實(shí)例個(gè)數(shù)是2。 故本題答案為B。18. 下列代碼段聲明了3個(gè)類(lèi)class Person;class

溫馨提示

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

評(píng)論

0/150

提交評(píng)論