國(guó)家二級(jí)(C++)機(jī)試模擬試卷5(共362題)_第1頁(yè)
國(guó)家二級(jí)(C++)機(jī)試模擬試卷5(共362題)_第2頁(yè)
國(guó)家二級(jí)(C++)機(jī)試模擬試卷5(共362題)_第3頁(yè)
國(guó)家二級(jí)(C++)機(jī)試模擬試卷5(共362題)_第4頁(yè)
國(guó)家二級(jí)(C++)機(jī)試模擬試卷5(共362題)_第5頁(yè)
已閱讀5頁(yè),還剩102頁(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)介

國(guó)家二級(jí)(C++)機(jī)試模擬試卷5(共9套)(共362題)國(guó)家二級(jí)(C++)機(jī)試模擬試卷第1套一、選擇題(本題共35題,每題1.0分,共35分。)1、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是()。A、數(shù)據(jù)存儲(chǔ)B、數(shù)據(jù)共享C、數(shù)據(jù)查詢D、數(shù)據(jù)管理標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)是長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi)、有組織的、可共享的大量數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲(chǔ)介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個(gè)應(yīng)用程序所共享,所以數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是解決數(shù)據(jù)共享問(wèn)題。2、在C++語(yǔ)言中函數(shù)返回值的類型是由()決定的。A、調(diào)用該函數(shù)時(shí)系統(tǒng)臨時(shí)B、return語(yǔ)句中的表達(dá)式類型C、定義該函數(shù)時(shí)所指定的函數(shù)類型D、調(diào)用該函數(shù)時(shí)的主調(diào)函數(shù)類型標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C++中函數(shù)return語(yǔ)句中返回的類型應(yīng)與函數(shù)定義指定的類型一致,即函數(shù)定義的類型即為函數(shù)應(yīng)返回的類型。3、下面是重載為非成員函數(shù)的運(yùn)算符的函數(shù)原型,其中錯(cuò)誤的是()。A、Fractionoperator+(Fraction,F(xiàn)raction);B、Fractionoperator-(Fraction);C、Fraction&operator=(Fraction&,F(xiàn)raction);D、Fraction&operator+=(Fraction&,F(xiàn)raction);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查四種運(yùn)算符作為非成員函數(shù)的重載的使用方法,根據(jù)重載規(guī)則,本題答案為C,C項(xiàng)正確原型為:Fractionoperator=(Fraction&)。4、有如下類定義:ClassTest{public:Test(){a=0;c=0;}//①intf(inta)eonst{this->a:a;}//②staticintg(){returna;}//③voidh(intb){Test::b=b;};//④private:inta;staticintb;eonstintc;};intTest::b=0;在標(biāo)注號(hào)碼的行中,能被正確編譯的是()。A、①B、②C、③D、④標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:只能通過(guò)構(gòu)造函數(shù)的參數(shù)初始化列表對(duì)常數(shù)據(jù)成員進(jìn)行初始化,本題中常數(shù)據(jù)成員為c。①通過(guò)默認(rèn)構(gòu)造函數(shù)初始化c,所以不正確。常成員函數(shù)只能引用本類中數(shù)據(jù)成員,而不能修改它,所以②不正確。靜態(tài)成員函數(shù)由于沒(méi)有this指針,所以不能訪問(wèn)本類中的非靜態(tài)成員,所以③錯(cuò)誤。5、在下面的類定義中,橫線處應(yīng)填入的內(nèi)容是()。classFred{public:voidprint(){cout<A、intB、staticintC、intFred::D、staticintFred::標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是靜態(tài)數(shù)據(jù)成員的定義。題目中count數(shù)據(jù)成員要定義成靜態(tài)的,其初始化的格式為:類型類名::靜態(tài)數(shù)據(jù)成員=常量。6、在長(zhǎng)度為n的有序線性表中進(jìn)行二分查找,最壞情況下需要比較的次數(shù)是()。A、O(n)B、O(n2)C、O(log2n)D、O(nlog2n)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:當(dāng)有序線性表為順序存儲(chǔ)時(shí)才能用二分法查找??梢宰C明的是對(duì)于長(zhǎng)度為n的有序線性表,在最壞情況下,二分法查找只需要比較次,而順序查找需要比較n次。7、在面向?qū)ο蠓椒ㄖ?,不屬于“?duì)象”基本特點(diǎn)的是()。A、一致性B、分類性C、多態(tài)性D、標(biāo)識(shí)唯一性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象有如下一些基本特點(diǎn):標(biāo)識(shí)唯一性、分類性、多態(tài)性、封裝性、模塊獨(dú)立性好。所以選擇A。8、在學(xué)校中,“班級(jí)”與“學(xué)生”兩個(gè)實(shí)體集之間的聯(lián)系屬于()關(guān)系。A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:一個(gè)班可以有多名學(xué)生,而一名學(xué)生只能屬于一個(gè)班級(jí),所以“班級(jí)”與“學(xué)生”兩個(gè)實(shí)體集之間的聯(lián)系屬于一對(duì)多關(guān)系。9、若有如下程序:#includcusingnamespacestd;ints=0:classsample{staticintn;public:sample(inti){n=i;}staticvoidadd(){S+=n:}};intsample::n=0;intmain(){samplea2),b(5);sample::add0;cout<A、2B、5C、7D、3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:執(zhí)行語(yǔ)句“samplea(2),b(5)”;的結(jié)果是使n的值最終變?yōu)?,sample::add()語(yǔ)句調(diào)用函數(shù)staticvoidadd(),使得S=S+n=5。10、下面關(guān)于函數(shù)模板的表述中不正確的是()。A、類模板的成員函數(shù)都是模板函數(shù)B、類模板本身在編譯過(guò)程中不會(huì)產(chǎn)生任何代碼C、類模板只能有虛擬類型的參數(shù)D、用類模板定義一個(gè)對(duì)象時(shí),實(shí)參不能省略標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:類模板本身在編譯時(shí)是不會(huì)產(chǎn)生代碼的,只有在其實(shí)例化以后才產(chǎn)生代碼。定義一個(gè)對(duì)象時(shí),不能省略其實(shí)參。11、有如下類定義:classMyBase{intk;public:MyBase(intn=0):k(n){}intvalue()const{returnk;}};classNyDerived:NyBase{intj;public:MyDerived(inti):J(i){}intgetK()const{returnk;}intgetJ()const{returnj;}};編譯時(shí)發(fā)現(xiàn)有一處語(yǔ)法錯(cuò)誤,對(duì)這個(gè)錯(cuò)誤最準(zhǔn)確的描述是()。A、函數(shù)getK試圖訪問(wèn)基類的私有成員變量kB、在類MyDerived的定義中,基類名MyBase前缺少關(guān)鍵字public、protected或privateC、類MyDerived缺少一個(gè)無(wú)參的構(gòu)造函數(shù)D、類MyDefived的構(gòu)造函數(shù)沒(méi)有對(duì)基類數(shù)據(jù)成員k進(jìn)行初始化標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:默認(rèn)繼承方式為私有繼承,私有繼承將基類的公用成員和保護(hù)成員都變?yōu)榱怂接谐蓡T,基類的私有成員依然屬于基類私有,派生類不能訪問(wèn)基類的私有成員。所以A選項(xiàng)正確。12、下列有關(guān)運(yùn)算符重載的敘述中,正確的是()。A、運(yùn)算符重載是多態(tài)性的一種表現(xiàn)B、C++中可以通過(guò)運(yùn)算符重載創(chuàng)造新的運(yùn)算符C、c++中所有運(yùn)算符都可以作為非成員函數(shù)重載D、重載運(yùn)算符時(shí)可以改變其結(jié)合性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:重載運(yùn)算符的規(guī)則如下:①C++不允許用戶自己定義新的運(yùn)算符,只能對(duì)已有的C++運(yùn)算符進(jìn)行重載;②C++不能重載的運(yùn)算符只有5個(gè);③重載不能改變運(yùn)算符運(yùn)算對(duì)象的個(gè)數(shù);④重載不能改變運(yùn)算符的優(yōu)先級(jí)和結(jié)合性;⑤重載運(yùn)算符的函數(shù)不能有默認(rèn)的參數(shù);⑥重載的運(yùn)算符必須和用戶定義的自,定義類型的對(duì)象一起使用,至少應(yīng)有一個(gè)是類對(duì)象,即不允許參數(shù)全部是C++的標(biāo)準(zhǔn)類型。故本題答案為A。13、在下列原型所示的C++函數(shù)中,按“傳值”方式傳遞參數(shù)的是()。A、voidf1(intx);B、voidf2(int*x);C、voidt3(eonstint*x);D、voidf4(int&x);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)參數(shù)的3種傳遞方式:①將變量名作為形參和實(shí)參,即傳值方式;②傳遞變量指針;③引用形參。其中B、C選項(xiàng)都是傳遞變量指針,D選項(xiàng)為引用形參,所以本題答案為A。14、下列關(guān)于運(yùn)算符重載的描述中,正確的是()。A、運(yùn)算符重載可以改變運(yùn)算符的操作數(shù)的個(gè)數(shù)B、運(yùn)算符重載可以改變優(yōu)先級(jí)C、運(yùn)算符重載可以改變結(jié)合性D、運(yùn)算符重載不可以改變語(yǔ)法結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:重載的運(yùn)算符仍要保持其原來(lái)的操作數(shù)、優(yōu)先級(jí)和結(jié)合性不變。15、如下函數(shù)模板:templateTsquare(Tx){returnx*x;}其中T是()。A、函數(shù)形參B、函數(shù)實(shí)參C、模板形參D、模板實(shí)參標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查模板函數(shù)的基本概念,根據(jù)模板函數(shù)的定義,T是模板形參,所以答案為C。16、有如下程序:#includeusingnamespacestd;classMusic{public:voidsetTitle(char*str){strcpy(title,str);}protected:chartype[10];private:chartitle[20];};classJazz:publicMusic{public:voidset(char*str){strcpy(type,"Jazz");//①strcpy(title,str);//②}};下列敘述中正確的是()。A、程序編譯正確B、程序編譯時(shí)語(yǔ)句①出錯(cuò)C、程序編譯時(shí)語(yǔ)句②出錯(cuò)D、程序編譯時(shí)語(yǔ)句①和②都出錯(cuò)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查公用繼承和保護(hù)繼承對(duì)基類成員的訪問(wèn)屬性。公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有訪問(wèn)屬性,其私有成員仍為基類私有。保護(hù)成員不能被類外訪問(wèn),但是可以被派生類的成員函數(shù)訪問(wèn)。Type成為派生類的保護(hù)成員,可以被派生類訪問(wèn),title仍為基類私有,派生類不能直接訪問(wèn)。所以答案為C。17、以下()不屬于對(duì)象的基本特征。A、繼承性B、封裝性C、分類性D、多態(tài)性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象具有如下特征:?標(biāo)識(shí)惟一性。指對(duì)象是可區(qū)分的。?分類性。指可以將具有相同屬性和操作的對(duì)象抽象成類。?多態(tài)性。指同一個(gè)操作可以是不同對(duì)象的行為。?封裝性。從外面看只能看到對(duì)象的外部特征,而不知道也無(wú)需知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法。?模塊獨(dú)立性好。對(duì)象是面向?qū)ο蟮能浖幕灸K,對(duì)象內(nèi)部各種元素彼此結(jié)合得很緊密,內(nèi)聚性強(qiáng)。18、有如下程序:#includeusingnamespacestd;classA{public:A(inti){X=i;}voiddispa(){eout<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。19、下列代碼段中聲明了3個(gè)類:classPerson{};classStudent:publicPerson{};classUndergraduate:Student{};下列關(guān)于這些類之間關(guān)系的描述中,錯(cuò)誤的是()。A、類Person是類Undergraduate的基類B、類Undergraduate從類Student公有繼承C、類Student是類Person的派生類D、類Undergraduate是類Person的派生類標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查基類和派生類的邏輯關(guān)系,屬于基礎(chǔ)知識(shí),如果沒(méi)有指明哪種繼承方式,那么默認(rèn)為私有繼承,所以B選項(xiàng)錯(cuò)誤。20、下面敘述錯(cuò)誤的是()。A、對(duì)基類成員的訪問(wèn)能力在private派生類中和public派生類中是相同的B、基類的private成員在public派生類中不可訪問(wèn)C、基類中的public成員在protected派生類中是protected的D、基類中的public成員在protected派生類中仍然是public的標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:基類的公有成員和保護(hù)成員在保護(hù)派生類中都成了保護(hù)成員,其私有成員仍為基類私有。21、下列語(yǔ)句都是程序運(yùn)行時(shí)的第1條輸出語(yǔ)句,其中一條語(yǔ)句的輸出效果與其他三條語(yǔ)句不同,該語(yǔ)句是()。A、cout<<interna1<<12345;B、tout<<left<<12345;C、cout<<right<<12345;D、cout<<setw(6)<<12345;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查控制輸出格式,A、B、C選項(xiàng)都會(huì)輸出“1234.5”,只有D選項(xiàng)輸出“12345”,所以本題答案為D。22、為了取代C中帶參數(shù)的宏,在C++中使用()。A、重載函數(shù)B、內(nèi)聯(lián)函數(shù)C、遞歸函數(shù)D、友元函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是內(nèi)聯(lián)函數(shù)。C++語(yǔ)言引入內(nèi)聯(lián)函數(shù)的原因是用它來(lái)取代C語(yǔ)言的預(yù)處理宏函數(shù)。23、軟件生存周期中,解決軟件“怎么做”的階段是()。A、軟件設(shè)計(jì)B、需求分析C、軟件測(cè)試D、可行性研究標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件設(shè)計(jì)是軟件工程的重要階段,是一個(gè)把軟件需求轉(zhuǎn)換為軟件表示的過(guò)程。軟件設(shè)計(jì)的基本目標(biāo)是用比較抽象概括的方式確定目標(biāo)系統(tǒng)如何完成預(yù)定的任務(wù),即解決軟件“怎么做”的問(wèn)題。故本題答案為A選項(xiàng)。24、有如下程序#include#includeusingnamespacestd;intmain(){cout<A、setprecision(3)B、fixedC、setfill(’*’)D、setw(8)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查輸入輸出格式的控制,可以看出**12.345和**34.567字段寬度都為8,所以遺漏處為setw(8),D選項(xiàng)正確。25、有如下程序:#include#includeusingnamespacestd;classInstrument{public:Instrument(stringt,stringn):type(t),name(n){}virtualstringGetType()const{returntype;}virtualstringGetName()const{returnname;}protected:stringtype,name;};classPiano:publicInstrument{public:Piano(stringn=’’AB’’,stringt=’’CD’’):Instrument(n,t){}stringGetType()const{return’’WX’’;}stringGetName()const{return’’YZ’’;}};intmain(){Instrument*pi=newPiano();cout<GetType()<<’-’<GetName()<A、WX-ABB、YZ-WXC、WX-CDD、WX-YZ標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:基類指針pi指向的是派生類Pi-ano的對(duì)象,另外GetType與GetName都是虛函數(shù),所以語(yǔ)句pi->GetType()與pi->GetName()滿足動(dòng)態(tài)聯(lián)編的條件,運(yùn)行時(shí)會(huì)調(diào)用pi所指向?qū)ο蟮某蓡T函數(shù),所以pi->GetType()調(diào)用派生類Piano的成員函數(shù),輸出WX,pi->GetName()調(diào)用派生類Piano的成員函數(shù),輸出YZ,答案為D選項(xiàng)。26、結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括()。A、多態(tài)性B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語(yǔ)句,所以選擇A)。27、計(jì)算斐波那契數(shù)列第n項(xiàng)的函數(shù)定義如下:intfib(intn){if(n==0)return1;elseif(n==1)return2;elsereturnfib(n-1)+fib(n-2);}若執(zhí)行函數(shù)調(diào)用表達(dá)式fib(4),函數(shù)fib被調(diào)用的次數(shù)是A、6B、7C、8D、9標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)的遞歸,即遞歸函數(shù),fib(4)=fib(3)+fib(2)=fib(2)+fib(1)+fib(1)+fib(0)=fib(1)+fib(1)+fib(1)+fib(1)+fib(0),一共執(zhí)行fib(4)、fib(3)、fib(2)、fib(2)、fib(1)、fib(1)、fib(0)、fib(1)、fib(1)九次,所以D選項(xiàng)正確。28、在線性表的順序存儲(chǔ)結(jié)構(gòu)中,其存儲(chǔ)空間連續(xù),各個(gè)元素所占的字節(jié)數(shù)A、相同,元素的存儲(chǔ)順序與邏輯順序一致B、相同,但其元素的存儲(chǔ)順序可以與邏輯順序不一致C、不同,但元素的存儲(chǔ)順序與邏輯順序一致D、不同,且其元素的存儲(chǔ)順序可以與邏輯順序不一致標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:順序表具有以下兩個(gè)基本特征:線性表中所有元素所占的存儲(chǔ)空間是連續(xù)的;線性表中各數(shù)據(jù)元素在存儲(chǔ)空間中是按邏輯順序依次存放的。在順序表中,每個(gè)元素占有相同的存儲(chǔ)單元。A選項(xiàng)正確。29、下列運(yùn)算符函數(shù)中肯定不屬于類FunNumber的成員函數(shù)的是()。A、intoperator-(FunNumber);B、FunNumberoperator-();C、FunNumberoperator-(int);D、intoperator-(FunNumber,FunNumber);標(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ù)來(lái)實(shí)現(xiàn)。所以答案為D。30、在數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,數(shù)據(jù)共享最好的是()。A、人工管理階段B、文件系統(tǒng)階段C、數(shù)據(jù)庫(kù)系統(tǒng)階段D、三個(gè)階段相同標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)管理發(fā)展至今已經(jīng)歷了三個(gè)階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)系統(tǒng)階段。其中最后一個(gè)階段結(jié)構(gòu)簡(jiǎn)單,使用方便邏輯性強(qiáng)物理性少,在各方面的表現(xiàn)都最好,一直占據(jù)數(shù)據(jù)庫(kù)領(lǐng)域的主導(dǎo)地位,所以選擇C)。31、下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照"先進(jìn)后出"原則存取數(shù)據(jù)的是()。A、循環(huán)隊(duì)列B、棧C、隊(duì)列D、二叉樹(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是按先進(jìn)后出的原則組織數(shù)據(jù)的。隊(duì)列是先進(jìn)先出的原則組織數(shù)據(jù)。32、下列定義語(yǔ)句中,錯(cuò)誤的是A、int*p[10];B、int*p();C、int(*p)();D、intp*;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查一維數(shù)組和指針,A選項(xiàng)為一維指針數(shù)組,B、C選項(xiàng)為函數(shù)指針,D選項(xiàng)定義指針?lè)绞讲粚?duì),*號(hào)應(yīng)該在p的左邊。所以答案為D。33、求n階勒讓德多項(xiàng)式的遞歸函數(shù)定義如下:doubleP(doublex,intn){if(n==0)return1;if(n==1)returnx;if(n>1)return((2*n-1)*x-P(x,n-1)-(n-1)*P(x,n-2))/n;}若執(zhí)行函數(shù)調(diào)用表達(dá)式P(1.3,2),函數(shù)P被調(diào)用的次數(shù)是A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:內(nèi)聯(lián)函數(shù)的函數(shù)定義必須出現(xiàn)在內(nèi)聯(lián)函數(shù)第一次被調(diào)用之前;內(nèi)聯(lián)函數(shù)可以避免函數(shù)頻繁調(diào)用時(shí)的開(kāi)銷,提高程序運(yùn)行效率;在類定義體內(nèi)部定義的成員函數(shù),編譯器都將其視為內(nèi)聯(lián)函數(shù);A、B、C正確;內(nèi)聯(lián)函數(shù)也可以有參數(shù),D錯(cuò)誤,答案為D。34、下列關(guān)于運(yùn)算符函數(shù)的表述中,錯(cuò)誤的是A、運(yùn)算符函數(shù)的參數(shù)表可以是空的B、運(yùn)算符函數(shù)的參數(shù)可以是對(duì)象C、運(yùn)算符函數(shù)的名稱總是以operator為前綴D、運(yùn)算符函數(shù)只能定義為類的成員函數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題主要考查運(yùn)算符重載函數(shù),運(yùn)算符重載函數(shù)既可以定義為類的成員函數(shù)也可以定義為類的友元函數(shù),所以D選項(xiàng)錯(cuò)誤。35、下列選項(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。二、基本操作題(本題共1題,每題1.0分,共1分。)36、使用VC6打開(kāi)考生文件夾下的源程序文件modil.cpp,但該程序運(yùn)行時(shí)有錯(cuò),請(qǐng)改正程序中的錯(cuò)誤,使程序輸出的結(jié)果為:10注意:錯(cuò)誤的語(yǔ)句在∥********error********的下面,修改該語(yǔ)句即可。#includestructStruct{union{inta;charC[4];};intb;∥********error********}voidmsin(){Structm;∥********error********m.C[0]=0;m.C[1]=0;m.C[2]=0;∥********error********m.C[3]=1;m.b=m.c[3];cout<標(biāo)準(zhǔn)答案:(1)};(2)m.c[0]=1;(3)m.c[3]=0;知識(shí)點(diǎn)解析:(1)第1表示在結(jié)構(gòu)體定義內(nèi),結(jié)構(gòu)體定義的一般形式為:struct<結(jié)構(gòu)體名>{<成員列表>}<變量名列表>;這里定義的結(jié)構(gòu)體并沒(méi)有變量名列表,但是結(jié)構(gòu)體定義一定是以“;”結(jié)束的,因此第1個(gè)標(biāo)識(shí)下應(yīng)改為“};”。(2)根據(jù)題目要求程序輸出結(jié)果分別為“1”和“0”,即結(jié)構(gòu)體變量m的成員變量a的值為1,b的值為0,又a和字符數(shù)組c[4]存放在同一段內(nèi)存單元中,因此it的值可由數(shù)組c[4]決定(兩者使用同一地址單元),故c[0]表示a的低8位,c[1]為a的第二個(gè)8位,c[2]為a的第三個(gè)8位,c[3]為a的最高8位,a=0,所以c[0]=1,c[1]=c[2]**c[3]=0,故第2個(gè)標(biāo)識(shí)下應(yīng)改為“m.c[0]=1;”。(3)由(2)分析可知第3個(gè)標(biāo)識(shí)下應(yīng)改為“m.c[3]=0;”。三、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)37、請(qǐng)使用VC6或使用【答題】菜單打開(kāi)考生文件夾proj2下的工程proj2,其中定義了vehicle類,并派生出motorcar類和bicycle類。然后以motorcar和bicycle作為基類,再派生出motorcycle類。要求將vehicle作為虛基類,避免二義性問(wèn)題。請(qǐng)?jiān)诔绦蛑械臋M線處填寫(xiě)適當(dāng)?shù)拇a并刪除橫線,以實(shí)現(xiàn)上述類定義。此程序的正確輸出結(jié)果應(yīng)為:801501001注意:只能在橫線處填寫(xiě)適當(dāng)?shù)拇a,不要改動(dòng)程序中的其他內(nèi)容,也不要?jiǎng)h除或移動(dòng)“//****found****”。1#include2classvehicle3{4private:5intMaxSpeed;6intWeight;7public:8//**********found**********9vehicle(intmaxspeed,intweight):_____10~vehicle(){};11intgetMaxSpeed(){returnMax-Speed;}12intgetWeight(){returnWeight;}13};14//**********found**********15classbicycle:______publicvehicle16{17private:18intHeight;19public:20bicycle(intmaxspeed,intweight,intheight):vehicle{maxspeed,weight),Height(height){}21intgetHeight(){returnHeight;};22};23//**********found**********24classmotorcar:_______publicve-hicle25{26private:27intSeatNum;28public:29motorcar(intmaxspeed,intweight,intseatnum):vehicle(maxspeed,weight),SeatNum(seatnum){}30intgetSeatNum(){returnSeatNum;};31};32//**********found**********33classmotorcycle:_______34{35public:36motorcycle(intmaxspeed,intweight,intheight):vehicle(maxspeed,weight),bicycle(maxspeed,weight,height),motorcar(maxspeed,weight,1){}37};38voidmain()39{40motorcyclea(80,150,100);41cout<標(biāo)準(zhǔn)答案:(1)MaxSpeed(maxspeed),Weight(weight){};(2)virtual(3)virtual(4)publicbicycle,publicmotorcar知識(shí)點(diǎn)解析:(1)主要考查考生對(duì)構(gòu)造函數(shù)的掌握,構(gòu)造函數(shù)使用初始化列表來(lái)對(duì)私有成員MaxSpeed和Weight初始化。(2)主要考查考生對(duì)派生類的掌握,題目要求將vehicle作為虛基類,避免二義性問(wèn)題。因此在這里添加virtual使vehicle成為虛基類。(3)主要考查考生對(duì)派生類的掌握,題目要求以motorcar和bicycle作為基類,再派生出motorcycle類。在主函數(shù)中可以看到motorcycle類的實(shí)例a調(diào)用getHeight函數(shù)和getSeat-Num函數(shù),由此可知這兩個(gè)基類都是公有繼承,因此得出語(yǔ)句:publicbicycle,publicmotoroarc,四、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)38、使用VC6打開(kāi)考生文件夾下的源程序文件modi3.cpp。其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。完成以下功能:(1)定義私有常量PI,請(qǐng)?jiān)谧⑨尅?*******1********后添加適當(dāng)?shù)恼Z(yǔ)句。(2)完成類的私有常量PI的賦值,以及完成對(duì)半徑radius的賦值。請(qǐng)?jiān)谧⑨尅?*******2********后添加適當(dāng)?shù)恼Z(yǔ)句。(3)完成計(jì)算圓面積的函數(shù)GetArea()。請(qǐng)?jiān)谧⑨尅?*******3********后添加適當(dāng)?shù)恼Z(yǔ)句。(4)完成計(jì)算圓周長(zhǎng)的函數(shù)GetGirth()。請(qǐng)?jiān)谧⑨尅?*******4********后添加適當(dāng)?shù)恼Z(yǔ)句。注意:除在指定位置添加語(yǔ)句之外,請(qǐng)不要改動(dòng)程序中的其他內(nèi)容。#include#defineCONSTpI3.141592C1assCCircle{private:doubleradius;∥********1********public:∥********2********CCircle(intradius){this一>radius=radius;)doubleGetArea(){∥********3********}doubleGetGirth(){∥********4********}voidsetRadius(intm){radius=m;}};intmain(){CCircleCircle(5);cout<標(biāo)準(zhǔn)答案:(1)添加語(yǔ)句:constdoublePI;(2)將“CCircle(intradius)”補(bǔ)充完整為:CCircle(intradius).PI(CONST—PI)(3)添加語(yǔ)句:returnradius*radius*PI;(4)添加語(yǔ)句:return2*radius*PI;知識(shí)點(diǎn)解析:(1)第1個(gè)標(biāo)識(shí)下定義私有常量PI,常數(shù)據(jù)成員是使用const說(shuō)明的數(shù)據(jù)成員,因此第1個(gè)標(biāo)識(shí)下應(yīng)添加“constdoublePI;”0(2)常數(shù)據(jù)成員的初始化只能通過(guò)構(gòu)造函數(shù)的成員初始化列表進(jìn)行,構(gòu)造函數(shù)CCircle(intradius)應(yīng)對(duì)常數(shù)據(jù)成員PI進(jìn)行初始化,第2個(gè)標(biāo)識(shí)下應(yīng)改為“CCircle(intradius):PI(CONST_PI)”。(3)第3個(gè)標(biāo)識(shí)下返回圓面積值,圓面積為半徑平方與PI的乘積值,即第3標(biāo)識(shí)下應(yīng)添加“returnradius*radius*PI;y.I。(4)第4個(gè)標(biāo)識(shí)下返回周長(zhǎng),即第4表示下應(yīng)添加“return2*radius*PI;”。國(guó)家二級(jí)(C++)機(jī)試模擬試卷第2套一、選擇題(本題共39題,每題1.0分,共39分。)1、有如下類定義:classMyClass{public:private:intdata;};若要為MyClass類重載流輸入運(yùn)算符“>>”,使得程序中可以“cin>>obj;”的形式改變MyClass類的對(duì)象obj中數(shù)據(jù)成員data的值,則橫線處的聲明語(yǔ)句應(yīng)為()。A、friendistream&operator>>(istream&is,MyClass&a);B、friendistream&operator>>(istream&is,MyClassa);C、istream&operator>>(istream&is,MyClass&a);D、istream&operator>>(istream&is,MyClassa);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查重載流運(yùn)算符“>>”,根據(jù)重載規(guī)則,本題答案為A。2、下列語(yǔ)句中,錯(cuò)誤的是()。A、constintbuffer=256;B、constdouble*point;C、intconstbuffer=256;D、double*constpoint;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:const是一個(gè)C++關(guān)鍵字,用于限定不允許改變的變量。選項(xiàng)B是指向常量的指針,定義時(shí)可以不初始化;選項(xiàng)D是指針常量,定義時(shí)必須初始化。故答案為D。3、在函數(shù)中,可以用auto、extern、register和static這四個(gè)關(guān)鍵字中的一個(gè)來(lái)說(shuō)明變量的存儲(chǔ)類型,如果不說(shuō)明存儲(chǔ)類型,則默認(rèn)的存儲(chǔ)類型是()。A、autoB、extemC、registerD、static標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:變量的存儲(chǔ)方法分為靜態(tài)存儲(chǔ)和動(dòng)態(tài)存儲(chǔ)兩大類,包含4種:自動(dòng)的(auto)、靜態(tài)的(static)、寄存器的(register)、外部的(extem)。變量如果沒(méi)有說(shuō)明存儲(chǔ)類型,那么默認(rèn)就是auto。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ù)來(lái)實(shí)現(xiàn)。所以答案為D。5、有如下程序:#nclude<iostream>usingnamespacestd;classBase{public:voidfun(){cout<<"Base::fun"<<endl;}};classDerived:publicBase{public:voidfun(){____________________________cout<<"Derived::fun"<<endl;}};intmain(){Derivedd;d.fun();return0;}已知其執(zhí)行后的輸出結(jié)果為:Base::funDerived::fun則程序中下畫(huà)線處應(yīng)填入的語(yǔ)句是()。A、Base.fun();B、Base::fun();C、Base->fun();D、fun();標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查公用繼承對(duì)基類成員的訪問(wèn)屬性。在公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有的訪問(wèn)屬性,其私有成員仍為基類私有。本題中想要輸出Base::fun,則必須調(diào)用基類的公用成員函數(shù)fun,所以使用Base::fun();來(lái)調(diào)用基類的成員函數(shù)fun。6、下面的描述中,正確的是()。A、virtual可以用來(lái)聲明虛函數(shù)B、含有純虛函數(shù)的類是不可以用來(lái)創(chuàng)建對(duì)象的,因?yàn)樗翘摶怌、即使基類的構(gòu)造函數(shù)沒(méi)有參數(shù),派生類也必須建立構(gòu)造函數(shù)D、靜態(tài)數(shù)據(jù)成員可以通過(guò)成員初始化列表來(lái)初始化標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在基類中用virtual聲明成員函數(shù)為虛函數(shù),所以A是正確的。純虛函數(shù)是在聲明虛函數(shù)時(shí)被“初始化”為0的虛函數(shù)。純虛函數(shù)是一種特殊的虛函數(shù),它沒(méi)有具體的實(shí)現(xiàn)。靜態(tài)數(shù)據(jù)成員函數(shù)只能在類外進(jìn)行初始化。7、一個(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)先出的。8、下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是()。A、循環(huán)隊(duì)列B、帶鏈隊(duì)列C、二叉樹(shù)D、帶鏈棧標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:樹(shù)是簡(jiǎn)單的非線性結(jié)構(gòu),所以二叉樹(shù)作為樹(shù)的一種也是一種非線性結(jié)構(gòu)。9、對(duì)C++編譯器區(qū)分重載函數(shù)無(wú)任何意義的信息是()。A、參數(shù)類型B、參數(shù)個(gè)數(shù)C、返回值類型D、常成員函數(shù)關(guān)鍵字const標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:所謂函數(shù)重載是指同一個(gè)函數(shù)名可以對(duì)應(yīng)多個(gè)函數(shù)的實(shí)現(xiàn)。每種實(shí)現(xiàn)對(duì)應(yīng)一個(gè)函數(shù)體,這些函數(shù)的名字相同,其參數(shù)類型或個(gè)數(shù)不同,但不能出現(xiàn)函數(shù)返回值類型不同而參數(shù)類型和個(gè)數(shù)完全相同的重載。所以本題答案為C。10、如果派生類以protected方式繼承基類,則原基類的protected成員和public成員在派生類中的訪問(wèn)屬性分別是()。A、public和publicB、public和protectedC、proteeted和publicD、protected和protected標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查保護(hù)繼承中派生類對(duì)基類的訪問(wèn)屬性,在受保護(hù)繼承中.基類的公用成員和保護(hù)成員在派生類中成了保護(hù)成員,其私有成員仍為基類私有,所以本題答案為D。11、已知枚舉類型聲明語(yǔ)句為:enumCOLOR{WHITE,YELLOW,GREEN=5,RED,BLACK=10};則下列說(shuō)法中錯(cuò)誤的是()。A、枚舉常量YELLOW的值為1B、枚舉常量RED的值為6C、枚舉常量BLACK的值為10D、枚舉常量WHITE的值為1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++語(yǔ)言規(guī)定枚舉常量的默認(rèn)值依次等于0,1,…,n-1。也可以給枚舉常量賦初值,方法是:在枚舉常量的后面跟上“=整型常量”,在給枚舉常量賦初值時(shí),如果給其中任何一個(gè)枚舉常量賦初值,則其后的枚舉常量將按自然數(shù)的規(guī)則依次賦初值。所以本題答案為D。12、下列有關(guān)類成員的敘述中,正確的是()。A、友元函數(shù)是類的成員函數(shù)B、類成員的默認(rèn)訪問(wèn)權(quán)限是私有的C、類成員函數(shù)必須聲明為公有的D、類的靜態(tài)數(shù)據(jù)成員不能是常成員標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:友元函數(shù)是指某些雖然不是類成員卻能訪問(wèn)類的所有成員的函數(shù),故友元函數(shù)不是類的成員函數(shù)。類成員的默認(rèn)訪問(wèn)權(quán)限是私有的,類的成員函數(shù)可以是3種權(quán)限中的一種,靜態(tài)數(shù)據(jù)成員可以為常成員。故本題答案為B。13、有如下程序:#inchde<iostream>usingnamespacestd;classMyClass{public:MyClass(inti=0){cout<<1;}MyClass(constMyClass&x){cout<<2;}MyClass&operator=(constMyClass&x){cout<<3;return*this;}一MyClass(){cout<<4;}};intmain(){MyClassobj1(1),obj2(2),obj3(objm);return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、112444B、11114444C、121444D、11314444標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù)和復(fù)制構(gòu)造函數(shù)以及重載運(yùn)算符。本題中先后定義了兩個(gè)對(duì)象obj1,obj2,依次輸出11,然后定義了對(duì)象obj3,調(diào)用復(fù)制構(gòu)造函數(shù),輸出2,最后執(zhí)行三次析構(gòu)函數(shù),輸出444。14、針對(duì)數(shù)組定義intdata[10];,下列表述中錯(cuò)誤的是()。A、用*data可訪問(wèn)到數(shù)組的首元素B、用data[9]~訪問(wèn)到數(shù)組的末元素C、用data[10]訪問(wèn)數(shù)組元素會(huì)超出數(shù)組邊界D、data共有10個(gè)元素,其首元素是data[1]標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是數(shù)組和指針的概念。題目中data[10]共有10個(gè)元素,分別是data[0]、data[1]、data[2]、data[3]…data[9],首元素是data[0],所以選項(xiàng)D)錯(cuò)誤:其他選項(xiàng)均正確。15、下列關(guān)于常成員的敘述中,正確的是()。A、常成員函數(shù)只能由常對(duì)象調(diào)用B、常成員函數(shù)不能更新對(duì)象的狀態(tài)C、常數(shù)據(jù)成員可以被類對(duì)象共享D、常數(shù)據(jù)成員可以在構(gòu)造函數(shù)體中初始化標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:常對(duì)象是指對(duì)象的所有成員的值都不能被修改,常成員函數(shù)是指只能引用本類的數(shù)據(jù)成員,而不能修改它們的成員函數(shù);常成員函數(shù)可以被常對(duì)象調(diào)用,也可以被普通對(duì)象調(diào)用,選項(xiàng)A錯(cuò)誤;常成員函數(shù)不能修改數(shù)據(jù)成員,選項(xiàng)B正確;常數(shù)據(jù)成員專屬于某一個(gè)對(duì)象,不是類對(duì)象所共享的,選項(xiàng)C錯(cuò)誤;常數(shù)據(jù)成員只能通過(guò)構(gòu)造函數(shù)的參數(shù)初始化表對(duì)其進(jìn)行初始化,不能采用在構(gòu)造函數(shù)中對(duì)常數(shù)據(jù)成員賦初值的方法,選項(xiàng)D錯(cuò)誤;本題答案為B。16、有如下程序#include#includeusingnamespacestd;intmain(){cout<A、setprecision(3)B、fixedC、setfill(’*’)D、setw(8)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查輸入輸出格式的控制,可以看出**12.345和**34.567字段寬度都為8,所以遺漏處為setw(8),D選項(xiàng)正確。17、已知Bag是一個(gè)類,并有函數(shù)FBag定義如下:VoidFBag(){Bag*ptr,my,colleage[2],&sister=my;}則在調(diào)用函數(shù)FBag()后,Bag類的析構(gòu)函數(shù)被調(diào)用的次數(shù)是A、2次B、3次C、4次D、5次標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查默認(rèn)析構(gòu)函數(shù),題中定義了一個(gè)對(duì)象、包含2個(gè)元素的一維對(duì)象數(shù)組,所以析構(gòu)函數(shù)執(zhí)行3次,而對(duì)象指針數(shù)組并沒(méi)有實(shí)際占用空間,所以不執(zhí)行析構(gòu)函數(shù)。18、有下列程序:#includevoidfun(int*a.int*b){int*c;c=a;a=b;b=c;}voidmain(){intx=3,y=5,*p=&x,*q=&y;fun(p,q);printf("%d,%d,",*p,*q);fun(&x,&y);printf("%d,%d\n",*p,*q)}程序運(yùn)行后的輸出結(jié)果是()。A、3,5,5,3B、3,5,3,5C、5,3,3,5D、5,3,5,3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題子函數(shù)fun(int*a,*b)的功能是交換形參a,b的值。主函數(shù)中調(diào)用子函數(shù)fun(p,q)和fun(&x,&y)后,實(shí)參p,q和&x,&y的值之間并沒(méi)有發(fā)生交換,所以程序輸出的結(jié)果為3,5,3,5。19、設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號(hào),姓名,性別,年齡,身份證號(hào)),課程C(課號(hào),課名),選課SC(學(xué)號(hào),課號(hào),成績(jī)),則表SC的關(guān)鍵字(鍵或碼)為()。A、課號(hào),成績(jī)B、學(xué)號(hào),成績(jī)C、學(xué)號(hào),課號(hào)D、學(xué)號(hào),姓名,成績(jī)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:學(xué)號(hào)是學(xué)生表S的主鍵,課號(hào)是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個(gè)表能夠直接聯(lián)系且能唯一定義的學(xué)號(hào)和課號(hào),所以選擇C)。20、設(shè)程序如下:#include<iostream>usingnamespacestd;intmain(){int**p,*q,r=10;q=&r;p=&q;cout<<**p+1<<end1;return0:}以上程序的輸出結(jié)果是()。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。21、有如下類定義:classPet{charname[30];public:Pet(char*n){strcpy(name,n);}voidbark(){cout<<"Woof!";}};且有如下變量定義:Petmy_dog("Weiwei"),*p=&my_dog;則下列訪問(wèn)成員函數(shù)bark的表達(dá)式中,錯(cuò)誤的是A、p.bark()B、my_dog.bark()C、p->bark()D、(*p).bark()標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:Pet類指針p指向my_dog對(duì)象,通過(guò)指針訪問(wèn)類對(duì)象的成員函數(shù),與通過(guò)指針訪問(wèn)內(nèi)置類型對(duì)象一樣,有兩種方法:p->bark()、(*p).brak(),選項(xiàng)A錯(cuò)誤,答案為A。22、下列有關(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ù)體的最后一條語(yǔ)句必須是return語(yǔ)句標(biāo)準(zhǔn)答案:C知識(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ù)體來(lái)替換,所以在調(diào)用時(shí)不發(fā)生控制轉(zhuǎn)移。在類內(nèi)部實(shí)現(xiàn)的函數(shù)都是內(nèi)聯(lián)函數(shù),可以不用inline定義;只有函數(shù)外部定義的內(nèi)聯(lián)函數(shù)才必須加關(guān)鍵字inline。編譯系統(tǒng)并非對(duì)內(nèi)聯(lián)函數(shù)必須使用內(nèi)聯(lián),而且根據(jù)具體情況決定。內(nèi)聯(lián)函數(shù)不是必須要有返回值的。23、下列有關(guān)虛函數(shù)的表述中正確的是A、對(duì)于派生類中定義的成員函數(shù),即使沒(méi)有加virtual修飾,也有可能是虛函數(shù)B、只有虛函數(shù)才允許在派生類進(jìn)行重定義C、對(duì)虛函數(shù)的任何調(diào)用都稱為多態(tài)調(diào)用D、構(gòu)造函數(shù)和析構(gòu)函數(shù)也可以聲明為虛函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一旦函數(shù)在基類中聲明為虛函數(shù),它就一直是虛函數(shù),派生類無(wú)法改變?cè)摵瘮?shù)為虛函數(shù)這一事實(shí),所以派生類從基類中繼承來(lái)的虛函數(shù),不加virtual修飾,也是虛函數(shù),選項(xiàng)A正確;普通成員函數(shù)在派生類中也可以重新定義,重新定義后的成員函數(shù)會(huì)屏蔽對(duì)基類同名函數(shù)的直接訪問(wèn),選項(xiàng)B錯(cuò)誤;多態(tài)調(diào)用只能是通過(guò)基類對(duì)象的指針或引用調(diào)用虛函數(shù)來(lái)實(shí)現(xiàn),基類對(duì)象調(diào)用虛函數(shù)不是多態(tài)調(diào)用,選項(xiàng)C錯(cuò)誤;構(gòu)造函數(shù)不能聲明為虛函數(shù),因?yàn)闃?gòu)造函數(shù)是在對(duì)象完全構(gòu)造之前運(yùn)行的,在構(gòu)造函數(shù)運(yùn)行時(shí),對(duì)象的動(dòng)態(tài)類型還不完整,選項(xiàng)D錯(cuò)誤;答案為A。24、如果派生類以protected方式繼承基類,則原基類的protected成員和public成員在派生類中的訪問(wèn)屬性分別是()。A、public和publicB、public和protectedC、protected和publicD、protected和protected標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查保護(hù)繼承中派生類對(duì)基類的訪問(wèn)屬性,在受保護(hù)繼承中,基類的公用成員和保護(hù)成員在派生類中成了保護(hù)成員,其私有成員仍為基類私有,所以本題答案為D。25、有如下程序:#includeusingnamespacestd;voidfun(int&x,int&y){y=y+x;x=y/4;x++;}intmain(){intx=4,y=5;fun(x,y);cout<A、4,5B、3,5C、3,9D、2,5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)fun兩個(gè)形參x,y都是引用類型,函數(shù)功能是通過(guò)形參的引用類型修改實(shí)參值,首先修改y值為x、y之和;然后將修改后的y值除以4,結(jié)果賦給x,再將x自增1;main函數(shù)中定義x=4,y=5,通過(guò)fun函數(shù)的調(diào)用,修改y的值為4+5=9,x的值為9/4+1=3,最終輸出結(jié)果為3,9,答案為C。26、建立一個(gè)類對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用A、析構(gòu)函數(shù)B、構(gòu)造函數(shù)C、靜態(tài)函數(shù)D、友元函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查默認(rèn)構(gòu)造函數(shù),如果用戶定義的類中沒(méi)有顯式的定義任何構(gòu)造函數(shù),編譯器就會(huì)自動(dòng)為該類型生成默認(rèn)構(gòu)造函數(shù),建立一個(gè)對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)執(zhí)行默認(rèn)構(gòu)造函數(shù)。27、負(fù)責(zé)數(shù)據(jù)庫(kù)中查詢操作的數(shù)據(jù)庫(kù)語(yǔ)言是()。A、數(shù)據(jù)定義語(yǔ)言B、數(shù)據(jù)管理語(yǔ)言C、數(shù)據(jù)操縱語(yǔ)言D、數(shù)據(jù)控制語(yǔ)言標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)定義語(yǔ)言:負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語(yǔ)言:負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢及增、刪、改等操作;數(shù)據(jù)控制語(yǔ)言:負(fù)責(zé)數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能。28、下列有關(guān)繼承和派生的表述中,正確的是A、作為虛基類的類不能被實(shí)例化B、派生類不能訪問(wèn)基類的保護(hù)成員C、派生類應(yīng)當(dāng)向基類的構(gòu)造函數(shù)傳遞參數(shù)D、虛函數(shù)必須在派生類中重新實(shí)現(xiàn)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:作為虛基類的類可以被實(shí)例化,派生類公用繼承和保護(hù)繼承基類,都可以訪問(wèn)基類的保護(hù)成員。如果派生類沒(méi)有對(duì)虛函數(shù)重新定義,那么就調(diào)用基類的虛函數(shù)。所以C選項(xiàng)正確。29、若實(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)答案:B知識(shí)點(diǎn)解析:A和B為一對(duì)多的聯(lián)系,則對(duì)于A中的每一個(gè)實(shí)體,B中有多個(gè)實(shí)體與之聯(lián)系,而B(niǎo)與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)系。30、下列關(guān)于繼承和派生的敘述中,正確的是A、派生類中新定義的成員函數(shù)可以訪問(wèn)基類的所有成員B、在私有繼承的情況下,派生類中新定義的成員函數(shù)不能訪問(wèn)基類的保護(hù)成員C、基類對(duì)象可以賦值給派生類對(duì)象D、如果派生類沒(méi)有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)抽象類標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查繼承與派生,派生類中的成員訪問(wèn)基類中的成員由派生方式?jīng)Q定,如果派生類私有繼承基類,那么就不能新定義的成員函數(shù)就不能訪問(wèn)基類的私有成員,所以A選項(xiàng)錯(cuò)誤。在私有繼承的情況下,派生類中新定義的成員函數(shù)可以訪問(wèn)基類的保護(hù)成員。基類對(duì)象在某種情況下可以賦值給派生類對(duì)象。31、有下列語(yǔ)句,編號(hào)分別是1、2、3、4,chars1="abcde";//1chars2[]="abcde";//2chars3[4]="abcde";//3chars4[5]="abcde";//4其中錯(cuò)誤的是A、2B、1,3C、1,3,4D、1,2,3,4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:字符串常量不能用來(lái)初始化字符變量,語(yǔ)句1錯(cuò)誤;使用字符串常量初始化字符數(shù)組,系統(tǒng)自動(dòng)根據(jù)初值個(gè)數(shù)確定數(shù)組長(zhǎng)度,語(yǔ)句2正確;字符串常量"abcde"實(shí)際長(zhǎng)度應(yīng)該包括空字符’\0’,為6個(gè)字符,語(yǔ)句3、4語(yǔ)法錯(cuò)誤;所以答案選C。32、在為一個(gè)類重載下列運(yùn)算符時(shí),只能作為該類成員函數(shù)重載的運(yùn)算符是A、+B、()C、<<D、++標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查重載運(yùn)算符,C++規(guī)定有的運(yùn)算符(如賦值運(yùn)算符、下標(biāo)運(yùn)算符、函數(shù)調(diào)用運(yùn)算符)必須定義為類的成員函數(shù)。所以本題選B。33、下列關(guān)于繼承和派生的敘述中,正確的是A、派生類中新定義的成員函數(shù)可以訪問(wèn)基類的所有成員B、在私有繼承的情況下,派生類中新定義的成員函數(shù)不能訪問(wèn)基類的保護(hù)成員C、基類對(duì)象可以賦值給派生類對(duì)象D、如果派生類沒(méi)有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)抽象類標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查繼承與派生,派生類中的成員訪問(wèn)基類中的成員由派生方式?jīng)Q定,如果派生類私有繼承基類,那么就不能新定義的成員函數(shù)就不能訪問(wèn)基類的私有成員,所以A選項(xiàng)錯(cuò)誤。在私有繼承的情況下,派生類中新定義的成員函數(shù)可以訪問(wèn)基類的保護(hù)成員?;悓?duì)象在某種情況下可以賦值給派生類對(duì)象。34、要將前綴運(yùn)算符--重載為Incr的非成員函數(shù),下列原型中,可作為該重載函數(shù)原型的是A、Incr&operator--();B、Incroperator--(int);C、Incr&operator--(Incr&);D、Incroperator--(Incr&,int);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查重載運(yùn)算符,題目中要求將運(yùn)算符--重載為Incr的非成員函數(shù),只有C選項(xiàng)能夠?qū)⑦\(yùn)算符重載為非成員函數(shù)。35、設(shè)循環(huán)隊(duì)列為Q(1:m),其初始狀態(tài)為front=rear=m。經(jīng)過(guò)一系列入隊(duì)與退隊(duì)運(yùn)算后,front=30,rear=10?,F(xiàn)要在該循環(huán)隊(duì)列中作順序查找,最壞情況下需要比較的次數(shù)為A、19B、20C、m-19D、m-20標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu),用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用排頭指針front指向排頭元素的前一個(gè)位置,因此,從排頭指針front指向的后一個(gè)位置直到隊(duì)尾指針rear指向的位置之間所有的元素均為隊(duì)列中的元素,隊(duì)列初始狀態(tài)為front=rear=m,當(dāng)front=30,rear=10時(shí),隊(duì)列中有m-30+10+1=m-19個(gè)元素,比較次數(shù)為m-20次,D選項(xiàng)正確。36、在數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)模型包括概念模型、邏輯模型和A、物理模型B、空間模型C、時(shí)間模型D、數(shù)據(jù)模型標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)模型按照不同的應(yīng)用層次分為3種類型:概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型,故A選項(xiàng)正確。37、若MyTemp是一個(gè)只有一個(gè)虛擬類型參數(shù)的類模板,且有如下語(yǔ)句序列MyTempp1;MyTempp2;MyTempp3[4];編譯系統(tǒng)在處理上面的語(yǔ)句序列時(shí),所生成的模板MyTemp的實(shí)例的個(gè)數(shù)是A、1B、2C、3D、6標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:題目中使用MyTemp類模板定義了三種類型的類對(duì)象,所以生成的模板MyTemp實(shí)例有3個(gè),答案為C。38、在軟件開(kāi)發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A、可行性分析報(bào)告B、軟件需求規(guī)格說(shuō)明書(shū)C、概要設(shè)計(jì)說(shuō)明書(shū)D、集成測(cè)試計(jì)劃標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:A)錯(cuò)誤,可行性分析階段產(chǎn)生可行性分析報(bào)告。C)錯(cuò)誤,概要設(shè)計(jì)說(shuō)明書(shū)是總體設(shè)計(jì)階段產(chǎn)生的文檔。D)錯(cuò)誤,集成測(cè)試計(jì)劃是在概要設(shè)計(jì)階段編寫(xiě)的文檔。B)正確,需求規(guī)格說(shuō)明書(shū)是后續(xù)工作如設(shè)計(jì)、編碼等需要的重要參考文檔。39、有如下類定義:classMyClass{public:MyClass(doubled=0.0):val(d){}______________//后綴自增運(yùn)算符++的聲明private:doubleval;};若要使語(yǔ)句序列MyClassx(2.1),y;y=x++;能夠正常運(yùn)行,橫線處的語(yǔ)句應(yīng)為A、MyClass&operator++();B、MyClass&operator++(MyClass&,int);C、MyClassoperator++(int);D、MyClassoperator++();標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:橫線處填寫(xiě)的語(yǔ)句,是重載后綴自增運(yùn)算符++的函數(shù)聲明,為了與內(nèi)置類型一致,后綴自增運(yùn)算符應(yīng)該返回舊值,即尚未自增的值,并且應(yīng)該作為值返回,而不是返回引用,選項(xiàng)A、B錯(cuò)誤;另外為了區(qū)分運(yùn)算符的前綴和后綴形式,后綴運(yùn)算符重載函數(shù)需要接受一個(gè)額外的int型形參,選項(xiàng)D錯(cuò)誤;答案為C。二、基本操作題(本題共1題,每題1.0分,共1分。)40、請(qǐng)打開(kāi)考生文件夾下的解決方案文件proj1,該工程中包含程序文件main.cpp,其中有類Door(“門(mén)”)和主函數(shù)main的定義。程序中位于每個(gè)“//ERROR****found****”之后的一行語(yǔ)句有錯(cuò)誤,請(qǐng)加以改正。改正后程序的輸出結(jié)果應(yīng)為:打開(kāi)503號(hào)門(mén)...門(mén)是鎖著的,打不開(kāi)。打開(kāi)503號(hào)門(mén)的鎖...鎖開(kāi)了。打開(kāi)503號(hào)門(mén)...門(mén)打開(kāi)了。打開(kāi)503號(hào)門(mén)...門(mén)是開(kāi)著的,無(wú)須再開(kāi)門(mén)。鎖上503號(hào)門(mén)...先關(guān)門(mén)...門(mén)鎖上了。注意:只參改每個(gè)“//ERROR*******found*******”下的那一行,不要改動(dòng)程序中的其他內(nèi)容。#include<iostream>usingnamespacestd;classDoor{intnum;//門(mén)號(hào)boolclosed;//true表示門(mén)關(guān)著boollocked;//true表示門(mén)鎖著public:Door(intnum){//ERROR*******found*******num=this->num;closed=locked=true;}boolisClosed()const{returnclosed;}//門(mén)關(guān)著時(shí)返回true,否則返回falseboolisOpened()const{]Tel2L1rn!closed;}//門(mén)開(kāi)著時(shí)返回true,否則返回falseboolisLocked()const{returnlocked;}//門(mén)鎖著時(shí)返回true,否則返回falseboolisunlocked()const{return!locked;}//門(mén)未鎖時(shí)返回true,否則返回falsevoidopen(){//開(kāi)門(mén)cout<<endl<<"打開(kāi)"<<num<<"號(hào)門(mén)...";//ERROR*****found*****if(Closed)cout<<"門(mén)是開(kāi)著的,無(wú)須再開(kāi)門(mén)。";elseif(locked)cout<<"門(mén)是鎖著的,打不開(kāi)。";else{closed=false;cout<<"門(mén)打開(kāi)了。";}}voidclose(){//關(guān)門(mén)cout<<endl<<"關(guān)上"<<num<<"號(hào)門(mén)...";if(closed)tout<<"門(mén)是關(guān)著的,無(wú)須再關(guān)門(mén)。";else{closed=true;cout<<"門(mén)關(guān)上了。";}}//ERROR*******found*******voidlock()const{//鎖門(mén)cout;<<endl<<"鎖上’<<num<<"號(hào)門(mén)...";if(locked)cout<<"門(mén)是鎖著的,無(wú)須再鎖門(mén)。";else{if(!closed){cout<<"先關(guān)門(mén)...";closed=true;}locked=true;cout;<<"門(mén)鎖上了。"};}}voidunlock(){//開(kāi)鎖cout;<<endl<<"開(kāi)"<<num<<"號(hào)門(mén)的鎖…";if(!locked)cout<<"門(mén)沒(méi)有上鎖,無(wú)須再開(kāi)鎖。";else{locked=false;tout<<"鎖開(kāi)了。";}}};intmain(){Doordoor(503);door.open();door.unlock();door.open();door.open();door.lock();return0;}標(biāo)準(zhǔn)答案:(1)this->num=num;(2)if(!closed)(3)voidlock(){知識(shí)點(diǎn)解析:(1)主要考查考生對(duì)this指針的掌握,在構(gòu)造函數(shù)中this指針指向的是當(dāng)前類,因此要給num賦值使用語(yǔ)句this->num=num;完成(2)主要考查考生對(duì)if語(yǔ)句的掌握,先看類的私有成員中關(guān)于closed的定義:boolclosed;//true表示門(mén)關(guān)著。再看下一條語(yǔ)句:cout<<"門(mén)是開(kāi)著的,無(wú)須再開(kāi)門(mén)。";。即滿足條件時(shí)就會(huì)輸出:門(mén)是開(kāi)著的,無(wú)須再開(kāi)門(mén)。因此if括號(hào)內(nèi)應(yīng)該是!closed。(3)主要考查考生對(duì)const函數(shù)的掌握,lock函數(shù)體中存在語(yǔ)句locked=true即有參數(shù)發(fā)生改變,因此不能用const。三、簡(jiǎn)單應(yīng)用題(本題共1題,每題1.0分,共1分。)41、使用VC6打開(kāi)考生文件夾下的源程序文件modi2.cpp。請(qǐng)完成函數(shù)fun(char*s),該函數(shù)完成以下功能:(1)把s中的大寫(xiě)字母轉(zhuǎn)換成小寫(xiě)字母,把其中的小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)字母。并且在函數(shù)中調(diào)用寫(xiě)函數(shù)WriteFile()將結(jié)果輸出到modi2.txt文件中。例如:s="helloTEST",則結(jié)果為:s="HELLOtest"(2)完成函數(shù)WriteFile(char*s),把字符串輸入文件中。提示:打開(kāi)文件使用的第二參數(shù)為ios_base::binary|ios_base::app。注意:不要改動(dòng)main()函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。#include#include#includeusingnamespacestd;voidWriteFile(char*s){}voidfun(char*S、{}voidClearFile(){ofstreamout1;out1.open("modi2.txt");out1.close();}intmain(){ClearFile();chars[1024];cout<<"pleaseinputastring:"<標(biāo)準(zhǔn)答案:(1)voidWriteFile(char*s)中的命令語(yǔ)句:ofstreamout1:out1.open("modi2.txt",ios_base::binary|ios_base::app);//打開(kāi)文件modi2out1<=’A’&&s[i]<=’Z’)//如果是大寫(xiě)字符,轉(zhuǎn)換為小寫(xiě)字符{s[i]=s[i]-’A’+’a’;//s[i]-’A’+’a’等于字符s[i]+32’}Elseif(s[i]>=’a’&&s[i]<=’z’)//如果是小寫(xiě)字符,轉(zhuǎn)換為大寫(xiě)字符{s[i]=s[i]-’a’+’A’;//’s[i]-’a’+’A’’等于字符s[i]-32}}WriteFile(s);知識(shí)點(diǎn)解析:(1)在WriteFile(char*s)函數(shù)中,利用標(biāo)準(zhǔn)流ofstream實(shí)現(xiàn)字符串寫(xiě)入文件modi2.txt。(2)在fun函數(shù)中,利用for循環(huán)逐個(gè)判斷字符是大寫(xiě)還是小寫(xiě)。(3)如果是大寫(xiě),那么加上32實(shí)現(xiàn)大寫(xiě)轉(zhuǎn)換為小寫(xiě)。否則,就減去32,實(shí)現(xiàn)小寫(xiě)到大寫(xiě)的轉(zhuǎn)換。最后調(diào)用前面實(shí)現(xiàn)的WriteFile函數(shù),將字符串寫(xiě)入文件。四、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)42、使用VC6打開(kāi)考生文件夾下的源程序文件modi3.cpp。通過(guò)繼承完成輸入到屏幕指定的信息:TestClassATestClassBTestClassC其中定義的類并不完整,按要求完成下列操作,將類的定義補(bǔ)充完整。(1)完成類B虛繼承于A,請(qǐng)?jiān)谧⑨專?*******1********后添加適當(dāng)?shù)恼Z(yǔ)句。(2)完成類C虛繼承于A,請(qǐng)?jiān)谧⑨專?*******2********后添加適當(dāng)?shù)恼Z(yǔ)句。(3)完成類D繼承于B,C,請(qǐng)?jiān)谧⑨專?*******3********后添加適當(dāng)?shù)恼Z(yǔ)句。(4)函數(shù)fun通過(guò)調(diào)用基類的fun,完成所輸出的內(nèi)容,請(qǐng)?jiān)谧⑨尅?*******4********后添加適當(dāng)?shù)恼Z(yǔ)句。注意:增加代碼,或者修改代碼的位置已經(jīng)用符號(hào)表示出來(lái)。請(qǐng)不要修改其他的程序代碼。#includeclassTestClassA{public:voidfun(){cout<<"TestClassA"<標(biāo)準(zhǔn)答案:(1)將“classTestClassB:”補(bǔ)充完整為:classTestClassB:virtualpublicTestClassA(2)將“classTestClassC:”補(bǔ)充完整為:classTestClassC:virtualpublicTestClassA(3)將“classTestClassD:”補(bǔ)充完整為:classTestClassD:publicTestClassB,publicTestClassC(4)添加語(yǔ)句:TestClassA::fun();TestClassB::fun();TestClassC::fun();知識(shí)點(diǎn)解析:(1)題目1要求“完成類B虛繼承于A”。在C++中,聲明虛基類的一般形式為:class派生類名:virtual繼承方式基類名,由題目知道TestClassA為基類,TestClassB為派生類,所以第1個(gè)標(biāo)識(shí)下修改為“classTestClassB:virtualpublicTestClassA”。(2)同(1),題目2和題目3中要求的標(biāo)識(shí)2和3下的語(yǔ)句修改為“classTestClassC:VinualpublicTestClassA”和“classTestClassD:publicTestClassB,publicTestClassC”。(3)題目4要求“函數(shù)fun通過(guò)調(diào)用基類的fun,完成所輸出的內(nèi)容”。在C++中調(diào)用基類的成員函數(shù),要使用作用域限定符“::”,類名A::函數(shù)fun,就是調(diào)用類A的函數(shù)fun,根據(jù)題目中的要求補(bǔ)全對(duì)類TestClassA、TestClassB以及TestClassC中的fun函數(shù),即“TestClassA::fun();TestClassB::fun();TestClassC::fun();”。國(guó)家二級(jí)(C++)機(jī)試模擬試卷第3套一、選擇題(本題共35題,每題1.0分,共35分。)1、數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,()沒(méi)有專門(mén)的軟件對(duì)數(shù)據(jù)進(jìn)行管理。Ⅰ.人工管理階段Ⅱ.文件系統(tǒng)階段Ⅲ.?dāng)?shù)據(jù)庫(kù)階段A、僅ⅠB、僅ⅢC、Ⅰ和ⅡD、Ⅱ和Ⅲ標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,只有人工管理階段,沒(méi)有操作系統(tǒng),沒(méi)有管理數(shù)據(jù)的軟件,數(shù)據(jù)處理方式是批處理。在文件系統(tǒng)階段,操作系統(tǒng)中已經(jīng)有了專門(mén)數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng)。在數(shù)據(jù)庫(kù)系統(tǒng)階段,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門(mén)軟件系統(tǒng),即數(shù)據(jù)庫(kù)管理系統(tǒng)。2、下列二叉樹(shù)描述中,正確的是()。A、任何一棵二叉樹(shù)必須有一個(gè)度為2的結(jié)點(diǎn)B、二叉樹(shù)的度可以小于2C、非空二叉樹(shù)有0個(gè)或1個(gè)根結(jié)點(diǎn)D、至少有2個(gè)根結(jié)點(diǎn)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:二叉樹(shù)是由n≥0個(gè)結(jié)點(diǎn)的有限集合構(gòu)成,此集合或者為空集,或者由一個(gè)根結(jié)點(diǎn)及兩棵互不相交的左右子樹(shù)組成,并且左右子樹(shù)都是二叉樹(shù)。二叉樹(shù)可以是空集合,可以有空的左子樹(shù)或空的右子樹(shù)。二叉樹(shù)不是樹(shù)的特殊情況,它們是兩個(gè)概念。二叉樹(shù)具有如下兩個(gè)特點(diǎn):①非空二又樹(shù)只有一個(gè)根結(jié)點(diǎn)。②每一個(gè)結(jié)點(diǎn)最多有兩棵子樹(shù),且分別稱為該結(jié)點(diǎn)的左子樹(shù)與右子樹(shù)。3、有如下程序:#include<iostream>usingnamespacestd;classObj{staticinti;public:obj(){i++;}~obj(){i--;}staticintgetVal(){returni;}};intobj::i=0;voidf(){objob2;cout<<o(jì)b2.getVal();}intmain(){objob1;f();obj*ob3=newobj;cout<<o(jì)b3->getVal();deleteoh3;cout<<o(jì)bj::getVal();return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、232B、231C、222D、221標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序,調(diào)用順序?yàn)橄葮?gòu)造的后析構(gòu),后構(gòu)造的先析構(gòu)。本題中先定義了一個(gè)對(duì)象ob1,會(huì)執(zhí)行構(gòu)造函數(shù),那么i就變?yōu)榱?;再執(zhí)行函數(shù)f后,由于又定義了一個(gè)對(duì)象ob2,所以再次執(zhí)行構(gòu)造函數(shù),i就變?yōu)榱?,輸出了2。函數(shù)執(zhí)行完后執(zhí)行析構(gòu)函數(shù),i變?yōu)榱?,然后又定義了對(duì)象指針,i變?yōu)榱?。釋放ob3后,i變?yōu)榱?,所以

溫馨提示

  • 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)論