國(guó)家二級(jí)C++機(jī)試(類(lèi)和對(duì)象)模擬試卷2(共197題)_第1頁(yè)
國(guó)家二級(jí)C++機(jī)試(類(lèi)和對(duì)象)模擬試卷2(共197題)_第2頁(yè)
國(guó)家二級(jí)C++機(jī)試(類(lèi)和對(duì)象)模擬試卷2(共197題)_第3頁(yè)
國(guó)家二級(jí)C++機(jī)試(類(lèi)和對(duì)象)模擬試卷2(共197題)_第4頁(yè)
國(guó)家二級(jí)C++機(jī)試(類(lèi)和對(duì)象)模擬試卷2(共197題)_第5頁(yè)
已閱讀5頁(yè),還剩56頁(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ī)試(類(lèi)和對(duì)象)模擬試卷2(共9套)(共197題)國(guó)家二級(jí)C++機(jī)試(類(lèi)和對(duì)象)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列程序段中包含4個(gè)函數(shù)。其中具有隱含this指針的是()。intfunl();classTest{public:intfun2();friendintfun3();staticintfun4();}A、funlB、fun2C、fun3D、fun4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:this指針是成員函數(shù)所屬對(duì)象的指針,它指向類(lèi)對(duì)象的地址。成員函數(shù)通過(guò)這個(gè)指針知道自己屬于哪一個(gè)對(duì)象。this指針是一個(gè)隱含的指針,它隱含于每個(gè)類(lèi)的非靜態(tài)成員函數(shù)中,它明確的地表示出了成員函數(shù)當(dāng)前操作的數(shù)據(jù)所屬的對(duì)象。2、下列關(guān)于this指針的描述中,正確的是()。A、類(lèi)的成員函數(shù)都有this指針B、類(lèi)的友元函數(shù)都有this指針C、任何與類(lèi)相關(guān)的函數(shù)都有this指針D、類(lèi)的非靜態(tài)成員函數(shù)都有this指針標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:this是成員函數(shù)所屬對(duì)象的指針,它指向類(lèi)對(duì)象的地址。成員函數(shù)通過(guò)這個(gè)指針可以知道自己屬于哪一個(gè)對(duì)象。它隱藏于每個(gè)類(lèi)的非靜態(tài)成員函數(shù)中。3、有如下程序:#inc1ude<iostream>usingnamespacestd;classTest{public:Test(){n+=2;}~Test(){n.=3;}staticintgetNum(){returnn;}private:staticintn;};intTest::n=1;intmain(){Test*p=newTest;deletep;cout<<"n="<<Test::getNum()<<endl;return0;}執(zhí)行后的輸出結(jié)果是()。A、n=0B、n=1C、n=2D、n=3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)。靜態(tài)數(shù)據(jù)成員是類(lèi)中所有對(duì)象共享的成員,而不是某個(gè)對(duì)象的成員。題目中的靜態(tài)數(shù)據(jù)成員n的運(yùn)算具有疊加性,執(zhí)行“n+=2”和“n一=3”后n的值為0。4、有如下程序:#inc1ude<iostream>usingnamespacestd;classObj{staticinti;public:Obj(){i++;)一Obj(){i一一;)staticintgetVal(){returni;)};intObj::i=0;voidf(){Objob2;cout<<o(jì)b2.getVal();}intmain(){Objobl;f();Obj*ob3=newObj;cout<<o(jì)b3一>getVal();deleteob3;cout<<Obj::getVal();return0;}程序的輸出結(jié)果是()。A、232B、231C、222D、221標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是靜態(tài)成員。本題中,Obj類(lèi)定義了一個(gè)靜態(tài)數(shù)據(jù)成員i,并初始化為0.在主函數(shù)中,首先定義了1個(gè)該類(lèi)對(duì)象obl,所以構(gòu)造函數(shù)被調(diào)用1次,i加l;然后調(diào)用函數(shù)f(),該函數(shù)中又定義了一個(gè)對(duì)象ob2,此時(shí)i再次加l變?yōu)?,然后通過(guò)函數(shù)getVal()輸出i的值2。f()函數(shù)結(jié)束,ob2變量被釋放,故析構(gòu)函數(shù)被調(diào)用了1次,i變成1;回到主函數(shù)中,又動(dòng)態(tài)創(chuàng)建了1個(gè)對(duì)象并讓ob3指向它,此后i變成2并輸出。最后釋放動(dòng)態(tài)創(chuàng)建的對(duì)象i變?yōu)?,輸出1。故最終的輸出結(jié)果是221。5、有如下程序:#inc1ude<iostream>usingnamespacestd;classMyclass{public:Myclass(){++count;}~Myclass(){一一count;}staticintgetCount(){returncount,}private:staticintcount,};intMyclass::count=0;intmain(){.Myclassobj;cout<<o(jì)bj.getCount();Myclass*ptr=newMyclass;cout<<Myclass::getCount();deleteptr;cout<<Myclass::getCount();return0;}程序的輸出結(jié)果是()。A、121B、232C、221D、122標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是靜態(tài)成員。靜態(tài)成員的特性是不管這個(gè)類(lèi)創(chuàng)建了多少對(duì)象,它的靜態(tài)成員都只有一個(gè)拷貝副本,這個(gè)副本被所有屬于這個(gè)類(lèi)的對(duì)象共享。題目中,首先定義了obj對(duì)象,其構(gòu)造函數(shù)使靜態(tài)數(shù)據(jù)成員count增l,故輸出“1”;然后通過(guò)指針動(dòng)態(tài)創(chuàng)建了MyClass類(lèi)的對(duì)象,構(gòu)造函數(shù)被再次調(diào)用,count變?yōu)?,輸出“2”;接著刪除創(chuàng)建的MyClass類(lèi)的對(duì)象,調(diào)用析構(gòu)函數(shù),count減1變?yōu)?,輸出“1”。故最終輸出結(jié)果是121。6、有如下類(lèi)定義:classPoint{private;staticinthow_many;};_______how_many=0;要初始化Point類(lèi)的靜態(tài)成員how_many,下劃線處應(yīng)填入的內(nèi)容是()。A、ingB、staticintC、intPoint::D、staticintPoint::標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是靜態(tài)數(shù)據(jù)成員的初始化。靜態(tài)數(shù)據(jù)成員應(yīng)在類(lèi)體外進(jìn)行初始化,且初始化的一般格式為:數(shù)據(jù)類(lèi)型類(lèi)名::靜態(tài)數(shù)據(jù)成員名=初始值。7、若AA為一個(gè)類(lèi),a為該類(lèi)的非靜態(tài)數(shù)據(jù)成員,在該類(lèi)的一個(gè)成員函數(shù)定義中訪問(wèn)a時(shí),其書(shū)寫(xiě)格式為()。A、aB、AA,aC、a{}D、AA::a{}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:類(lèi)AA的成員函數(shù)直接引用類(lèi)AA的非靜態(tài)數(shù)據(jù)成員。8、有如下類(lèi)定義:classSample{public;Sample(intx):ref(x){}//①private:Sample():ref(0){}//②staticintval=5;//③constintref;//④};上述程序段中,錯(cuò)誤的語(yǔ)句是()。A、①B、②C、③D、④標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:靜態(tài)整型數(shù)據(jù)不能定義為類(lèi)的數(shù)據(jù)成員。9、己知類(lèi)Myclass的定義如下classMyclass{public:voidfunctionl(Myclass&c){cout<<c.data;)staticvoidfunction2(Myclass&c){cout<<c.data;}voidfunction3(){cout<<data;}staricvoidfunction4(){cout<<data;}private:intdata;};其中有編譯錯(cuò)誤的函數(shù)是()。A、functionlB、function2C、function3D、function4標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:funcyion4()函數(shù)作為類(lèi)的靜態(tài)成員函數(shù),不能直接訪問(wèn)類(lèi)中說(shuō)明的非靜態(tài)成員,即cout<<data在編譯時(shí)會(huì)出錯(cuò)。10、有如下程序:#inc1ude<iostream>usingnamespacestd;classXA{inta:public:staticintb:XA(intaa):a(aa){b++;).intgetA(){returna,)};intXA::b=0;intmain(){XAd1(4),d2(5);cout<<dl.getA()+d2.getA()+XA::b+d1.b<<endl;return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、9B、11C、13D、15標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在類(lèi)XA的構(gòu)造函數(shù)中,定義了用成員變量a的值初始化變量aa,同時(shí)靜態(tài)成員變量b值加1。所以當(dāng)在主main函數(shù)中定義類(lèi)XA的對(duì)象d1(4)后,變量b的等于1,定義對(duì)象d2(5)后,變量b的值等于2,所以表達(dá)式dl.getA()+d2,getA()+XA::b+d1.b等于4+5+1+2+1=13.11、由于常對(duì)象不能被更新,因此()。A、通過(guò)常對(duì)象只能調(diào)用它的常成員函數(shù)B、通過(guò)常對(duì)象只能調(diào)用靜態(tài)成員函數(shù)C、常對(duì)象的成員都是常成員D、通過(guò)常對(duì)象可以調(diào)用任何不改變對(duì)象值的成員函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是常對(duì)象與常成員函數(shù)的概念。使用const關(guān)鍵字修飾的對(duì)象稱(chēng)為常對(duì)象,它不能被更新,所以常對(duì)象只能調(diào)用常成員函數(shù)而不能調(diào)用其它成員函數(shù);使用const關(guān)鍵字聲明的成員函數(shù)是常成員函數(shù),它也不能被更新,常成員函數(shù)只能調(diào)用常成員函數(shù)而不能調(diào)用其它函數(shù)。12、有如下程序#inc1ude<iostream>usingnamespacestd;inti=1;classFun{public:staticinti:intvalue(){returni一1;}intvalue()const{returni+1;}};intFun::i=2;intmain(){inti=3;Funfunl;constFunfun2;return0;}若程序的輸出結(jié)果是:123則程序中下劃線處遺漏的語(yǔ)句是()。A、cout<<fun1.value()<<Fun::i<<fun2.value();B、cout<<Fun::i<<fun1.value()<<fun2.value();C、cout<<fun1.value()<<fun2.value()<<Fun::i;D、cout<<fun2.value()<<Fun::i<<fun1,value();標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是常成員函數(shù)。Const關(guān)鍵字可以用于參與重載函數(shù)的區(qū)分,此時(shí)常對(duì)象調(diào)用常成員函數(shù),一般對(duì)象調(diào)用一般成員函數(shù),當(dāng)類(lèi)中只有一個(gè)常成員函數(shù)時(shí),一般對(duì)象也可以調(diào)用該常成員函數(shù)。本題中,通過(guò)funl調(diào)用value()函數(shù)時(shí),是調(diào)用前一個(gè),而通過(guò)fun2調(diào)用value()函數(shù)是調(diào)用后一個(gè);另外,value()函數(shù)中訪問(wèn)的i是類(lèi)中定義的數(shù)據(jù)成員i,全局變量i在類(lèi)中被“屏蔽”。funl.value0輸出1一1=2一1=1;fun2.value()調(diào)用后…個(gè)value()函數(shù)輸出i+1=2+1=3;Fun::i是通過(guò)類(lèi)名直接訪問(wèn)類(lèi)的靜態(tài)數(shù)據(jù)成員i的值,即2;所以正確的輸出順序是A選項(xiàng)。13、有如下程序:#inc1ude<iostream>usingnamespacestd;classVAC{public;intf()const{return3;}intf(){return5;});Intmain(){VACvl;constVACv2;cout<<V1.f()<<V2.fi();feturn0;)運(yùn)行時(shí)的輸出結(jié)果是()。A、53B、35C、55D、33標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是常成員函數(shù)的應(yīng)用。VAC類(lèi)中說(shuō)明了兩個(gè)函數(shù),一個(gè)是常成員函數(shù),~個(gè)是普通函數(shù);在主函數(shù)中說(shuō)明了兩個(gè)對(duì)象,通過(guò)普通對(duì)象vl調(diào)用的是普通函數(shù),輸出5:通過(guò)常對(duì)象V2調(diào)用的是常成員函數(shù),輸出3。14、有如下程序:#inc1ude<iostream>usingnamespacestd;classMyclass{public:Myclass(intx):val(x){}voidSet(intx){val=x;}voidPrint()const{cont<<"Val="<<Val<<’\t’;)private:intval,};intmain(){constMyclassobj1(10);Myclassobj2(20);obj1.Print();//語(yǔ)句1obj2.Print();//語(yǔ)句2obj1.Set(20);//語(yǔ)句3obj2.Set(30);//語(yǔ)句4return0;}其主函數(shù)中錯(cuò)誤的語(yǔ)句是()。A、語(yǔ)句1B、語(yǔ)句2C、語(yǔ)句3D、語(yǔ)句4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在創(chuàng)建類(lèi)對(duì)象objl(10)時(shí),前面有關(guān)鍵字const,所以當(dāng)語(yǔ)句3調(diào)用objl的成員函數(shù)試圖修改其私有成員的數(shù)值的時(shí)候,會(huì)編譯出錯(cuò)。15、有如下類(lèi)定義和變量定義:classA{public:A(){data=0;}~A(){}intGetData()const{retumdata;}voidSetData(intn){data=n;}private:intdata;};constAa;Ab;下列函數(shù)調(diào)用中錯(cuò)誤的是()。A、a.GetData();B、a.SetData(10);C、b.GetData();D、b.SetData(10);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由題意可知a為常對(duì)象,因?yàn)槌?duì)象不能被更新,所以通過(guò)這個(gè)常對(duì)象只能調(diào)用它的常成員函數(shù)GetData(),而不能調(diào)用其他成員函數(shù)SetData(10),因而選項(xiàng)B為本題的正確答案。16、有如下程序:#inc1ude<iostream>usingnamespacestd;classA{public:A(inti):rl(i){}yoidprint(){cout<<’E’<<r1<<’_’;}voidprint()const{cout<<’C’<<r1*rl<<’一’;}private:intr1,};intmain(){Aa1(2);constAa2(4);a1.print();a2.print();return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、運(yùn)行時(shí)出錯(cuò)B、E2一C16一C、C4一C16一D、E2一E4一標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類(lèi)A包括一個(gè)整型數(shù)據(jù)成員r1,一個(gè)一般成員函數(shù)print(),一個(gè)常成員函數(shù)print()const。在主函數(shù)中定義了對(duì)象a1,并對(duì)r1的值賦2和常對(duì)象a2,并對(duì)r1的值賦4,在C++中,常對(duì)象不能被更新,所以常對(duì)象只能調(diào)用類(lèi)的常成員函數(shù),而不能調(diào)用一般成員函數(shù)。而一般的對(duì)象,既可以調(diào)用一般成員函數(shù)也可以調(diào)用常成員函數(shù)。所以在本題中,當(dāng)執(zhí)行a1.print()時(shí),輸出為E2一,執(zhí)行a2.print()時(shí),輸出為C16一。17、有如下程序:#inc1ude<iostream>usingnamespacestd;classA{public:A(inti=0):rl(i){}voidprint(){cout<<’E’<<rl<<’一’;}voidprint()const{cout<<’C’<r1*rl<<’一’;}voidprint(intx){cout<<’p’<<r1*r1*r1<<’一’;}private:intr1,};intmain(){Aa1;constAa2(4);al.print(2);a2.print();rcturn0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、P8一E4B、P8一C16一C、P0一E4一D、P0一C16一標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在主函數(shù)中創(chuàng)建al對(duì)象時(shí),調(diào)用類(lèi)A的默認(rèn)構(gòu)造函數(shù),其數(shù)據(jù)成員r1的值等于0。當(dāng)執(zhí)行a1.print(2)語(yǔ)句時(shí),調(diào)用帶參數(shù)的print成員函數(shù),所以輸出結(jié)果為p0一,對(duì)象a2為常成員,所以其成員變量rl的值等于4,因?yàn)槌?duì)象只能調(diào)用常成員函數(shù),所以當(dāng)執(zhí)行語(yǔ)句a2.print()語(yǔ)句時(shí),輸出結(jié)果為C14一。18、某類(lèi)中有一個(gè)無(wú)參且無(wú)返回值的常成員函數(shù)Show,則正確的Show函數(shù)原型是()。A、constvoidShow();B、voidconstShow();C、voidShow()const;D、voidShow(const);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:常成員函數(shù)的說(shuō)明格式如下:<返回類(lèi)型><成員函數(shù)名>(<參數(shù)表>)const;,所以對(duì)于本題來(lái)說(shuō)無(wú)參且無(wú)返回值的常成員函數(shù)show,其正確的函數(shù)原型是選項(xiàng)C)。19、已知類(lèi)IMS中兩個(gè)成員函數(shù)的聲明為“voidlisten()const;”與“voidspeak();”,另有兩個(gè)對(duì)象的定義為“IMSobjl;”與“constIMSobj2;:”,則下列語(yǔ)句中,產(chǎn)生編譯錯(cuò)誤的是()。A、objl.listen();B、objl.speak();C、,obj2.listen();D、obj2.speak();標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)listen()作為類(lèi)IMS的常成員函數(shù),一般對(duì)象objl和常對(duì)象obj2都可以調(diào)用它,而函數(shù)speak()作為IMS的一般成員函數(shù),則只有一般對(duì)象objl可以調(diào)用,而常對(duì)象obj2調(diào)用會(huì)產(chǎn)生編譯錯(cuò)誤。20、已知函數(shù)print()沒(méi)有返回值,如果在類(lèi)中將之聲明為常成員函數(shù),正確的是()。A、voidprint()const;B、constvoidprint();C、voidconstprint();D、voidprint(const);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:const成員函數(shù)表示該成員函數(shù)只‘能讀類(lèi)數(shù)據(jù)成員,而不能修改類(lèi)成員數(shù)據(jù)。定義const成員函數(shù)時(shí),把const關(guān)鍵字放在函數(shù)的參數(shù)表和函數(shù)體之間。21、有如下類(lèi)定義:classTest{chara;constcharb;public:Test(charc){a=c;b=c;)//第1行voidf(chara)const{this一>a=a;)//第2行voidg(charb){this一>b=b;)//第3行charhoconst{returna;//第4行};編譯時(shí)沒(méi)有錯(cuò)誤的行是()。A、第3行B、第4行C、第1行D、第2行標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:類(lèi)Test中的常成員函數(shù)h()返回?cái)?shù)據(jù)成員a的值。22、有如下類(lèi)定義:classAA{inta;public:intgetRef()const{return.&a,)//①intgetValue()const{returna;)//②voidset(intn)const{a=n;)//③friend一voidshow(AAaa)const{cout<<a,}//④};其中的四個(gè)函數(shù)定義中正確的是()。A、①B、②C、③D、④標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查了常成員函數(shù)和友元函數(shù)的概念。選項(xiàng)A中,getRef()函數(shù)的返回值和函數(shù)函數(shù)類(lèi)型不符,故錯(cuò)誤;C選項(xiàng)中set()常成員函數(shù)改變了數(shù)據(jù)成員的值,這是不允許的;D選項(xiàng)中show()函數(shù)被同時(shí)定義成友元函數(shù)和常成員函數(shù)是錯(cuò)誤的。23、有如下程序:#inc1ude<iostream>#inc1ude<cmath>usingstd::cout;classPoint{public:frienddoubledistance(constPoint&p);//p距原點(diǎn)的距離Point(intxx=0,intyy=0):x(xx),y(yy){}//①private:intx,y;};doubledistance(constPoint&p){//②returnsqrt(p.x*p.x+p.y*p,y);}intmain(){Pointpl(3,4);cout<<distance(pl);//③return0;}下列敘述中正確的是()。A、程序編譯正確B、程序編譯時(shí)語(yǔ)句①出錯(cuò)C、程序編譯時(shí)語(yǔ)句②出錯(cuò)D、程序編譯時(shí)語(yǔ)句③出錯(cuò)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:這段程序是正確的,計(jì)算p距離原點(diǎn)的距離。語(yǔ)句①是類(lèi)Point的構(gòu)造函數(shù),在構(gòu)造函數(shù)中給變量xx和yy賦初值0。語(yǔ)句②是計(jì)算點(diǎn)p距原點(diǎn)的距離的函數(shù)distance。語(yǔ)句③是計(jì)算點(diǎn)pl距離原點(diǎn)的距離并輸出。24、已知類(lèi)Myclass聲明如下:classMyclass{intn;public:Myclass(intk):n(k){}intgetValue()const{returnn;}};在下列數(shù)組定義中正確的是()。A、Myclassxl[2];B、Myclassx2[2]={newMyclass(1),newMyclass(2)};C、Myclass*x3[2];D、Myclass*x4[2]={Myclass(1),Myclass(2)};標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:考查的是對(duì)象數(shù)組。選項(xiàng)A中在建立對(duì)象數(shù)組時(shí)也同樣需要調(diào)用構(gòu)造函數(shù):選項(xiàng)B和D的類(lèi)型不匹配,B中不能將指針傳給非指針,D中是將非指針傳給指針。25、己知類(lèi)Myclass的定義如下:classMyclass{public:Myclass(intd){data=d;}~Myclass(){}private:intdata;};下列對(duì)Myclass類(lèi)對(duì)象數(shù)組的定義和初始化語(yǔ)句中,正確的是()。A、Myclassarrays[2];B、Myclassarrays[2]={Myclass(5)};C、Myclassarrays[2]={Myclass(5),Myclass(6)};D、Myclass*arrays=newMyclass[2];標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在選項(xiàng)C)中定義了類(lèi)MyClass對(duì)象數(shù)組arrays[2],并用對(duì)象MyClass(5)和MyClass(6)對(duì)這個(gè)數(shù)組中的兩個(gè)元素賦初值。國(guó)家二級(jí)C++機(jī)試(類(lèi)和對(duì)象)模擬試卷第2套一、選擇題(本題共22題,每題1.0分,共22分。)1、有如下程序:#include<iostream>usingnarnespacestd;classtest{private:inta;public:test0{cout+’’constructor’’+endl;}test(inta){cout+a+endl;}test(consttest&test){a=test.a(chǎn);cout+’’copyconstructor’’+en.d1;}test(){cout+’’destructor"+endl;}};intmain(){testA(3);return0;}運(yùn)行時(shí)輸出的結(jié)果是()。A、3B、constructordestructorC、copyconstructordestructorD、3destructor標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是構(gòu)造函數(shù)和析構(gòu)函數(shù)。一個(gè)類(lèi)可以有多個(gè)構(gòu)造函數(shù),但只能有一個(gè)析構(gòu)函數(shù)。每一個(gè)對(duì)象在被創(chuàng)建時(shí),都會(huì)隱含調(diào)用眾多構(gòu)造函數(shù)中的一個(gè),而在銷(xiāo)毀時(shí)又會(huì)隱含調(diào)用唯一的析構(gòu)函數(shù)。此題中,主函數(shù)創(chuàng)建對(duì)象A是會(huì)隱含調(diào)用。test(inta)這個(gè)構(gòu)造函數(shù),輸出3;接著主函數(shù)結(jié)束,對(duì)象A銷(xiāo)毀又隱含調(diào)用~test()析構(gòu)函數(shù)輸出destructor。2、對(duì)于一個(gè)類(lèi)定義,下列敘述中錯(cuò)誤的是()。A、如果沒(méi)有定義拷貝構(gòu)造函數(shù),編譯器將生成一個(gè)拷貝構(gòu)造函數(shù)B、如果沒(méi)有定義缺省的構(gòu)造函數(shù),編譯器將一定生成一個(gè)缺省的構(gòu)造函數(shù)C、如果沒(méi)有定義構(gòu)造函數(shù),編譯器將生成一個(gè)缺省的構(gòu)造函數(shù)和一個(gè)拷貝構(gòu)造函數(shù)D、如果已經(jīng)定義了構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù),編譯器不會(huì)生成任何構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是構(gòu)造函數(shù)。如果一個(gè)類(lèi)中沒(méi)有定義任何構(gòu)造函數(shù),編譯器將生成一個(gè)不帶參數(shù)的公有缺省構(gòu)造函數(shù)。但只要定義了一個(gè)任意的構(gòu)造函數(shù),就不會(huì)生成缺省構(gòu)造函數(shù)了。3、有如下程序:#include<iostream>usingnamespacestd;classPart{public:Part(intx=0):val(x){cout<<val;}~Part(){cout<<val;}private:intval;};classWhole{public:Whole(intx,inty,intz=0):p2(x),p1(y),val(z){cout<<val;}~Whole(){cout<<val;}private:Partp1,p2;intval;};intmain(){Wholeobj(1,2,3);return0;}程序的輸出結(jié)果是()。A、123321B、213312C、213D、123123標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是類(lèi)的構(gòu)造與析構(gòu)。建立類(lèi)的對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類(lèi)的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類(lèi)被繼承時(shí)聲明的順序(自左向右)接著執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類(lèi)中聲明的順序,最后執(zhí)行自身的構(gòu)造函數(shù)。析構(gòu)順序與之相反。本題中,Whole類(lèi)中有兩個(gè)Part類(lèi)的成員p1和p2,根據(jù)它們定義的順序,先構(gòu)造p1再構(gòu)造p2。所以,首先被構(gòu)造的是p1(y),輸出2;第二個(gè)被構(gòu)造的是p2(x),輸出1;最后調(diào)用析構(gòu)函數(shù),輸出val的值3;析構(gòu)函數(shù)調(diào)用順序與構(gòu)造函數(shù)相反。故最后輸出213312。4、有如下程序:#include<iostream>usingnamespacestd;classBase{public:Base(intx=0){cout<<x;}};classDerived:publicBase{public:Derived(intx=0){cout<<x;}private:Baseval;};intmain(){Derivedd(1);return0;}程序的輸出結(jié)果是()。A、0B、1C、01D、001標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是類(lèi)的構(gòu)造。建立類(lèi)的對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類(lèi)的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類(lèi)被繼承時(shí)聲明的順序(自左向右)->執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類(lèi)中聲明的順序->執(zhí)行自身的構(gòu)造函數(shù)。本題中,首先會(huì)構(gòu)造基類(lèi)Base,調(diào)用Base類(lèi)的構(gòu)造函數(shù),輸出0:然后還定義了一個(gè)Base類(lèi)的對(duì)象,再次調(diào)用Base類(lèi)的默認(rèn)構(gòu)造函數(shù)輸出0;最后構(gòu)造自身,因主函數(shù)中傳入了構(gòu)造參數(shù)1,所以輸出1。故最后輸出結(jié)果是:001。5、有如下類(lèi)定義:classMyClass{Intvalue;public;MyClass(intn):value(n){}intgerValueoconst{returnvalue;}};則類(lèi)MyClass的構(gòu)造函數(shù)的個(gè)數(shù)是()。A、1個(gè)B、2個(gè)C、3個(gè)D、4個(gè)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是構(gòu)造函數(shù)的概念。構(gòu)造函數(shù)的名字必須與類(lèi)名相同;構(gòu)造函數(shù)不指定返回值類(lèi)型;構(gòu)造函數(shù)可以重載;在創(chuàng)建對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用構(gòu)造函數(shù)。6、在C++中,編譯系統(tǒng)自動(dòng)為一個(gè)類(lèi)生成缺省構(gòu)造函數(shù)的條件是()。A、該類(lèi)沒(méi)有定義任何有參構(gòu)造函數(shù)B、該類(lèi)沒(méi)有定義任何無(wú)參構(gòu)造函數(shù)C、該類(lèi)沒(méi)有定義任何構(gòu)造函數(shù)D、該類(lèi)沒(méi)有定義任何成員函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:如果一個(gè)類(lèi)中定義了一個(gè)缺省的構(gòu)造函數(shù),則使用該函數(shù)。如果一個(gè)類(lèi)中沒(méi)有定義任何構(gòu)造函數(shù),編譯器將生成一個(gè)不帶參數(shù)的共有缺省構(gòu)造函數(shù)。7、有如下程序:#include<iostream>usingnamespacestd;classMyClass{public:MyClass(inti=0){cout<<1;}MyClass(constMyClass&x){cout<<2;}MyClass&operator=(constMyClass&x){cout<<3;return*this;}~MyClass0{cout<<4;}};intmain(){MyClassobj1(1),obj2(2),obj3(obj1);return0:}運(yùn)行時(shí)的輸出結(jié)果是()。A、112444B、11114444C、121444D、11314444標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:當(dāng)創(chuàng)建MyClass類(lèi)對(duì)象obj1(1)和obj2(2)時(shí)候,調(diào)用類(lèi)構(gòu)造函數(shù)會(huì)輸出兩個(gè)1,然后創(chuàng)建類(lèi)對(duì)象obj3(obj(1))時(shí),會(huì)調(diào)用拷貝類(lèi)構(gòu)造函數(shù),輸出一個(gè)2,然后當(dāng)main函數(shù)結(jié)束時(shí)候,調(diào)用三個(gè)對(duì)象的析構(gòu)函數(shù)會(huì)輸出三個(gè)4。8、有如下程序:#include<iostream>#include<cstfing>usingoamespacestd;classXCF{inta;public:XCF(intaa=0):a(aa){cout<<’’1’’;}XCF(XCF&x){a=x.a;cout<<’’2’’;}-XCF(){cout<<a;}intGeta(){return,a;}};intmain(){XCFd1(5),d2(d1);XCF*pd=newXCF(8);cout<<pd->Geta0;deletepd;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、1215588B、1218855C、12185D、128512標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在這個(gè)程序中在建立對(duì)象dl(5)時(shí),調(diào)用構(gòu)造函數(shù)XCF(intaa=0):a(aa){tout<<"1’’;),輸出1;在建立d2(d1)時(shí),調(diào)用拷貝構(gòu)造函數(shù)XCF(XCF&x){a=x.a(chǎn);cout<<’’2’’;},輸出2;在建立newXCF(8)對(duì)象時(shí),調(diào)用構(gòu)造函數(shù)XCF(intaa=0):a(aa){cout<<"1’’;},輸出1;語(yǔ)句cout<<pd->Geta()的功能是輸出8;語(yǔ)句deletepd;調(diào)用析構(gòu)函數(shù)~XCF(),輸出8;當(dāng)退出程序時(shí),分別釋放對(duì)象d2、d1,輸出55。9、有如下程序:#include<iostream>usingnamespacestd;classONE{intc;public:0NE():c(0){cout<<1;}ONE(intn):c(n){cout<<2;}};classTWO{ONEone1;ONEone2;public:TWO(intm):one2(m){cout<<3;}};intmain(){TWOt(4);return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、3B、23C、123D、213標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由類(lèi)TWO的定義可知,其成員為類(lèi)ONE的兩個(gè)對(duì)象one1和one2。所以在主函數(shù)中構(gòu)建類(lèi)TWO的對(duì)象t(4)時(shí),先后調(diào)用類(lèi)ONE的構(gòu)造函數(shù)ONE():c(0){cout<<1;}和ONE(intn):c(n){cout<<2;}輸出12,然后再調(diào)用類(lèi)TWO的構(gòu)造函數(shù)TWO(intm):one2(m){cout<<3;},輸出3。10、Sample是一個(gè)類(lèi),執(zhí)行下面語(yǔ)句后,調(diào)用Sample類(lèi)的構(gòu)造函數(shù)的次數(shù)是,()。Samplea[2],*P=newSample;A、0B、1C、2D、3標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C++中,聲明一個(gè)類(lèi)對(duì)象時(shí),編譯程序需要調(diào)用類(lèi)的構(gòu)造函數(shù)為對(duì)象分配存儲(chǔ)空間,進(jìn)行必須的初始化。在本題的這條語(yǔ)句中,聲明了一個(gè)Sample類(lèi)型的包含2個(gè)數(shù)組元素的數(shù)組a[2],一個(gè)指向類(lèi)Sample對(duì)象的指針P,所以Sample類(lèi)的構(gòu)造函數(shù)共調(diào)用了3次。11、有如下程序:#include<iostream>usingnamespacestd;classToy{public:Toy(char*_n){strcpy(name,_n);count++;}~TOYO{count--;}char*GetName(){retBtnname;}staticintgetCount(){returncount;}private;charname[10];staticintcount;};intToy::count=0;intmain(){Toyt1(’’Snoopy’’),t2(’’Mickey’’),t3(’’Barbie’’);cout<<t1.getCount()<<end1;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、1B、2C、3D、運(yùn)行時(shí)出錯(cuò)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:類(lèi)Toy中包含一個(gè)字符數(shù)組name和一個(gè)靜態(tài)整型變量count。在程序中首先給類(lèi)Toy的成員count的賦初始值0,然后在主函數(shù)中,定義了三個(gè)Toy對(duì)象t1、t2、t3,并分別對(duì)它們的name字段賦值,在賦值的同時(shí)變量count的值加l,所以最后變量count的值等于3。12、有如下程序#include<iostream>iasingnamespacestd;classTest{public:Test(){}Test(constTest&t){cout<<1;}};Testfun(Test&u){Testt=u;returnt;}intmain(){Testx,y;x=fun(y);return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、無(wú)輸出B、1C、11D、111標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在類(lèi)Test中定義拷貝構(gòu)造函數(shù)Test(constTest&t),其函數(shù)體為輸出1,在主函數(shù)main中,當(dāng)執(zhí)行語(yǔ)句x=fun(y),調(diào)用拷貝函數(shù)用對(duì)象y的值構(gòu)造對(duì)象u,輸出1,在執(zhí)行函數(shù)fun()的return語(yǔ)句時(shí),調(diào)用拷貝函數(shù)構(gòu)造匿名對(duì)象,輸出1。13、若MyClass為一個(gè)類(lèi),執(zhí)行“MyClassa[4],*p[5];”語(yǔ)句時(shí)會(huì)自動(dòng)調(diào)用該類(lèi)構(gòu)造函數(shù)的次數(shù)是()。A、2B、5C、4D、9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:語(yǔ)句MyClassa[4],*p[5]不僅定義了4個(gè)MyClass對(duì)象,分別為a[0],a[1],a[2],a[3],而且定義了5個(gè)指向MyClass對(duì)象的指針變量,分別為*p[0],*p[1],*p[2],*p[3],*p[4],所以共調(diào)用MyClass的構(gòu)造函數(shù)4次。14、有如下程序:#include<iostream>usingnamespacestd;classCD{public:~CDO{cout<<’C’;}private:charname[80];};hatmain(){CDa,*b,d[2];return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、CCCCB、CCCC、CCD、C標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在這個(gè)程序的主函數(shù)中定義了3個(gè)CD類(lèi)的實(shí)例對(duì)象a,d[0],d[1]和一個(gè)指向CD類(lèi)對(duì)象的指針變量b,所以當(dāng)程序結(jié)束時(shí),執(zhí)行CD的析構(gòu)函數(shù)輸出字符C三次。15、有如下程序:#include<iostream>usingnamespacestd;classXA{inta;public:staticintb:XA(intaa):a(aa){b++;}~XA(){}intget(){returna;}};intXA::b=0;intmain(){XAdl(2),d2(3);cout<<d1.get()+d2.get()+XA::b<<end1;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、5B、6C、7D、8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:執(zhí)行XA類(lèi)的實(shí)例變量d1(2)時(shí),成員函數(shù)d1.get()的返回值等于2,XA.b的值等于1,執(zhí)行XA類(lèi)的實(shí)例變量d2(3)時(shí),成員函數(shù)d1.get()的返回值等于3,XA.b的值等于2,所以輸出結(jié)果為2+3+2=7。16、下列關(guān)于析構(gòu)函數(shù)的描述中,錯(cuò)誤的是()。A、析構(gòu)函數(shù)可以重載B、析構(gòu)函數(shù)由系統(tǒng)自動(dòng)調(diào)用C、每個(gè)對(duì)象的析構(gòu)函數(shù)只被調(diào)用一次D、每個(gè)類(lèi)都有析構(gòu)函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一般情況下,析構(gòu)函數(shù)在對(duì)象的生存周期即將結(jié)束的時(shí)候由系統(tǒng)自動(dòng)調(diào)用。在調(diào)用完成之后,對(duì)象也就消失了,相應(yīng)的內(nèi)存空間也被釋放。析構(gòu)函數(shù)沒(méi)有參數(shù),因此析構(gòu)函數(shù)不能重載,一個(gè)類(lèi)中只能定義一個(gè)析構(gòu)函數(shù)。17、下列關(guān)于構(gòu)造函數(shù)的描述中,錯(cuò)誤的是()。A、構(gòu)造函數(shù)名與類(lèi)名相同B、構(gòu)造函數(shù)可以有返回值C、構(gòu)造函數(shù)可以重載D、每個(gè)類(lèi)都有構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:構(gòu)造函數(shù)具有下面4個(gè)特殊的性質(zhì):構(gòu)造函數(shù)的名字必須與類(lèi)名相同;構(gòu)造函數(shù)不指定返回類(lèi)型,它隱含有返回值,由系統(tǒng)內(nèi)部使用;構(gòu)造函數(shù)可以有一個(gè)或多個(gè)參數(shù)。因此構(gòu)造函數(shù)可以重載;在創(chuàng)建對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用構(gòu)造函數(shù)。18、有如下程序:#include<iostream>usingnamespacestd;classMyClass{public:MyClass(){cout<<’*’;}MyClass(MyClass&a){cout<<’#’;}…MyClass(){cout<<’@’;}};intmain();MyClassa;Myclassb(a);return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、*@#@B、#@*@C、*#@@D、#*@@標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序在執(zhí)行時(shí),先創(chuàng)建類(lèi)對(duì)象a,輸出*,再創(chuàng)建類(lèi)對(duì)象b,輸出#,然后再依次調(diào)用類(lèi)對(duì)象b和a的析構(gòu)函數(shù),輸出兩個(gè)。19、下列關(guān)于類(lèi)成員對(duì)象構(gòu)造函數(shù)調(diào)用順序的敘述中,正確的是()。A、與它們?cè)诔跏蓟斜碇械捻樞蛳嗤珺、與它們?cè)陬?lèi)中聲明的順序相同C、與析構(gòu)函數(shù)的調(diào)用順序相同D、順序不確定標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類(lèi)成員對(duì)象構(gòu)造函數(shù)的調(diào)用是按照在類(lèi)中定義的順序進(jìn)行的,而不是按照構(gòu)造函數(shù)說(shuō)明后的冒號(hào)順序進(jìn)行構(gòu)造的。20、有如下程序:#include<iostream>#include<cstring>usingnamespacestd;classMyString{public:charstr[80];MyString(constchar*s){strcpy(str,s);}MyString&operator+=(MySringa){strcat(str,a.str);return*this;}};ostream&operator<<(ostream&s,constMyString&z){returns<<z.str;}intmain(){MyStringx(’’abe’’),y(’’ede’’);eout<<(x+=y)<<end1;return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、ahcB、CdeC、abCdeD、ahccde標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在類(lèi)MyString中,定義了帶參數(shù)的構(gòu)造函數(shù)MyString(constchar*s),其作用是把s指向的字符串拷貝到字符組str中。在類(lèi)中還對(duì)運(yùn)算+=進(jìn)行重載定義,其作用是把字符串s仃和a相連接并賦給str,所以在主函數(shù)中執(zhí)行x+=y時(shí),結(jié)果為abccde。21、下列關(guān)于this指針的敘述中,正確的是()。A、任何與類(lèi)相關(guān)的函數(shù)都有this指針B、類(lèi)的成員函數(shù)都有this指針C、類(lèi)的友元函數(shù)都有this指針D、類(lèi)的非靜態(tài)成員函數(shù)才有this指針標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是this指針的使用。類(lèi)的每一個(gè)成員函數(shù)都有一個(gè)隱含的常量指針,即this指針。類(lèi)的靜態(tài)成員函數(shù)不能含有this指針,因?yàn)閠his指針是一個(gè)指向本對(duì)象的指針。22、有如下頭文件:intf1();staticintf2();classMA{public:intf3();staticintf4();};在所描述的函數(shù)中,具有隱含的this指針的是()。A、flB、f2C、f3D、f4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是。this指針。this指針是一個(gè)隱含的指針,它隱含于每個(gè)類(lèi)的非靜態(tài)成員函數(shù)中,它明確地表示出了成員函數(shù)當(dāng)前操作的數(shù)據(jù)所屬的對(duì)象。題目中,只有f3()滿足“類(lèi)的非靜態(tài)成員函數(shù)”的要求,故應(yīng)選C選項(xiàng)。國(guó)家二級(jí)C++機(jī)試(類(lèi)和對(duì)象)模擬試卷第3套一、選擇題(本題共22題,每題1.0分,共22分。)1、有如下類(lèi)聲明:classSAMPLE{intn;public:SAMPLE(inti=0):n(i){}voidsetValue(intn0;};下列關(guān)于getValue成員函數(shù)的實(shí)現(xiàn)中,正確的是()。A、①B、②C、③D、④標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是類(lèi)的定義。一個(gè)類(lèi)的長(zhǎng)數(shù)據(jù)成員的初始化只能在成員初始化列表中進(jìn)行,故選項(xiàng)A錯(cuò)誤;常成員函數(shù)不能更新對(duì)象的數(shù)據(jù)成員,故選項(xiàng)B錯(cuò)誤;靜態(tài)成員函數(shù)可以直接訪問(wèn)類(lèi)中說(shuō)明的靜態(tài)成員,但不能直接訪問(wèn)類(lèi)中說(shuō)明的非靜態(tài)成員,故選項(xiàng)C錯(cuò)誤。2、下列關(guān)于類(lèi)定義的說(shuō)法中,正確的是()。A、類(lèi)定義中包括數(shù)據(jù)成員和函數(shù)成員的聲明B、類(lèi)成員的缺省訪問(wèn)權(quán)限是保護(hù)的C、數(shù)據(jù)成員必須被聲明為私有的D、成員函數(shù)只能在類(lèi)體外進(jìn)行定義標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是類(lèi)的定義。類(lèi)中缺省的訪問(wèn)權(quán)限是私有的,所以選項(xiàng)B錯(cuò)誤;類(lèi)的數(shù)據(jù)成員和成員函數(shù)的訪問(wèn)控制權(quán)限均可被聲明為公有、私有和保護(hù)中的一種,所以選項(xiàng)C錯(cuò)誤;成員函數(shù)的實(shí)現(xiàn)可以住類(lèi)體內(nèi)定義,也可以在類(lèi)體外定義,所以選項(xiàng)D錯(cuò)誤。3、下列運(yùn)算符函數(shù)中,肯定不屬于類(lèi)Value的成員函數(shù)的是()。A、Valueoperator+(Value);B、Valueoperator-(Value,Value);C、Valueoperator*(int);D、Valueoperator/(Value);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:運(yùn)算符作為非成員函數(shù)時(shí),由于沒(méi)有隱含this指針,因此所有的操作數(shù)必須出現(xiàn)在參數(shù)表中。對(duì)于第二個(gè)選項(xiàng),出現(xiàn)了兩個(gè)操作數(shù),必然是非成員函數(shù),但是對(duì)于其他三個(gè)選項(xiàng),有可能都是要求兩個(gè)操作數(shù)的成員函數(shù)。4、有如下程序:#includeusingnamespacestd;classPoint{intx,y;public:Point(intx1=0,inty1=0):x(x1),y(y1){}intget(){returnx+y;}};classCircle{Pointcenter;intradius;public:Circle(intcx,intcy,intr):center(cx,cy),radius(r){}intget(){returncenter.get()+radius;}};intmain(){Circlec(3,4,5);cout<A、5B、7C、9D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)類(lèi)Point和類(lèi)Circle的定義可知,類(lèi)Circle的實(shí)例c(3,4,5)的成員函數(shù)c.get()返回值為3+4+5=12。5、下列關(guān)于類(lèi)和對(duì)象的敘述中,錯(cuò)誤的是()。A、一個(gè)類(lèi)只能有一個(gè)對(duì)象B、對(duì)象是類(lèi)的具體實(shí)例C、類(lèi)是對(duì)某一類(lèi)對(duì)象的抽象D、類(lèi)和對(duì)象的關(guān)系是一種數(shù)據(jù)類(lèi)型與變量的關(guān)系標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是類(lèi)和對(duì)象的概念。類(lèi)是用戶定義的一種數(shù)據(jù)類(lèi)型,可以使用這個(gè)類(lèi)型來(lái)說(shuō)明一個(gè)或多個(gè)變量,即對(duì)象。6、若MyClass是一個(gè)類(lèi)名,且有如下語(yǔ)句序列MyClassc1,*c2;MyClass*c3=newMyClass;MyClass&c4=c1;上面的語(yǔ)句序列所定義的類(lèi)對(duì)象的個(gè)數(shù)是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C1、*C2、C3是3個(gè)MyClass對(duì)象,C4是Mvclass對(duì)象的引用,它是對(duì)象C1的別名。7、有如下程序:#includeusingnamespacestd;classPair{intm,n;public:Pair(intj,intk):m(j),n(k){}intget(){returnm;)intget()const{returnm+n;}};intmain(){Paira(3,5);constPairb(3,5);cout<A、33B、38C、83D、88標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在主函數(shù)中定義了類(lèi)Pair的一個(gè)實(shí)例變量a,并分別對(duì)實(shí)例變量a的數(shù)據(jù)成員m,n賦初值3,5。所以調(diào)用a.get()成員函數(shù)時(shí),輸出3。又定義類(lèi)Pair的一個(gè)常實(shí)例變量b,并分別對(duì)實(shí)例變量b的數(shù)據(jù)成員m,n賦初值3,5。所以調(diào)用成員函數(shù)b.get()時(shí),輸出8。8、在下列函數(shù)原型中,可以作為類(lèi)AA構(gòu)造函數(shù)的是()。A、voidAA(int);B、intAA();C、AA(int)const;D、AA(int);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是構(gòu)造函數(shù)的概念。構(gòu)造函數(shù)是類(lèi)的一個(gè)特殊成員函數(shù),它與類(lèi)同名,并且沒(méi)有返回值。選項(xiàng)A、B不符合要求。選項(xiàng)C中函數(shù)AA,會(huì)更新對(duì)象的數(shù)據(jù)成員。9、有如下程序:#includeusingnamespacestd;classPart{public:Part(intx=0):val(x){cout<A、123321B、213312C、213D、123123標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是類(lèi)的構(gòu)造與析構(gòu)。建立類(lèi)的對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類(lèi)的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類(lèi)被繼承時(shí)聲明的順序(自左向右)接著執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類(lèi)中聲明的順序,最后執(zhí)行自身的構(gòu)造函數(shù)。析構(gòu)順序與之相反。本題中,Whole類(lèi)中有兩個(gè)Part類(lèi)的成員p1和p2,根據(jù)它們定義的順序,先構(gòu)造p1再構(gòu)造p2。所以,首先被構(gòu)造的是p1(y),輸出2;第二個(gè)被構(gòu)造的是p2(x),輸出1;最后調(diào)用析構(gòu)函數(shù),輸出val的值3;析構(gòu)函數(shù)調(diào)用順序與構(gòu)造函數(shù)相反。故最后輸出213312。10、在C++中,編譯系統(tǒng)自動(dòng)為一個(gè)類(lèi)生成缺省構(gòu)造函數(shù)的條件是()。A、該類(lèi)沒(méi)有定義任何有參構(gòu)造函數(shù)B、該類(lèi)沒(méi)有定義任何無(wú)參構(gòu)造函數(shù)C、該類(lèi)沒(méi)有定義任何構(gòu)造函數(shù)D、該類(lèi)沒(méi)有定義任何成員函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:如果一個(gè)類(lèi)中定義了一個(gè)缺省的構(gòu)造函數(shù),則使用該函數(shù)。如果一個(gè)類(lèi)中沒(méi)有定義任何構(gòu)造函數(shù),編譯器將生成一個(gè)不帶參數(shù)的共有缺省構(gòu)造函數(shù)。11、有如下程序:#include#includeusingnamespacestd;classXCF{inta;public:XCF(intaa=0):a(aa){cout<<”1”;)XCF(XCF&x){a=x.a(chǎn);cout<<”2”;)~XCF(){cout<Geta();deletepd;return0:)運(yùn)行時(shí)的輸出結(jié)果是()。A、1215588B、1218855C、12185D、128512標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在這個(gè)程序中在建立對(duì)象d1(5)時(shí),調(diào)用構(gòu)造函數(shù)XCF(intaa=0):a(aa){cout<<"1";},輸出1;在建立d2(d1)時(shí),調(diào)用拷貝構(gòu)造函數(shù)XCF(XCF&x){a=x.a(chǎn);cout<<"2";},輸出2:在建立newXCF(8)對(duì)象時(shí),調(diào)用構(gòu)造函數(shù)XCF(intaa=0):a(aa){cout<<"1";},輸出1;語(yǔ)句cout<Geta()的功能是輸出8;語(yǔ)句deletepd;調(diào)用析構(gòu)函數(shù)~XCF(),輸出8;當(dāng)退出程序時(shí),分別釋放對(duì)象d2、d1,輸出55。12、有如下程序:#includeusingnamespacestd;classToy{public:Toy(char*_n){strcpy(name,_n);count++;}~Toy(){count--;}char*GetName0{returnname;}staticintgetCount(){returncount;}private:charname[10];staticintcount;};intToy::count=0;intmain(){Toyt1("Snoopy"),t2("Mickey"),t3("Barbie");cout<A、1B、2C、3D、運(yùn)行時(shí)出錯(cuò)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:類(lèi)Toy中包含一個(gè)字符數(shù)組name和一個(gè)靜態(tài)整型變量count。在程序中首先給類(lèi)Toy的成員count的賦初始值0,然后在主函數(shù)中,定義了三個(gè)Toy對(duì)象t1、t2、t3,并分別對(duì)它們的name字段賦值,在賦值的同時(shí)變量count的值加1,所以最后變量count的值等于3。13、若MyClass為一個(gè)類(lèi),執(zhí)行“MyClassa[4],*p[5];”語(yǔ)句時(shí)會(huì)自動(dòng)調(diào)用該類(lèi)構(gòu)造函數(shù)的次數(shù)是()。A、2B、5C、4D、9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:語(yǔ)句MyClassa[4],*p[5]不僅定義了4個(gè)MyClass對(duì)象,分別為a[0],a[1],a[2],a[3],而且定義了5個(gè)指向MyClass對(duì)象的指針變量,分別為*p[0],*p[1],*p[2],*p[3],*p[4],所以共調(diào)用MyClass的構(gòu)造函數(shù)4次。14、下列關(guān)于析構(gòu)函數(shù)的描述中,錯(cuò)誤的是()。A、析構(gòu)函數(shù)可以重載B、析構(gòu)函數(shù)由系統(tǒng)自動(dòng)調(diào)用C、每個(gè)對(duì)象的析構(gòu)函數(shù)只被調(diào)用一次D、每個(gè)類(lèi)都有析構(gòu)函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一般情況下,析構(gòu)函數(shù)在對(duì)象的生存周期即將結(jié)束的時(shí)候由系統(tǒng)自動(dòng)調(diào)用。在調(diào)用完成之后,對(duì)象也就消失了,相應(yīng)的內(nèi)存空間也被釋放。析構(gòu)函數(shù)沒(méi)有參數(shù),因此析構(gòu)函數(shù)不能重載,一個(gè)類(lèi)中只能定義一個(gè)析構(gòu)函數(shù)。15、有如下程序:#includeusingnamespacestd;classMyClass{public:MyClass(){cout<<ˊ*ˊ;}MyClass(MyClass&a){cout<<ˊ#ˊ;}~MyClass(){cout<<ˊ@ˊ;}};intmain();MyClassa;Myclassb(a);return0:}運(yùn)行時(shí)的輸出結(jié)果是()。A、*@#@B、#@*@C、*#@@D、#*@@標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序在執(zhí)行時(shí),先創(chuàng)建類(lèi)對(duì)象a,輸出*,再創(chuàng)建類(lèi)對(duì)象b,輸出#,然后再依次調(diào)用類(lèi)對(duì)象b和a的析構(gòu)函數(shù),輸出兩個(gè)@。16、有如下程序:#include#includeusingnamespacestd;classMyString{public:charstr[80];MyString(constchar*s){strcpy(str,s);}MyString&operator+=(MyStringa){strcat(str,a.str);return*this;}};ostream&operator<<(ostream&s,constMyString&z){returns<A、abcB、cdeC、abcdeD、abccde標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在類(lèi)MyString中,定義了帶參數(shù)的構(gòu)造函數(shù)MyString(constchar*s),其作用是把s指向的字符串拷貝到字符組str中。在類(lèi)中還對(duì)運(yùn)算+=進(jìn)行重載定義,其作用是把字符串str和a相連接并賦給str,所以在主函數(shù)中執(zhí)行x+=y時(shí),結(jié)果為abccde。17、有如下程序:#includeusingnamespacestd;classObj{staticinti;public:Obj(){i++;}~Obj(){i--;}staticintgetVal(){returni;}};intObj::i=0;voidf(){Objob2;cout<getVal();deleteob3;cout<A、232B、231C、222D、221標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是靜態(tài)成員。本題中,Obi類(lèi)定義了一個(gè)靜態(tài)數(shù)據(jù)成員i,并初始化為0.在主函數(shù)中,首先定義了1個(gè)該類(lèi)對(duì)象ob1,所以構(gòu)造函數(shù)被調(diào)用1次,i加1;然后調(diào)用函數(shù)f(),該函數(shù)中又定義了一個(gè)對(duì)象ob2,此時(shí)i再次加1變?yōu)?,然后通過(guò)函數(shù)getval()輸出i的值2。f()函數(shù)結(jié)束,ob2變量被釋放,故析構(gòu)函數(shù)被調(diào)用了1次,i變成1;回到主函數(shù)中,又動(dòng)態(tài)創(chuàng)建了1個(gè)對(duì)象并讓0b3指向它,此后i變成2并輸出。最后釋放動(dòng)態(tài)創(chuàng)建的對(duì)象i變?yōu)?,輸出1。故最終的輸出結(jié)果是221。18、有如下類(lèi)和對(duì)象的定義:classConstants{public;staticdoublegetPI(){return3.1416;}};Constantsconstants;下列各組語(yǔ)句中,能輸出3.1416的是()。A、cout<getPI();和cout<B、cout<C、cout<getPI();和cout<getPI();D、cout<標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是靜態(tài)成員函數(shù)的引用。getPI()是類(lèi)Constants的靜態(tài)成員函數(shù)。引用靜態(tài)成員函數(shù)可以有兩種形式:一是通過(guò)類(lèi)名直接進(jìn)行調(diào)用,例如類(lèi)名::靜態(tài)成員函數(shù)名;另一種是用類(lèi)的任何對(duì)象名進(jìn)行調(diào)用其作用僅是通過(guò)對(duì)象名間接的指出類(lèi)名,例如constants.getPI()選項(xiàng)D即是這種調(diào)用方式。19、己知類(lèi)Myclass的定義如下classMyClass{public:voidfunctionl(MyClass&c){cout<A、function1B、function2C、function3D、function4標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:funcyion4()函數(shù)作為類(lèi)的靜態(tài)成員函數(shù),不能直接訪問(wèn)類(lèi)中說(shuō)明的非靜態(tài)成員,即cout<20、有如下程序#includeusingnamespacestd;inti=1;classFun{public:staticinti;intvalue(){returni-l;}intvalue()const{returni+1;}};intFun::i=2;intmain(){inti=3;Funfun1;constFunfun2;___________return0;}若程序的輸出結(jié)果是:123則程序中下劃線處遺漏的語(yǔ)句是()。A、cout<B、cout<C、cout<D、cout<標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是常成員函數(shù)。Const關(guān)鍵字可以用于參與重載函數(shù)的區(qū)分,此時(shí)常對(duì)象調(diào)用常成員函數(shù),一般對(duì)象調(diào)用一般成員函數(shù),當(dāng)類(lèi)中只有一個(gè)常成員函數(shù)時(shí),一般對(duì)象也可以調(diào)用該常成員函數(shù)。本題中,通過(guò)fun1調(diào)用value()函數(shù)時(shí),是調(diào)用前一個(gè),而通過(guò)fun2調(diào)朋‘value()函數(shù)是調(diào)用后一個(gè);另外,value()函數(shù)中訪問(wèn)的i是類(lèi)中定義的數(shù)據(jù)成員i,全局變量i在類(lèi)中被“屏蔽”。fun1.value()輸出i-1=2-1=1;fun2.value()調(diào)用后一個(gè)value()函數(shù)輸出i+1=2+1=3;Fun::i是通過(guò)類(lèi)名直接訪問(wèn)類(lèi)的靜態(tài)數(shù)據(jù)成員i的值,即2;所以正確的輸出順序是A選項(xiàng)。21、有如下類(lèi)定義和變量定義:classA{public:A(){data=0;)~A(){}intGetData()const{returndata;}voidSetData(intn){data=n;}private:intdata;};constAa;Ab;下列函數(shù)調(diào)用中錯(cuò)誤的是()。A、a.GetData();B、a.SetData(10);C、b.GetData();D、b.SetData(10);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由題意可知a為常對(duì)象,因?yàn)槌?duì)象不能被更新,所以通過(guò)這個(gè)常對(duì)象只能調(diào)用它的常成員函數(shù)GetData(),而不能調(diào)用其他成員函數(shù)SetData(10),因而選項(xiàng)B為本題的正確答案。22、有如下類(lèi)定義:classTest{chara;constcharb;public:Test(charc){a=c;b=c;}//第1行voidf(chara)const{this->a=a;}//第2行voidg(charb){this->b=b;}//第3行charh()const{returna;}//第4行};編譯時(shí)沒(méi)有錯(cuò)誤的行是()。A、第1行B、第2行C、第3行D、第4行標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:類(lèi)Test中的常成員函數(shù)h()返回?cái)?shù)據(jù)成員a的值。國(guó)家二級(jí)C++機(jī)試(類(lèi)和對(duì)象)模擬試卷第4套一、選擇題(本題共21題,每題1.0分,共21分。)1、下列關(guān)于getValue成員函數(shù)的實(shí)現(xiàn)中,正確的是()。A、SAMPLE::setValue(intn0){n=n0;}B、voidSAMPLE::setValue(intn0){n=n0;}C、voidsetValue(intn0){n=n0;}D、(intn0){n=n0;}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查了成員函數(shù)的定義格式。在類(lèi)外部對(duì)成員函數(shù)定義時(shí)的一般格式為:返回類(lèi)型類(lèi)名::成員函數(shù)名(參數(shù)表){函數(shù)體},故此題正確答案為選項(xiàng)B。2、如果派生類(lèi)以protected方式繼承基類(lèi),則原基類(lèi)的protected成員和public成員在派生類(lèi)中的訪問(wèn)屬性分別是()。A、public和publicB、public和protectedC、protected和publicD、protected和protected標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是基類(lèi)成員在派生類(lèi)中的訪問(wèn)屬性。派生類(lèi)中的成員不能訪問(wèn)基類(lèi)中的私彳丁成員,可以訪問(wèn)基類(lèi)中的公有成員和保護(hù)成員。派生類(lèi)從基類(lèi)公有繼承時(shí),基類(lèi)的公有成員和保護(hù)成員在派生類(lèi)中仍然是公有成員和保護(hù)成員;派生類(lèi)從基類(lèi)私有繼承時(shí),基類(lèi)的公有成員和保護(hù)成員在派生類(lèi)中都變成私有成員;派生類(lèi)從基類(lèi)保護(hù)繼承時(shí),基類(lèi)的公有成員在派生類(lèi)中變成保護(hù)成員,基類(lèi)的保護(hù)成員在派生類(lèi)中仍然是保護(hù)成員。3、有如下程序:#include#includeusingnamespacestd;classXCD{char*a:intb;public:XCD(char*aa,intbb){a-newchar[strlen(aa)+1];strcpy(a,aa);b=bb;}char*Geta(){returna;}intGetb(){returnb;}};intmain(){char*p1=ˊˊabedˊˊ,*p2=ˊˊweirongˊˊ;intd1=6,d2=8;XCDx(p1,d1),y(p2,d2);cout<A、12B、16C、14D、11標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由類(lèi)XCD的定義可知,成員函數(shù)Geta()返回的是字符串的長(zhǎng)度,Getb()返回的是參數(shù)b的值。在主函數(shù)中strlen(x.Geta())的值等于4,y.Getb()的值等于8,所以輸出兩者的和為12。4、若AA為一個(gè)類(lèi),a為該類(lèi)的私有整型數(shù)據(jù)成員,getA()為該類(lèi)的一個(gè)非靜態(tài)公有成員函數(shù),功能是返回a的值。如果x為該類(lèi)的一個(gè)對(duì)象,要在類(lèi)外訪問(wèn)x對(duì)象中a的值,正確的訪問(wèn)格式為()。A、AA.getA()B、x.getA()C、x.a(chǎn)D、AA::a標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:要在類(lèi)外訪問(wèn)x對(duì)象中a的值,必須調(diào)用類(lèi)的非靜態(tài)公有成員函數(shù)getA()。5、若有如下類(lèi)聲明classMyClass{public:MyClass(){cout<<1;}};執(zhí)行下列語(yǔ)句MyClassa,b[2],*p[2]:以后,程序的輸出結(jié)果是()。A、11B、111C、1111D、11111標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是對(duì)象的構(gòu)造。本題共聲明了一個(gè)MyClass對(duì)象a,一個(gè)包含2個(gè)MyClass對(duì)象的數(shù)組b和一個(gè)包含2個(gè)MycIass對(duì)象指針的數(shù)組p,所以一共創(chuàng)建了3個(gè)Myclass類(lèi)的對(duì)象,即調(diào)用了3次構(gòu)造函數(shù)。6、要定義一個(gè)引用變量p,使之引用類(lèi)MyClass的一個(gè)對(duì)象,正確的定義語(yǔ)句是()。A、MyClassp=MyClass;B、MyClassp=newMyClass;C、MyClass&p=newMyClass;D、MyClassa,&p=a;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在選項(xiàng)D中,定義了MyClass類(lèi)的一個(gè)對(duì)象a和引用變量p,并且聲明p初始化為對(duì)a的引用。7、有如下類(lèi)定義:classMyClass{intx;public:MyClass():x(0),y(0){}intGetX(){returnx;}voidSetX(intxx){x=xx;}inty;};已知obj是類(lèi)MyClass的對(duì)象,下列語(yǔ)句中違反類(lèi)成員訪問(wèn)控制權(quán)限的是()。A、obj.xB、obj.yC、obj.GetX()D、obj.SetX(0)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由類(lèi)MyClass的定義可知,數(shù)據(jù)成員x屬于私有成員,所以只能在類(lèi)的內(nèi)部訪問(wèn)。類(lèi)MyClass的對(duì)象obj不能訪問(wèn)類(lèi)MyClass的私有成員x。8、有如下類(lèi)定義:classPoint{intx_,y_;public:Point():x_(0),y_(0){}Point(intx,inty=0):x_(x),y_(y){}};若執(zhí)行語(yǔ)句Pointa(2),b[3],*c[4];則Point類(lèi)的構(gòu)造函數(shù)被調(diào)用的次數(shù)是()。A、2次B、3次C、4次D、5次標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是類(lèi)的構(gòu)造函數(shù)。構(gòu)造函數(shù)在對(duì)象創(chuàng)建的時(shí)候由系統(tǒng)自動(dòng)調(diào)用。在Pointa(2),b[3],*c[4]語(yǔ)句中:a(2)是定義一個(gè)對(duì)象并傳入構(gòu)造函數(shù)2,所以此時(shí)會(huì)調(diào)垌以此構(gòu)造函數(shù):b[3]是定義一個(gè)包含3個(gè)對(duì)象的數(shù)組,所以構(gòu)造函數(shù)會(huì)被調(diào)用3次;*c[4]定義的是4個(gè)Point類(lèi)對(duì)象指針的數(shù)組,它并沒(méi)有創(chuàng)建任何Point對(duì)象,所以不調(diào)用構(gòu)造函數(shù)。9、有如下程序:#includeusingnamespacestd;classBase{public:Base(intx=0){cout<A、0B、1C、01D、001標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是類(lèi)的構(gòu)造。建立類(lèi)的對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類(lèi)的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類(lèi)被繼承時(shí)聲明的順序(自左向右)->執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類(lèi)中聲明的順序->執(zhí)行自身的構(gòu)造函數(shù)。本題中,首先會(huì)構(gòu)造基類(lèi)Base,調(diào)用Base類(lèi)的構(gòu)造函數(shù),輸出0;然后還定義了一個(gè)Base類(lèi)的對(duì)象,再次調(diào)用Base類(lèi)的默認(rèn)構(gòu)造函數(shù)輸出0;最后構(gòu)造自身,因主函數(shù)中傳入了構(gòu)造參數(shù)1,所以輸出1。故最后輸出結(jié)果是:001。10、有如下程序:#includeusingnamespacestd;classSample{public:Sample(){}~Sample(){cout<<ˊ*ˊ;}};intmain(){Sampletemp[2],*pTemp[2];return0;)執(zhí)行這個(gè)程序輸出星號(hào)(*)的個(gè)數(shù)為()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在main函數(shù)中,定義了Sampletemp[2]的一個(gè)包含兩個(gè)對(duì)象的數(shù)組,還定義了一個(gè)*pTemp[2],是包含兩個(gè)指向類(lèi)對(duì)象的指針的數(shù)組,故定義的指針當(dāng)main函數(shù)結(jié)束后是不會(huì)調(diào)用析構(gòu)函數(shù)的,只有包含兩個(gè)對(duì)象的數(shù)組temp[2[會(huì)調(diào)用析構(gòu)函數(shù).因此只輸出兩個(gè)*。11、有如下程序:#includeusingnamespacestd;classONE{intc;public:ONE():c(0){cout<<1;}ONE(intn):c(n){cout<<2;}};classTWO{ONEone1;ONEone2;public:TWO(intm):one2(m){cout<<3;}};intmain(){TWOt(4);return0:}運(yùn)行時(shí)的輸出結(jié)果是()。A、3B、23C、123D、213標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由類(lèi)TWO的定義可知,其成員為類(lèi)ONE的兩個(gè)對(duì)象onel和one2。所以在主函數(shù)中構(gòu)建類(lèi)TWO的對(duì)象t(4)時(shí),先后調(diào)用類(lèi)ONE的構(gòu)造函數(shù)ONE():c(0){cout<<1;}和ONE(intn):c(n){cout<<2;}輸出12,然后再調(diào)用類(lèi)TWO的構(gòu)造函數(shù)TWO(intm):one2(m){cout<<3;},輸出3。12、有如下程序:#includeusingnamespacestd;className{charname[20];public:Name(){strcpy(name,"");c

溫馨提示

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