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

下載本文檔

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

文檔簡介

國家二級(jí)C++機(jī)試(選擇題)模擬試卷42(共4套)(共87題)國家二級(jí)C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共23題,每題1.0分,共23分。)1、下列關(guān)于棧的敘述中,正確的是()。A、棧底元素一定是最后入棧的元素B、棧頂元素一定是最先入棧的元素C、棧操作遵循先進(jìn)后出的原則D、以上三種說法都不對(duì)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧是限定只能在表的一端進(jìn)行插入和刪除操作的線性表,必須按“后進(jìn)先出”的規(guī)則操作元素。2、下列哪項(xiàng)不是面向?qū)ο蟪绦蛟O(shè)計(jì)的主要特征()。A、封裝B、繼承C、多態(tài)D、結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn):標(biāo)識(shí)惟一性,分類性,多態(tài)性,封裝性,模塊獨(dú)立性好。3、下列敘述中正確的是()。A、順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)一定是連續(xù)的,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的B、順序存儲(chǔ)結(jié)構(gòu)只針對(duì)線性結(jié)構(gòu),鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)只針對(duì)非線性結(jié)構(gòu)C、順序存儲(chǔ)結(jié)構(gòu)能存儲(chǔ)有序表,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)不能存儲(chǔ)有序表D、鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)比順序存儲(chǔ)結(jié)構(gòu)節(jié)省存儲(chǔ)空間標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:順序存儲(chǔ)方式主要用于線性的數(shù)據(jù)結(jié)構(gòu),它把邏輯上相鄰的數(shù)據(jù)元素存儲(chǔ)在物理上相鄰的存儲(chǔ)單元里,結(jié)點(diǎn)之間的關(guān)系由存儲(chǔ)單元的鄰接關(guān)系來體現(xiàn)。而鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間不一定是連續(xù)的。4、下列定義語句中,錯(cuò)誤的是()。A、intpx*;B、char木acp[10];C、char(*pac)[10];D、int(*p)();標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:指針變量聲明的一般形式為:<數(shù)據(jù)類型>*<變量名>,在選項(xiàng)A)中,*放存變量名的后而,所以是錯(cuò)誤的。5、字面常量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或l來指定無符號(hào)整數(shù)或長整數(shù)來存儲(chǔ);對(duì)于實(shí)型字面常量,C++將自動(dòng)按照雙精度數(shù)來存儲(chǔ),也可以通過在實(shí)型字面常量后添加f來指定按單精度數(shù)存儲(chǔ)。6、下面敘述中錯(cuò)誤的是()。A、軟件測(cè)試的目的是發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤B、對(duì)被調(diào)試的程序進(jìn)行“錯(cuò)誤定位”是程序調(diào)試的必要步驟C、程序調(diào)試通常也稱為DebugD、軟件測(cè)試應(yīng)嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。軟件測(cè)試要嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性。程序調(diào)試通常也稱Debug,對(duì)被調(diào)試的程序進(jìn)行“錯(cuò)誤”定位是程序調(diào)試的必要步驟。7、在黑盒測(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)證程序外部功能的正確性。8、有如下類定義:classTest{chara;constcharb;public:Test(charc){a=c;b=c;}‖第1行voidf(chara)const{this->a=a;}‖第2行voidg(charb){this->b-b;}‖第3行charh0const{returna;>‖第4行};編譯時(shí)沒有錯(cuò)誤的行是()。A、第1行B、第2行C、第3行D、第4行標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:類Test中的常成員函數(shù)h()返回?cái)?shù)據(jù)成員a的值。9、有如下函數(shù)模板:template<typenameT.typenameU>Tcast(Uu){returnu;}其功能是將U類型數(shù)據(jù)轉(zhuǎn)換為T類型數(shù)據(jù)。已知i為int型變量,下列對(duì)模板函數(shù)cast的調(diào)其功能是將U類型數(shù)據(jù)轉(zhuǎn)換為T類型數(shù)據(jù)。已知i為int型變量,下列對(duì)模板函數(shù)cast的調(diào)用中正確的是()。A、cast(i);B、cast<>(i);C、cast<char*,int>(i);D、cast<double,int>(i);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:選項(xiàng)D)是將double類型的數(shù)據(jù)轉(zhuǎn)化成int類型的數(shù)據(jù),正確。10、在下面的類定義中,錯(cuò)誤的語句是()。classSample{public:Sample(intval);∥①~Sample();∥②private:inta=2.5:∥③Sample();∥④};A、①②③④B、②C、③D、①②③標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:③是錯(cuò)誤的,因?yàn)樵陬愺w內(nèi),不允許對(duì)所定義的數(shù)據(jù)成員進(jìn)行初始化;其他語句構(gòu)造和析構(gòu)函數(shù)的定義都是正確的。11、派生類的對(duì)象對(duì)它的基類成員中()是可以訪問的。A、公有繼承的公有成員B、公有繼承的私有成員C、公有繼承的保護(hù)成員D、私有繼承的公有成員標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:只要是派生類,都可以叢基類中繼承,除非把基類的構(gòu)造函數(shù)定義為私有的,這樣派生類無法構(gòu)造。12、有如下程序:#includeusingnamespacestd;classA{public:A(inti){x=i;}voiddispa(){cout<A、10,2B、12,10C、12,2D、2,2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考企的是派生類的構(gòu)造。主函數(shù)中,首先聲明B類的對(duì)象b,執(zhí)行進(jìn)入B的構(gòu)造函數(shù)B(inti)阿接著執(zhí)行A的構(gòu)造函數(shù)A(inti),形參i為12,x被賦值12;通過對(duì)象b淵用其成員函數(shù)dispb(),輸出結(jié)果12;接著執(zhí)行函數(shù)dispb()的第2條語句輸出2,然后主函數(shù)結(jié)束。13、有如下程序:#inc1ude<iostream>usingnamespacestd;intmain(){intsum;for(inti=0;i<6;i+=3){sum=i;for(intj=i;j<6;j++)sum+=j;}cout<<sum<<end1;retum0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、3B、10C、12D、15標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由題干可以知道,外層循環(huán)會(huì)進(jìn)行兩次,且第一次的結(jié)果我們可以不去理會(huì)和計(jì)算,讀者仔細(xì)觀察能發(fā)現(xiàn),在第一次的循環(huán)以后sum和j都會(huì)被重新賦值,所以外層第二次循環(huán)如下:此時(shí)i=3,sum=3內(nèi)層循環(huán)開始如下:j=3,j<6,sum=6;j=4,j<6,sum=10,j=5,j<6,sum=15,j=6退出內(nèi)層循環(huán)。得到sum=15。14、有如下程序:#includeusingnamespacestd;classA{public:virtualvoidfo{cout<<1;)voidgo{cout<<2;}};classB:publicA{public:virtualvoidf0{cout<<3;)voidgO{cout<<4;)};voidshow(A&a){a.f0;a.g0;)intmain(){Bb:show(b);return0:}運(yùn)行時(shí)的輸出結(jié)果是()。A、12B、34C、14D、32標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在派生類classB中對(duì)基類中的虛擬成員函數(shù)virtualvoidf()和實(shí)函數(shù)voidgO進(jìn)行了重新定義,在主函數(shù)中通過語句show(b);調(diào)用派生類中的虛函數(shù)virtualvoidf(){cout<<3;)輸出3,調(diào)用基類的實(shí)函數(shù)voidg(){cout<<2;)輸出2。所以選項(xiàng)D為正確答案。15、若有下面的函數(shù)調(diào)用:fun(a+b,3,max(n-1,b))則fun的實(shí)參個(gè)數(shù)是()。A、3B、4C、5D、6標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是函數(shù)的調(diào)用。C++中函數(shù)調(diào)用的一般形式為:函數(shù)名(實(shí)參表),其中實(shí)參表是用逗號(hào)分隔的一系列表達(dá)式。因此,本題中fun()函數(shù)的實(shí)參表由a+b、3和max(n-1,b)組成。16、為了提高函數(shù)調(diào)用的實(shí)際運(yùn)行速度,可以將較簡單的函數(shù)定義為()。A、內(nèi)聯(lián)函數(shù)B、重載函數(shù)C、遞歸函數(shù)D、函數(shù)模板標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++引入內(nèi)聯(lián)函數(shù)的原因是用它來取代C中的預(yù)處理宏函數(shù)。兩者的區(qū)別在于,宏函數(shù)是由預(yù)處理器對(duì)宏進(jìn)行替換,而內(nèi)聯(lián)函數(shù)是通過編譯器來實(shí)現(xiàn)的。內(nèi)聯(lián)函數(shù)在調(diào)用時(shí)像宏函數(shù)一樣展開,所以它沒有一般函數(shù)的參數(shù)壓棧和退棧操作,減少了調(diào)用開銷,因此,內(nèi)聯(lián)函數(shù)比普通函數(shù)有更高的執(zhí)行效率。17、下列關(guān)于this指針的敘述中,正確的是()。A、任何與類相關(guān)的函數(shù)都有this指針B、類的成員函數(shù)都有this指針C、類的友元函數(shù)都有this指針D、類的非靜態(tài)成員函數(shù)才有this指針標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是this指針的使用。類的每一個(gè)成員函數(shù)都有一個(gè)隱含的常量指針,即this指針。類的靜態(tài)成員函數(shù)不能含有this指針,因?yàn)閠his指針是一個(gè)指向本對(duì)象的指針。18、有如下類和對(duì)象的定義:classConstants{public;staticdoublegetPI(){return3.1416;}};Constantsconstants;下列各組語句中,能輸出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()是類Constants的靜態(tài)成員函數(shù)。引用靜態(tài)成員函數(shù)可以有兩種形式:一是通過類名直接進(jìn)行調(diào)用,例如類名::靜態(tài)成員函數(shù)名;另一種是用類的任何對(duì)象名進(jìn)行調(diào)用其作用僅是通過對(duì)象名間接的指出類名,例如constants.getPI()選項(xiàng)D即是這種調(diào)用方式。19、有如下程序:#include<iostream>Usingnamespacestd;classA{public:A(inti):r1(i){}vgidprint(){cout<<’E’<<r1<<’-’;}voidprint()const{cout<<’C’<<r1*r1<<’-’;}private:intr1;};intmain(){Aa1(2);constA.a(chǎn)2(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)解析:類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)用類的常成員函數(shù),而不能調(diào)用一般成員函數(shù)。而一般的對(duì)象,既可以調(diào)用一般成員函數(shù)也可以調(diào)用常成員函數(shù)。所以在本題中,當(dāng)執(zhí)行a1.print()時(shí),輸出為E2-,執(zhí)行a2.print()時(shí),輸出為c16-。20、有如下程序:#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;};intmain(){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。21、將前綴運(yùn)算符“——”重載為非成員函數(shù),下列原型中,能正確用于類中說明的是()。A、Decr&operator——(int);B、Decroperator——(Decr&,int);C、friendDecr&operator——(Decr&);D、friendDecroperator——(Decr&,int);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:因?yàn)橐鳛榉浅蓡T函數(shù)重載,所以加friend,作為前綴操作,其返回的操作結(jié)果是對(duì)該變量的引用,所以類型為Decr&,操作數(shù)出現(xiàn)在參數(shù)表中,應(yīng)聲明為引用,即Decr&。22、若為Fraction類重載前增1運(yùn)算符++,應(yīng)在類體中將其聲明為()。A、Fraction&operator++();B、Fraction&operator++(int);C、friendFraction&operator++();D、friendFraction&operator++(int);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在類Fraction中重載前增1運(yùn)算符++時(shí),其聲明形式為Fraction&operator++();在類Fraction中重載后增1運(yùn)算符十+時(shí),其聲明形式為Fraction&operatorH(int);。23、C++中的模板包括()。A、對(duì)象模板和函數(shù)模板B、對(duì)象模板和類模板C、函數(shù)模板和類模板D、變量模板和對(duì)象模板標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是模板。在C++語言中,模板有兩類:函數(shù)模板和類模板。國家二級(jí)C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共19題,每題1.0分,共19分。)1、下列數(shù)據(jù)結(jié)構(gòu)中,屬于非線性結(jié)構(gòu)的是()。A、循環(huán)隊(duì)列B、帶鏈隊(duì)列C、二叉樹D、帶鏈棧標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間的前后件關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類:線性結(jié)構(gòu)和非線性結(jié)構(gòu)。循環(huán)隊(duì)列、帶鏈隊(duì)列和帶鏈棧都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。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、下列對(duì)于線性鏈表的描述中正確的是A、存儲(chǔ)空間不一定連續(xù),且各元素的存儲(chǔ)順序是任意的B、存儲(chǔ)空間不一定連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面C、存儲(chǔ)空間必須連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面D、存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一般來說,在線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)序號(hào)是不連續(xù)的,并且各結(jié)點(diǎn)在存儲(chǔ)空間中的位置關(guān)系與邏輯關(guān)系也不一致。在線性鏈表中,各數(shù)據(jù)元素之間的前后件關(guān)系是由各結(jié)點(diǎn)的指針域來指示的,指向線性表中第一個(gè)結(jié)點(diǎn)的指針head稱為頭指針,當(dāng)head=NULL(或0)時(shí)稱為空表。4、通過運(yùn)算符重載,可以改變運(yùn)算符原有的()。A、操作數(shù)類型B、操作數(shù)個(gè)數(shù)C、優(yōu)先級(jí)D、結(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。5、已知函數(shù)f的原型是voidfi(int*a,long&b);,變量v1、v2的定義是:intv1;loongv2;下列調(diào)用語句中正確的是()。A、f(v1,&v2);B、f(v1,v2);C、f(&v1,&v2);D、f(&v1,v2);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是函數(shù)的調(diào)用。因?yàn)樽兞康亩x是imv1;longv2,而函數(shù)f()的第一個(gè)參數(shù)是指針,第二個(gè)參數(shù)是引用,所以選項(xiàng)D為正確引用。6、下面不屬于需求分析階段任務(wù)的是()。A、確定軟件系統(tǒng)的功能需求B、確定軟件系統(tǒng)的性能需求C、需求規(guī)格說明書評(píng)審D、制定軟件集成測(cè)試計(jì)劃標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:需求分析階段的工作可分為4個(gè)階段:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評(píng)審。7、若實(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)解析:由于B和C有一一對(duì)應(yīng)的聯(lián)系,而A和B只間有一對(duì)多的聯(lián)系,則通過關(guān)系之間的傳遞,則A和C之間也是一對(duì)多的聯(lián)系。8、有如下類聲明: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標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:因?yàn)樵诒Wo(hù)繼承的情況下,基類中的公有成員voidset(intn)和intget()const在派生類中是保護(hù)成員,再加上派生類自身的保護(hù)成員i,一共是三個(gè)保護(hù)成員。9、在一個(gè)派生類的成員函數(shù)中,試圖調(diào)用其基類的成員函數(shù)“voidf();”,但無法通過編譯。這說明()。A、f()是基類的私有成員B、f()是基類的保護(hù)成員C、派生類的繼承方式為私有D、派生類的繼承方式為保護(hù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在派生類對(duì)基類的三種繼承形式中,都無法對(duì)基類的私有成員訪問A正確。在B中,三種繼承方式都能訪問基類的保護(hù)成員,故B不正確。C選項(xiàng)的情況在f()是基類私有成員情況下是對(duì)的,但是還有別的可能,并不一定正確。同樣D也不一定正確。10、下列各組類型聲明符中,含義相同的一組是()。A、unsignedlongint和longB、signedshortint和shortC、unsignedshort和shortD、shortint和int標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是基本類型和派生型。C++語言中,基本類型的字長及其取值范圍可以放大和縮小,改變后的類型就叫做基本類型和派生類型。本題A選項(xiàng)中,unsignedlongint的省略形式為unsignedlong:選項(xiàng)B中,signedshortint的省略形式是short;選項(xiàng)C中,unsignedshort的省略形式是unsignedshort:選項(xiàng)D中,shortint的省略形式是short。11、在一棵二叉樹上,第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è)。12、下列關(guān)于派生類和基類的描述中,正確的是()。A、派生類成員函數(shù)只能訪問基類的公有成員B、派生類成員函數(shù)只能訪問基類的公有和保護(hù)成員C、派生類成員函數(shù)可以訪問基類的所有成員D、派生類對(duì)基類的默認(rèn)繼承方式是公有繼承標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:派生類不論是采用那種繼承方式繼承基類,它的成員函數(shù)只能訪問基類的公有成員和保護(hù)成員。13、有如下兩個(gè)類定義:classAA{};classBB{AAv1,*v2;BBv3:int*v4;};其中有一個(gè)成員變量的定義是錯(cuò)誤的,這個(gè)變量是()。A、vlB、v2C、v3D、v4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在定義類的數(shù)據(jù)成員時(shí),類中的數(shù)據(jù)成員可以是任意類型,包括整型、浮點(diǎn)型、字符符型、數(shù)組、指針和引用等,也可以是對(duì)象。但是要注意,只有另外一個(gè)類的對(duì)象,才可以作為該類的成員,即作為類的成員對(duì)象存在。自身類的對(duì)象是不可以作為自身類的成員存在,但自身類的指針可以。對(duì)于本題,在定義類BB時(shí),不能包括其對(duì)象v3。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、有如下程序:#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;語句cout<<pd->Geta()的功能是輸出8;語句deletepd;調(diào)用析構(gòu)函數(shù)~XCF(),輸出8;當(dāng)退出程序時(shí),分別釋放對(duì)象d2、d1,輸出55。16、有如下程序:#includeusingnamespacestd;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。17、若要對(duì)類BigNumber中重載的類型轉(zhuǎn)換運(yùn)算符long進(jìn)行聲明,下列選項(xiàng)中正確的是()。A、operatorlong()const;B、operatorlong(bigNumber);C、longoperatorlong()const;D、longoperatorlong(BjgNumber);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在重載類型轉(zhuǎn)換符時(shí),由于運(yùn)算符本身已經(jīng)表示出返回值類型,因此不需要返回值類型的聲明。18、要利用C++流實(shí)現(xiàn)輸入輸出的各種格式控制,必須在程序中包含的頭文件是()。A、fstreamB、istrearaC、ostreamD、iomanip標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:要使用setw、fixed等操作符,須包含iomanip這個(gè)文件。19、有如下程序:#inc1ude<iostream>#inc1ude<iomanip>usingnamespacestd;intmain(){cout<<setfill(’#’)<<setw(4)<<"OK"<<123<<endl;retum0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、##OK123B、##OK#123C、OK##123D、OK##123#標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:setfill是設(shè)置填充字符,setw設(shè)置輸出的寬度,它們的作用表現(xiàn)在緊接著輸出的字符串上。這個(gè)寬度是填充后的寬度。所以cout<<setfill(’#’)<<setw,(4)<<"OK"<<123中,setfill和setw只作用在"OK",表示在"OK"前面填充2個(gè)≠≠撐。國家二級(jí)C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列選項(xiàng)中,不屬于模塊間耦合的是()。A、內(nèi)容耦合B、異構(gòu)耦合C、控制耦合D、數(shù)據(jù)耦合標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:耦合可以分為下列幾種,它們之間的耦合度由高到低排列:內(nèi)容耦合一一若一個(gè)模塊直接訪問另一模塊的內(nèi)容,則這兩個(gè)模塊稱為內(nèi)容耦合。公共耦合一一若一組模塊都訪問同一全局?jǐn)?shù)據(jù)結(jié)構(gòu),則稱為公共耦合。外部耦合一一若一組模塊都訪問同一全局?jǐn)?shù)據(jù)項(xiàng),則稱為外部耦合。控制耦合一一若一模塊明顯地把開關(guān)量、名字等信息送入另一模塊,控制另一模塊的功能,則稱為控制耦合。標(biāo)記耦合一一若兩個(gè)以上的模塊都需要其余某一數(shù)據(jù)結(jié)構(gòu)的子結(jié)構(gòu)時(shí),不使用其余全局變量的方式而全使用記錄傳遞的方式,這樣的耦合稱為標(biāo)記耦合。數(shù)據(jù)耦合一一若一個(gè)模塊訪問另一個(gè)模塊,被訪問模塊的輸入和輸出都是數(shù)據(jù)項(xiàng)參數(shù),則這兩個(gè)模塊為數(shù)據(jù)耦合。非直接耦合一一若兩個(gè)模塊沒有直接關(guān)系,它們之間的聯(lián)系完全是通過程序的控制和調(diào)用來實(shí)現(xiàn)的,則稱這兩個(gè)模塊為非直接耦合,這樣的耦合獨(dú)立性最強(qiáng)。2、模板對(duì)類型的參數(shù)化提供了很好的支持,因此()。A、類模板的主要作用是生成抽象類B、類模板實(shí)例化時(shí),編譯器將根據(jù)給出的模板實(shí)參生成一個(gè)類C、在類模板中的數(shù)據(jù)成員都具有同樣類型D、類模板中的成員函數(shù)都沒有返回值標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查類模板的基本概念。類模板的定義和聲明都以關(guān)鍵字template開頭。關(guān)鍵字后面是一個(gè)用逗號(hào)分隔的模板參數(shù)表,用尖括號(hào)“<>”括起來,這個(gè)表被稱為類模板的模板參數(shù)表。類模板是類的抽象,類是類模板的實(shí)例。類模板使類中的一些數(shù)據(jù)成員和成員函數(shù)的參數(shù)或返回值可以取任意的數(shù)據(jù)類型。所以B選項(xiàng)正確。3、下列關(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è)。4、在軟件開發(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ī)格說明書。5、有如下程序:#includeusingnamespacestd;classPart{public:Part(intx=0):val(x){cout<<val;}-Part(){cout<<val;)private:intval;);classWhole{public:Whole(intx,inty,intz=O):p2(x),pl(y),val(z){cout<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)造的是pl(y),輸出2;第二個(gè)被構(gòu)造的是p2(x),輸出1;最后調(diào)用析構(gòu)函數(shù),輸出val的值3;析構(gòu)函數(shù)調(diào)用順序與構(gòu)造函數(shù)相反。故最后輸出213312。6、下面屬于黑盒測(cè)試方法的是()。A、語句覆蓋B、邏輯覆蓋C、邊界值分析D、路徑覆蓋標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:采用黑盒技術(shù)設(shè)計(jì)測(cè)試用例的方法有:等價(jià)類劃分、邊界值分析、錯(cuò)誤推測(cè)、因果圖和綜合策略。7、數(shù)據(jù)庫系統(tǒng)的三級(jí)模式不包括()。A、概念模式B、內(nèi)模式C、外模式D、數(shù)據(jù)模式標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫系統(tǒng)的三級(jí)模式包括概念模式、外模式和內(nèi)模式(物理模式)。8、數(shù)據(jù)庫設(shè)計(jì)中反映用戶對(duì)數(shù)據(jù)要求的模式是()。A、內(nèi)模式B、概念模式C、外模式D、設(shè)計(jì)模式標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:概念模式,是由數(shù)據(jù)庫設(shè)計(jì)者綜合所有用戶的數(shù)據(jù),按照統(tǒng)一的觀點(diǎn)構(gòu)造的全局邏輯結(jié)構(gòu),是對(duì)數(shù)據(jù)庫中全部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的總體描述,是所有用戶的公共數(shù)據(jù)視圖(全局視圖)。它是由數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)模式描述語言(DataDescriptionLanguage,DDL)來描述、定義的,體現(xiàn)、反映了數(shù)據(jù)庫系統(tǒng)的整體觀。外模式對(duì)應(yīng)于用戶級(jí),它是某個(gè)或某幾個(gè)用戶所看到的數(shù)據(jù)庫的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式是從模式導(dǎo)出的一個(gè)子集,也稱為子模式或用戶模式。它是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式,它反映了用戶對(duì)數(shù)據(jù)的要求。包含模式中允許特定用戶使用的那部分?jǐn)?shù)據(jù),用戶可以通過外模式描述語言來描述、定義對(duì)應(yīng)于用戶的數(shù)據(jù)記錄(外模式),也可以利用數(shù)據(jù)操縱語言(DataManipulationLanguage,DML)對(duì)這些數(shù)據(jù)記錄進(jìn)行描述。內(nèi)模式,對(duì)應(yīng)于物理級(jí),它是數(shù)據(jù)庫中全體數(shù)據(jù)的內(nèi)部表示或底層描述,是數(shù)據(jù)庫最低一級(jí)的邏輯描述,它描述了數(shù)據(jù)在存儲(chǔ)介質(zhì)上的存儲(chǔ)方式和物理結(jié)構(gòu),對(duì)應(yīng)著實(shí)際存儲(chǔ)在外存儲(chǔ)介質(zhì)上的數(shù)據(jù)庫。內(nèi)模式由內(nèi)模式描述語言來描述、定義,它是數(shù)據(jù)庫的存儲(chǔ)觀。9、一間宿舍可住多個(gè)學(xué)生,則實(shí)體宿舍和學(xué)生之間的聯(lián)系是()。A、一對(duì)一B、一對(duì)多C、多對(duì)一D、多對(duì)多標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:兩個(gè)實(shí)體集間的聯(lián)系可以有下面幾種:一對(duì)一的聯(lián)系、一對(duì)多或多對(duì)一的聯(lián)系和多對(duì)多的聯(lián)系。由于一個(gè)宿舍可以住多個(gè)學(xué)生,所以它們的聯(lián)系是一對(duì)多聯(lián)系。10、下列關(guān)于C++函數(shù)的敘述中,正確的是()。A、每個(gè)函數(shù)至少要具有一個(gè)參數(shù)B、每個(gè)函數(shù)都必須返回一個(gè)值C、函數(shù)在被調(diào)用之前必須先聲明D、函數(shù)不能自己調(diào)用自己標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)的性質(zhì)。當(dāng)調(diào)用無參函數(shù)時(shí)主函數(shù)并不將數(shù)據(jù)傳送給被調(diào)函數(shù),且可以帶回或不帶回函數(shù)值。函數(shù)的遞歸調(diào)用就是直接或間接的調(diào)用自己。11、下列有一維數(shù)組a的定義中,語法正確的是()。A、inta(10);B、intn=7,a[n];C、intn;cin>>n;inta[n];D、constintsize=10;inta[size];標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:定義一維數(shù)組的一般格式為:類型標(biāo)識(shí)符數(shù)組名[常量表達(dá)式]:常量表達(dá)式的值表示元素的個(gè)數(shù)。即數(shù)組長度。常量表達(dá)式中可以包括常量、常變量和符號(hào)常量,但不能包含變量。也就是說,c++不允許對(duì)數(shù)組的大小作動(dòng)態(tài)定義,即數(shù)組的大小不依賴于程序運(yùn)行過程中變量的值。12、下列關(guān)于類和對(duì)象的敘述中,錯(cuò)誤的是()。A、一個(gè)類只能有一個(gè)對(duì)象B、對(duì)象是類的具體實(shí)例C、類是對(duì)某一類對(duì)象的抽象D、類和對(duì)象的關(guān)系是一種數(shù)據(jù)類型與變量的關(guān)系標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是類和對(duì)象的概念。類是用戶定義的一種數(shù)據(jù)類型,可以使用這個(gè)類型來說明一個(gè)或多個(gè)變量,即對(duì)象。13、有如下兩個(gè)類定義:classAA{};classBB{AAv1,*v2;BBv3;int*v4;};其中有一個(gè)成員變量的定義是錯(cuò)誤的,這個(gè)變量是()。A、vlB、v2C、v3D、v4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在定義類的數(shù)據(jù)成員時(shí),類中的數(shù)據(jù)成員可以是任意類型,包括整型、浮點(diǎn)型、字符符型、數(shù)組、指針和引用等,也可以是對(duì)象。但是要注意,只有另外一個(gè)類的對(duì)象,才可以作為該類的成員,即作為類的成員對(duì)象存在。自身類的對(duì)象是不可以作為自身類的成員存在,但自身類的指針可以。對(duì)于本題,在定義類BB時(shí),不能包括其對(duì)象v3。14、有如下程序:#inc1ude<iostream>usingnamespacestd;classPoint{intx,y;public:Point(intxl=0,int’yl=0):x(xl),y(yl){}intget(){returnx+y;}};classCirc1e{Pointcenter;intradius;public:Circ1e(intcx,intcy,intr):center(cx,cy),radius(r){}intget(){retumcenter.get()+radius;}};intmain(){Circ1ec(3,4,5);cout<<c.get()<<endl;return0:}運(yùn)行時(shí)的輸出結(jié)果是()。A、5B、7C、9D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)類Point和類Circle的定義可知,類Circle的實(shí)例c(3,4,5)的成員函數(shù)c.get()返回值為3+4+5=12。15、有如下模板聲明:template<typenameT1,typenameT2>classA;下列聲明中,與上述聲明不等價(jià)的是()。A、template<classT1,classT2>classA;B、template<classT1,typenameT2>classA;C、template<typenameT1,classT2>classA;D、template<typenameT1,T2>classA;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在類模板中,數(shù)據(jù)類型本身成了它的參數(shù),因而是一種參數(shù)化類型的類,是類的生成器。聲明一個(gè)類模板的格式是:template<<模板形參表聲明>×類聲明>,<模板形參表聲明>是由一個(gè)或多個(gè)模板形參組成。對(duì)于本題來說,模板形參表中包括類型T1和T2兩個(gè)類型參數(shù),而在選項(xiàng)D中T1說明其類型,而T2沒有說明其類型,與題干中的模板說明不一致。16、有如下程序:#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)解析:類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。17、若字符指針p所指向的字符串為"abcdefg",在執(zhí)行語句()。char*ap=newchar[strlen(p)+1];之后,ap指向的字符數(shù)組的元素個(gè)數(shù)為A、9B、8C、7D、6標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:字符指針p所指向的字符串為"abcdefg",所以函數(shù)strlen(p)的值等于7,再加1,等于8。18、假設(shè)函數(shù)fun已經(jīng)定義,其原型為“voidfun(inta,intb=7,char*p="**");”下列函數(shù)調(diào)用中錯(cuò)誤的是()。A、fun(5)B、fun(5,8)C、fun(6,"##")D、fun(O,0,"==")標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)函數(shù)fun()的定義,其前兩個(gè)形參為整型變量,第三個(gè)形參為字符型變量。所以在調(diào)用時(shí),必須符合形參的數(shù)據(jù)類型,而選項(xiàng)C)的第二個(gè)實(shí)參的數(shù)據(jù)類型為字符串,不符合第二個(gè)形參的數(shù)據(jù)類型。19、有如下程序:#includeusingnamespacestd;classBase{public:virtualvoidfunction1(){cout<<’0’;}voidfunction2(){cout<<’1’;}};classDerived:publicBase{public:voidfunction1(){cout<<’2’;}voidfunction2(){cout<<’3’;}};intmain(){Base*p=newDerived();p->function1();p->function2();return0;};運(yùn)行時(shí)的輸出結(jié)果是()。A、01B、21C、03D、23標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)function1()在基類Base中定義為虛成員函數(shù),而在派生類Dervied中重新進(jìn)行了定義,輸出字符2,函數(shù)function2()在基類Base中定義虛成員函數(shù),在主函數(shù)中使用指向基類的指針變量p訪問function2()時(shí),輸出1。20、下列關(guān)于運(yùn)算符函數(shù)的描述中,錯(cuò)誤的是()。A、運(yùn)算符函數(shù)的名稱總是以operator為前綴B、運(yùn)算符函數(shù)的參數(shù)可以是對(duì)象C、運(yùn)算符函數(shù)只能定義為類的成員函數(shù)D、在表達(dá)式中使用重載的運(yùn)算符相當(dāng)于調(diào)用運(yùn)算符重載函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C++把重載的運(yùn)算符視為特殊的函數(shù),稱為運(yùn)算符函數(shù)。編譯系統(tǒng)能夠依據(jù)使用運(yùn)算符的不同環(huán)境,即參數(shù)(操作數(shù))的數(shù)量或類型的差異,區(qū)分同一運(yùn)算符的不同含義。運(yùn)算符函數(shù)作為非成員函數(shù)時(shí),所有的操作數(shù)必須出現(xiàn)在參數(shù)表中。21、下列運(yùn)算符中,不能被重載的是()。A、&&B、!=C、.D、++標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載。在C++中,只有.、.*、—>*、∷、?:這五個(gè)運(yùn)算符不能重載。22、下列關(guān)于運(yùn)算符重載的描述中,錯(cuò)誤的是()。A、可以通過運(yùn)算符重載在C++中創(chuàng)建新的運(yùn)算符B、賦值運(yùn)算符只能重載為成員函數(shù)C、運(yùn)算符函數(shù)重載為類的成員函數(shù)時(shí),第一操作數(shù)是該類對(duì)象D、重載類型轉(zhuǎn)換運(yùn)算符時(shí)不需要聲明返回類型標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:運(yùn)算符重載應(yīng)盡可能保持其原有的基本語義,而不是創(chuàng)建新的運(yùn)算符。重載的運(yùn)算符應(yīng)該體現(xiàn)為原運(yùn)算符的功能在新數(shù)據(jù)類型上的延伸,它的使用應(yīng)當(dāng)使程序中算法的表達(dá)式顯得更流暢、自然,使閱讀程序的人在不借助于其他說明資料的情況下就能夠正確理解。23、若要重載+、=、<<、==和[]運(yùn)算符,則必須作為類成員重載的運(yùn)算符是()。A、+和=B、=和<<C、==和<<D、=和[]標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:=、[]、()、—>以及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,而且不能是針對(duì)枚舉類型操作數(shù)的重載。24、有如下函數(shù)模板:temp1ate<c1assT>Tsquare(Tx){returnx*x;)其中T是()。A、函數(shù)形參B、函數(shù)實(shí)參C、模板形參D、模板實(shí)參標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)模板。聲明一個(gè)函數(shù)模板的格式是:temp1ate<模板形參表聲明>函數(shù)聲明,{函數(shù)體}其中的<模板形參表聲明>是由一個(gè)或多個(gè)“模板形參”組成的,每個(gè)“模板形參”可具有以下幾種形式:typename參數(shù)名;class參數(shù)名;類型修飾參數(shù)名。25、下列類模板的定義中語法格式錯(cuò)誤的是()。A、template<classT>classBuffer{/*…*}B、template<typenametT>classBuffer{/*…*/};C、template<classT1,classT2>classBuffer{/*…*/};D、template<T>classBuffer{/*…*}標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:定義類模板的一般形式是:template<類型名參數(shù)名1,類型名參數(shù)名2,…>class類名{類聲明體};模板的類型參數(shù)由關(guān)鍵字class或關(guān)鍵字。typename及其后的標(biāo)識(shí)符構(gòu)成。在模板參數(shù)表中關(guān)鍵字class和typename的意義相同。國家二級(jí)C++機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共20題,每題1.0分,共20分。)1、下列字符串中,不可以用作C++標(biāo)識(shí)符的是()。A、y_2006B、_TEST_HC、ReturnD、switch標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是標(biāo)識(shí)符。標(biāo)識(shí)符是由數(shù)字、字母以及下劃線構(gòu)成,其第一個(gè)字符必須是字母或下劃線,中間不能有空格;標(biāo)識(shí)符的長度是任意的,但由于編譯系統(tǒng)的限制一般不超過31個(gè)字符:標(biāo)識(shí)符中的大小寫字母是不同的;定義標(biāo)識(shí)符時(shí)不能采用系統(tǒng)的保留字。2、下列關(guān)于虛函數(shù)的說明中,正確的是()。A、從虛基類繼承的函數(shù)都是虛函數(shù)B、虛函數(shù)不得是靜態(tài)成員函數(shù)C、只能通過指針或引用調(diào)用虛函數(shù)D、抽象類中的成員函數(shù)都是虛函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在某基類中聲明為virtual并在一個(gè)或多個(gè)派生類中被重新定義的成員函數(shù)。虛函數(shù)必須是基類的非靜態(tài)成員函數(shù),其訪問權(quán)限可以是protected或public。如果一個(gè)類包含了純虛函數(shù),稱此類為抽象類。所以本題答案為B。3、下列敘述中正確的是()。A、棧是一種先進(jìn)先出的線性表B、隊(duì)列是一種后進(jìn)先出的線性表C、棧與隊(duì)列都是非線性結(jié)構(gòu)D、以上三種說法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧是先進(jìn)后出的線性表,隊(duì)列是先進(jìn)先出的線性表。二者均為線性結(jié)構(gòu)。4、下列對(duì)于線性鏈表的描述中正確的是()。A、存儲(chǔ)空間不一定連續(xù),且各元素的存儲(chǔ)順序是任意的B、存儲(chǔ)空間不一定連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面C、存儲(chǔ)空間必須連續(xù),且前件元素一定存儲(chǔ)在后件元素的前面D、存儲(chǔ)空間必須連續(xù),且各元素的存儲(chǔ)順序是任意的標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一般來說,在線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)序號(hào)是不連續(xù)的,并且各結(jié)點(diǎn)在存儲(chǔ)空間中的位置關(guān)系與邏輯關(guān)系也不一致。在線性鏈表中,各數(shù)據(jù)元素之間的前后件關(guān)系是由各結(jié)點(diǎn)的指針域來指示的,指向線性表中第一個(gè)結(jié)點(diǎn)的指針head稱為頭指針,當(dāng)head=NULL(或0)時(shí)稱為空表。5、一棵二叉樹中共有80個(gè)葉子結(jié)點(diǎn)與70個(gè)度為1的結(jié)點(diǎn),則該二叉樹中的總結(jié)點(diǎn)數(shù)為()。A、219B、229C、230D、231標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè),故總結(jié)點(diǎn)數(shù)=葉子節(jié)點(diǎn)數(shù)+度為2的節(jié)點(diǎn)數(shù)+度為1的節(jié)點(diǎn)數(shù)=80+79+70=229。6、程序執(zhí)行后的輸出結(jié)果是()。#include<iostream.h>voidmain(){charflag=’c’;switch(flag){case’a’:cout<<"1"<<endl:case’b’:cout<<"2"<<endl:break;case’c’:cout<<"3"<<endl:default:cout<<"4"<<endl:break;}}A、12B、23C、34D、45標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:因?yàn)閒lag=’c’,所以執(zhí)行cout<<"3"<<endl語句,由于沒有break短語,所以繼續(xù)執(zhí)行“cout<<"4"<<endl:break;”,語句輸出4。7、下列變量名中,合法的()。A、CHINAB、byte-sizeC、doubleD、A+a標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:變量的定義要符合標(biāo)識(shí)符的定義規(guī)則。選項(xiàng)B)byte-size中含有不合法的字符“-”;選項(xiàng)C)中的變量名是C++中的保留字;選項(xiàng)D)變量名中同樣含有非法的字符“+”;只有選項(xiàng)A)符合要求。8、在黑盒測(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)證程序外部功能的正確性。9、如果表達(dá)式一x/y中的“一”和“/”是作為友元函數(shù)重載的運(yùn)算符,采用運(yùn)算符函數(shù)調(diào)用格式,該表達(dá)式還可表示為()。A、operator/(x.operato--(),y);B、operator/(operator--(x),y);C、x.operator--().operator/(y);D、y.operator/(operator--(x));標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:運(yùn)算符重載實(shí)際上時(shí)函數(shù)的重載。重載運(yùn)算符的一般格式:函數(shù)類型operator運(yùn)算符名稱(參數(shù)表)。重載運(yùn)算符之后:函數(shù)operator+重載運(yùn)算符“+”?!耙弧敝剌d為“operator-;”,“/”重載為“operator/”。另外重載不能改變運(yùn)算的優(yōu)先級(jí),-x/y計(jì)算-x后,除以y,所以表達(dá)式改寫為:operator/(operator-(x),y);。10、有如下程序:#inc1ude<iostream>usingnamespacestd;intmain(){inti,s=0;for(i=1;s<20;1+=2)s+=i*i;cout<<i<<endl;retum0;}運(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。11、下列語句中,錯(cuò)誤的是()。A、constintbuffeF256;B、constdouble*point;C、intconstbuffer=256;D、double*constpoint;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是常指針和指針常量的概念。常指針是指向一個(gè)常量的指針變量,指針自身的內(nèi)容可以改變但指針指向的內(nèi)容不可以改變:指針常量是一個(gè)常量,即不能修改指針自身的內(nèi)容,但可以通過指針修改其所指向的內(nèi)容。D選項(xiàng)中指針常量point沒有初始化.編譯無法通過。12、假設(shè)函數(shù)fun已經(jīng)定義,其原型為“voidfun(inta,intb=7,char*p="**");”下列函數(shù)調(diào)用中錯(cuò)誤的是()。A、fun(5)B、fun(5,8)C、fun(6,"##")D、fun(0,0,"==")標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)函數(shù)fun()的定義,其前兩個(gè)形參為整型變量,第三個(gè)形參為字符型變

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論