國家二級(jí)(C++)機(jī)試模擬試卷12(共374題)_第1頁
國家二級(jí)(C++)機(jī)試模擬試卷12(共374題)_第2頁
國家二級(jí)(C++)機(jī)試模擬試卷12(共374題)_第3頁
國家二級(jí)(C++)機(jī)試模擬試卷12(共374題)_第4頁
國家二級(jí)(C++)機(jī)試模擬試卷12(共374題)_第5頁
已閱讀5頁,還剩107頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

國家二級(jí)(C++)機(jī)試模擬試卷12(共9套)(共374題)國家二級(jí)(C++)機(jī)試模擬試卷第1套一、選擇題(本題共39題,每題1.0分,共39分。)1、下列語句中,錯(cuò)誤的是()。A、constintbuffer=256;B、constinttemp;C、constdouble*point;D、constdouble*rt=newdouble(5.5);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:const是一個(gè)C++語言的關(guān)鍵字,它限定一個(gè)變量不允許被改變。使用const在一定程度上可以提高程序的安全性和可靠性。限定符聲明變量只能被讀,必須初始化。B選項(xiàng)中沒有初始化,C選項(xiàng)為指向常量的指針,定義時(shí)初始化與否均可,如果是const*dolablepoint形式,則為常指針,必須在定義時(shí)進(jìn)行初始化,A、C、D都正確。2、有如下程序:intx=3:do{x-=2:cout<<x;}while(!(--x));執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、1B、30C、1-2D、死循環(huán)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查do…while語句,執(zhí)行do…while語句時(shí),先執(zhí)行循環(huán)體內(nèi)的語句,然后判斷while中表達(dá)式的值,表達(dá)式為非零時(shí),返回重新執(zhí)行循環(huán)體語句。存本題中,先執(zhí)行循環(huán)體內(nèi)的語句,輸出1,然后判斷表達(dá)式,為非零,且此時(shí)x為0;再次執(zhí)行循環(huán)體時(shí),輸出-2,然后判斷表達(dá)式為0,不執(zhí)行,退出,所以答案為C。3、下列語句中,錯(cuò)誤的是()。A、constintbuffer=256;B、constinttemp;C、constdouble*point;D、constdouble*rt=newdouble(5.5);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:const是一個(gè)C++語言的關(guān)鍵字,它限定一個(gè)變量不允許被改變。使用conat在一定程度上可以提高程序的安全性和可靠性。限定符聲明變量只能被讀,必須初始化。B選項(xiàng)中沒有初始化,C選項(xiàng)為指向常量的指針,定義時(shí)初始化與否均可,如果是const*doublepoint形式,則為常指針,必須在定義時(shí)進(jìn)行初始化,A、C、D都正確。4、C++語言程序的注釋可以出現(xiàn)在程序中的任何地方,一個(gè)注釋的結(jié)束標(biāo)記為()。A、/*B、*/C、:D、;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++語言程序的注釋可以出現(xiàn)在程序中的任何地方,一個(gè)注釋以“/*”開始,以“*/”結(jié)束。5、有如下類聲明:classSAMPLE{intn;public:SAMPLE(inti=0):n(i){}voidsetValue(intn0);};下列關(guān)于getValue成員函數(shù)的定義中,正確的是()。A、SAMPLE::setValue(intnO){n=nO;}B、voidSAMPLE::setValue(intn0){n=n0;}C、voidsetValue(intn0){n=n0;}D、setValue(intn0){n=n0;}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查在類外定義類的成員函數(shù),需要使用作用域限定符“::”,屬于基礎(chǔ)知識(shí),本題答案為B。6、長度為一個(gè)字節(jié)的二進(jìn)制整數(shù),若采用補(bǔ)碼表示,且由4個(gè)“1”和4個(gè)“0”組合,則可表示最小的整數(shù)是()。A、-127B、-121C、-15D、-7標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:整數(shù)在計(jì)算機(jī)中有原碼、反碼和補(bǔ)碼3種不同的表示方法。負(fù)數(shù)的反碼是符號(hào)位為“1”,絕對(duì)值部分和原碼相反。負(fù)數(shù)的補(bǔ)碼是符號(hào)位為“1”,絕對(duì)值部分為反碼的最低位加“1”。正整數(shù)的表示方法只有原碼一種。A項(xiàng)的補(bǔ)碼為(10000001),B項(xiàng)的補(bǔ)碼為(10000111),C項(xiàng)的補(bǔ)碼為(11110001),D項(xiàng)的補(bǔ)碼為(11111001)。7、下列敘述中,不屬于軟件需求規(guī)格說明書的作用的是()。A、便于用戶,開發(fā)人員進(jìn)行理解和交流B、反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù)C、作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)D、便于開發(fā)人員進(jìn)行需求分析標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件需求規(guī)格說明書有以下幾個(gè)方面的作用:①便于用戶、開發(fā)人員進(jìn)行理解和交流;②反映出用戶問題的結(jié)構(gòu),可以作為軟件開發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)。8、if語句的語法格式可描述為:格式1:if(<條件>)<語句>或格式2:if(<條件>)<語句1>else<語句2>關(guān)于上面的語法格式,下列表述中錯(cuò)誤的是()。A、<條件>部分可以是一個(gè)if語句,例如if(if(a=:0)…)…B、<語句>部分可以是一個(gè)if語句,例如if(…)if(…)…C、如果在<條件>前加上邏輯非運(yùn)算符!并交換<語句1>和<語句2>的位置,語句功能不變D、<語句>部分可以是一個(gè)循環(huán)語句,例如if(…)while(…)…標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查if語句,if語句的條件部分不能嵌套if語句,所以A選項(xiàng)錯(cuò)誤;B選項(xiàng)就是if語句嵌套;C選項(xiàng)其實(shí)就是將判斷條件顛倒,然后執(zhí)行語句也顛倒,所以效果一樣;D選項(xiàng)也正確。9、下面關(guān)于指針的說法中錯(cuò)誤的是()。A、在指針定義的同時(shí)可以對(duì)其進(jìn)行初始化B、指針根據(jù)其所指向變量的類型的不同,所占用內(nèi)存大小也不同C、指針中存放的是內(nèi)存單元的地址D、相同類型的指針之間可以相互賦值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:指針是一種用來存放其他變量地址的數(shù)據(jù)類型,它的聲明形式為:(類型)*(變量名),可以在聲明的時(shí)候?qū)ζ溥M(jìn)行初始化。由于其存放的是內(nèi)存單元的地址,所以大小一般都是4個(gè)字節(jié)。10、關(guān)于在調(diào)用模板函數(shù)時(shí)模板實(shí)參的使用,下列表述中正確的是()。A、對(duì)于虛擬類型參數(shù)所對(duì)應(yīng)的模板實(shí)參,如果能從模板函數(shù)的實(shí)參中獲得相同的信息,則都可以省略B、對(duì)于虛擬類型參數(shù)所對(duì)應(yīng)的模板實(shí)參,如果它們是參數(shù)表中的最后的若干個(gè)參數(shù),則都可以省略C、對(duì)于虛擬類型參數(shù)所對(duì)應(yīng)的模板實(shí)參,若能夠省略則必須省略D、對(duì)于常規(guī)參數(shù)所對(duì)應(yīng)的模板實(shí)參,任何情況下都不能省略標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在調(diào)用一個(gè)模板函數(shù)時(shí),編譯系統(tǒng)需要足夠的信息來判別每個(gè)虛擬類型參數(shù)所對(duì)應(yīng)的實(shí)際類型,可以從兩個(gè)不同的渠道獲得這樣的信息:從模板實(shí)參表(用“<>”括起來的參數(shù)表)或從模板函數(shù)實(shí)參表(用“()”括起來的參數(shù)表)。如果從后者獲得的信息已經(jīng)能夠判定其中部分或全部虛擬類型參數(shù)所對(duì)應(yīng)的實(shí)際參數(shù),而且它們又正好是參數(shù)表中最后的若干參數(shù),則模板實(shí)參表中的那幾個(gè)參數(shù)可以省略。如果模板實(shí)參表中的實(shí)參都被省略了,則空表“<>”也可以不要,因此選項(xiàng)D錯(cuò)誤。反之,對(duì)于某個(gè)模板實(shí)參,如果從模板函數(shù)的實(shí)參表中無法獲得同樣的信息,就不能省略;或者雖然能夠獲得同樣的信息,但在它后面還有其他不能省略的實(shí)參,則其自身還是不能省略。11、)下列程序的輸出結(jié)果是()。#includeusingnamespacestd;templateTfun(ra,Tb){return(a<=b)?a:b;}intmain(){cout<A、0,3.14B、3,3.14C、3,3D、3.14,3.14標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此函數(shù)模板的功能是輸出a、b兩數(shù)中較小的那個(gè)數(shù)。(3,6)輸出3,(3.14F,6.28F)輸出3.14。12、假定Xcs是一個(gè)類,該類中一個(gè)成員函數(shù)的原型為“Xcs*abc{};”,則在類外定義時(shí)對(duì)應(yīng)的函數(shù)頭為()。A、XesB、abcC、overrideD、overabc標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:override是指派生類重寫基類的虛函數(shù)。13、有3個(gè)關(guān)系R,S和T如下表所示:其中關(guān)系T由關(guān)系R和S通過某種操作得到,該操作為()。A、選擇B、投影C、交D、并標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:兩個(gè)相同結(jié)構(gòu)關(guān)系的并是由屬于這兩個(gè)關(guān)系的元組組成的集合。14、在三級(jí)模式之間引入兩層映像,其主要功能之一是()。A、使數(shù)據(jù)與程序具有較高的獨(dú)立性B、使系統(tǒng)具有較高的通道能力C、保持?jǐn)?shù)據(jù)與程序的一致性D、提高存儲(chǔ)空間的利用率標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)在數(shù)據(jù)庫的三級(jí)模式之間提供了兩層映像,保證了數(shù)據(jù)庫中數(shù)據(jù)的較高的邏輯獨(dú)立性和物理獨(dú)立性。15、下列選項(xiàng)中,不屬于數(shù)據(jù)庫管理的是()。A、數(shù)據(jù)庫的建立B、數(shù)據(jù)庫的調(diào)整C、數(shù)據(jù)庫的監(jiān)控D、數(shù)據(jù)庫的校對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理一般包括:數(shù)據(jù)庫的建立、數(shù)據(jù)庫的調(diào)整、數(shù)據(jù)庫的重組、數(shù)據(jù)庫的安全性控制與完整性控制、數(shù)據(jù)庫的故障恢復(fù)和數(shù)據(jù)庫的監(jiān)控。16、已知函數(shù)func的原型為intfunc(int,int);則下列選項(xiàng)中,不能作為它的重載函數(shù)原型的是()。A、boolfunc(int,int,b001);B、voidfunc(inta,intb);C、intfunc(int,char);D、floatfunc(double,int);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++中,兩個(gè)函數(shù)是重載函數(shù),必須具有相同的名字,且形參表或const屬性不同,其中形參表不同包括形參的類型不同或形參的數(shù)量不同;選項(xiàng)A中參數(shù)個(gè)數(shù)不同,是重載函數(shù);選項(xiàng)C中參數(shù)類型不同,是重載函數(shù);選項(xiàng)D中參數(shù)類型不同,是重載函數(shù);函數(shù)不能僅僅基于不同的返回類型而實(shí)現(xiàn)重載,選項(xiàng)B僅僅返回類型不同,不是重載函數(shù),本題答案為B。17、有如下程序:#includeusingnamespacestd;intmain(){intsum=0;for(inti=0;i<=3;i+=1){sum+=i;while(sum<100)sum+=i;}cout<<sum<A、輸出100B、輸出103C、輸出105D、死循環(huán)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序在for循環(huán)中嵌套while循環(huán)。for循環(huán)的初始條件為,sum、i初值為0;進(jìn)入for循環(huán)之后,首先將sum累加i,此時(shí)sum、i仍為0;while循環(huán)中,若sum小于100,則將sum累加i,繼續(xù)while循環(huán);當(dāng)sum不滿足條件時(shí),退出循環(huán)。由于sum、i初值為0,所以while循環(huán)中sum始終為0,始終滿足循環(huán)條件sum<100,所以程序進(jìn)入死循環(huán)。答案為D。18、下列有關(guān)虛函數(shù)的表述中,錯(cuò)誤的是A、在C++中,運(yùn)行時(shí)的多態(tài)性是通過虛函數(shù)體現(xiàn)的B、在類聲明中只有加了保留字virtual的成員函數(shù)才是虛函數(shù)C、通過指針或引用對(duì)虛函數(shù)的調(diào)用稱為多態(tài)調(diào)用D、非多態(tài)調(diào)用總是通過成員訪問運(yùn)算符.進(jìn)行的標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++中,觸發(fā)多態(tài)性必須滿足兩個(gè)條件:1、被調(diào)用函數(shù)為虛函數(shù);2、必須通過基類類型的引用或指針調(diào)用函數(shù),選項(xiàng)A、C正確;非多態(tài)調(diào)用虛函數(shù)只能通過類對(duì)象調(diào)用,類對(duì)象調(diào)用虛函數(shù)使用成員訪問運(yùn)算符"."進(jìn)行,選項(xiàng)D正確;一旦函數(shù)在基類中被聲明為虛函數(shù),那它在后續(xù)的派生類中都是虛函數(shù),可以不使用virtual關(guān)鍵字,派生類無法改變?cè)摵瘮?shù)是虛函數(shù)這一事實(shí);選項(xiàng)B錯(cuò)誤;答案為B。19、關(guān)于函數(shù)重載,下列敘述中錯(cuò)誤的是()。A、重載函數(shù)的函數(shù)名必須相同B、重載函數(shù)必須在參數(shù)個(gè)數(shù)或類型上有所不同C、重載函數(shù)的返回值類型必須相同D、重載函數(shù)的函數(shù)體可以有所不同標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:所謂函數(shù)重載是指同一函數(shù)名可以對(duì)應(yīng)多個(gè)函數(shù)實(shí)現(xiàn)。進(jìn)行函數(shù)重載時(shí),要求同名函數(shù)在參數(shù)個(gè)數(shù)上不同,或者參數(shù)類型上不同。但函數(shù)的返回類型不能作為判斷重載的依據(jù)。20、執(zhí)行下列語句:#include<iostream>usingnamespacstd;intmain(){intx=3;if(x=5)cout<<x++<<endl;elsecout<<x<<endl:return0;}程序的輸出是()。A、3B、4C、5D、6標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:if(條件)語句1else語句2,語句的執(zhí)行過程是:首先判斷條件是否為真(不為0),為真則執(zhí)行語句1,否則執(zhí)行語句2。題目中的條件是x=5,意思是把5賦予變量x,它將x置5且返回一個(gè)真值。21、有如下類聲明:classHow{intk;public:How():k(99){}};則類How所擁有的構(gòu)造函數(shù)的數(shù)量是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:首先類How定義了一個(gè)默認(rèn)構(gòu)造函數(shù)How(),因而編譯器不會(huì)自動(dòng)生成默認(rèn)構(gòu)造函數(shù);其次How中需要一個(gè)復(fù)制構(gòu)造函數(shù),這由編譯器自動(dòng)生成,所以How有兩個(gè)構(gòu)造函數(shù),答案為B。22、有如下程序:#includeusingnamespacestd;classBase{private:voidfun1()const{cout<<"fun1";}protected:voidfun2()const{cout<<"fun2";}public:voidfun3()const{cout<<"fun3";}};classDerived:protectedBase{public:voidfun4()const{cout<<"fun4";}};intmain(){Derivedobj;obj.fun1();//①obj.fun2();//②obj.fun3();//③obj.fun4();//④return0;}其中有語法錯(cuò)誤的語句是()。A、①②③④B、①②③C、②③④D、①④標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查保護(hù)繼承中派生類對(duì)基類的訪問屬性,受保護(hù)繼承中,基類的公用成員和保護(hù)成員在派生類中成了保護(hù)成員,其私有成員仍為基類私有,保護(hù)基類的所有成員在派生類中都被保護(hù)起來,在類外不能訪問,所以①②③錯(cuò)誤。23、將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)的遞歸函數(shù)定義如下:voidd2b(unsignedintn){if((n==0)||(n==1))cout<A、1B、2C、3D、4標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:遞歸函數(shù)d2b,首先判斷參數(shù)n是否為0或1,若是,則輸出n,函數(shù)調(diào)用結(jié)束;否則遞歸調(diào)用自身,將n/2當(dāng)做新的參數(shù)傳入。所以d2b被調(diào)用時(shí),參數(shù)分別是:10,5,2,1。所以函數(shù)d2b被調(diào)用4次。答案為D。24、某個(gè)工廠有若干個(gè)倉庫,每個(gè)倉庫存放有不同的零件,相同零件可能放在不同的倉庫中。則實(shí)體倉庫和零件間的聯(lián)系是A、多對(duì)多B、一對(duì)多C、多對(duì)一D、一對(duì)一標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一般來說,實(shí)體集之間必須通過聯(lián)系來建立聯(lián)接關(guān)系,分為三類:一對(duì)一聯(lián)系(1:1)、一對(duì)多聯(lián)系(1:m)、多對(duì)多聯(lián)系(m:n)。每個(gè)倉庫存放有不同的零件,相同零件可能放在不同的倉庫中,故實(shí)體倉庫和零件間的聯(lián)系是多對(duì)多,A選項(xiàng)正確。25、下列敘述中,錯(cuò)誤的是A、false是一個(gè)邏輯型常量B、0是一個(gè)字符型常量C、1481是一個(gè)int常量D、1.732是一個(gè)double常量標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題主要考查了常量的類型,其中B選項(xiàng)中"0"中由于是雙引號(hào),所以是字符串,單引號(hào)表示字符常量,所以B選項(xiàng)錯(cuò)誤。26、若x和y是程序中的兩個(gè)整型變量,則下列if語句中正確的是A、if(x!=0)y=1;elsey=2;B、if(x!=0)y=1elsey=2;C、if(x!=0)theny=1elsey=2;D、ifx!=0y=1;elsey=2;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查if語句,if語句一種形式為:27、下列關(guān)于賦值運(yùn)算符=重載的敘述中,正確的是A、賦值運(yùn)算符只能作為類的成員函數(shù)重載B、默認(rèn)的賦值運(yùn)算符實(shí)現(xiàn)了"深層復(fù)制"功能C、重載的賦值運(yùn)算符函數(shù)有兩個(gè)本類對(duì)象作為形參D、如果已經(jīng)定義了復(fù)制(拷貝)構(gòu)造函數(shù),就不能重載賦值運(yùn)算符標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查字符串的定義,A選項(xiàng)中,定義了一個(gè)字符,而用字符串賦值,所以錯(cuò)誤,C選項(xiàng)定義了字符數(shù)組,但是賦值的字符串實(shí)際上有6個(gè)字符,所以賦值錯(cuò)誤,D選項(xiàng)定義了一個(gè)字符串指針數(shù)組,賦值錯(cuò)誤。28、有如下程序段:inti=9;while(inti=0){cout<<’*’;i--;}運(yùn)行時(shí)輸出*的個(gè)數(shù)是A、0B、1C、9D、無窮標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查賦值運(yùn)算和while循環(huán),i被賦值為為0,所以while中的判斷條件為假,不執(zhí)行循環(huán)體,所以輸出為0個(gè)。29、有如下類定義:classPerson{public:Person(strings):name(s){}protected:stringname;};classFather:virtualpublicPerson{public:Father(strings):Person(s){}};classMother:virtualpublicPerson{public:Mother(strings):Person(s){}};classChild:publicFather,publicMother,virtualpublicPerson{public:Child(strings1,strings2,strings3):Mother(s1),Father(s2),Person(s3){}};在建立派生類Child的對(duì)象時(shí),其基類Father、Mother和Person的構(gòu)造函數(shù)的調(diào)用順序?yàn)锳、Father,Mother,PersonB、Mother,Father,PersonC、Person,Father,MotherD、Father,Person,Mother,Person,Person標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:執(zhí)行派生類構(gòu)造函數(shù)的順序是:1、調(diào)用基類構(gòu)造函數(shù),2、調(diào)用子對(duì)象構(gòu)造函數(shù),3、再執(zhí)行派生類構(gòu)造函數(shù),所以本題中先調(diào)用基類person構(gòu)造函數(shù),然后執(zhí)行father構(gòu)造函數(shù),最后執(zhí)行mother構(gòu)造函數(shù)。30、運(yùn)算符重載時(shí)必須有所不同的是A、優(yōu)先級(jí)B、結(jié)合性C、操作數(shù)個(gè)數(shù)D、操作數(shù)類型標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查運(yùn)算符重載,重載不能改變運(yùn)算符運(yùn)算對(duì)象的個(gè)數(shù);不能改變運(yùn)算符的優(yōu)先級(jí)別;不能改變運(yùn)算符的結(jié)合性;重載運(yùn)算符的函數(shù)不能有默認(rèn)值,否則就改變了運(yùn)算符參數(shù)的個(gè)數(shù);不能定義新的運(yùn)算符,某些運(yùn)算符不能重載。而運(yùn)算符的初衷就是操作數(shù)類型不同而實(shí)現(xiàn)相同的效果。31、有如下類定義:classBag{public:Bag();//①voidSetSize(strings);//②stringGetSize()const;//③friendvoidDisplay(Bag&b);//④private:stringsize;};在標(biāo)注號(hào)碼的4個(gè)函數(shù)中,不具有隱含this指針的是A、①B、②C、③D、④標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:當(dāng)在類的非靜態(tài)成員函數(shù)中訪問類的非靜態(tài)成員的時(shí)候,編譯器會(huì)自動(dòng)將對(duì)象本身的地址作為一個(gè)隱含參數(shù)傳遞給函數(shù),所以①②③正確使用this指針。32、ClassA是一個(gè)類,現(xiàn)在執(zhí)行下面語句:ClassAa[2],*b[2],*c=newClassA;調(diào)用ClassA類的構(gòu)造函數(shù)的次數(shù)是A、1B、2C、3D、5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:創(chuàng)建對(duì)象數(shù)組時(shí),需要用默認(rèn)構(gòu)造函數(shù)初始化每個(gè)元素,所以ClassAa[2]需要調(diào)用2次構(gòu)造函數(shù);創(chuàng)建對(duì)象指針數(shù)組b,數(shù)組b的元素是對(duì)象指針,沒有生成新的對(duì)象,不需要調(diào)用構(gòu)造函數(shù);創(chuàng)建對(duì)象指針c,并使用動(dòng)態(tài)分配方式創(chuàng)建新的對(duì)象,將新對(duì)象的指針賦給c,需要調(diào)用構(gòu)造函數(shù);綜上所述,答案為C。33、數(shù)據(jù)庫系統(tǒng)的三級(jí)模式不包括()。A、概念模式B、內(nèi)模式C、外模式D、數(shù)據(jù)模式標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫系統(tǒng)的三級(jí)模式是概念模式、外模式和內(nèi)模式,所以選擇D。34、有如下程序:#includeusingnamespacestd;classtest{private:inta;public:test(){cout<<"constructor"<A、3B、constructordestructorC、copyconstructordestructorD、3destructor標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查默認(rèn)構(gòu)造函數(shù)和帶參數(shù)的構(gòu)造函數(shù)以及析構(gòu)函數(shù),本題中定義了一個(gè)對(duì)象A(3),對(duì)象帶著參數(shù),所以執(zhí)行帶參數(shù)的構(gòu)造函數(shù),輸出3,然后執(zhí)行析構(gòu)函數(shù),輸出destructor。所以本題答案為D。35、下列敘述中正確的是()。A、在棧中,棧中元素隨棧底指針與棧頂指針的變化而動(dòng)態(tài)變化B、在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動(dòng)態(tài)變化C、在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動(dòng)態(tài)變化D、以上說法均不正確標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧是先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu),在整個(gè)過程中,棧底指針不變,入棧與出棧操作均由棧頂指針的變化來操作,所以選擇C)。36、下列語句或語句序列中錯(cuò)誤的是A、inta;constint*point=&a;B、constinta=10;C、constint*point=10;D、constint*point=newint(10);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查常指針,C選項(xiàng)中不能直接將整型變量賦值給常指針,所以C選項(xiàng)錯(cuò)誤。37、字符串"8+a=b\n\r"的長度為A、14B、7C、9D、16標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查字符常量中轉(zhuǎn)義字符常量,\n,\r為轉(zhuǎn)義字符,只占一個(gè)字節(jié),所以該字符串的長度為7。選項(xiàng)B正確。38、下列選項(xiàng)中,正確的C++表達(dá)式是A、a1+B、b++2C、3=cD、-d4標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:選項(xiàng)A中,"+"運(yùn)算符作為一元運(yùn)算符,應(yīng)該放在操作數(shù)之前,返回操作數(shù)本身;作為二元運(yùn)算符,必須作用于兩個(gè)操作數(shù);選項(xiàng)B中,"++"運(yùn)算符是一元運(yùn)算符,只能作用于一個(gè)操作數(shù);選項(xiàng)C中,3是常量,不能用作賦值操作符的左值;選項(xiàng)D正確,"-"操作符作為一元運(yùn)算符,放在操作數(shù)之前,對(duì)其操作數(shù)取負(fù);答案為D。39、下列()是C++語言的有效標(biāo)識(shí)符。A、_No1B、No.1C、12345D、int標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:標(biāo)識(shí)符是一個(gè)以字母或下畫線開始的,由字母、下畫線和數(shù)字組成的字符串,標(biāo)識(shí)符不能與任意關(guān)鍵字同名。二、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)40、使用VC6打開考生文件夾下的源程序文件modi2.cpp。閱讀下列函數(shù)說明和代碼,補(bǔ)充空出的代碼。完成函數(shù)ToUpper(char*des,char*str),該函數(shù)實(shí)現(xiàn)把str字符串中小寫字符轉(zhuǎn)換成大寫字符,并存發(fā)在des中。例如:str=“aBcdrFGHijK”;則:des=“ABCDEFGHIJK”;注意:不能修改程序的其他部分,只能補(bǔ)充Toupper()函數(shù)。#include#defineMAXLEN1024voidToUpper(char*des,char*str){}voidmain(){chardest[MAXLEN];char*str="aBcdrFGHiJK";Toupper(dest,str);cout<標(biāo)準(zhǔn)答案:for(inti=0;str[i]!=0;i++){if(str[i]>=’a’&&str[i]<=’z’)//比較是否是小寫字母{des[i]=str[i]-’a’+’A’;//替換成大寫字母}else{des[i]=str[i];//其他情況不變}des[i+1]=0;}知識(shí)點(diǎn)解析:(1)由審題分析可知,可利用循環(huán)來逐個(gè)檢索str中的字符,循環(huán)變量i從0開始,直到str數(shù)組的結(jié)束,即str[i]==0為循環(huán)結(jié)束條件。(2)小寫字母的判別方式為:str[i]>=’a’&&str[i]<=’z’,即該字符比’z’小,而且比’a’大,如果滿足該條件則在該字符基礎(chǔ)上加上(’A’-’a’)值轉(zhuǎn)換為大寫字母;如果是其他字符的話,無需轉(zhuǎn)換,直接剛該字符放到des數(shù)組中。三、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)41、請(qǐng)使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程pro.j3,其中包含了類IntegerSet和主函數(shù)main的定義。一個(gè)IntegerSet對(duì)象就是一個(gè)整數(shù)的集合,其中包含0個(gè)或多個(gè)無重復(fù)的整數(shù);為了便于進(jìn)行集合操作,這些整數(shù)按升序存放在成員數(shù)組elem的前若干單元中。成員函數(shù)add的作用是將一個(gè)元素添加到集合中(如果集合中不存在該元素),成員函數(shù)remove從集合中刪除指定的元素(如果集合中存在該元素)。請(qǐng)編寫成員函數(shù)remove。在main函數(shù)中給出了一組測(cè)試數(shù)據(jù),此時(shí)程序的正確輸出結(jié)果應(yīng)為:23452728316675234562728316675234561927283l667534561927283l66753456192728316675要求:補(bǔ)充編制的內(nèi)容寫在“//**********333**********”與“//**********666**********”之間,不得修改程序的其他部分。注意:程序最后將結(jié)果輸出到文件out.dat中。輸出函數(shù)WriteToFile已經(jīng)編譯為obj文件,并且在本程序中調(diào)用。//IntegorSet.h#ifndefINTEGERSET#defineINTEGERSET#includeusingnamespacestd;constintMAXELEMENTS=100;//集合最多可擁有的元素個(gè)數(shù)classIntegerSet{intelem[MAXELEMENTS];//用于存放集合元素的數(shù)組intcounter;//用于記錄集合中元素個(gè)數(shù)的計(jì)數(shù)器public:IntegerSet():counter(0){}//創(chuàng)建一個(gè)空集合IntegerSet(intdata[],intsize);//利用數(shù)組提供的數(shù)據(jù)創(chuàng)建一個(gè)整數(shù)集合voidadd(intelement);//添加一個(gè)元素到集合中voidremove(intelement);//刪除集合中指定的元素intgetCount()const{returncounter;}//返回集合中元素的個(gè)數(shù)intgetElement(inti)const{returnelem[i];}//返回集合中指定的元素voidshow()const;},voidWriteToFile(char*);#endif//main.cpp#include"IntegerSet.h"#includeIntegerSet::IntegerSet(intdata[],intsize):counter(0){for(inti=0;i0;j--)if(element>=elem[j-1])break;//如果找到的是等于element的元素,說明要添加的元素已經(jīng)存在,直接返回if(j>0)if(element=elem[j-1])return;//如果找到的是小于element的元素,j就是要添加的位置//該元素及其后面的元素依次后移,騰出插入位置for(intk=counter;k>j;k--)elem[k]=elem[k-1];elem[j]:element;//將element插入到該位置counter++;//計(jì)數(shù)器加1}voidIntegerSet::remove(intelement){//********333********//********666********}voidIntegerSet::show()const{for(inti=0;i標(biāo)準(zhǔn)答案:for(inti=0;i知識(shí)點(diǎn)解析:主要考查考生對(duì)有序數(shù)組的掌握,題目要求成員函數(shù)remove從集合中刪除指定的元素(如果集合中存在該元素)。遍歷數(shù)組elem中的元素,找出與形參element相等的元素,并將其刪除,每刪除一個(gè)元素,即將該元素之后的每個(gè)元素前移一位,如果不存在與形參element相等的元素則沒有操作。使用下標(biāo)i遍歷數(shù)組,if語句判斷是否與element相等。國家二級(jí)(C++)機(jī)試模擬試卷第2套一、選擇題(本題共38題,每題1.0分,共38分。)1、在數(shù)據(jù)庫系統(tǒng)的組織結(jié)構(gòu)中,下列()映射把用戶數(shù)據(jù)庫與概念數(shù)據(jù)庫聯(lián)系了起來。A、外模式/模式B、內(nèi)模式/外模式C、模式/內(nèi)模式D、內(nèi)模式/模式標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫有兩層映像,即外模式/模式和模式/內(nèi)模式映像。模式/內(nèi)模式映像定義數(shù)據(jù)庫全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系。2、下列關(guān)于C++函數(shù)的說明中,正確的是()。A、內(nèi)聯(lián)函數(shù)就是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù)B、函數(shù)體的最后一條語句必須是return語句C、標(biāo)準(zhǔn)C++要求在調(diào)用一個(gè)函數(shù)之前,必須先聲明其原型D、編譯器會(huì)根據(jù)函數(shù)的返回值類型和參數(shù)表來區(qū)分函數(shù)的不同重載形式標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:一般函數(shù)進(jìn)行調(diào)用時(shí),要將程序執(zhí)行權(quán)轉(zhuǎn)到被調(diào)用函數(shù)中,然后再返回到調(diào)用它的函數(shù)中;而內(nèi)聯(lián)函數(shù)在調(diào)用時(shí),是將調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)體來替換,而不是在定義在另一個(gè)函數(shù)體內(nèi),所以A選項(xiàng)錯(cuò)誤。函數(shù)可以沒有返回值,所以就不需要return了,如果被調(diào)函數(shù)在調(diào)用函數(shù)之前已經(jīng)定義,那么就不需要聲明,所以C選項(xiàng)錯(cuò)誤,正確選項(xiàng)為D。3、下列關(guān)于基類和派生類關(guān)系的敘述中,正確的是()。A、每個(gè)類最多只能有一個(gè)直接基類B、派生類中的成員可以訪問基類中的任何成員C、基類的構(gòu)造函數(shù)必須在派生類的構(gòu)造函數(shù)體中調(diào)用D、派生類除了繼承基類的成員,還可以定義新的成員標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查派生類與基類的關(guān)系,派生類可以有多個(gè)直接基類,而派生類有三種繼承方式,在私有繼承中,派生類的成員并不能訪問基類的成員。如果基類中定義了缺省構(gòu)造函數(shù)或根本沒有定義任何一個(gè)構(gòu)造函數(shù)時(shí),在派生類構(gòu)造函數(shù)的定義中可以省略對(duì)基類構(gòu)造函數(shù)的調(diào)用。所以本題答案為D。4、下列關(guān)于基類和派生類關(guān)系的敘述中,正確的是()。A、每個(gè)類最多只能有一個(gè)直接基類B、派生類中的成員可以訪問基類中的任何成員C、基類的構(gòu)造函數(shù)必須在派生類的構(gòu)造函數(shù)體中調(diào)用D、派生類除了繼承基類的成員,還可以定義新的成員標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查派生類與基類的關(guān)系,派生類可以有多個(gè)直接基類,而派生類有三種繼承方式,在私有繼承中,派生類的成員并不能訪問基類的成員。如果基類中定義了缺省構(gòu)造函數(shù)或根本沒有定義任何一個(gè)構(gòu)造函數(shù)時(shí),在派生類構(gòu)造函數(shù)的定義中可以省略對(duì)基類構(gòu)造函數(shù)的調(diào)用。所以本題答案為D。5、如果有以下定義及初始化:inta=3,*p=&a;則由此可以推斷,*p的值是()。A、變量a的值,即3B、變量a的地址值C、變量P的地址值D、無意義標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是指針變量的定義與賦初值。語句*p=&a是定義指針并且給指針賦初值,指向a,所以指針的值就是變量a的地址,*p的值就是a的值。6、下列對(duì)模板的聲明中,正確的是()。A、templateB、templateC、templateD、template標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:聲明一個(gè)函數(shù)模板的格式為:template<模板形參表聲明>函數(shù)聲明。調(diào)用模板函數(shù)時(shí),如果與模板實(shí)參中最后的若干個(gè)參數(shù)有關(guān)的信息可以從模板函數(shù)的實(shí)參中獲得,則相關(guān)的模板實(shí)參可以省略。7、有如下類聲明:classTestClass{intn;public:TestClass(inti=0):n(i){}voidsetValue(intn0);};下面關(guān)于setValue成員函數(shù)的實(shí)現(xiàn)中,正確的是()。A、TestClass::setValue(intn0){n=n0;}B、voidTestClass::setValue(intn0){n=n0;}C、voidsetValueq(intn0){n=n0;}D、setValue(intn0){n=n0;}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++中類成員函數(shù)的實(shí)現(xiàn)形式為:返回類型類名::成員函數(shù)名(參數(shù)列表){代碼塊}8、有如下程序:#include<iostream>usingnamespacestd;intmain(){cout.fill(’*’);cout.width(6);cout.fill(’#’);cout<<888<<endl;return0:}的執(zhí)行結(jié)果是()。A、###888B、888###C、***888D、888***標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++在流操作中,利用cout對(duì)象的width屬性設(shè)置輸出字符的寬度,用fill函數(shù)來設(shè)置需要填充的字符。題目程序中,首先設(shè)置填充字符為*,輸出寬度為6,但在輸出前又設(shè)置了填充字符為#,所以在輸出時(shí),其填充字符為#,由于888不足6個(gè)字符,所以在前面以三個(gè)“#”來填充。9、在關(guān)系A(chǔ)(S,SN,E)和關(guān)系B(E,CN,NM)扣,A的主關(guān)鍵字是S,B的主關(guān)鍵字是E,則關(guān)系A(chǔ)的外碼是()。A、SB、SNC、NMD、E標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:外碼用于建立和加強(qiáng)兩個(gè)關(guān)系之間的連接,通過將關(guān)系中主鍵值的一列或多列屬性添加到另一個(gè)關(guān)系中,可建立兩個(gè)關(guān)系之間的聯(lián)系,這個(gè)列屬性稱為第二關(guān)系的外碼。10、軟件詳細(xì)設(shè)計(jì)產(chǎn)生的圖如下:該圖是()。A、N-S圖B、PAD圖C、程序流程圖D、E-R圖標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:N-S圖提出了用方框圖來代替?zhèn)鹘y(tǒng)的程序流程圖,所以A不對(duì)。PAD圖是問題分析圖,它是繼承程序流程圖和方框圖之后提出的又一種主要用于描述軟件詳細(xì)設(shè)計(jì)的圖形表示工具,所以B不對(duì)。E-R圖是數(shù)據(jù)庫中的用于表示E-R模型的圖示工具,所以D不對(duì)。根據(jù)圖中所示表示方法是進(jìn)行軟件詳細(xì)設(shè)計(jì)時(shí)使用的程序流程圖。11、下列情況中,不會(huì)調(diào)用拷貝構(gòu)造函數(shù)的是()。A、用一個(gè)對(duì)象去初始化同一類的另一個(gè)新對(duì)象時(shí)B、將類的一個(gè)對(duì)象賦值給該類的另一個(gè)對(duì)象時(shí)C、函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時(shí)D、函數(shù)的返回值是類的對(duì)象,函數(shù)執(zhí)行返回調(diào)用時(shí)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù)是一個(gè)特殊的構(gòu)造函數(shù),它用一個(gè)已知的對(duì)象初始化一個(gè)正在創(chuàng)建的同類對(duì)象,它的一般格式是:類名:類名(const類名&引用對(duì)象名)。當(dāng)一個(gè)類的對(duì)象賦值給該類的另一個(gè)對(duì)象時(shí),是賦值而不是創(chuàng)建對(duì)象,所以不會(huì)調(diào)用拷貝構(gòu)造函數(shù)。12、下面是關(guān)于派生類聲明的開始部分,其中正確的是()。A、classvirtualB:publicAB、virtualclassB:publicAC、classBpublicAvirtualD、classB:virtualpublicA標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:聲明派生類的一般形式為:class派生類名:【繼承方式】基類名。其中繼承方式包括:public,pfivate,promcmd,而virtual為C++中的關(guān)鍵字。虛函數(shù)的使用方法是在基類用virtual聲明成員函數(shù)為虛函數(shù)。13、在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是()。A、邏輯設(shè)計(jì)B、需求分析C、詳細(xì)設(shè)計(jì)D、物理設(shè)計(jì)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件開發(fā)階段包括需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試五個(gè)階段。其中需求分析階段常用的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。14、有如下類定義:classMyClass{intvalue;public:MyClass(intn):value(n){}intgetValue()const{returnvalue;}};則類MyClass的構(gòu)造函數(shù)的個(gè)數(shù)是()。A、1個(gè)B、2個(gè)C、3個(gè)D、4個(gè)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查類的默認(rèn)構(gòu)造函數(shù)和自定義的構(gòu)造函數(shù)。本題中MyClass(intn):value(n)||為自定義的構(gòu)造函數(shù),加上默認(rèn)構(gòu)造函數(shù),一共有2個(gè)構(gòu)造函數(shù)。15、有如下程序:#includeusingnamespacestd;classBase{intx;public:Base(intn=0):x(n){cout<A、375B、357C、0375D、0357標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù),在定義一個(gè)派生類的對(duì)象時(shí),先調(diào)用基類的構(gòu)造函數(shù),然后再執(zhí)行派生類的構(gòu)造函數(shù),對(duì)象釋放時(shí),先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù)。本題中定義了一個(gè)對(duì)象d1,先執(zhí)行基類的構(gòu)造函數(shù)輸出0,再執(zhí)行派生類的構(gòu)造函數(shù)輸出3,然后定義了一個(gè)對(duì)象d2(5,7),其中需要調(diào)用基類的構(gòu)造函數(shù)輸出7,最后輸出5,所以答案為C。16、下列關(guān)于運(yùn)算符函數(shù)的描述中,錯(cuò)誤的是()。A、運(yùn)算符函數(shù)的名稱總是以operator為前綴B、運(yùn)算符函數(shù)的參數(shù)可以是對(duì)象C、運(yùn)算符函數(shù)只能定義為類的成員函數(shù)D、在表達(dá)式中使用重載的運(yùn)算符相當(dāng)于調(diào)用運(yùn)算符重載函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:運(yùn)算符函數(shù)可以定義為類的友元函數(shù)。所以C選項(xiàng)錯(cuò)誤。17、下列關(guān)于棧敘述正確的是()。A、棧頂元素最先能被刪除B、棧頂元素最后才能被刪除C、棧底元素永遠(yuǎn)不能被刪除D、以上三種說法都不對(duì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:棧是限定在一端進(jìn)行插入刪除的先入后出的線性表數(shù)據(jù)結(jié)構(gòu),棧頂元素最后被插入到棧中,但是最先被刪除;而棧底元素最先被插入,最后被刪除。18、數(shù)據(jù)庫系統(tǒng)的三級(jí)模式不包括()。A、概念模式B、內(nèi)模式C、外模式D、數(shù)據(jù)模式標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫系統(tǒng)的三級(jí)模式是概念模式、外模式和內(nèi)模式,所以選擇D。19、下列關(guān)于派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的表述中,錯(cuò)誤的是()。A、在基類中沒有定義構(gòu)造函數(shù),那么在派生類中也可不定義構(gòu)造函數(shù);B、派生類的構(gòu)造函數(shù)會(huì)隱含調(diào)用基類的構(gòu)造函數(shù);C、在建立派生類對(duì)象時(shí),先調(diào)用基類的構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù);D、在銷毀派生類對(duì)象時(shí),先調(diào)用基類的析構(gòu)函數(shù),再調(diào)用派生類的析構(gòu)函數(shù)。標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:派生類對(duì)象的撤銷順序與構(gòu)造順序相反:首先運(yùn)行派生類析構(gòu)函數(shù),然后按繼承層次依次向上調(diào)用各基類析構(gòu)函數(shù),這樣做是為了每次析構(gòu)函數(shù)銷毀的都是完整的對(duì)象,選項(xiàng)D錯(cuò)誤,答案為D。20、若實(shí)體A和B是一對(duì)多的聯(lián)系,實(shí)體B和C是一對(duì)一的聯(lián)系,則實(shí)體A和C的聯(lián)系是A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:A和B為一對(duì)多的聯(lián)系,則對(duì)于A中的每一個(gè)實(shí)體,B中有多個(gè)實(shí)體與之聯(lián)系,而B與C為一對(duì)一聯(lián)系,則對(duì)于B中的每一個(gè)實(shí)體,C中之多有一個(gè)實(shí)體與之聯(lián)系,則可推出對(duì)于A中的每一個(gè)實(shí)體,C中有多個(gè)實(shí)體與聯(lián)系,所以為一對(duì)多聯(lián)系。21、下列定義語句中,錯(cuò)誤的是()。A、intpx*;B、char*acp[10];C、char(*pac)[10];D、int(*p)();標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:定義一個(gè)int型指針的方式應(yīng)該是int*px,*在類型與變量名之間。22、當(dāng)數(shù)據(jù)庫中數(shù)據(jù)總體邏輯結(jié)構(gòu)發(fā)生變化,而應(yīng)用程序不受影響,稱為數(shù)據(jù)的A、邏輯獨(dú)立性B、物理獨(dú)立性C、應(yīng)用獨(dú)立性D、空間獨(dú)立性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性,物理獨(dú)立性指數(shù)據(jù)的物理結(jié)構(gòu)的改變,不會(huì)影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),也不會(huì)引起應(yīng)用程序的改動(dòng);邏輯獨(dú)立性指數(shù)據(jù)庫的總體邏輯結(jié)構(gòu)的改變,不會(huì)導(dǎo)致相應(yīng)的應(yīng)用程序的改變。故A選項(xiàng)正確。23、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assA{public:A(){cout<<"A";}};c1assB{public:BO{cout<<"B";}};c1assC:publicA{Bb;public:C(){cout<<nC¨;}};intmain(){Cobj;return0;}執(zhí)行后的輸出結(jié)果是()。A、ABCB、BACC、ACBD、CBA標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++程序中的執(zhí)行子類,首先執(zhí)行基類的構(gòu)造函數(shù),然后執(zhí)行數(shù)據(jù)成員類的構(gòu)造函數(shù),最后執(zhí)行子類本身的構(gòu)造函數(shù),所以輸出結(jié)果為ABC。24、有如下程序:#includeusingnamespacestd;classA{public:A(inti){x=i;}voiddispa(){cout<<x<<′,′;}private:intx;};classB:publicA{public:B(inti):A(i+10){x=i;}voiddispb(){dispa();cout<<x<<endl;}private:intx;};intmain(){Bb(2);b.dispb();return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、10,2B、12,10C、12,2D、2,2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查派生類的構(gòu)造函數(shù)和基類的構(gòu)造函數(shù)。本題中類B繼承類A,定義了一個(gè)類B的對(duì)象并初始化b(2),此時(shí)會(huì)執(zhí)行類B的構(gòu)造函數(shù),執(zhí)行的結(jié)果是繼承類A中的私有成員賦值了12,給類B自身的數(shù)據(jù)成員x賦值了2,執(zhí)行b.dispb()后,輸出類A的私有成員x,輸出類B自身的數(shù)據(jù)成員,所以答案為C。25、下列有關(guān)繼承和派生的表述中,正確的是A、派生類的成員函數(shù)可以訪問基類的所有成員B、如果一個(gè)派生類私有繼承其基類,則該派生類的對(duì)象能訪問基類的保護(hù)成員C、基類對(duì)象可以直接賦值給派生類對(duì)象D、如果派生類沒有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)抽象類標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:派生類對(duì)基類成員的訪問權(quán)限由基類成員的訪問標(biāo)識(shí)和類派生列表中的訪問標(biāo)識(shí)共同決定的,選項(xiàng)A錯(cuò)誤;派生類私有繼承基類,基類的保護(hù)成員在派生類中為private成員,派生類對(duì)象不可見,選項(xiàng)B錯(cuò)誤;派生類包含基類中沒有的成員變量和成員函數(shù),將基類對(duì)象賦給派生類對(duì)象,在調(diào)用這些成員時(shí)報(bào)錯(cuò),選項(xiàng)C錯(cuò)誤;答案為D。26、有如下類和變量定義:classParents{public:intpublicData;private:intprivateData;};classdA:publicParents{/*類體略*/};classdB:privateParents{/*類體略*/};dAx;dBy;下列表達(dá)式中正確的是A、x.publicDataB、x.privateDataC、y.privateDataD、y.publicData標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:dA公有繼承Parents,dB私有繼承Parents,所以Parents中的公有成員publicData在dA中是公有成員,對(duì)x可見,在dB中是私有成員,對(duì)y不可見,Parents中的私有成員privateData對(duì)x和y都不可見;由此可知:只有x可以訪問publicData,答案為A。27、某二叉樹的中序序列為BDCA,后序序列為DCBA,則前序序列為A、DCBAB、BDCAC、ABCDD、BADC標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:二叉樹遍歷可以分為3種:前序遍歷(訪問根結(jié)點(diǎn)在訪問左子樹和訪問右子樹之前)、中序遍歷(訪問根結(jié)點(diǎn)在訪問左子樹和訪問右子樹兩者之間)、后序遍歷(訪問根結(jié)點(diǎn)在訪問左子樹和訪問右子樹之后)。本題中中序序列為BDCA,后序序列為DCBA,可知A為根結(jié)點(diǎn),BDC為左側(cè)結(jié)點(diǎn),C是B右子結(jié)點(diǎn),D是C右子結(jié)點(diǎn),故前序序列為ABCD,C選項(xiàng)正確。28、某系統(tǒng)總體結(jié)構(gòu)圖如下圖所示:該系統(tǒng)總體結(jié)構(gòu)圖的深度是()。A、7B、6C、3D、2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)總體結(jié)構(gòu)圖可以看出該樹的深度為3,比如:XY系統(tǒng)---功能2----功能2.1,就是最深的度數(shù)的一個(gè)表現(xiàn)。29、結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括()。A、順序結(jié)構(gòu)B、GOTO跳轉(zhuǎn)C、選擇(分支)結(jié)構(gòu)D、重復(fù)(循環(huán))結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:1966年Boehm和Jacopini證明了程序設(shè)計(jì)語言僅僅使用順序、選擇和重復(fù)三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他形式結(jié)構(gòu)的程序設(shè)計(jì)方法。30、有如下程序:#includeusingnamespacestd;voidfun(inti){cout<<"inti/";}voidfun(charc){cout<<"charc/";}intmain(){fun(0);fun(’c’);return0;}運(yùn)行后的輸出結(jié)果是A、inti/inti/B、inti/charc/C、charc/inti/D、charc/charc/標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序有兩個(gè)重載fun函數(shù),函數(shù)原型分別為fun(int)、fun(char);main函數(shù)中調(diào)用fun(0),由于0可以精確匹配原型為fun(int)的函數(shù),所以fun(0)將選擇原型為fun(int)的函數(shù),輸出inti/;同理fun(’c’)精確匹配原型為fun(char)的函數(shù),輸出charc/,程序最終輸出結(jié)果為:inti/charc/;答案為B。31、下面不屬于對(duì)象主要特征的是A、唯一性B、多態(tài)性C、可復(fù)用性D、封裝性標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)象的基本特點(diǎn)如下:可知C選項(xiàng)正確。32、下列各組類型聲明符中,含義相同的一組是()。A、unsignedlongint和longB、signedshortint和shortC、unsignedshort和shortD、shortint和int標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查整型變量的類型,A、C選項(xiàng)中前者為無符號(hào)的,后者為有符號(hào)的,D選項(xiàng)中shortint為2個(gè)字節(jié),int為4個(gè)字節(jié)。33、有如下程序:#includeusingnamespacestd;classTV{public:TV(ints=41):size(s){}voidPrint(){cout<<’/’<<’N’<A、/N41/S54B、/N41/C54C、/C41/S54D、/C41/C54標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù)相關(guān)知識(shí),本題中定義一個(gè)對(duì)象room1,執(zhí)行room1.Print時(shí)執(zhí)行構(gòu)造函數(shù)給size賦值為41,然后執(zhí)行voidPrint(){cout<<’/’<<’N’<34、以下關(guān)鍵字不能用來聲明類的訪問權(quán)限的是()。A、publicB、staticC、protectedD、private標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類的成員訪問權(quán)限有3種:public(公用)、protected(保護(hù))、private(私有)。35、有如下程序:#includeusingnamespacestd;classBase{public:voidfun(){cout<<"Base::fun"<A、Base.fun();B、Base::fun();C、Base->fun();D、fun();標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查公用繼承對(duì)基類成員的訪問屬性。在公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有的訪問屬性,其私有成員仍為基類私有。本題中想要輸出Base::fun,則必須調(diào)用基類的公用成員函數(shù)fun,所以使用Base::fun();來調(diào)用基類的成員函數(shù)fun。36、定義無符號(hào)整數(shù)類為UInt,下面可以作為類UInt實(shí)例化值的是()。A、-369B、369C、0.369D、整數(shù)集合{1,2,3,4,5}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:只有B)選項(xiàng)369可以用無符號(hào)整數(shù)來表示和存儲(chǔ)。A)選項(xiàng)-369有負(fù)號(hào),選項(xiàng)C)0.369是小數(shù)都不能用無符號(hào)整數(shù)類存儲(chǔ)。選項(xiàng)D)是一個(gè)整數(shù)集合得用數(shù)組來存儲(chǔ)。37、要利用C++流進(jìn)行文件操作,必須在程序中包含的頭文件是A、iomanipB、fstreamC、strstreamD、cstdlib標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:iomanip是I/O流控制頭文件;strstream是輸入輸出字符串流頭文件;cstdlib是常用函數(shù)庫,提供一些函數(shù)和符號(hào)常量;選項(xiàng)A、C、D錯(cuò)誤;fstream是輸入輸出文件流頭文件,答案為B。38、下列因素中,對(duì)C++編譯器區(qū)分重載函數(shù)無任何意義的是()。A、常成員函數(shù)關(guān)鍵字constB、返回值類型C、參數(shù)類型D、參數(shù)個(gè)數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++中,兩個(gè)函數(shù)是重載函數(shù),必須具有相同的名字,且形參表或oonst屬性不同,選項(xiàng)A、C、D都可以區(qū)分;函數(shù)不能僅僅基于不同的返回類型而實(shí)現(xiàn)重載,選項(xiàng)B不能區(qū)分,本題答案為B。二、基本操作題(本題共1題,每題1.0分,共1分。)39、使用VC6打開考生文件夾下的源程序文件modil.cpp,該程序運(yùn)行時(shí)有錯(cuò)誤,請(qǐng)改正程序中的錯(cuò)誤,使得程序運(yùn)行后沒有內(nèi)存遺漏??梢栽谛薷奶幵黾踊蛘邉h除一條語句。本程序完成輸入兩個(gè)字符串,分別存儲(chǔ)到s1,s2中。注意:不要改動(dòng)main函數(shù),不能增行或刪行,也不能更改程序的結(jié)構(gòu),錯(cuò)誤的語句在//********error********的下面。1#include2voidmain()3{4char*s1;5chars2[1024];6cout<<"pleaseinputastring:"<標(biāo)準(zhǔn)答案:(1)s1=newchar[1024];(2)delete[]s1;(3)刪除“deletes2;”語句知識(shí)點(diǎn)解析:本題是主要是處理程序運(yùn)行后是否有內(nèi)存遺漏的問題。對(duì)于這類問題主要是根據(jù)調(diào)試環(huán)境中的錯(cuò)誤提示以及警告提示進(jìn)行處理。[解題思路](1)sl變量為指針變量,在使用前要對(duì)其分配空間,所以第1個(gè)標(biāo)識(shí)下添加“s1=newchar[1024];”。(2)為了防止內(nèi)存空間的泄漏,指針變量使用后,要將其空間釋放,第二個(gè)標(biāo)識(shí)下“delete[]s1;”。(3)s2是數(shù)組變量,空間是在使用前靜態(tài)分配的,不是使用前動(dòng)態(tài)分配的,所以使用后不用釋放內(nèi)存空間,這里應(yīng)該刪除“deletes2;”。三、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)40、使用VC6打開考生文件夾下的源程序文件modi2.cpp。請(qǐng)完成函數(shù)fun(intn),求出nXn矩陣的對(duì)角線數(shù)字的平方和。如果n為奇數(shù),則對(duì)角線交叉部位數(shù)字只參與一次計(jì)算。注意:請(qǐng)勿改動(dòng)主函數(shù)main與其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入所編寫的若干語句。#include#defineMAXN10intXX[MAXN][MAXN];intfun(intn){}voidmain(){intn;do{cout<<”pleaseinputN(1<=N<10):”<>n;if(n<10&&n>=1){break;}}while(1);for(inti=0;i>XX[i][j];}}cout<標(biāo)準(zhǔn)答案:intdata=0;//初始化求平方和變量for(inti=0;i知識(shí)點(diǎn)解析:本題函數(shù)中的功能是輸出N行N列正方陣,然后求兩條對(duì)角線上各元素之平方和。其中,假設(shè)矩陣行、列分別為i、j,那么對(duì)角線上的元素特點(diǎn)是主對(duì)角線上i=j,以及逆對(duì)角線j=n—i一1。四、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)41、使用VC6打開源程序文件modi3.cpp。其中類TestClass用于把文件輸出到屏幕,然后進(jìn)行文件的分割。分割的方法如下:第一個(gè)文件的大小是文件的前一半,另外一個(gè)文件的大小是剩余部分。此程序?qū)nt.tXt文件中的內(nèi)容輸出到屏幕,并且將文件按照以上方式分割,存于文件outl.txt和out2.txt中。其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。(1)從輸入文件中獲得一個(gè)字符,并判斷是否到文件結(jié)尾,如果到文件結(jié)尾,則退出循環(huán)。請(qǐng)?jiān)谧⑨專?*******1********后添加適當(dāng)?shù)恼Z句。(2)把獲得的輸入文件的內(nèi)容存儲(chǔ)到buf中,并且用len記錄下文件的長度。請(qǐng)?jiān)谧⑨專?*******2********后添加適當(dāng)?shù)恼Z句。(3)將輸入文件的后一半內(nèi)容存儲(chǔ)在第二個(gè)文件中,請(qǐng)?jiān)谧⑨專?*******3********后添加適當(dāng)?shù)恼Z句。(4)使用文件流對(duì)象打開輸入文件in.txt,請(qǐng)?jiān)谧⑨專?*******4********后添加適當(dāng)?shù)恼Z句。注意:僅在函數(shù)指定位置添加語句,請(qǐng)勿改動(dòng)主函數(shù)main與其他函數(shù)中的任何內(nèi)容。1#include2#include3#include4classTestClass5{6public:7TestClassfchar*fileName)8{9len=0,10fstreaminfile;11infile.open(fileName,ios::in);12charch;13//********1********14while()15{16cout<標(biāo)準(zhǔn)答案:(1)將“while()”完整為:while(infile.get(ch))(2)添加語句:buf[len++]=ch;(3)添加語句:OUtfile2<知識(shí)點(diǎn)解析:在VC環(huán)境下打開程序,根據(jù)題干給出的幾條功能要求,對(duì)程序中給出注釋下的內(nèi)容逐個(gè)補(bǔ)全或修改。從已給定源程序的main主函數(shù)開始入手,可以看出程序通過調(diào)用類TestClass及其成員函數(shù)實(shí)現(xiàn)各種輸出操作。[解題思路](1)題目1要求“從輸入文件中獲得一個(gè)字符,并判斷是否到文件結(jié)尾”。程序中的“while()”循環(huán)判斷語句中缺少從文件中獲得的字符,所以這里補(bǔ)全while循環(huán)判斷條件,即“while(infile.get(ch))”。(2)題目2要求“把獲得的輸入文件的內(nèi)容存儲(chǔ)到buf中,并且用len記錄下文件的長度?!彼詾閎uf分配空間,即“buf[len++]=ch;”。(3)題目3要求“將輸入文件的后一半內(nèi)容存儲(chǔ)在第二個(gè)文件中?!痹贑++中,用流插入運(yùn)算符為“<<”,所將buf中存放的數(shù)據(jù)存入文件outfile2,以根據(jù)題干中的要求,即這里補(bǔ)全“outfile2<國家二級(jí)(C++)機(jī)試模擬試卷第3套一、選擇題(本題共38題,每題1.0分,共38分。)1、下列語句中,錯(cuò)誤的是()。A、constintbuffer=256;B、constinttemp;C、constdouble*point;D、constdouble*rt=newdouble(5.5);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:const是一個(gè)C++語言的關(guān)鍵字,它限定一個(gè)變量不允許被改變。使用const在一定程度上可以提高程序的安全性和可靠性。限定符聲明變量只能被讀,必須初始化。B選項(xiàng)中沒有初始化,C選項(xiàng)為指向常量的指針,定義時(shí)初始化與否均可,如果是const*dolablepoint形式,則為常指針,必須在定義時(shí)進(jìn)行初始化,A、C、D都正確。2、由于常對(duì)象不能被更新,因此()。A、通過常對(duì)象只能調(diào)用它的常成員函數(shù)B、通過常對(duì)象只能調(diào)用靜態(tài)成員函數(shù)C、常對(duì)象的成員都是常成員D、通過常對(duì)象可以調(diào)用任何不改變對(duì)象值的成員函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查常對(duì)象的基本知識(shí),常對(duì)象只能調(diào)用它的常成員函數(shù),而不能調(diào)用非const函數(shù),常對(duì)象的成員函數(shù)不一定都是常成員函數(shù),只需保證其數(shù)據(jù)成員是常數(shù)據(jù)成員即可。所以本題選A。3、變量已正確定義為整型,則表達(dá)式“n=i=2,++i,i++;”的值為()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查數(shù)據(jù)型及逗號(hào)表示式的運(yùn)算。在逗號(hào)表達(dá)式中,其值取最后一個(gè)表達(dá)式的值為3。4、下列運(yùn)算符函數(shù)中肯定不屬于類FunNumber的成員函數(shù)的是()。A、intoperator-(FunNumber);B、FunNumberoperator-();C、FunNumberoperator-(int);D、intoperator-(FunNumber,F(xiàn)unNumber);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查運(yùn)算符重載的一些規(guī)則:①一般情況下,單目運(yùn)算符最好重載為類的成員函數(shù),雙目運(yùn)算符則最好重載為類的友元函數(shù);②雙目運(yùn)算符=、()、[]、->不能重載為類的友元函數(shù);③類型轉(zhuǎn)換函數(shù)只能定義為一個(gè)類的成員函數(shù),而不能定義為類的友元函數(shù);④若一個(gè)運(yùn)算符的操作需要修改對(duì)象的狀態(tài),選擇重載為成員函數(shù)較好;⑤若運(yùn)算符所需的操作數(shù)(尤其是第一個(gè)操作數(shù))希望有隱式類型轉(zhuǎn)換,則只能選用友元函數(shù);⑥當(dāng)運(yùn)算符函數(shù)是一個(gè)成員函數(shù)時(shí),最左邊的操作數(shù)(或者只有最左邊的操作數(shù))必須是運(yùn)算符類的一個(gè)類對(duì)象(或者是對(duì)該類對(duì)象的引用);如果左邊的操作數(shù)必須是一個(gè)不同類的對(duì)象,或者是一個(gè)內(nèi)部類型的對(duì)象,該運(yùn)算符函數(shù)必須作為一個(gè)友元函數(shù)來實(shí)現(xiàn)。所以答案為D。5、按照軟件測(cè)試的一般步驟,集成測(cè)試應(yīng)排列在()之后。A、單元測(cè)試B、系統(tǒng)測(cè)試C、驗(yàn)收測(cè)試D、以上均不正確標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件測(cè)試過程分4個(gè)步驟進(jìn)行,單元測(cè)試、集成測(cè)試、驗(yàn)收測(cè)試和系統(tǒng)測(cè)試,由此可看出集成測(cè)試在單元測(cè)試之后進(jìn)行。6、設(shè)程序如下:#includeusingnarnespacestd;intmain(){int**p,*q,r=10;q=&ri;p=&q;tout<<**p+1<A、P的地址B、r的地址C、11D、運(yùn)行錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:p為一個(gè)二級(jí)指針,其存放的是指針變量q的地址,而q存放的又是r的地址。故式子**p相當(dāng)于對(duì)r的引用。所以最后輸出的結(jié)果為11。7、字面常量42、4.2、42L的數(shù)據(jù)類型分別是()。A、long,double,intB、long,float,intC、int,double,longD、int,float,long標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的知識(shí)點(diǎn)是字面常量。對(duì)于整型字面常量,只要沒有超過C++中整數(shù)所能表示的范圍,C++將自動(dòng)按整數(shù)來存儲(chǔ)此數(shù),也可以通過在整型字面常量后添加u或1來指定無符號(hào)整數(shù)或長整數(shù)來存儲(chǔ);對(duì)于實(shí)型字面常量,C++將自動(dòng)按照雙精度數(shù)來存儲(chǔ),也可以通過在實(shí)型字面常量后添加f來指定按單精度數(shù)存儲(chǔ)。8、一個(gè)隊(duì)列的初始狀態(tài)為空?,F(xiàn)將元素A,B,C,D,E,F(xiàn),5,4,3,2,1依次入隊(duì),然后再依次退隊(duì),則元素退隊(duì)的順序?yàn)?)。A、5,4,3,2,1,A,B,C,D,E,F(xiàn)B、1,2,3,4,5,F(xiàn),E,D,C,B,AC、A,B,C,D,E,F(xiàn),5,4,3,2,1D、1,2,3,4,5,A,B,C,D,E,F(xiàn)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:隊(duì)列是先進(jìn)先出的。9、關(guān)于模板,下列說法不正確的是()。A、用類模板定義一個(gè)對(duì)象時(shí),不能省略實(shí)參B、類模板只能有虛擬類型參數(shù)C、類模板本身在編譯中不會(huì)生成任何代碼D、類模板的成員函數(shù)都是模板函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類模板不是一個(gè)實(shí)實(shí)在在的類,本身在編譯中不會(huì)生成任何代碼;用類模板定義一個(gè)對(duì)象時(shí),不能省略實(shí)參;類模板的成員函數(shù)都是模板函數(shù)。C++中可以為類模板的參數(shù)設(shè)置默認(rèn)值,所以選項(xiàng)B)錯(cuò)誤。10、有如下程序:#includevoidmain(){charstr[2][5]={”1234159115678”),*p[2];intij,s=O;for(i=0;i<2;i++)p[i]=str[i];for(i=0;i<2;i++)for0=O;p[i]D]>‘\0;j+=2)s=lO*s+p[i]U]一‘0’;cout<A、1357B、2468C、3556D、23678標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序中的“for(i=O;i<2;i++)p[i]=str[i];”語句將str中的值賦值給指針數(shù)組p。在接下來的二重for循環(huán)中,跳取“j+=2”,p指針指向的值即“1”,“3”,“5”,“7”。在分別對(duì)字符到整型的轉(zhuǎn)換,即減去字符‘0’,然后依次轉(zhuǎn)換為千位,百位,十位,個(gè)位“10*s”操作輸出整型s,即“1357”。11、下列關(guān)于運(yùn)算符重載的描述中,正確的是()。A、運(yùn)算符重載為成員函數(shù)時(shí),若參數(shù)表中無參數(shù),重載的是一元運(yùn)算符B、一元運(yùn)算符只能作為成員函數(shù)重載C、二元運(yùn)算符重載為非成員函數(shù)時(shí),參數(shù)表中有一個(gè)參數(shù)D、C++中可以重載所有的運(yùn)算符標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:運(yùn)算符重載為成員函數(shù)時(shí),會(huì)省略一個(gè)參數(shù),如果無參數(shù),表明是一元運(yùn)算符。一元運(yùn)算符既可以作為成員函數(shù)重載,也可以作為非成員函數(shù)重載。二元運(yùn)算符如果作為非成員函數(shù),則參數(shù)表中必須有兩個(gè)參數(shù)。C++有5個(gè)運(yùn)算符不能重載,它們是:.(成員訪問運(yùn)算符)、.*(成員指針訪問運(yùn)算符)、::(域運(yùn)算符)、sizeof(長度運(yùn)算符)和?:(條件運(yùn)算符)。故本題答案為A。12、軟件生命周期是指()。A、軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程B、軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過程C、軟件的開發(fā)過程D、軟件的運(yùn)行維護(hù)過程標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。13、下列選項(xiàng)中,正確的C++表達(dá)式是()。A、a+b=b+cB、xyz+C、www++9D、a[3]標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:A選項(xiàng)中,a+b是表達(dá)式,不可以作為左值;選項(xiàng)B中,運(yùn)算符“+”作為一元運(yùn)算符,應(yīng)該放在操作數(shù)之前,返回操作數(shù)本身;作為二元運(yùn)算符,必須作用于兩個(gè)操作數(shù)之間;選項(xiàng)c中,運(yùn)算符“++”是一元運(yùn)算符,只能有一個(gè)操作數(shù);答案為D。14、下列關(guān)于this指針的敘述中,正確的是()。A、不能顯式使用this指針B、類的友元函數(shù)中都有this指針C、this指針隱含于類的每一個(gè)靜態(tài)成員函數(shù)中D、this指針指出了成員函數(shù)當(dāng)前操作的數(shù)據(jù)所屬的對(duì)象標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++的類對(duì)象具有一個(gè)附加的隱含形參,即指向該類對(duì)象的指針this,與調(diào)用成員函數(shù)的對(duì)象綁定在一起,在成員函數(shù)的函數(shù)體可以顯示使用this指針,選項(xiàng)A錯(cuò)誤;類的友元函數(shù)可以不是普通的非成員函數(shù),此時(shí)它沒有this指針,選項(xiàng)B錯(cuò)誤;靜態(tài)成員函數(shù)并不與對(duì)象相關(guān)聯(lián),不屬于任何一個(gè)類的對(duì)象,所以沒有this指針,選項(xiàng)C錯(cuò)誤;成員函數(shù)中的this指針指向當(dāng)前操作的數(shù)據(jù)所屬的類對(duì)象,選項(xiàng)D正確;本題答案為D。15、程序流程圖中帶有箭頭的線段表示的是()。A、圖元關(guān)系B、數(shù)據(jù)流C、控制流D、調(diào)用關(guān)系標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在數(shù)據(jù)流圖中,用標(biāo)有名字的箭頭表示數(shù)據(jù)流。在程序流程圖中,用標(biāo)有名字的箭頭表示控制流。所以選擇C。16、有如下程序:#include#includeusingnamespacestd;classFather{public:Father(strings):name(s){cout<<’F’;}~Father(){}private:stringname;};classMother{public:Mother(strings):name(s){cout<<’M’;}~Mother(){}private:stringname;};classChild:publicMother,publicFather{public:Child(strings1,strings2,strings3,inta):Father(s1),Mother(s2),name(s3),age(a){cout<<’C’;}~Child(){}private:stringname;intage;};intmain(){Childson("Zhang","Li","Ming",20);return0;}運(yùn)行時(shí)的輸出結(jié)果是A、CB、FMCC、MFCD、FMC20標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:執(zhí)行派生類構(gòu)造函數(shù)的順序是:1、調(diào)用基類構(gòu)造函數(shù),2、調(diào)用子對(duì)象構(gòu)造函數(shù),3、再執(zhí)行派生類析構(gòu)函數(shù),4、執(zhí)行基類的析構(gòu)函數(shù)。所以本題中執(zhí)行構(gòu)造函數(shù)為先執(zhí)行基類Mother的構(gòu)造函數(shù)、然后執(zhí)行基類Father的構(gòu)造函數(shù),再執(zhí)行派生類的構(gòu)造函數(shù)函數(shù),所以輸出MFC,答案C正確。17、當(dāng)數(shù)據(jù)庫中數(shù)據(jù)總體邏輯結(jié)構(gòu)發(fā)生變化,而應(yīng)用程序不受影響,稱為數(shù)據(jù)的A、邏輯獨(dú)立性B、物理獨(dú)立性C、應(yīng)用獨(dú)立性D、空間獨(dú)立性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性,物理獨(dú)立性指數(shù)據(jù)的物理結(jié)構(gòu)的改變,不會(huì)影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),也不會(huì)引起應(yīng)用程序的改動(dòng);邏輯獨(dú)立性指數(shù)據(jù)庫的總體邏輯結(jié)構(gòu)的改變,不會(huì)導(dǎo)致相應(yīng)的應(yīng)用程序的改變。故A選項(xiàng)正確。18、在下面的4個(gè)關(guān)鍵字中用來說明虛函數(shù)的是()。A、virtualB、publicC、protectedD、private標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++中用virtual關(guān)鍵字聲明虛函數(shù)。而public、protected、private為成員訪問限定符。19、有如下類定義:classBase1{intm;public:Base(intm1):m

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論