國(guó)家二級(jí)C++機(jī)試(繼承和派生)模擬試卷6(題后含答案及解析)_第1頁
國(guó)家二級(jí)C++機(jī)試(繼承和派生)模擬試卷6(題后含答案及解析)_第2頁
國(guó)家二級(jí)C++機(jī)試(繼承和派生)模擬試卷6(題后含答案及解析)_第3頁
國(guó)家二級(jí)C++機(jī)試(繼承和派生)模擬試卷6(題后含答案及解析)_第4頁
國(guó)家二級(jí)C++機(jī)試(繼承和派生)模擬試卷6(題后含答案及解析)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)C++機(jī)試(繼承和派生)模擬試卷6(題后含答案及解析)題型有:1.選擇題選擇題1.有如下類聲明:classXA{intx;public:XA(intn){x=n;)};classXB:publicXA{inty;public:XB(inta,intb);};在構(gòu)造函數(shù)XB的下列定義中,正確的是()。A.XB::XB(inta,intb):x(a),y(b){}B.XB::XB(inta,intb):XA(a),y(b){}C.XB::XB(inta,intb):x(a),XB(b){}D.XB::XB(inta,intb):XA(a),XB(b){}正確答案:B解析:此題考查的是派生類中構(gòu)造函數(shù)的定義。派生類的構(gòu)造首先要調(diào)用基類的構(gòu)造函數(shù),對(duì)基類成員初始化;然后對(duì)派生類中的新增成員初始化。格式為:派生類名(構(gòu)造函數(shù)形參表)基類構(gòu)造函數(shù)(形參表)。知識(shí)模塊:繼承和派生2.有如下程序:#inc1ude<iostream>usingnamespacestd;classBASEfpublic:~BASE(){cout<<”BASE”;}};classDERIVED:publicBASE{public:~DERIVED(){cout<<”DERIVED”;}};intmain(){DERIVEDx;return0;}執(zhí)行后的輸出結(jié)果是()。A.BASEB.DERIVEDC.BASEDERIVEDD.DERIVEDBASE正確答案:D解析:此題考查的是派生類的定義和使用。當(dāng)對(duì)象被刪除時(shí),派生類的析構(gòu)函數(shù)就被執(zhí)行。由于析構(gòu)函數(shù)不能被繼承,因此在執(zhí)行派生類的析構(gòu)函數(shù)時(shí),基類的析構(gòu)函數(shù)也將被調(diào)用。執(zhí)行順序是先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù),其順序與執(zhí)行構(gòu)造函數(shù)的順序正好相反。知識(shí)模塊:繼承和派生3.下列有關(guān)繼承和派生的敘述中,正確的是()。A.如果一個(gè)派生類私有繼承其基類,則該派生類對(duì)象不能訪問基類的保護(hù)成員B.派生類的成員函數(shù)可以訪問基類的所有成員C.基類對(duì)象可以賦值給派生類對(duì)象D.如果派生類沒有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)抽象類正確答案:D解析:此題考查的是繼承和派生。無論是哪種繼承方式,派生類都能夠訪問基類的公有和保護(hù)成員,而不能訪問基類的私有成員,故選項(xiàng)A和B錯(cuò)誤:公有繼承時(shí),基類的對(duì)象不可作為派生類的對(duì)象處理,即基類對(duì)象不可賦值給派生類對(duì)象,所以選項(xiàng)C錯(cuò)誤。知識(shí)模塊:繼承和派生4.下列有關(guān)類繼承的敘述中,錯(cuò)誤的是()。A.繼承可以實(shí)現(xiàn)軟件復(fù)用B.虛基類可以解決由多繼承產(chǎn)生的二義性問題C.派生類構(gòu)造函數(shù)要負(fù)責(zé)調(diào)用基類的構(gòu)造函數(shù)D.派生類沒有繼承基類的私有成員正確答案:D解析:此題考查的是類繼承。派生類繼承了基類的(全部數(shù)據(jù)成員,私有成員),只是基類的私有成員在派生類中是隱藏的,只能在基類內(nèi)部訪問,故選項(xiàng)D錯(cuò)誤。知識(shí)模塊:繼承和派生5.在下列關(guān)鍵字中,不能用來表示繼承方式的是()。A.privateB.staticC.publicD.protected正確答案:B解析:此題考查的是繼承方式。繼承方式有私有(private)、保護(hù)(protected)、公有(public)三種。知識(shí)模塊:繼承和派生6.在類聲明中,緊跟在“public:”后聲明的成員的訪問權(quán)限是()。A.私有B.公有C.保護(hù)D.默認(rèn)正確答案:B解析:類中提供了3種訪問控制的權(quán)限:公有,私有和保護(hù)。其中公有類型定義了類的外部接口,任何一個(gè)外部的訪問都必須通過外部接口進(jìn)行。私有類型的成員只允許本類的成員函數(shù)訪問,來自類外部的任何訪問都是非法的,保護(hù)類型介于公有類型和私有類型之間,在繼承和派生時(shí)可以體現(xiàn)出其特點(diǎn)。知識(shí)模塊:繼承和派生7.定義派生類時(shí),若不使用關(guān)鍵字顯式地規(guī)定采用何種繼承方式,則默認(rèn)方式為()。A.私有繼承B.非私有繼承C.保護(hù)繼承D.公有繼承正確答案:A解析:繼承的方式包括三種:公有繼承,保護(hù)繼承和私有繼承。如果不顯示的給出繼承方式,缺省的類繼承方式是私有繼承private。知識(shí)模塊:繼承和派生8.有如下類定義:classXX{intxx;public:XX():xx(0){cout<<’A’;}XX(intn):xx(n){cout<<’B’;)};classYY:publicXX{intyy;public:YY():yy(0){cout<<yy;}YY(intn):XX(n+l),yy(n){cout<<yy;)YY(intm,intn):XX(m),yy(n){cout<<yy;}};下列選項(xiàng)中,輸出結(jié)果為AO的語句是()。A.YYy1(0,0);B.YYy2(1);C.YYy3(0);D.YYy4;正確答案:D解析:考查的是類的繼承。選項(xiàng)A的執(zhí)行結(jié)果為BO,建立YY的對(duì)象yl,首先調(diào)用其構(gòu)造函數(shù),YY繼承于XX所以先調(diào)用的為XX的構(gòu)造函數(shù),根據(jù)輸入的參數(shù)可知輸出B,然后執(zhí)行YY的構(gòu)造函數(shù)輸出0;同理,選項(xiàng)B的執(zhí)行結(jié)果為B1,選項(xiàng)C的執(zhí)行結(jié)果為B0。知識(shí)模塊:繼承和派生9.有如下類定義:classXX{intxdata;public:XX(intn=0):xdata(n){}};classYY:publicXX{intydata;public:YY(intm=0,intn=0):XX(m),ydata(n){}};YY類的對(duì)象包含的數(shù)據(jù)成員的個(gè)數(shù)是()。A.1B.2C.3D.4正確答案:B解析:因?yàn)轭怷X包括…個(gè)數(shù)據(jù)成員xdata,而類YY繼承自類XX,所在類YY中也包含數(shù)據(jù)成員xdata,同時(shí)類YY中也定義了其本身的數(shù)據(jù)成員ydata,因而YY類的對(duì)象包含的數(shù)據(jù)成員的個(gè)數(shù)是2。知識(shí)模塊:繼承和派生10.下列關(guān)于繼承方式的描述中,錯(cuò)誤的是()。A.如果不顯武地指定繼承方式,缺省的繼承方式是私有(private)B.采用公有繼承方式時(shí),基類中的公有成員在派生類中仍然是公有成員C.采用保護(hù)繼承方式時(shí),基類中的保護(hù)成員在派生類中仍然是保護(hù)成員D.采用私有繼承方式時(shí),基類中的私有成員在派生類中仍然是私有成員正確答案:D解析:基類中的私有成員在派生類中是隱蔽的,只能在基類內(nèi)部訪問。派生類中的成員不可以訪問基類中的私有成員,只可以訪問基類中的公有成員和保護(hù)成員。知識(shí)模塊:繼承和派生11.下列代碼段聲明了3個(gè)類classPerson{};classStudent:publicPerson{};classUndergraduate:Student{};下列關(guān)于這些類之間關(guān)系的描述中,錯(cuò)誤的是()。A.類Person是類Undergraduate的基類B.類Undergraduate從類student公有繼承C.類student是類Person的派生類D.類Undergraduate是類Person的派生類正確答案:B解析:Student類公有繼承自Person類,Undergraduate類私有繼承自Student類。所以Undergraduate類是從Student類私有繼承的。知識(shí)模塊:繼承和派生12.下列關(guān)于基類和派生類關(guān)系的敘述中,正確的是()。A.每個(gè)類最多只能有一個(gè)直接基類B.派生類中的成員可以訪問基類中的任何成員C.基類的構(gòu)造函數(shù)必須在派生類的構(gòu)造函數(shù)體中調(diào)用D.派生類除了繼承基類的成員,還可以定義新的成員正確答案:D解析:繼承分為單繼承和多繼承,一個(gè)類只有一個(gè)直接基類時(shí),稱為單繼承;而一個(gè)類同時(shí)有多個(gè)直接基類時(shí),則稱為多繼承。派生類的數(shù)據(jù)成員由所有基類的的數(shù)據(jù)成員與派生類新增的數(shù)據(jù)成員共同組成。知識(shí)模塊:繼承和派生13.若已定義了類Vehic1e,則下列派生類定義中,錯(cuò)誤的是()。A.classCar:vehic1e{/*類體略*/};B.classCar:publiccar{/*類體略*/};C.classCar:publicVehic1e{/*類體略*/);D.classCar:virtualpublicVehic1e{/*類體略*/).正確答案:B解析:類Car不能派生自它本身。知識(shí)模塊:繼承和派生14.下列描述中,錯(cuò)誤的是()。A.公有繼承時(shí)基類中的公有成員在派生類中仍是公有成員B.公有繼承時(shí)基類中的保護(hù)成員在派生類中仍是保護(hù)成員C.保護(hù)繼承時(shí)基類中的公有成員在派生類中仍是公有成員D.保護(hù)繼承時(shí)基類中的保護(hù)成員在派生類中仍是保護(hù)成員正確答案:C解析:保護(hù)繼承時(shí)基類中的公有成員在派生類中是保護(hù)成員。知識(shí)模塊:繼承和派生15.當(dāng)派生類繼承一個(gè)基類時(shí),默認(rèn)的繼承方式為()。A.publicB.protectedC.privateD.不確定正確答案:C解析:派生類繼承…個(gè)基類時(shí),默認(rèn)的繼承方式為private。知識(shí)模塊:繼承和派生16.下列關(guān)于派生類的敘述中,錯(cuò)誤的是()。A.派生類至少要有一個(gè)基類B.派生類中包括了從基類繼承的成員C.一個(gè)派生類可以作為另一個(gè)派生類的基類D.基類成員被派生類繼承以后訪問權(quán)限保持不變正確答案:D解析:派生類對(duì)象對(duì)基類成員的訪問權(quán)限:①對(duì)于公有繼承,只有基類的公有成員可以被派生類對(duì)象訪問,其他(保護(hù)和私有)成員不能被訪問。②對(duì)于私有繼承和保護(hù)繼承,基類中所有成員都不能被派生類對(duì)象訪問。派生類對(duì)基類成員的訪問權(quán)限:①對(duì)于公有繼承,基類中公有成員和保護(hù)成員可以訪問,而基類中私有成員不能被訪問。②對(duì)于私有繼承和保護(hù)繼承,也是基類中的公有成員和保護(hù)成員可以被派生類訪問,而基類中的私有成員不能被訪問。知識(shí)模塊:繼承和派生17.有如下類聲明:classMyBASE{intk:public:voidset(intn){k=n;}intget()const{returnk;}};classMyDERIVED:protectedMyBASE{protected:intj;public:voidset(intm,intn){MyBASE::set(m);j=n;}intget()const{returnMyBASE::get()+j;}};則類MyDERIVED中保護(hù)的數(shù)據(jù)成員和成員函數(shù)的個(gè)數(shù)是()。A.4B.3C.2D.1正確答案:B解析:此題考查的是派生與繼承中的訪問權(quán)限。protected派生:private一>不可見;protected一>private;public一>protected.知識(shí)模塊:繼承和派生18.有如下程序:#inc1ude<iostream>usingnamespacestd;classBase{public:voidfun(){cout<<”Base::fun”<<endl;}};classDerived:publicBase{public:,voidfun(){cout<<”Derived::fun”<<endl;}};intmain(){Derivedd:d.mn();return0;}己知其執(zhí)行后的輸出結(jié)果為:Base::funDerived::fun則程序中下劃線處應(yīng)填入的語句是()。A.Base.fun();B.Base::fun();C.Base一>fun();D.mn();正確答案:B解析:此題考查的是繼承的使用。分析題目可知,橫線處應(yīng)填入對(duì)基類成員函數(shù)fun()的調(diào)用語句,此處只能使用作用域運(yùn)算符“::”才能調(diào)用到基類的同名函數(shù),故選項(xiàng)B正確。知識(shí)模塊:繼承和派生19.有如下程序:#inc1ude<iostream>usingnamespacestd;classBase{prVate:Voidmnl()const{cout<<”fun1”;}proteCted:Voidfun2()const{cout<<”mn2¨;}public:Voidfun3()const{cout<<”fun3”;}};classDeriVed:prOteCtedBaSe{public:Voidfun4()const{cout<<”fIun4”;}};intmain(){DeriVedobj;obj.fun1();//①obj.fun2();//②obj.fun3();//③obj.fun4();//④reurnO:}其中有語法錯(cuò)誤的語句是()。A.①②③④B.①②③C.②③④D.①④正確答案:B解析:此題考查的是保護(hù)繼承。因?yàn)镈erived以protected方式繼承了Base類,所以父類Base中的公有成員和保護(hù)成員均成了Derived類的保護(hù)成員,而Base類的私有成員Derived類不可訪問。所以,主函數(shù)中通過Derived類的對(duì)象只能夠訪問到Derived類的公有成員。知識(shí)模塊:繼承和派生20.在公有繼承的情況下,允許派生類直接訪問的基類成員包括()。A.公有成員B.公有成員和保護(hù)成員C.公有成員、保護(hù)成員和私有成員D.保護(hù)成員正確答案:B解析:此題考查的是派生類對(duì)基類成員的訪問?;惖某蓡T有公有、保護(hù)和私有三種訪問屬性;類的繼承方式也有公有繼承、保護(hù)繼承和私有繼承三種。無論那種繼承方式,派生類中的成員都不能訪問基類中的私有成員,但可以訪問基類中的公有成員和保護(hù)成員,知識(shí)模塊:繼承和派生21.有如下類定義:classMyBase{intk;publiC:MyBase(intn=0):k(n){}intvalue()const{retumk;}};classMyDeriVed:MyBase{intj;public:MyDerived(inti):j(i){}intgetK()const{returnk;)mtgeU()const{returnj;}};編譯時(shí)發(fā)現(xiàn)有一處語法錯(cuò)誤,對(duì)這個(gè)錯(cuò)誤最準(zhǔn)確的描述是()。A.函數(shù)getK試圖訪問基類的私有成員變量kB.在類MyDerived的定義中,基類名MyBase前缺少關(guān)鍵字public、protected或privateC.類MyDerived缺少一個(gè)無參的構(gòu)造函數(shù)D.類MyDerived的構(gòu)造函數(shù)沒有對(duì)基類數(shù)據(jù)成員k進(jìn)行初始化正確答案:A解析:此題考查的是派生類對(duì)基類成員的訪問。因?yàn)轭愔腥笔〉脑L問權(quán)限是私有,所以本題中MyBase類中定義的成員k是私有成員。派生類中的成員只能訪問基類中的公有成員和保護(hù)成員,不能訪問基類中的私有成員。所以派生類中函數(shù)getKO中的語句returnk;是非法的。知識(shí)模塊:繼承和派生22.派生類的成員函數(shù)不能訪問基類的()。A.公有成員和保護(hù)成員B.公有成員C.私有成員D.保護(hù)成員正確答案:C解析:此題考查的是派生類對(duì)基類成員的訪問。派生類對(duì)基類的各個(gè)成員的訪問能力與繼承方式無關(guān),其成員不能訪問基類中的私有成員,可以訪問基類的公有成員和保護(hù)成員。知識(shí)模塊:繼承和派生23.若有如下類定義:classB{voidfunl(){}protected:doublevarl;public:voidfun2(){}};classD:publicB{protected:voidfun3(){}};已知obj是類D的對(duì)象,下列句中不違反類成員訪問控制權(quán)限的是()。A.obj.fun1();B.obj.varl;C.obj.fun2();D.obj.fun3();正確答案:C解析:此題考查的是基類成員在派生類中的訪問屬性。派生類中的成員不能訪問基類中的私有成員,可以訪問基類中的公有成員和保護(hù)成員。派生類從基類公有繼承時(shí),基類的公有成員和保護(hù)成員在派生類中仍然是公有成員和保護(hù)成員;派生類從基類私有繼承時(shí),基類的公有成員和保護(hù)成員在派生類中都變成私有成員;派生類從基類保護(hù)繼承時(shí),基類的公有成員在派生類中變成保護(hù)成員,基類的保護(hù)成員在派生類中仍然是保護(hù)成員。根據(jù)以上分析可知,本題中只有從B類繼承的fun2()為公有屬性,故選C選項(xiàng)。知識(shí)模塊:繼承和派生24.有如下類聲明:classBase{protected;intamount,public;Base(intn

溫馨提示

  • 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. 人人文庫(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)論