




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
國家二級(jí)C++機(jī)試(選擇題)模擬試卷7(共9套)(共233題)國家二級(jí)C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共21題,每題1.0分,共21分。)1、必須用一對(duì)大括號(hào)括起來的程序段是()。A、switch語句中的case標(biāo)號(hào)語句B、if語句的分支C、循環(huán)語句的循環(huán)體D、函數(shù)的函數(shù)體標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是語句塊和函數(shù)。if語句的分支和循環(huán)語句的循環(huán)體可以是一條語句也可以使一個(gè)語句塊,所以不是必須用一個(gè)大括號(hào)括起來:switch語句中的case標(biāo)號(hào)語句可以是一系列語句,也可以包含語句塊,也不是必須用一對(duì)大括號(hào)括起來:函數(shù)的函數(shù)體必須用一對(duì)大括號(hào)括起來。2、字面常量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ǔ)。3、某二叉樹中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為()。A、n+1B、n-1C、2nD、n/2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。所以該二叉樹的葉子結(jié)點(diǎn)數(shù)等于n+1。4、有如下程序:#include<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)解析:語句Test*p=newTest;會(huì)調(diào)用類的構(gòu)造函數(shù)Test(){n+=2;},使n的值由原來的1變?yōu)?,然后deletep調(diào)用類的析構(gòu)函數(shù)~Test(){n-=3;},因?yàn)閚是static型變量,所以會(huì)在3的基礎(chǔ)上減3使得輸出結(jié)果為0。5、下列有關(guān)拷貝構(gòu)造函數(shù)的描述中錯(cuò)誤的是()。A、拷貝構(gòu)造函數(shù)是一種構(gòu)造函數(shù)B、拷貝構(gòu)造函數(shù)與一般的構(gòu)造函數(shù)一樣,可以設(shè)置多個(gè)形參C、每一個(gè)類中都必須有一個(gè)拷貝構(gòu)造函數(shù)D、拷貝構(gòu)造函數(shù)的功能是用一個(gè)已知對(duì)象去初始化一個(gè)正在創(chuàng)建的對(duì)象標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù)是一個(gè)特殊的構(gòu)造函數(shù),它用一個(gè)己知的對(duì)象初始化一個(gè)正在創(chuàng)建的同類對(duì)象,它不能指定函數(shù)返回類型;只有一個(gè)參數(shù),是同類的某個(gè)對(duì)象名的引用。每一個(gè)類中都必須有一個(gè)拷貝構(gòu)造函數(shù),如果類中未聲明,編譯器會(huì)自動(dòng)生成一個(gè)公有的拷貝構(gòu)造函數(shù)。6、對(duì)如下二叉樹進(jìn)行后序遍歷的結(jié)果為()。A、ABCDEFB、DBEAFCC、ABDECFD、DEBFCA標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:所謂后序遍歷是指在訪問根據(jù)結(jié)點(diǎn)、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn),并且,在遍歷左、右子樹時(shí),仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根點(diǎn)。因此,后序遍歷二叉樹的過程也是一個(gè)遞歸過程。其簡單描述為:若二叉樹為空,則結(jié)束返回:否則,先后序遍歷左子樹,然后后序遍歷右子樹,最后訪問根結(jié)點(diǎn)。對(duì)于后序遍歷,第一個(gè)訪問的結(jié)點(diǎn)一定是最左下的結(jié)點(diǎn),最后一個(gè)訪問的結(jié)點(diǎn)一定是根結(jié)點(diǎn),所以選項(xiàng)D)為正確答案。7、假定MyClass為一個(gè)類,則該類的拷貝構(gòu)造函數(shù)的聲明語句為()。A、MyClass(MyClassx);B、MyClass(MyClass&x);C、MyClass(&x);D、MyClass(x);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù)也是構(gòu)造函數(shù),所以函數(shù)名字為。MyClass,但它只有一個(gè)參數(shù),這個(gè)參數(shù)是本類的對(duì)象,即x;而且采用對(duì)象的引用的形式,也就是&x。所以本題答案是B)。8、軟件生命周期可分為定義階段,開發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計(jì)屬于()。A、定義階段B、開發(fā)階段C、維護(hù)階段D、上述三個(gè)階段標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查軟件生命周期的相關(guān)概念。通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、交付使用以及維護(hù)等活動(dòng)。還可以將軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段。9、下面不屬于軟件需求分析階段主要工作的是()。A、需求變更申請(qǐng)B、需求分析C、需求評(píng)審D、需求獲取標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在軟件開發(fā)的過程中,應(yīng)該盡早的制定測(cè)試計(jì)劃,其中在需求分析階段制定系統(tǒng)測(cè)試計(jì)劃,在概要設(shè)計(jì)階段制定集成測(cè)試計(jì)劃,在詳細(xì)設(shè)計(jì)階段制定單元測(cè)試計(jì)劃。10、下列說法中錯(cuò)誤的是()。A、公有繼承時(shí)基類中的public成員在派生類中仍是public的B、公有繼承時(shí)基類中的private成員在派生類中仍是private的C、私有繼承時(shí)基類中的public成員在派生類中是private的D、保護(hù)繼承時(shí)基類中的public成員在派生類中是protected的標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是繼承時(shí)基類成員屬性改變。選項(xiàng)B)中,公有繼承時(shí)基類中的private成員在派生類中不是private的,而是不可訪問的。所以選項(xiàng)B)錯(cuò)誤;其他選項(xiàng)敘述均正確。11、下面不屬于軟件測(cè)試實(shí)施步驟的是A、集成測(cè)試B、回歸測(cè)試C、確認(rèn)測(cè)試D、單元測(cè)試標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件測(cè)試實(shí)施的步驟有單元測(cè)試、集成測(cè)試和確認(rèn)測(cè)試。12、負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是()。A、數(shù)據(jù)定義語言B、數(shù)據(jù)管理語言C、數(shù)據(jù)操縱語言D、數(shù)據(jù)控制語言標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言足數(shù)據(jù)操縱語言。13、已知基類Employee只有一個(gè)構(gòu)造函數(shù),其定義如下:Employee::Employee(intn):id(n){)Manager是Employee的派生類,則下列對(duì)Manager的構(gòu)造函數(shù)的定義中,正確的是()。A、Manager::Manager(intn):id(n){}B、Manager::Manager(intn){id=n;}C、Manager::Manager(intn):Employee(n){)D、Manager::Manager(intn){Employee(n);)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:基類的構(gòu)造函數(shù)是帶有參數(shù)的,派生類從基類派生,這就需要在派生類的構(gòu)造函數(shù)名后而顯示的調(diào)用基類的構(gòu)造函數(shù)。14、有如下程序:#include<iostream>usingnamespacestd;classAA{intn;public:AA(intk):n(k){}intget0{returnn;}intgetoconst{returnn+1;}};intmain(){AAa(5);constAAb(6);cout<<a.get()<<b.get();return0;}執(zhí)行后的輸出結(jié)果是()。A、55B、57C、75D、77標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是常成員函數(shù)和函數(shù)的重載。所謂函數(shù)重載,是指同一個(gè)函數(shù)名可以對(duì)應(yīng)著多個(gè)函數(shù)實(shí)現(xiàn)。一般對(duì)象a既可以調(diào)用普通成員函數(shù)get,也可以調(diào)用常成員函數(shù)get,由于常成員函數(shù)不能更新對(duì)象的數(shù)據(jù)成員,所以題目中通過對(duì)象a調(diào)用的函數(shù)為常成員函數(shù):常對(duì)象b只能調(diào)用普通成員函數(shù)。15、有類定義如下:classType{public:Type(inti=0);Typeoperator一(int);friendTypeoperator+(Type,Type);private:intval;};若有對(duì)象定義Typecl;則下列語句序列中,錯(cuò)誤的是()。A、Type(3)+c1;B、cl+Type(3);C、3一cl;D、c1—3;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由于在類Type中對(duì)“-”進(jìn)行了重載,所以根據(jù)“-”重載的形式定義,c1-3是正確的,而3-c1是錯(cuò)誤的表達(dá)式。16、下列關(guān)于構(gòu)造函數(shù)的描述中,錯(cuò)誤的是()。A、構(gòu)造函數(shù)名與類名相同B、構(gòu)造函數(shù)可以有返回值C、構(gòu)造函數(shù)可以重載D、每個(gè)類都有構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:構(gòu)造函數(shù)具有下面4個(gè)特殊的性質(zhì):構(gòu)造函數(shù)的名字必須與類名相同;構(gòu)造函數(shù)不指定返回類型,它隱含有返回值,由系統(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ù)。17、有如下程序:#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、①④標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是保護(hù)繼承。因?yàn)镈erived以protected方式繼承了Base類,所以父類Base中的公有成員和保護(hù)成員均成了Derived類的保護(hù)成員,而Base類的私有成員Derived類不可訪問。所以,主函數(shù)中通過Derived類的對(duì)象只能夠訪問到Derived類的公有成員。18、當(dāng)派生類從一個(gè)基類保護(hù)繼承時(shí),基類中的一些成員在派生類中成為保護(hù)成員,這些成員在基類中原有的訪問屬性是()。A、任何B、公有或保護(hù)C、保護(hù)或私有D、私有標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:基類的公有成員和保護(hù)成員只有在以保護(hù)繼承方式繼承時(shí),其在繼承類中是保護(hù)成員。19、已知類Myclass的定義如下:classMyClass{public:MyClass(intd){data=d;}~MyClass(){}private:intdata;};下列對(duì)Myclass類對(duì)象數(shù)組的定義和初始化語句中,正確的是()。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中定義了類MyClass對(duì)象數(shù)組arrays[2],并用對(duì)象MyClass(5)和MyClass(6)對(duì)這個(gè)數(shù)組中的兩個(gè)元素賦初值。20、下列關(guān)于模板的描述中,錯(cuò)誤的是()。A、類模板的成員函數(shù)都是模板函數(shù)B、函數(shù)模板是一種參數(shù)化類型的函數(shù)C、滿足一定條件時(shí)可以省略模板實(shí)參D、模板形參只能由關(guān)鍵字typename聲明標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:同一模板的聲明和定義中,模板形參的名字不必相同。每個(gè)模板類型形參前面必須帶上關(guān)鍵字typename/class,每個(gè)非類型形參前面必須帶上類型名字。21、模板對(duì)類型的參數(shù)化提供了很好的支持,因此()。A、類模板的主要作用是生成抽象類B、類模板實(shí)例化時(shí),編譯器將根據(jù)給出的模板實(shí)參生成一個(gè)類C、在類模板中的數(shù)據(jù)成員都具有同樣類型D、類模板中的成員函數(shù)都沒有返回值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查了類模板的概念。在定義對(duì)象的過程中,系統(tǒng)會(huì)自動(dòng)地根據(jù)需要生成相應(yīng)的類定義,這種依據(jù)類模板生成具體類的過程稱為類模板的實(shí)例化。國家二級(jí)C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共34題,每題1.0分,共34分。)1、在一棵二叉樹上,第5層的結(jié)點(diǎn)數(shù)最多是()。A、8B、9C、15D、16標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì):二叉樹第i(i>1)層上至多有2i-1個(gè)結(jié)點(diǎn)。得到第5層的結(jié)點(diǎn)數(shù)最多是16個(gè)。2、一個(gè)棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棧的順序是()。A、12345ABCDEB、EDCBA54321C、ABCDE12345D、54321EDCBA標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。所以出棧順序是EDCBA54321。3、有如下函數(shù)模板:template<classT>Tsquare(Tx){returnx,x;}其中T是()。A、函數(shù)形參B、函數(shù)實(shí)參C、模板形參D、模板實(shí)參標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)模板。聲明一個(gè)函數(shù)模板的格式是:template<模板形參表聲明>函數(shù)聲明,{函數(shù)體}其中的<模板形參表聲明>是由一個(gè)或多個(gè)“模板形參”組成的,每個(gè)“模板形參”可具有以下幾種形式:typename參數(shù)名;class參數(shù)名;類型修飾參數(shù)名。4、下面的描述中,正確的是()。A、virtual可以用來聲明虛函數(shù)B、含有純虛函數(shù)的類是不可以用來創(chuàng)建對(duì)象的,因?yàn)樗翘摶怌、即使基類的構(gòu)造函數(shù)沒有參數(shù),派生類也必須建立構(gòu)造函數(shù)D、靜態(tài)數(shù)據(jù)成員可以通過成員初始化列表來初始化標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在基類中用virtual聲明成員函數(shù)為虛函數(shù),所以A是正確的。純虛函數(shù)是在聲明虛函數(shù)時(shí)被“初始化”為0的虛函數(shù)。純虛函數(shù)是一種特殊的虛函數(shù),它沒有具體的實(shí)現(xiàn)。靜態(tài)數(shù)據(jù)成員函數(shù)只能在類外進(jìn)行初始化。5、結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括()。A、多元性B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為:自頂向下,逐步求精,模塊化和限制使用GOTO語句,其中不包括多態(tài)性。6、有如下程序:#includeusingnamespacestd;voidfl(int&x){x++;}voidf2(intx){++x;}intmain(){intx=10,y=12;f1(x);f2(y);cout<<x+y<<endl;return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、22B、23C、24D、25標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在函數(shù)f1(int&x){x++;}中,是對(duì)變量x的引用,所以當(dāng)在-main函數(shù)中執(zhí)行“fl(x);”語句后,變量x的值等于11,而在函數(shù)voidf2(intx){++x;)中,對(duì)變量x的傳遞調(diào)用,在main函數(shù)中執(zhí)行“f2(y);”語句后,變量y的值仍然等于12,所以輸出x+y的值等于23。7、在軟件開發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A、軟件集成測(cè)試計(jì)劃B、軟件詳細(xì)設(shè)計(jì)說明書C、用戶手冊(cè)D、軟件需求規(guī)格說明書標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在軟件開發(fā)過程中,需求分析階段產(chǎn)生的主要文檔是軟件需求規(guī)格說明書。8、兩個(gè)或兩個(gè)以上模塊之間關(guān)聯(lián)的緊密程度稱為()。A、耦合度B、內(nèi)聚度C、復(fù)雜度D、數(shù)據(jù)傳輸特性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:模塊的獨(dú)立性是指每個(gè)模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系較少且接口簡單。衡量軟件的模塊獨(dú)立性使用:內(nèi)聚性和耦合性兩個(gè)定性度量標(biāo)準(zhǔn)。內(nèi)聚性是對(duì)一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度的度量:耦合性是對(duì)模塊間互相連接的緊密程度的度量。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。9、有如下程序:#includeusingnamespacestd;classToy{public:Toy(char*一n){strcpy(name,一n);count++;)~Toy0{count一;)char*GetName0{returnname;}staticintgetCount0{returncount;)private:charname[10];staticintcount;);intToy::count=0;intmain(){Toytl(”Snoopy”),t2(”Mickey”),t3(”Barbie”);cout<<t1.getCount()<<endl;returnO:)運(yùn)行時(shí)的輸出結(jié)果是()。A、1B、2C、3D、運(yùn)行時(shí)出錯(cuò)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:類Toy中包含一個(gè)字符數(shù)組name和一個(gè)靜態(tài)整型變量count。在程序中首先給類Toy的成員count的賦初始值0,然后在主函數(shù)中,定義了三個(gè)Toy對(duì)象t1、t2、t3,并分別對(duì)它們的name字段賦值,在賦值的同時(shí)變量count的值加l,所以最后變量count的值等于3。10、有如下類定義:classSample{public;Sample(intx):ref(x){}∥①private:Sample():ref(0){)∥②staticintval=5;∥③constintref;∥④);上述程序段中,錯(cuò)誤的語句是()。A、①B、②C、③D、④標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:靜態(tài)整型數(shù)據(jù)不能定義為類的數(shù)據(jù)成員。11、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是()。A、自然連接B、差C、交D、并標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)系T中的元組是R關(guān)系中有而s關(guān)系中沒有的元組的集合,所以進(jìn)行的是差的運(yùn)算。12、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是()。A、自然連接B、差C、交D、并標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由三個(gè)關(guān)系R、S和T的結(jié)構(gòu)可以知道,關(guān)系T是由關(guān)系R、S經(jīng)過差運(yùn)算得到的。13、在下列橫線處應(yīng)添加的語句是()。classBase{public:voidfun(){cout<<"Base::fun"<<endl;}};classDerived:publicBase{public:voidfun(){//顯示調(diào)用基類的fun函數(shù)cout<<"Derived::fun"<<endl;}};A、Derived::funB、Base::fun();C、Pubic::funD、fun();標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是成員函數(shù)的調(diào)用。因?yàn)闄M線處的作用是調(diào)用基類的fun函數(shù),又因?yàn)榕缮愔幸灿衒un()函數(shù),所以必須對(duì)fun()函數(shù)加以限定,即Base::fun();。14、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語句的條件部分是一個(gè)表達(dá)式而不是語句,因此選項(xiàng)A敘述錯(cuò)誤。15、數(shù)據(jù)庫管理系統(tǒng)的基本功能不包括A、數(shù)據(jù)庫訪問B、數(shù)據(jù)庫定義C、數(shù)據(jù)庫的建立和維護(hù)D、數(shù)據(jù)庫和網(wǎng)絡(luò)中其他系統(tǒng)的通信標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)的主要功能包括:數(shù)據(jù)庫定義,數(shù)據(jù)操作,數(shù)據(jù)庫的運(yùn)行管理,數(shù)據(jù)組織、存儲(chǔ)與管理,數(shù)據(jù)庫的保護(hù),數(shù)據(jù)庫的維護(hù)和通信。數(shù)據(jù)庫不能和網(wǎng)絡(luò)中的其他系統(tǒng)通信。16、已知Value是一個(gè)類,Value是Value的一個(gè)對(duì)象。下列以非成員函數(shù)形式重載的運(yùn)算符函數(shù)原形中,正確的是()。A、Valueoperator+(ValueV,inti);B、Valueoperator+(ValueV=value,inti);C、Valueoperator+(Valuevinti=O);D、Valueoperator+(ValueV:value,inti=O);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是重載加法運(yùn)算符“+”?!?”是二元運(yùn)算符,其第一操作數(shù)是對(duì)象本身,i為第二操作數(shù),由此可知選項(xiàng)B正確。17、有如下程序:#inc1ude<iostream>usingnamespacestd;voidfl(int&x){x++;}voidf2(intx){++x;}intmain(){intx=10,y=12;f1(x);f2(y);cout<<x+y<<end1;return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、22B、23C、24D、25標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在函數(shù)fl(irit&x){XH,)中,是對(duì)變量x的引用,所以當(dāng)在maln函數(shù)中執(zhí)行“n(x);”語句后,變量x的值等于11,而在函數(shù)voidf2(intx){++x;)中,對(duì)變量x的傳遞調(diào)用,在main函數(shù)中執(zhí)行“f2(y);”語句后,變量y的值仍然等于12,所以輸出x+y的值等于23。18、若已經(jīng)聲明了函數(shù)原型“voidfun(inta,doubleb=0.0);”,則下列重載函數(shù)聲明中正確的是()。A、voidfun(inta=90,doubleb=0.0);B、intfun(inta,doubleb);C、voidfun(doublea,intb)D、boolfun(inta,doubleb=0.0);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)重載的原則就是至少要在參數(shù)個(gè)數(shù)或參數(shù)類型上有所不同,且如果函數(shù)只是函數(shù)類型不同的,而其他完全相同,也不能作為重載函數(shù)來使用。19、下列選項(xiàng)中,不是C++關(guān)鍵字的是()。A、classB、functionC、friendD、vinual標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:class、friend、virtual都是C+的關(guān)鍵字,而funtion是VB的關(guān)鍵字。20、若x和y是程序中的兩個(gè)整型變量,則下列if語句中正確的是()。A、if(x==0)y=1;elsey=2;B、if(x==0)theny=1elsey=2;C、if(x==0)y=1elsey=2;D、if(x==0)y=1;elsey=2;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:ifelse語句的形式為:if(<條件>)<語句1>else<語句2>所以符合以上形式的ifelse語句為選項(xiàng)A。21、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assPart{public:Part(intx=0):val(x){cout<<val;}~Part0{cout<<val;)private:intval,};c1assWhole{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)解析:此題考查的是類的構(gòu)造與析構(gòu)。建立類的對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類被繼承時(shí)聲明的順序(自左向右)接著執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類中聲明的順序,最后執(zhí)行自身的構(gòu)造函數(shù)。析構(gòu)順序與之相反。本題中,Whole類中有兩個(gè)Part類的成員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。22、下列關(guān)于類成員對(duì)象構(gòu)造函數(shù)調(diào)用順序的敘述中,正確的是()。A、與它們?cè)诔跏蓟斜碇械捻樞蛳嗤珺、與它們?cè)陬愔新暶鞯捻樞蛳嗤珻、與析構(gòu)函數(shù)的調(diào)用順序相同D、順序不確定標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類成員對(duì)象構(gòu)造函數(shù)的調(diào)用是按照在類中定義的順序進(jìn)行的,而不是按照構(gòu)造函數(shù)說明后的冒號(hào)順序進(jìn)行構(gòu)造的。23、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assTest{public:TestO{n+=2;}~Test0{n—=3;}staticintgetNum0{returnn;}private:staticintn;};intTest::n=1;intmain(){Test*p=newTest;deletep;cout<<"n="<Test::getNumO<<end1;retum0;}執(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ù)成員是類中所有對(duì)象共享的成員,而不是某個(gè)對(duì)象的成員。題目中的靜態(tài)數(shù)據(jù)成員n的運(yùn)算具有疊加性,執(zhí)行“n+—2”和“n——3”后n的值為0。24、有如下程序:#include<iostream>usingnamespacestd;classAA{intk;protected:intn;voidsetK(intk){this->k=k;}public:voidsetN(intn){this->n=n;}};classBB:publicAA{/*類體略*/};intmain(){BBx;x.n=1;//1x.setN(2);//2x.k=3;//3x.setK(4);//4return0;}在標(biāo)注號(hào)碼的四條語句中正確的是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:因?yàn)轭怋B公有繼承自類AA,所以AA中的保護(hù)成員和公有成員在類BB中仍是保護(hù)成員和公有成員。在選項(xiàng)B中調(diào)用了公有成員函數(shù)setN(intn){this->n=n;},對(duì)保護(hù)成員n進(jìn)行賦值操作。25、派生類的成員函數(shù)不能訪問基類的()。A、公有成員和保護(hù)成員B、公有成員C、私有成員D、保護(hù)成員標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)基類成員的訪問。派生類對(duì)基類的各個(gè)成員的訪問能力與繼承方式無關(guān),其成員不能訪問基類中的私有成員,可以訪問基類的公有成員和保護(hù)成員。26、有如下程序:#include<iostream>usingnamespacestd;classAA{public:AA(){cout<<’1’;}};classBB:publicAA{intk;public:BB():k(0){cout<<’2’;}BB(intn):k(n){cout<<’3’;}};intmain(){BBb(4),c;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、1312B、132C、32D、1412標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在基類AA的默認(rèn)構(gòu)造函數(shù)中,輸出字符‘1’,在繼承類BB的默認(rèn)構(gòu)造函數(shù)中,輸出字符‘2’,在帶有參數(shù)n的構(gòu)造函數(shù)中,輸出字符‘3’。在主函數(shù)中,在創(chuàng)建BB的對(duì)象b(4)時(shí),會(huì)首先調(diào)用基類AA的構(gòu)造函數(shù)輸出字符‘1’,再調(diào)用類BB帶參數(shù)的構(gòu)造函數(shù)輸出字符‘3’。在創(chuàng)建BB的對(duì)象c時(shí),會(huì)首先調(diào)用基類AA的構(gòu)造函數(shù)輸出字符‘1’,再調(diào)用類BB默認(rèn)的構(gòu)造函數(shù)輸出字符‘2’。所以程序輸出的結(jié)果為1312。27、有如下類定義:classSample{public;Sample(intx):ref(x){}//①private:Sample():ref(0){}//②staticintval=5;//③constintref;//④};上述程序段中,錯(cuò)誤的語句是()。A、①B、②C、③D、④標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:靜態(tài)整型數(shù)據(jù)不能定義為類的數(shù)據(jù)成員。28、在下列關(guān)鍵字中,不能用來表示繼承方式的是()。A、privateB、staticC、publicD、protected標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是繼承方式。繼承方式有私有(private)、保護(hù)(protected)、公有(public)三種。29、己知在一個(gè)類體中包含如下函數(shù)原型:VOLUMEoperator一(VOLUME)const;,下列關(guān)于這個(gè)函數(shù)的敘述中,錯(cuò)誤的是()。A、這是運(yùn)算符.的重載運(yùn)算符函數(shù)B、這個(gè)函數(shù)所重載的運(yùn)算符是一個(gè)一元運(yùn)算符C、這是一個(gè)成員函數(shù)D、這個(gè)函數(shù)不改變類的任何數(shù)據(jù)成員的值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符的重載。運(yùn)算符“一”有一元和二元兩種,在本題中它作為…個(gè)二元運(yùn)算符,所以它不能更新對(duì)象的數(shù)據(jù)成員,也不能調(diào)用該類中沒有const修飾的成員函數(shù)。30、若需要為XV類重載乘法運(yùn)算符,運(yùn)算結(jié)果為XV類型,在將其聲明為類的成員函數(shù)時(shí),下列原型聲明正確的是()。A、XVoperator*(XV,XV);B、XV*(XV);C、operator*(XV);D、XVoperator*(XV);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:“*”是一個(gè)二元運(yùn)算符,在作為成員函數(shù)重載時(shí)參數(shù)表中只有一個(gè)參數(shù),對(duì)應(yīng)于第二個(gè)操作數(shù),而第一個(gè)操作數(shù)就是對(duì)象本身,僅以this指針的形式隱藏在參數(shù)表中。31、下列函數(shù)模版中的定義中,合法的是()。A、temp1ate<typenameT>Tabs(Tx){returnx<0?—x:x;)B、temp1atec1ass<T>Tabs(Tx){returnx<0?—x:x;}C、temp1ateT<c1assT>abs(Tx){returnx<0?—x:x;}D、temp1ateTabs(Tx){retumx<0?—x:x;)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是函數(shù)模板。聲明一個(gè)函數(shù)模板的格式是:temp1ate<模板形參表聲明>函數(shù)聲明,其中的<模板形參表聲明>是由一個(gè)或多個(gè)“模板形參”組成的,每個(gè)“模板形參”可具有以下幾種形式:t)rpename參數(shù)名;class參數(shù)名;類型修飾參數(shù)名。32、關(guān)于運(yùn)算符重載,下列表述中正確的是()。A、C++已有的任何運(yùn)算符都可以重載B、運(yùn)算符函數(shù)的返回類型不能聲明為基本數(shù)據(jù)類型C、在類型轉(zhuǎn)換符函數(shù)的定義中不需要聲明返回類型D、可以通過運(yùn)算符重載來創(chuàng)建C++中原來沒有的運(yùn)算符標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載的概念。C++語言規(guī)定,“.”、’’*’’、’’->*’’、“::”和“?:”這五個(gè)運(yùn)算符不能被重載,故選項(xiàng)A錯(cuò)誤;運(yùn)算符函數(shù)的返回類型由該運(yùn)算符所組成的表達(dá)式的值的類型來決定,故選項(xiàng)B說法是錯(cuò)誤的:運(yùn)算符重載是針對(duì)原有運(yùn)算符,并不能通過重載創(chuàng)造出新的運(yùn)算符,故選項(xiàng)D錯(cuò)誤。33、當(dāng)使用ofstream流類定義—個(gè)流對(duì)象并打開一個(gè)磁盤文件時(shí),文件的默認(rèn)打開方式為()。A、ios_base::inB、ios_base::binaryC、ios_base::in|iosbase::out.D、ios_base::out標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:對(duì)于ofstream,默認(rèn)的打開方式是ios_base::out,ofstream只能用于輸出,它沒有提供任何用于輸入的操作。34、C++系統(tǒng)預(yù)定了4個(gè)用于標(biāo)準(zhǔn)數(shù)據(jù)流的對(duì)象,下列選項(xiàng)中不屬于此類對(duì)象的是()。A、coutB、cinC、cerrD、cset標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++流有4個(gè)預(yù)定義的流對(duì)象,它們分別是:ein標(biāo)準(zhǔn)輸入:cout標(biāo)準(zhǔn)輸出;cerr標(biāo)準(zhǔn)出錯(cuò)信息輸出;clog帶緩沖的標(biāo)準(zhǔn)出錯(cuò)信息輸出。國家二級(jí)C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共24題,每題1.0分,共24分。)1、下面敘述中正確的是()。A、線性表是線性結(jié)構(gòu)B、棧與隊(duì)列是非線性結(jié)構(gòu)C、線性鏈表是非線性結(jié)構(gòu)D、二叉樹是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:線性表是最簡單的、最常用的一種線性結(jié)構(gòu)。所謂線性鏈表指的是采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的線性表。棧和隊(duì)列其實(shí)是一種特殊的線性表。樹是—種簡單的非線性結(jié)構(gòu),二叉樹是樹的一種。2、某二叉樹共有12個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè)。則該二叉樹的深度為(根結(jié)點(diǎn)在第1層)()。A、3B、6C、8D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì),度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。題目中的二叉樹的葉子結(jié)點(diǎn)為1,因此度為2的結(jié)點(diǎn)的數(shù)目為0,故該二叉樹為12層,每層只有一個(gè)結(jié)點(diǎn)。3、在深度為7的滿二叉樹中,葉子結(jié)點(diǎn)的個(gè)數(shù)為A、32B、31C、64D、63標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:所謂滿二叉樹是指這樣的一種二叉樹:除最后一層外,每一層上的所有結(jié)點(diǎn)都有兩個(gè)子結(jié)點(diǎn)。也就是在滿二叉樹中,每一層上的結(jié)點(diǎn)數(shù)都是最大結(jié)點(diǎn)數(shù),即在滿二叉樹的第k層上有2k-1個(gè)結(jié)點(diǎn),且深度為m的滿二叉樹有2m-1個(gè)結(jié)點(diǎn)。對(duì)于深度為7的滿二叉樹,葉子結(jié)點(diǎn)所在的是第7層,一共有27-1=64個(gè)葉子結(jié)點(diǎn)。全部結(jié)點(diǎn)共27-1=127個(gè)。4、從工程管理角度看,軟件設(shè)計(jì)一般分為兩步完成,它們是()。A、概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)B、數(shù)據(jù)設(shè)計(jì)與接口設(shè)計(jì)C、軟件結(jié)構(gòu)設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)D、過程設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件設(shè)計(jì)是開發(fā)階段最重要的步驟。從工程管理的角度來看可分為兩步:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)是將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu),確定系統(tǒng)級(jí)接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫模式;詳細(xì)設(shè)計(jì)是指確立每個(gè)模塊的實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用適應(yīng)方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。從技術(shù)觀點(diǎn)來看,軟件設(shè)計(jì)包括軟件結(jié)構(gòu)設(shè)計(jì)(定義軟件系統(tǒng)各主要部件之間的關(guān)系)、數(shù)據(jù)設(shè)計(jì)(將分析時(shí)創(chuàng)建的模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu))、接口設(shè)計(jì)(描述軟件內(nèi)部、軟件與協(xié)作系統(tǒng)之間以及軟件與人之間如何通信)、過程設(shè)計(jì)(把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程)四個(gè)步驟。5、下列描述中正確的是()。A、軟件測(cè)試應(yīng)該由程序開發(fā)者來完成B、程序經(jīng)調(diào)試后一般不需要再測(cè)試C、軟件維護(hù)只包括對(duì)程序代碼的維護(hù)D、以上三種說法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:為了達(dá)到好的測(cè)試效果,應(yīng)該由獨(dú)立的第三方進(jìn)行測(cè)試工作。因?yàn)閺男睦韺W(xué)角度講,程序人員或設(shè)計(jì)方在測(cè)試自己的程序時(shí),要采取客觀的態(tài)度是會(huì)不同程度地存在障礙的,所以選項(xiàng)A錯(cuò)誤。在程序調(diào)試時(shí),修改了一個(gè)錯(cuò)誤的同時(shí)可能引入了新的錯(cuò)誤,解決的辦法是在修改了錯(cuò)誤之后,必須進(jìn)行回歸測(cè)試,所以選項(xiàng)B錯(cuò)誤。所謂軟件維護(hù),就是將交付的軟件投入運(yùn)行,并在運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充和刪改,所以選項(xiàng)C錯(cuò)誤。6、在E-R圖中,用來表示實(shí)體聯(lián)系的圖形是()。A、橢圓形B、矩形C、菱形D、三角形標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:構(gòu)成E.R圖的基本要素是實(shí)體型、屬性和聯(lián)系,其表示方法為:實(shí)體型(Entity)一用矩形表示;屬性(Attribute)一用橢圓形表示,聯(lián)系(Relationship)一用菱形表示,菱形框內(nèi)寫明聯(lián)系名。7、定義如下枚舉類型enum{Monday,Tuesday,Wednesday,Thrusday,Friday=2};則下列語句正確的是()。A、表達(dá)式Wednesday=Friday的值是trueB、Dayday;day=3C、Dayday;day=Mondday+3D、Dayday;day=Tuesday+10標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:enum<枚舉類型名>{<枚舉元素表>):其中:關(guān)鍵詞enum表示定義的是枚舉類型,枚舉類型名由標(biāo)識(shí)符組成,而枚舉元素表由枚舉元素或枚舉常量組成。其中enum{Monday,Tuesday,Wednesday,Thrusday,F(xiàn)riday=2}的值由0開始,即0,1,2,3。D中的本題中的枚舉類型中的數(shù)據(jù)值Wednesday為2,而Friday的值賦值為2,所以判斷Wednesday等于Friday的表達(dá)式值為真,即true。即選擇A。8、負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是A、數(shù)據(jù)定義語言B、數(shù)據(jù)管理語言C、數(shù)據(jù)操縱語言D、數(shù)據(jù)控制語言標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是數(shù)據(jù)操縱語言。9、下列語句中,正確的是()。A、char*myString="Hello-World!";B、charmyString="Hello-World!";C、charmyString[11]:="Hello-World!";D、charmyString[12]="Hello-World!";標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)于B來說,會(huì)造成溢出,對(duì)于C和D來說同樣如此,因?yàn)椤癏ello-world!”一個(gè)是12個(gè)字符組成,加上空字符一共13個(gè),所以都會(huì)造成溢出,只有A是將字符串的地址賦給字符型指針。10、已知數(shù)組arr的定義如下:intarr[5]={1,2,3,4,5};下列語句中輸出結(jié)果不是2的是()。A、cout<<*arr+1<<end1;B、cout<<*(arr+1)<<end1;C、cout<<arr[1]<<end1;D、cout<<*art<<end1;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)橐痪S數(shù)組arr[5]的首地址是第一數(shù)組元素的地址,所以選項(xiàng)D)中,輸出*arr的值就是數(shù)組arr[5]中第一數(shù)組元素l。其他選項(xiàng)都輸出數(shù)組arr[5]的第二元素2。11、下列是重載乘法運(yùn)算符的函數(shù)原型聲明,其中錯(cuò)誤的是()。A、MyClassoperator*(double,double);B、MyClassoperator*(double,MyClass);C、MyClassoperator*(MyClass,double);D、MyClassoperator*(MyClass,MyClass);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載。本題中,選項(xiàng)A重載運(yùn)算符"*"使用的形參是兩個(gè)double,而系統(tǒng)中的"*"運(yùn)算原本就能計(jì)算兩個(gè)double,所以這樣違反了重載函數(shù)的原則,當(dāng)執(zhí)行a*b這樣的表達(dá)式時(shí),系統(tǒng)不能識(shí)別是否執(zhí)行運(yùn)算符重載函數(shù)。故答案是A選項(xiàng)。12、已知函數(shù)fun的原型為intfun(int,int,int);下列重載函數(shù)原型中錯(cuò)誤的是()。A、charfun(int,int);B、doublefun(int,int,double);C、intfun(int.char*);D、floatfun(int,int,int);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:重載函數(shù)至少要在參數(shù)個(gè)數(shù)或參數(shù)類型上不同。而選項(xiàng)D中的函數(shù)與原函數(shù)只是函數(shù)類型不同,而其他完全相同(參數(shù)個(gè)數(shù)及類型),則不能作為重載函數(shù)來使用。13、下列關(guān)于函數(shù)重載的敘述中,錯(cuò)誤的是()。A、重載函數(shù)的參數(shù)個(gè)數(shù)可以不同B、重載函數(shù)的參數(shù)類型可以不向C、重載函數(shù)的返回值類型必須不同D、重載函數(shù)的參數(shù)個(gè)數(shù)或參數(shù)類型必須有所不同標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:兩個(gè)或兩個(gè)以上的函數(shù),具有相同的函數(shù)名,但是形參的個(gè)數(shù)或者類型不同,編譯器根據(jù)實(shí)參和形參的類型及個(gè)數(shù)進(jìn)行最佳匹配,自動(dòng)確定調(diào)用哪個(gè)函數(shù),這就是函數(shù)的重載。14、下列選項(xiàng)中,正確的C++標(biāo)識(shí)符是()。A、6_groupB、group~6C、age+3D、_group_6標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++中標(biāo)識(shí)符的命名遵循如下規(guī)則:不能是C++關(guān)鍵字,第一個(gè)字母必須是字母或下劃線,中間不能有空格,變量名中不能包括“.”、“;”、“,”、“’”、“"”+-之類的特殊符號(hào)。總之標(biāo)識(shí)符中除了能使用26個(gè)英文大小寫字母和數(shù)字外,只能使用下劃線“”。15、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assSamp1e{friendlongfun(Samp1es);public:Samp1e(longa){x=a;}private:longx;);longfun(Samp1es){if(s.x<2)return1:returns.x*fun(Samp1e(s.x—1)):}intmain(){intsum=0;for(int1=0;1<6;1++){sum+=fun(Samp1e(i));}cout<<sum,returnO;}運(yùn)行時(shí)輸出的結(jié)果是()。A、120B、16C、154D、34標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是友元函數(shù)和遞歸函數(shù)。因?yàn)閒un函數(shù)是Samp1e類的友元函數(shù),所以fun函數(shù)可以直接訪問Samp1e類對(duì)象的私有成員x。主函數(shù)調(diào)用fun函數(shù),構(gòu)造參數(shù)為0~5。當(dāng)n小于2時(shí),fun函數(shù)返回1,其余返回值為n*fun(n—l)。n取0—5的值時(shí)fun(n)依次為1,1,2,6,24,120,累加結(jié)果為154。16、有如下程序:#include<iostream>usingnamespacestd;classBASE{public:~BASE(){cout<<’’BASE’’;}};classDERiVED:publicBASE{public:~DERIVED(){tout<<’’DERiVED’’;}};intmain(){DERIVEDx;return0;}執(zhí)行后的輸出結(jié)果是()。A、BASEB、DERIVEDC、BASEDERlJVEDD、DERIVEDBASE標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是派生類的定義和使用。當(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ù)的順序正好相反。17、以下關(guān)鍵字不能用來聲明類的訪問權(quán)限的是()。A、publicB、staticC、protectedD、private標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是類的訪問權(quán)限。在C++語言中,類的訪問權(quán)限有公有、保護(hù)和私有三種。故本題選B。18、有如下程序:#include<iostream>usingnamespacestd;classA{public:A(){cout<<"A";}~A(){cout<<"~A";}};classB:publicA{A*p;public:B(){cout<<"B";p=newA();}~B(){cout<<"~B";deletep;}};intmain(){Bobj;return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、BAA~B~AB、ABA~B~A~AC、BAA~B~A~AD、ABA~A~B~A標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)象的構(gòu)造與析構(gòu)。建立派生類對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類的構(gòu)造函數(shù),一調(diào)用順序按照各個(gè)基類被定義時(shí)聲明的順序(自左向右)->執(zhí)行成員對(duì)象的構(gòu)造函數(shù);調(diào)用順序按照各個(gè)成員對(duì)象在類中聲明的順序->執(zhí)行派生類的構(gòu)造函數(shù)。所以本題在建立派生類B的對(duì)象obj是會(huì)先調(diào)用基類A的構(gòu)造函數(shù),然后調(diào)用自身的構(gòu)造函數(shù)。注意:B類中定義的成員p是A類的指針而不是一個(gè)對(duì)象,故在調(diào)用自身構(gòu)造函數(shù)前不需要構(gòu)造。而在B類構(gòu)造函數(shù)中使用new操作符動(dòng)態(tài)地構(gòu)造了一個(gè)A類的對(duì)象,所以整個(gè)構(gòu)造結(jié)果是輸出:ABA。派生類對(duì)象的析構(gòu)與構(gòu)造嚴(yán)格相反,即先析構(gòu)自身,然后析構(gòu)自身所包含的成員對(duì)象,最后調(diào)用基類的析構(gòu)函數(shù)。故本題中當(dāng)main()函數(shù)返回時(shí),析構(gòu)B類的對(duì)象obj:首先調(diào)用~B(),接著再調(diào)用~A()因?yàn)樵凇獴()函數(shù)中釋放了動(dòng)態(tài)創(chuàng)建的A類對(duì)象,故整個(gè)析構(gòu)所輸出的結(jié)果是~B~A~A。所以這個(gè)程序輸出結(jié)果為ABA~B~A~A。19、有如下程序:#include<iostream>usingnamespacestd;classBase{public:Base(intx=0):valB(x){cout<<valB;}~Base(){cout<<valB;}private:intvalB;};classDerived:publicBase{public:Derived(intx=0,inty=0):Base(x),valD(y){cout<<valD;}~Derived(){cout<<valD;}private:intvalD;};in.tmain(){Derivedobj12(2,3);return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、2332B、2323C、3232D、3223標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在主函數(shù)中創(chuàng)建類Derived對(duì)象obj12(2,3)時(shí),因?yàn)轭怐erived是從基類Base派生而來,所以首先調(diào)用基類的構(gòu)造函數(shù);輸出2,再調(diào)用派生類構(gòu)造函數(shù),輸出3。當(dāng)主函數(shù)運(yùn)算結(jié)果時(shí),首先調(diào)用派生類的析構(gòu)函數(shù),輸出3,再調(diào)用基類的析構(gòu)函數(shù)輸出2。所以輸出結(jié)果為2332。20、有如下程序:#includeusingnamespacestd;classBoat;classCar{public:Car(inti):weight(i){)friendintTotal(constCar&c,constBoat&b);//①private:intweight;};classBoat{public:Boat(inti):weight(i){)friendintTotal(constCar&c,constBoat&b);private:intweight;};intTotal(constCar&c,constBoat&b){//②returnc.weight+b.weight;}intmain(){Carc(10);Boatb(8);cout<<"Thetotalweightis"<A、程序編譯正確B、程序編譯時(shí)語句①出錯(cuò)C、程序編譯時(shí)語句②出錯(cuò)D、程序編譯時(shí)語句③出錯(cuò)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序中定義了類car和類Boat,在兩個(gè)類中分別定義他們的構(gòu)造函數(shù)和友元函數(shù)銜end。程序在vC6.0中編譯通過。21、下列關(guān)于運(yùn)算符重載的敘述中,正確的是()。A、通過運(yùn)算符重載,可以定義新的運(yùn)算符B、有的運(yùn)算符只能作為成員函數(shù)重載C、若重載運(yùn)算符+,則相應(yīng)的運(yùn)算符函數(shù)名是+D、重載一個(gè)二元運(yùn)算符時(shí),必須聲明兩個(gè)形參標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載。C++中,“=”、“[]”、“()”、“->”以及所有的類型轉(zhuǎn)換符只能作為成員函數(shù)重載,故B選項(xiàng)正確;運(yùn)算符重載只是賦予已有的運(yùn)算符多重含義,并不是定義新的運(yùn)算符;運(yùn)算符函數(shù)的函數(shù)名就是在運(yùn)算符前加上關(guān)鍵字operator。22、下列控制對(duì)齊方式的操作符中,錯(cuò)誤的是()。A、internalB、centerC、leftD、right標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:對(duì)齊方式的控制操作符left的含義是在設(shè)定的寬度內(nèi)左對(duì)齊輸出,右端填己設(shè)定的填充字符;right(此為默認(rèn)設(shè)置)在設(shè)定的寬度內(nèi)右對(duì)齊輸出:internal在設(shè)定的寬度內(nèi)右對(duì)齊輸出,但若有符號(hào)(一或+),符號(hào)置于最左端。23、在語句“cout<<’A’:”中,cout是()。A、類名B、對(duì)象名C、函數(shù)名D、C++的關(guān)鍵字標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C++有四個(gè)預(yù)定義的流對(duì)象:cin標(biāo)準(zhǔn)輸,cout標(biāo)準(zhǔn)輸出,cerr標(biāo)準(zhǔn)出錯(cuò)信息輸出,clog帶緩沖的標(biāo)準(zhǔn)出錯(cuò)信息輸出。24、有如下程序:#include#includeusingnamespacestd;intmain(){cout<A、##OK123B、##OK#123C、OK##123D、OK##123#標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:setfill是設(shè)置填充字符,setw設(shè)置輸出的寬度,它們的作用表現(xiàn)在緊接著輸出的字符串上。這個(gè)寬度是填充后的寬度。所以cout<國家二級(jí)C++機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共21題,每題1.0分,共21分。)1、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指()。A、存儲(chǔ)在外存中的數(shù)據(jù)B、數(shù)據(jù)所占的存儲(chǔ)空間量C、數(shù)據(jù)在計(jì)算機(jī)中的順序存儲(chǔ)方式D、數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在對(duì)數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系,即為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。2、下列關(guān)于二叉樹的敘述中,正確的是()。A、葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)少一個(gè)B、葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè)C、葉子結(jié)點(diǎn)數(shù)是度為2的結(jié)點(diǎn)數(shù)的兩倍D、度為2的結(jié)點(diǎn)數(shù)是度為1的結(jié)點(diǎn)數(shù)的兩倍標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由二叉樹的性質(zhì)可以知道在二叉樹中葉子結(jié)點(diǎn)總是比度為2的結(jié)點(diǎn)多一個(gè)。3、有如下程序:#includeusingnamespacestd;intmain(){inti,s=0;for(i=l;s<20;i+=2)s+=i*i;cout<<i<<endl;return0:)運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、3B、5C、7D、9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在這段程序中for循環(huán)共執(zhí)行3次,每次循環(huán)變量i的值增2,在執(zhí)行第二次循環(huán)語句時(shí),變量s的值等于25,大于20而退出循環(huán),此時(shí)再執(zhí)行循環(huán)變量i加2運(yùn)算,所以最后變量i的值等于7。4、已知數(shù)組aft的定義如下:intarr[5]={1,2,3,4,5);下列語句中輸出結(jié)果不是2的是()。A、cout<<*arr+1<B、cout<<*(art+1)<C、cout<D、cout<<*art<標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)橐痪S數(shù)組arr[5]的首地址是第一數(shù)組元素的地址,所以選項(xiàng)D中,輸出*arr的值就是數(shù)組arr[5]中第一數(shù)組元素1。其他選項(xiàng)都輸出數(shù)組arr[5]的第二元素2。5、T列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是A、順序存儲(chǔ)的有序線性表B、線性鏈表C、二叉鏈表D、有序線性鏈表標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二分法查找只適應(yīng)于順序存儲(chǔ)的有序表。有序表是指線性表中的元素按值非遞減排序(即從小到大,但允許相鄰元素值相等)的表。6、有如下類的定義,橫線處的語句是()。classTestClass{_______intx,y;public:TestClass(inta=0,intb=0){x=a:y=b;}staticvoidchange(){y-=10;y-=10;}};A、publicB、privateC、staticD、protected標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:因?yàn)閟taticvoidchange()為靜態(tài)函數(shù),靜態(tài)函數(shù)主要訪問靜態(tài)數(shù)據(jù),不訪問非靜態(tài)數(shù)據(jù)。所以函數(shù)中訪問了數(shù)據(jù)y,所以下劃線的數(shù)據(jù)類型應(yīng)對(duì)應(yīng)為static。7、軟件生命周期可分為定義階段,開發(fā)階段和維護(hù)階段。詳細(xì)設(shè)計(jì)屬于()。A、定義階段B、開發(fā)階段C、維護(hù)階段D、上述三個(gè)階段標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查軟件生命周期的相關(guān)概念.通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個(gè)時(shí)期都屬于軟件生命周期。一般包括可行性研究與需求分析、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、交付使用以及維護(hù)等活動(dòng)。還可以將軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段。8、下列關(guān)于構(gòu)造函數(shù)的描述中,錯(cuò)誤的是()。A、構(gòu)造函數(shù)可以設(shè)置默認(rèn)的參數(shù)B、構(gòu)造函數(shù)在定義類對(duì)象時(shí)自動(dòng)執(zhí)行C、構(gòu)造函數(shù)可以是內(nèi)聯(lián)函數(shù)D、構(gòu)造函數(shù)不可以重載標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在一個(gè)類中可以定義多個(gè)構(gòu)造函數(shù),以便對(duì)類對(duì)象提供不同的初始化的方法,供用戶選用。這些構(gòu)造函數(shù)具有相同的名字,而參數(shù)的個(gè)數(shù)或參數(shù)的類型不相同。9、在黑盒測(cè)試方法中,設(shè)計(jì)測(cè)試用例的主要根據(jù)是()。A、程序內(nèi)部邏輯B、程序外部功能C、程序數(shù)據(jù)結(jié)構(gòu)D、程序流程圖標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:黑盒測(cè)試法指的是根據(jù)程序的外部功能,把程序本身看成一個(gè)黑盒子,設(shè)計(jì)測(cè)試用例來驗(yàn)證程序外部功能的正確性。10、有如下程序:#include<iostream>usingnamespacestd;inti=1;classFun{public:staticinti;intvalue(){returni-1;}intvalue()const{returni+1;}};intFun::i=2;intmain(){inti=3;Funfun1;constFunfun2;______________return0;}若程序的輸出結(jié)果是:123則程序中橫線處的語句是()。A、cout<<fun1.value()<<Fun::i<<fun2.value();B、cout<<Fun::i<<fun1.value()<<fun2.value();C、cout<<fun1.value0<<fun2.value()<<Fun::i;D、cout<<fun2.Value()<<Fun::i<<fun1.value();標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題因?yàn)槎x的變量i是static類型的(main()函數(shù)內(nèi)部的i只是一個(gè)局部變量),所以,選項(xiàng)A)中fun1.value()的返回值是1,.Fun::i引用的是外部變量會(huì)輸出2;fun2.value();會(huì)調(diào)用常成員函數(shù)intvalue()const{retuni+1;}使得外部靜態(tài)變量i的值增加為3,故輸出3。11、下列描述中錯(cuò)誤的是()。A、在數(shù)據(jù)庫系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致B、數(shù)據(jù)庫技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題C、數(shù)據(jù)庫設(shè)計(jì)是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫D、數(shù)據(jù)庫系統(tǒng)需要操作系統(tǒng)的支持標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在數(shù)據(jù)庫系統(tǒng)中,物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)、存取方式等)的改變,如存儲(chǔ)設(shè)備的更換、物理存儲(chǔ)的更換、存取方式改變等都不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化。12、在滿足實(shí)體完整性約束的條件下()。A、一個(gè)關(guān)系中應(yīng)該有一個(gè)或多個(gè)候選關(guān)鍵字B、一個(gè)關(guān)系中只能有一個(gè)候選關(guān)鍵字C、一個(gè)關(guān)系中必須有多個(gè)候選關(guān)鍵字D、一個(gè)關(guān)系中可以沒有候選關(guān)鍵字標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在關(guān)系數(shù)據(jù)庫中,實(shí)體完整性的概念是主屬性不能為空。在滿足實(shí)體完整性的前提下,必須在關(guān)系中存在主屬性,也就是在關(guān)系中應(yīng)該有候選關(guān)鍵字。一個(gè)關(guān)系中可以有一個(gè)或者多個(gè)候選關(guān)鍵字。13、有如下類定義: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ù)。14、下列字符串中,正確的C++標(biāo)識(shí)符是()。A、foo-1B、2bC、newD、256標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是C++語言中標(biāo)識(shí)符的定義。標(biāo)識(shí)符由字母、數(shù)字或下劃線構(gòu)成,但第一個(gè)字符必須是字母或下劃線;標(biāo)識(shí)符中大小寫字母是不同的;用戶定義標(biāo)識(shí)符時(shí),不允許采用系統(tǒng)的關(guān)鍵字。15、字符串“a+b=12\n\t”的長度為()。A、12B、10C、8D、6標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:題目給出的字符串含有7個(gè)字符,再加字符串的結(jié)束字符,所以共8個(gè)字符。16、由關(guān)系R1和R2得到關(guān)系R3的操作是A、等值連接B、并C、笛卡爾積D、交標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:等值連接是關(guān)系運(yùn)算.連接運(yùn)算的一種常用的連接方式。是條件連接(或稱0連接)在連接運(yùn)算符為“=”號(hào)時(shí),即θ=0時(shí)的一個(gè)特例。17、有如下程序:#includeusingnamespacestd;voidf1(int&x,int&y){intz=x;x=y;y=z;}voidf2(intx,inty){intz=x;x=y;y=z;}intmain(){intx=10,y=26;f1(x,y);f2(x,y);cout<A、10B、16C、26D、36標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:子函數(shù)f1中的形參是引用變量,所以執(zhí)行子函數(shù)實(shí)現(xiàn)了變量x,y值的交換,變量x的值等于26,而變量y的值等于10。而子函數(shù)f2中的形參是普通變量,因?yàn)镃++的函數(shù)之間的參數(shù)傳遞是傳值,所以執(zhí)行函數(shù)f2不能實(shí)現(xiàn)變量x,y值的交換。18、若有如下類聲明classMyClass{public:MyClass(){cout<<1;}};執(zhí)行下列語句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è)MyClass對(duì)象指針的數(shù)組p,所以一共創(chuàng)建了3個(gè)MyClass類的對(duì)象,即調(diào)用了3次構(gòu)造函數(shù)。19、有如下兩個(gè)類定義classxx{private:dOublex1;protected:doublex2;public:doublex3;};classYY:protectedXX{private:doubley1;potected:doubley2;public:doubley3;};在類YY中保護(hù)成員變量的個(gè)數(shù)是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C++中派生類從基類保護(hù)繼承時(shí),基類的公有成員在派生類中改變?yōu)楸Wo(hù)成員,基類的保護(hù)成員在派生類中仍為保護(hù)成員。所以對(duì)于本題來說,YY類保護(hù)繼承自類XX,那么類XX中的公有成員x3和保護(hù)成員x2在派生類中都成為保護(hù)成員,再加上類YY。中的保護(hù)成員y2,因此在派生類YY中保護(hù)成員的個(gè)數(shù)為3。20、下列關(guān)于類成員對(duì)象構(gòu)造函數(shù)調(diào)用順序的敘述中,正確的是()。A、與它們?cè)诔跏蓟斜碇械捻樞蛳嗤珺、與它們?cè)陬愔新暶鞯捻樞蛳嗤珻、與析構(gòu)函數(shù)的調(diào)用順序相同D、順序不確定標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類成員對(duì)象構(gòu)造函數(shù)的調(diào)用是按照在類中定義的順序進(jìn)行的,而不是按照構(gòu)造函數(shù)說明后的冒號(hào)順序進(jìn)行構(gòu)造的。21、在定義一個(gè)類模板時(shí),模板形參表是用一對(duì)括號(hào)括起來的,所采用的括號(hào)是()。A、()B、[]C、<>D、{)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:聲明一個(gè)類模板的格式是:template<<模板形參聲明>><類聲明>。國家二級(jí)C++機(jī)試(選擇題)模擬試卷第5套一、選擇題(本題共20題,每題1.0分,共20分。)1、一個(gè)棧的初始狀態(tài)為空?,F(xiàn)將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棧的順序是()。A、12345ABCDEB、EDCBA54321C、ABCDE12345D、54321EDCBA標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。所以出棧順序是EDCBA54321。2、有如下程序段:運(yùn)行時(shí)的輸出結(jié)果是()。A、44B、41C、88D、81標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:這個(gè)程序定義了全局整型對(duì)象i和j,其值分別等于4和1。而在主函數(shù)中定義了局部整型對(duì)象i和j,i值賦予8,再把i值賦給j,接著輸出i和j的值,所以其結(jié)果為88。這個(gè)題目要注意的一點(diǎn)是,全局整型對(duì)象i和j和主函數(shù)中定義了局部整型對(duì)象i和j,在計(jì)算機(jī)內(nèi)存中表示的是不同的存儲(chǔ)單元。它們的值是獨(dú)自存放的,互相不同。3、設(shè)循環(huán)隊(duì)列的存儲(chǔ)空間為Q(1:35),初始狀態(tài)為front=rear=35?,F(xiàn)經(jīng)過一系列入隊(duì)與退隊(duì)運(yùn)算后,front=15,reaF15,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為()。A、15B、16C、20D、0或35標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列的隊(duì)頭指針和尾指針都等于15,此循環(huán)隊(duì)列中元素的個(gè)數(shù)有兩種情況,第一種情況是隊(duì)頭指針和尾指針都是第一次到達(dá)15,此時(shí)元素個(gè)數(shù)為O:第二種情況是隊(duì)頭指針第一次到達(dá)l5,而尾指針第二次到達(dá)15,此時(shí)元素個(gè)數(shù)為35。4、某二叉樹有5個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)是()。A、10B、8C、6D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。5、有如下程序:#include<iostream>usingnamespacestd;classTestClass{protected:TestClass(){cout<<’x’;}TestClass(charc){cout<<c;}};classTestClass1:publicTestClass{public:TestClass1(charc){cout<<c;}};intmain(){TestClass1d1(’y’);return0:}執(zhí)行這個(gè)程序,屏幕上將顯示輸出()。A、yB、yxC、xyD、yy標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序中的類TestClass為基類,TestClass1為TestClass的派生類。由:main主函數(shù)入手,定義TestClass1類型的對(duì)象d1,參數(shù)值為’y’。TestClass1類繼承TestClass,所以主函數(shù)中“TestClass1d1(’y’);”語句首先調(diào)用調(diào)用基類中的“TestClass(){cout<<’x’;}”輸出x,然后調(diào)用“TestClass1(charc){cout<<c;}”輸出y,即答案為“xy”。6、下列有關(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ān)鍵字inline來定義C、內(nèi)聯(lián)函數(shù)是通過編譯器來實(shí)現(xiàn)的D、內(nèi)聯(lián)函數(shù)函數(shù)體的最后一條語句必須是return語句標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是內(nèi)聯(lián)函數(shù)的概念。在調(diào)用時(shí),內(nèi)聯(lián)函數(shù)會(huì)像宏函數(shù)一樣的展開,將調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)體來替換所以它沒有一般函數(shù)的參數(shù)壓棧和和退棧操作,所以選項(xiàng)A錯(cuò)誤;即使沒有使用。inline說明,編譯器也會(huì)將在類的說明部分定義的函數(shù)認(rèn)定為內(nèi)聯(lián)函數(shù),所以選項(xiàng)B錯(cuò)誤;內(nèi)聯(lián)函數(shù)只是比普通函數(shù)有更高的執(zhí)行效率,所以選項(xiàng)D錯(cuò)誤。7、若PAT是一個(gè)類,則程序運(yùn)行時(shí),語句“PAT{*ad)[3];”調(diào)用PAT的構(gòu)造函數(shù)的次數(shù)是()。A、0B、1C、2D、3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:語句“PAT(*ad)[3]”定義了含有3個(gè)元素的指向類PP/T類型的指針數(shù)組ad。8、有如下程序:#ncludeusingnamespacestd;classVAC{public;intf()const{return3;}intf(){return5;)};Intmain(){VACvl;constVACv2;cout<A、53B、35C、55D、33標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是常成員函數(shù)的應(yīng)用。VAC類中說明了兩個(gè)函數(shù),一個(gè)是常成員函數(shù),一個(gè)是普通函數(shù):在主函數(shù)中說明了兩個(gè)對(duì)象,通過普通對(duì)象vl調(diào)用的是普通函數(shù),輸出5;通過常對(duì)象V2調(diào)用的是常成員函數(shù),輸出3。9、下列符號(hào)中不屬于C++關(guān)鍵字的是()。A、friendB、namespaceC、continueD、byte標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是C++語言的關(guān)鍵字。Friend是聲明友元函數(shù)或友元類時(shí)用到的關(guān)鍵字;namespace是定義或使用名字空間時(shí)用到的關(guān)鍵字;continue是終止本次循環(huán)直接開始下一次循環(huán)所用到的關(guān)鍵字;byte是字節(jié)的意思,它不是C++語言中的關(guān)鍵字。10、若x和y是程序中的兩個(gè)整型變量,則下列if語句中正確的是()。A、if(x==0)y=1;elsey=2;B、if(x==0)theny=1elsey=2;C、if(x==0)y=1elsey=2;D、if(x==0)y=1;elsey=2;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:ifelse語句的形式為:if(<條件>)<語句1>else<語句2>所以符合以上形式的ifelse語句為選
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國彎接管數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025━2030年特釀酒行業(yè)深度研究報(bào)告
- 2025-2035年全球及中國液袋行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及發(fā)展前景研究報(bào)告
- 2025-2035年全球及中國便攜食品包裝行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及發(fā)展前景研究報(bào)告
- 酒店防暴演練培訓(xùn)
- 2025年皮手套及皮革制衣著附件項(xiàng)目建議書
- 2025年頻率測(cè)量儀表項(xiàng)目發(fā)展計(jì)劃
- 聚焦大概念的單元整體設(shè)計(jì)與教學(xué)-新課程下的數(shù)學(xué)教學(xué)改革研究報(bào)告
- 2025年臨床前研究服務(wù)項(xiàng)目合作計(jì)劃書
- 預(yù)防楊柳絮火災(zāi)
- GB/T 13734-2008耳穴名稱與定位
- 10419設(shè)計(jì)調(diào)查課件1
- 松濤水利樞紐設(shè)計(jì)
- 兒童青少年同伴關(guān)系評(píng)級(jí)量表
- 機(jī)械基礎(chǔ) 第2版全書電子教案
- 電磁閥基礎(chǔ)知識(shí)培訓(xùn)課件
- 壓鑄車間生產(chǎn)管理制度
- 場(chǎng)地清理檢驗(yàn)批質(zhì)量驗(yàn)收及記錄
- 鋼軌超聲波探傷PPT
- (完整版)生產(chǎn)機(jī)加工件工藝流程圖
- Revit基礎(chǔ)入門課件(PPT 126頁)
評(píng)論
0/150
提交評(píng)論