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

下載本文檔

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

文檔簡介

國家二級C++機(jī)試(選擇題)模擬試卷23(共9套)(共215題)國家二級C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共21題,每題1.0分,共21分。)1、下列描述中正確的是A、線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B、棧與隊(duì)列是非線性結(jié)構(gòu)C、雙向鏈表是非線性結(jié)構(gòu)D、只有根結(jié)點(diǎn)的二叉樹是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)稱為線性鏈表。線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的基本單位稱為存儲(chǔ)結(jié)點(diǎn),每個(gè)存儲(chǔ)結(jié)點(diǎn)包括數(shù)據(jù)域和指針域兩個(gè)組成部分。各數(shù)據(jù)元素之間的前后件關(guān)系是由各結(jié)點(diǎn)的指針域來指示的,指向線性表中第一結(jié)點(diǎn)的指針HEAD稱為頭指針,當(dāng)HEAD=NULL時(shí)稱為空表。棧、隊(duì)列和雙向鏈表是線性結(jié)構(gòu),樹是一種簡單的非線性結(jié)構(gòu)。在樹這種數(shù)據(jù)結(jié)構(gòu)中,所有數(shù)據(jù)元素的關(guān)系具有明顯的層次特征。二叉樹是非線性結(jié)構(gòu)。線性結(jié)構(gòu)和非線性結(jié)構(gòu)是從數(shù)據(jù)的邏輯結(jié)構(gòu)角度來講的,與該數(shù)據(jù)結(jié)構(gòu)中有多少個(gè)元素沒有關(guān)系,即使是空的二叉樹也是非線性結(jié)構(gòu)。2、下列敘述中正確的是()。A、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)B、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)空間都是連續(xù)的C、線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的存儲(chǔ)空間可以是連續(xù)的,也可以是不連續(xù)的D、以上都不正確標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:線性表的存儲(chǔ)分為順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)。在順序存儲(chǔ)中,所有元素所占的存儲(chǔ)空間是連續(xù)的。而在鏈?zhǔn)酱鎯?chǔ)的方式中,將存儲(chǔ)空間的每一個(gè)存儲(chǔ)結(jié)點(diǎn)分為兩部分,一部分用于存儲(chǔ)數(shù)據(jù)元素的值,稱為數(shù)據(jù)域;另一部分用于存儲(chǔ)下一個(gè)元素的存儲(chǔ)序號,稱為指針域。所以線性表的鏈?zhǔn)酱鎯?chǔ)方式比順序存儲(chǔ)方式的存儲(chǔ)空間要大一些。3、下列函數(shù)原型聲明中,錯(cuò)誤的是()。A、intfunction(intm,intn);B、intfunction(int,int);C、intfunction(intm=3,intn);D、intfunction(int&m,int&n);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C++中,函數(shù)在使用之前要預(yù)先聲明。這種聲明在標(biāo)準(zhǔn)C++中稱為函數(shù)原型,函數(shù)原型給出了函數(shù)名、返回類型以及在調(diào)用函數(shù)時(shí)必須提供的參數(shù)個(gè)數(shù)和類型。其語法為:<返回類型><函數(shù)名>(<形參列表>);使用函數(shù)原型說明有兩種形式:①直接使用函數(shù)定義的頭部,并在后面加上一個(gè)分號;②在函數(shù)原型說明中省略參數(shù)列表中的形參變量名,僅給出函數(shù)名、函數(shù)類型、參數(shù)個(gè)數(shù)及次序。在選項(xiàng)C中,給出了形參變量m的初值。4、兩個(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)聚性是對一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度的度量:耦合性是對模塊間互相連接的緊密程度的度量。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。5、—個(gè)教師講授多門課程,一門課程由多個(gè)教師講授。則實(shí)體教師和課程間的聯(lián)系是()。A、1:1聯(lián)系B、1:m聯(lián)系C、m:1聯(lián)系D、m:n聯(lián)系標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:一個(gè)教師可講授多門課程,一門課程可由多個(gè)教師講授,則實(shí)體教師和課程的聯(lián)系是多對多的聯(lián)系。6、假定MyClass為一個(gè)類,則該類的拷貝初始化構(gòu)造函數(shù)的聲明語句為()。A、MyClass&(MyClassx);B、MyClass(MyClassx)C、MyClass(MyClass&x):D、MyClass(MyClass*x)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù)是一個(gè)特殊的構(gòu)造函數(shù),它用一個(gè)己知的對象初始化一個(gè)正在創(chuàng)建的同類對象,它的一般格式是:類名::類名(const類名&引用對象名)。7、字面常量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)是字面常量。對于整型字面常量,只要沒有超過C++中整數(shù)所能表示的范圍,C++將自動(dòng)按整數(shù)來存儲(chǔ)此數(shù),也可以通過在整型字面常量后添加u或l來指定無符號整數(shù)或長整數(shù)來存儲(chǔ);對于實(shí)型字面常量,C++將自動(dòng)按照雙精度數(shù)來存儲(chǔ),也可以通過在實(shí)型字面常量后添加f來指定按單精度數(shù)存儲(chǔ)。8、派生類的對象對它的基類成員中()是可以訪問的。A、公有繼承的公有成員B、公有繼承的私有成員C、公有繼承的保護(hù)成員D、私有繼承的公有成員標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:只要是派生類,都可以叢基類中繼承,除非把基類的構(gòu)造函數(shù)定義為私有的,這樣派生類無法構(gòu)造。9、有如下程序:#includeusingnamespacestd;classPair{intm;intn;public:Pair(inti,intj):m(i),n(j){}booloperator>(Pajrp)const;∥須在類體外給出定義};intmain(){Pairp1(3,4),p2(4,3),p3(4,5);cout<<(p1>p2)<<(p2>p1)<的功能是比較兩個(gè)Pair對象的大小,當(dāng)左邊對象大時(shí),返回true,否則返回false。比較規(guī)則是首先比較兩對象的m成員,m大者為大:當(dāng)m相等時(shí)比較n,n大者為大。程序輸出0101,下列對運(yùn)算符重載函數(shù)的正確定義是()。A、boolPair∷operator>(Pairp)const{if(m!=p.In)returnm>p.m;returnn>p.n;}B、boolPair∷operator>(Pair.p){if(m!=p.m)retumm>p.m;return>p.n;}C、boolPair∷operator>(Pairp)const{if(m>p.m)retumtrue;returnn>p.n;}D、boolPair∷operator>(Pairp){if(m>p.m)returntrue;returnn>p.n;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:按照比較規(guī)則:首先比較兩對象的m成員,m大者為大:當(dāng)m相等時(shí)比較n,n大者為大。這條規(guī)則的用C++寫出來就是選項(xiàng)A。10、計(jì)算斐波那契數(shù)列第n項(xiàng)的函數(shù)定義如下:intfib(intn){if(n==0)return1;elseif(n=1)return2;elsereturnfib(n-1)+fib(n-2);}若執(zhí)行函數(shù)調(diào)用表達(dá)式fib(2),函數(shù)fib被調(diào)用的次數(shù)是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:斐波那契數(shù)列是遞歸函數(shù),所以fib(2)=fib(1)+fib(0)=2+1=3。因而執(zhí)行函數(shù)調(diào)用表達(dá)式fib(2)時(shí),函數(shù)fib被調(diào)用的次是2次。11、下列關(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)用自己。12、已知類MyClass聲明如下:classMyClass{intn;public:MyClass(intk):n(k){}intgetValueoconst{returnn;}};在下列數(shù)組定義中正確的是()。A、MyClassx1[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)解析:考查韻是對象數(shù)組。選項(xiàng)A中在建立對象數(shù)組時(shí)也同樣需要調(diào)用構(gòu)造函數(shù):選項(xiàng)B和D的類型不匹配,B中不能將指針傳給非指針,D中是將非指針傳給指針。13、如需要向一個(gè)二進(jìn)制文件尾部添加數(shù)據(jù),則該文件的打開方式為()。A、ios_base::appB、ios_base::binary|ios—base::outC、ios—base::outD、ios_base::binary|ios_base::app標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:iosbase::binary模式是作為二進(jìn)制文件打開,iosbase::app模式是作為添加數(shù)據(jù)而打開(總是在尾部寫)。14、在一個(gè)派生類的成員函數(shù)中,試圖調(diào)用其基類的成員函數(shù)"voidf();",但無法通過編譯。這說明()。A、f()是基類的私有成員B、f()是基類的保護(hù)成員C、派生類的繼承方式為私有D、派生類的繼承方式為保護(hù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在派生類對基類的三種繼承形式中,都無法對基類的私有成員訪問A正確。在B中,三種繼承方式都能訪問基類的保護(hù)成員,故B不正確。C選項(xiàng)的情況在f()是基類私有成員情況下是對的,但是還有別的可能,并不一定正確。同樣D也不一定正確。15、下列有關(guān)繼承和派生的敘述中,正確的是()。A、派生類不能訪問基類的保護(hù)成員B、作為虛基類的類不能被實(shí)例化C、派生類應(yīng)當(dāng)向基類的構(gòu)造函數(shù)傳遞參數(shù)D、虛函數(shù)必須在派生類中重新實(shí)現(xiàn)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是繼承和派生。無論使用哪種繼承方式,派生類中的成員都不能訪問基類中的私有成員,而可以訪問基類中的公有成員和保護(hù)成員,所以選項(xiàng)A錯(cuò)誤;C++中只有抽象類不能被實(shí)例化,而虛基類不一定非得是抽象類。所以選項(xiàng)B錯(cuò)誤;在派生類中可以重新定義從基類繼承下來的虛函數(shù),也可以不重新定義,故選項(xiàng)D錯(cuò)誤。16、有如下程序;#inc1ude<iostream>usingnamespacestd;c1assBase{public:voidoutput0{cout<<1;}virtualvoidPrint0{cout<<’B’;}};c1assDerived:publicBase{public:voidoutput(){cout<<2;}voidPrint(){cout<<’D’;}};intmain(){Base*ptr=newDerived;ptr—>output();ptr—>Print();deleteptr;retum0;}程序的輸出結(jié)果是()。A、1BB、1DC、2BD、2D標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是虛函數(shù)與多態(tài)性。在成員函數(shù)的聲明前面加上virual關(guān)鍵字,即可把函數(shù)聲明為虛函數(shù);在C++中,一個(gè)基類指針可以用于指向它的派生類對象,而且通過這樣的指針調(diào)用虛函數(shù)時(shí),被調(diào)用的是該指針實(shí)際所指向的對象類的那個(gè)重定義版本。本題中,從基類的定義可以看出:output()函數(shù)是普通成員函數(shù),而Print()函數(shù)是虛函數(shù)。所以,通過ptr指針調(diào)用的output()是基類中的output(),而通過它調(diào)用的Print()則是派生類中的Print()。17、有如下的運(yùn)算符重載函數(shù)定義:doubleoperator+(inti,intk){returndouble(i+k);}但定義有錯(cuò)誤,對這個(gè)錯(cuò)誤最準(zhǔn)確的描述是()。A、+只能作為成員函數(shù)重載,而這里的+是作為非成員函數(shù)重載的B、兩個(gè)int型參數(shù)的和也應(yīng)該是int型,而這里將+的返回類型聲明為doubleC、沒有將運(yùn)算符重載函數(shù)聲明為某個(gè)類的友元D、C++已經(jīng)提供了求兩個(gè)int型數(shù)據(jù)s之和的運(yùn)算符+,不能再定義同樣的運(yùn)算符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符的重載。C++語言規(guī)定,不能作為非成員函數(shù)重載的運(yùn)算符有=、[]、()、->以及所有的類型轉(zhuǎn)換運(yùn)算符,故選項(xiàng)A錯(cuò)誤;運(yùn)算符重載對返回值類型沒有限制,故選項(xiàng)B錯(cuò)誤;C++并不強(qiáng)制要求非成員重載的運(yùn)算符一定是某個(gè)類的友元,所以c選項(xiàng)錯(cuò)誤;題目中重載的“+”運(yùn)算符的兩個(gè)參數(shù)都是int類型,而C++已經(jīng)提供了求兩個(gè)int型數(shù)據(jù)之和的運(yùn)算符+,編譯器無法區(qū)分應(yīng)該調(diào)用哪一個(gè),所以應(yīng)該選擇D選項(xiàng)。18、有如下程序:#include<iostream>usingnamespacestd;classBase{private:voidfun1()const{cout<<’’fun1’’;}protected:voidfun2()const{cout<<’’fun2’’;}public:voidfun3()const{cout<<’’fun3’’;}};classDerived:protectedBase{public:voidfun4()const{cout<<’’fun4";}};intmain(){Derivedobj;obj.funl();//①obj.fura();//②obj.fun3();//③obj.fun4();//④return0;}其中有語法錯(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類的對象只能夠訪問到Derived類的公有成員。19、下列關(guān)于函數(shù)模板的描述中,錯(cuò)誤的是()。A、從模板實(shí)參表和從模板函數(shù)實(shí)參表獲得信息矛盾時(shí),以模板實(shí)參的信息為準(zhǔn)B、對于常規(guī)參數(shù)所對應(yīng)的模板實(shí)參,任何情況下都不能省略C、虛擬類型參數(shù)沒有出現(xiàn)在模板函數(shù)的形參表中時(shí),不能省略模板實(shí)參D、模板參數(shù)表不能為空標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在調(diào)用一個(gè)模板函數(shù)時(shí),如果編譯系統(tǒng)能夠從模板實(shí)參表判斷其中或全部虛擬類型參數(shù)對應(yīng)的實(shí)際參數(shù),而且它們正好是參數(shù)表中最后的若干參數(shù),剛模板實(shí)參表中的那幾個(gè)參數(shù)可以省略。20、在定義一個(gè)類模板時(shí),模板形參表是用一對括號括起來的,所采用的括號是()。A、()B、[]C、<>D、{}標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:聲明一個(gè)類模板的格式是:temp1ate<<模板形參聲明>><類聲明>。21、在下列枚舉符號中,用來表示“相對于當(dāng)前位置”文件定位方式的是()。A、ios_base::curB、ios_base::begC、ios_base::outD、ios_base::end標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++流的定位方式(也就是指針移動(dòng)方式)有三種,被定義為ios_base::seekdir中的一組枚舉符號:ios_base::beg相當(dāng)于文件首;ios_base::cur相當(dāng)予當(dāng)前位置(負(fù)數(shù)表示當(dāng)前位置之前);ios_base::end相對于文件尾。國家二級C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共17題,每題1.0分,共17分。)1、按照“后進(jìn)先出”原則組織數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是A、隊(duì)列B、棧C、雙向鏈表D、二叉樹標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是限定在一端進(jìn)行插入與刪除的線性表。在棧中,允許插入與刪除的一端稱為棧頂,不允許插入與刪除的另一端稱為棧底。棧頂元素總是最后被插入的元素,也是最先被刪除的元素:棧底元素總是最先被插入的元素,也是最后才能被刪除的元素。即棧是按照“后進(jìn)先出”(LastInFirstOut,簡稱LIFO)或“先進(jìn)后出”(FirstInLastOut,簡稱FILO)的原則組織數(shù)據(jù)的。因此,棧也稱為“后進(jìn)先出表”或“先進(jìn)后出”表。2、以下程序的執(zhí)行結(jié)果是()。#include<iostream.h>classTcstClass2{public:TestClass2(){};TestClass2(inti,intj);voidprintb();private:inta,b;};classTestClass1{public:TestClass1(){}TestClass1(inti,intj);voidprinta();private:TestClass2c;};TestClass1::TestClass1(inti,intj):c(i,j){}voidTestClass1::printa(){c.printb();}TestClass2::TestClass2(inti,intj){a=i;b=j;}voidTestClass2::printb(){cout<<’’a="<<a<<’’,’’<<’’b=’’<<b<<end1;}voidmain(){TestClass1m(7,9);m.printa();}A、a=7,b=8B、a=8,b=7C、a=7,b=9D、a=8,b=9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由主函數(shù)main入手,定義了TestClassl的對象m,其中參數(shù)為7和9?!癿.printa();”中TestClass1中printa為“c.printb();”,其中c為TestClass2的對象,所以printb為TestClass2中的“voidTestClass2::printb()”,即輸出為“a=7,b=9”。3、下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法的是()。A、自頂向下B、逐步求精C、模塊化D、可復(fù)用標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)方法的主要原則可以概括為:自頂向下,逐步求精,模塊化,限制使用goto語句。自項(xiàng)向下是指程序設(shè)計(jì)時(shí)應(yīng)先考慮總體,后考慮細(xì)節(jié);先考慮全局目標(biāo),后考慮局部目標(biāo)。逐步求精是指對復(fù)雜問題應(yīng)設(shè)計(jì)一些子目標(biāo)過渡,逐步細(xì)化。模塊化是把程序要解決的總目標(biāo)先分解成分目標(biāo),再進(jìn)一步分解成具體的小目標(biāo),把每個(gè)小目標(biāo)稱為一個(gè)模塊??蓮?fù)用性是指軟件元素不加修改成稍加修改便可在不同的軟件開發(fā)過程中重復(fù)使用的性質(zhì)。軟件可復(fù)用性是軟件工程追求的目標(biāo)之一,是提高軟件生產(chǎn)效率的最主要方法,不屬于結(jié)構(gòu)化程序設(shè)計(jì)方法。4、兩個(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)聚性是對…個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度的度量;耦合性是對模塊間互相連接的緊密程度的度量。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。5、下列描述中正確的是()。A、軟件測試應(yīng)該由程序開發(fā)者來完成B、程序經(jīng)調(diào)試后一般不需要再測試C、軟件維護(hù)只包括對程序代碼的維護(hù)D、以上三種說法都不對標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:為了達(dá)到好的測試效果,應(yīng)該由獨(dú)立的第三方進(jìn)行測試工作。因?yàn)閺男睦韺W(xué)角度講,程序人員或設(shè)計(jì)方在測試自己的程序時(shí),要采取客觀的態(tài)度是會(huì)不同程度地存在障礙的,所以選項(xiàng)A錯(cuò)誤。在程序調(diào)試時(shí),修改了一個(gè)錯(cuò)誤的同時(shí)可能引入了新的錯(cuò)誤,解決的辦法是在修改了錯(cuò)誤之后,必須進(jìn)行回歸測試,所以選項(xiàng)B錯(cuò)誤。所謂軟件維護(hù),就是將交付的軟件投入運(yùn)行,并在運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充和刪改,所以選項(xiàng)C錯(cuò)誤。6、下列對重載函數(shù)的描述中,()是錯(cuò)誤的。A、重載函數(shù)中不允許使用默認(rèn)參數(shù)B、重載函數(shù)中編譯是根據(jù)參數(shù)表進(jìn)行選擇C、不要使用重載函數(shù)來描述毫不相干的函數(shù)D、構(gòu)造函數(shù)重載將會(huì)給初始化帶來多種方式標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A)中,重載函數(shù)中是允許使用默認(rèn)參數(shù)的;為了使重載函數(shù)有意義,不要使用重載函數(shù)來描述毫無相干的函數(shù);重載函數(shù)巾編譯是根據(jù)參數(shù)表進(jìn)行選擇,包括參數(shù)的個(gè)數(shù)和類型。7、下面模型中為概念模型的是A、網(wǎng)狀模型B、層次模型C、關(guān)系模型D、實(shí)體一聯(lián)系模型標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:概念模型足對真實(shí)世界中問題域內(nèi)的事物的描述,不是對軟件設(shè)計(jì)的描述。概念數(shù)據(jù)模型是面向用戶、面向現(xiàn)實(shí)世界的數(shù)據(jù)模型,是與DBMS無關(guān)的。它主要刖來描述一個(gè)單位的概念化結(jié)構(gòu)。實(shí)體關(guān)系模型(EntityRelationshipDiagram)地理信息系統(tǒng)術(shù)語,該模型直接從現(xiàn)實(shí)世界中抽象出實(shí)體類型和實(shí)體間聯(lián)系,然后用實(shí)體聯(lián)系圖(E-R圖)表示數(shù)據(jù)模型,是描述概念世界,建立概念模型的實(shí)用工縣。層次模型是指辟{一顆“有向樹”的數(shù)據(jù)結(jié)構(gòu)來表示表示各類實(shí)體以及實(shí)體間的聯(lián)系,樹中每一個(gè)結(jié)點(diǎn)代表一個(gè)記錄類型,樹狀結(jié)構(gòu)表示實(shí)體型之間的聯(lián)系。層次模型是最早用于商品數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)模型。8、若一個(gè)函數(shù)的原型為“int*Xfun1(intx,int&y,charz);”,則該函數(shù)的返回值類型為()。A、int*B、intC、int&D、char標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由“int*Xfun1(intx,int&y,charz);”的定義可知,其返回值為指向int指針的函數(shù)。9、下面是重載為非成員函數(shù)的運(yùn)算符函數(shù)原型,其中錯(cuò)誤的是()。A、Fractionoperator+(Fraction,F(xiàn)raction);B、Fractionoperator-(Fraction);C、Fraction&operator=(Fraction&,F(xiàn)raction);D、Fraction&operator+=(Fraction&,F(xiàn)raction);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載。C++語言規(guī)定,“=”運(yùn)算符只能作為成員函數(shù)重載。10、要建立文件流并打開當(dāng)前目錄下的文件file.dat用于輸入,下列語句中錯(cuò)誤的是()。A、ifstreamfin=ifstream.open("file.dat");B、ifstream*fim=newifstream("file.dat");C、ifstreamfin;fin.open("file.dat");D、ifstream*fin=newifstream();fin->open("file.dat");標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在選項(xiàng)A中,在賦值號的左側(cè)表示建立一個(gè)輸入流對象fin,而在賦值號的右側(cè)的表達(dá)式不正確,因?yàn)槲募斎肓黝恑fstream不能直接調(diào)用其成員函數(shù)open。11、有如下程序:#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ù)成員是類中所有對象共享的成員,而不是某個(gè)對象的成員。題目中的靜態(tài)數(shù)據(jù)成員n的運(yùn)算具有疊加性,執(zhí)行“n+—2”和“n——3”后n的值為0。12、對C++編譯器區(qū)分重載函數(shù)無任何意義的信息是()。A、參數(shù)類型B、參數(shù)個(gè)數(shù)C、返回值類型D、常成員函數(shù)關(guān)鍵字const標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:如果重載函數(shù)只是函數(shù)類型不同,而參數(shù)個(gè)數(shù)和類型完全相同,C++編譯器則無法區(qū)別它們。13、在C++中,用于實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的是()。A、內(nèi)聯(lián)函數(shù)B、重載函數(shù)C、模板函數(shù)D、虛函數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是虛函數(shù)的概念。C++語言的多態(tài)性有兩種:函數(shù)重載和虛函數(shù)。虛函數(shù)只有在運(yùn)行時(shí)才能被確定,稱為運(yùn)行時(shí)多態(tài)。編譯時(shí)的多態(tài)是通過函數(shù)重載和模板實(shí)現(xiàn)的。14、語句ofstreamf("SALARY.DAT",ios_base::app);的功能是建立流對象f,并試圖打開文件SALARYDAT與f關(guān)聯(lián),而且()。A、若文件存在,將其置為空文件;若文件不存在,打開失敗B、若文件存在,將文件指針定位于文件尾;若文件不存在,建立一個(gè)新文件C、若文件存在,將文件指針定位于文件首;若文件不存在,打開失敗D、若文件存在,打開失?。蝗粑募淮嬖?,建立一個(gè)新文件標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是文件打開模式。文件打開模式isobase::app是為添加數(shù)據(jù)而打開(總是在尾部寫),故只有選項(xiàng)B說法正確。15、C++中的模板包括()。A、對象模板和函數(shù)模板B、對象模板和類模板C、函數(shù)模板和類模板D、變量模板和對象模板標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是模板。在C++語言中,模板有兩類:函數(shù)模板和類模板。16、下列關(guān)于模板的敘述中,正確的是()。A、如果一個(gè)類中存在純虛函數(shù),這個(gè)類就是類模板B、函數(shù)模板不能有形式參數(shù)表C、類模板是一種參數(shù)化類型的類,是類的生成器D、類模板中不能包含構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對于函數(shù)模板,數(shù)據(jù)類型本身成了它的參數(shù),是一種參數(shù)化類型的函數(shù)。對于類模板,數(shù)據(jù)類型本身成了它的參數(shù),因而是一種參數(shù)化類型的類,是類的生成器。17、如果利用C++流進(jìn)行輸入輸出,下面的敘述中正確的是()。A、只能借助于流對象進(jìn)行輸入輸出B、只能進(jìn)行格式化輸入輸出C、只能借助于cin和tout進(jìn)行輸入輸出D、只能使用運(yùn)算符>>和<<進(jìn)行輸入輸出標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的知識(shí)點(diǎn)是C++流。利用C++流既可以進(jìn)行有格式輸入輸出,也可以進(jìn)行無格式輸入輸出,所以選項(xiàng)B錯(cuò)誤;C++的4個(gè)預(yù)定義的流對象為:cin一標(biāo)準(zhǔn)輸入,cout一標(biāo)準(zhǔn)輸出,cerr-一標(biāo)準(zhǔn)出錯(cuò)信息輸出,clog一帶緩沖的標(biāo)準(zhǔn)出錯(cuò)信息輸出,選項(xiàng)C錯(cuò)誤;C++流除了可以使用提取“>>”插入“<<”進(jìn)行輸入輸出外,還可以通過流對象的一些成員函數(shù)進(jìn)行輸入輸出,故選項(xiàng)D錯(cuò)誤。國家二級C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共23題,每題1.0分,共23分。)1、下列關(guān)于棧的描述中錯(cuò)誤的是()。A、棧是先進(jìn)后出的線性表B、棧只能順序存儲(chǔ)C、棧具有記憶作用D、對棧的插入與刪除操作中,不需要改變棧底指針標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是限定在一端進(jìn)行插入與刪除的線性表。棧頂(top):插入數(shù)據(jù)(即入棧)的一端:棧底(bottom):不能入棧也不能出棧的…端。棧存儲(chǔ)數(shù)據(jù)的原則:“先進(jìn)后出”或“后進(jìn)先出”。棧的特性是具有記憶作用。2、有以下程序:#include<iostream>usingnamespacestd;classR{public:R(intr1,intr2){R1=rl;R2=r2;}voidprint();Voidprint()const;private:intR1,R2;};voidR::print(){cout<<Rl<<’’,’’<<R2<<end1;}voidR::print()const{cout<<R1<<’’,’’<<R2<<end1;}intmain(){Ra(5,4);constRb(20,52);b.print();return0;}執(zhí)行后的輸出結(jié)果是()。A、5,4B、4,5C、20,52D、52,20標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題中,語句Ra(5,4)調(diào)用構(gòu)造函數(shù)R(intr1,intr2)但未有輸出結(jié)果;b.print();調(diào)用常成員函數(shù)(因?yàn)閎是常對象)voidprin()const,輸出結(jié)果是20,52。3、有如下程序:#includeusingnamespacestd;classXA{inta;public:staticintb;XA(intaa):a(aa){b++;}intgetA(){returna;}};intXA∷b=0;intmain(){XAd1(4),d2(5);cout<A、9B、11C、13D、15標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在類XA的構(gòu)造函數(shù)中,定義了用成員變量a的值初始化變量aa,同時(shí)靜態(tài)成員變量b值加1。所以當(dāng)在主main函數(shù)中定義類XA的對象d1(4)后,變量b的等于1,定義對象d2(5)后,變量b的值等于2,所以表達(dá)式d1.getA()+d2.getA()+XA∷b+d1.b等于4+5+1+2+1=13。4、下列描述中錯(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)用程序的變化。5、有三個(gè)關(guān)系R、S和T如下:由關(guān)系R和S通過運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。A、并B、自然連接C、笛卡爾積D、交標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:關(guān)系R與S經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的有序組組成的,記為R∩S。6、下列for循環(huán)的循環(huán)體執(zhí)行次數(shù)為()。for(inti(0),j(10);i=j=4;i++,j--)A、0B、1C、4D、無限標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)條件i=j=4;是個(gè)賦值語句,使得i,j的值非0,所以是死循環(huán)。7、下列選項(xiàng)中,正確的C++標(biāo)識(shí)符是()。A、6_groupB>group~6B、age+3C、_group_6標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++中標(biāo)識(shí)符的命名遵循如下規(guī)則:不能是C++關(guān)鍵字,第一個(gè)字母必須是字母或下劃線,中間不能有空格,變量名中不能包括“,”、“;”、“,”、“’”、“””+—之類的特殊符號??傊畼?biāo)識(shí)符中除了能使用26個(gè)英文大小寫字母和數(shù)字外,只能使用下劃線“”。8、在函數(shù)中,可以用auto、extem、register和static這四個(gè)關(guān)鍵字中的一個(gè)來說明變量的存儲(chǔ)類型,如果不說明存儲(chǔ)類型,則默認(rèn)的存儲(chǔ)類型是()。A、autoB、externC、registerD、static標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是存儲(chǔ)類型。C++語言變量的存儲(chǔ)類型分為如下幾種類型:auto---函數(shù)內(nèi)部的局部變量;static---靜態(tài)存儲(chǔ)分配;extern---全局變量;register---變量存儲(chǔ)在硬件寄存器中。9、“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系一般是A、一對一B、一對多C、多對一D、多對多標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:實(shí)體集間的聯(lián)系的個(gè)數(shù)可以是單個(gè)也可以是多個(gè)。兩個(gè)實(shí)體集之間的聯(lián)系實(shí)際上是實(shí)體集間的函數(shù)關(guān)系,這種關(guān)系有三種:一對一的聯(lián)系,簡記為1:1:一對多或多對一聯(lián)系,簡記為1:m或m:1;多對多聯(lián)系,簡記為m:n。本題中“商品”與“顧客”兩個(gè)實(shí)體集之間的聯(lián)系是多對多聯(lián)系。因?yàn)橐环N“商品”可以被多個(gè)“顧客”購買,而一個(gè)“顧客”也可以購買多個(gè)“商品”。10、語句int*p=&k;定義了指針p,與這個(gè)語句等效的語句序列是()。A、int*p;p=&k;B、int*p;p=k;C、int*p;*p=&k;D、int*p;*p=k標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是指針的賦值。題目中的語句int*p=&k;定義了一個(gè)int類型的指針p,并將變量k的地址&k賦給指針p。所以等效語句是:int*p;p=&k;。11、有如下程序#include<iostream>usingnamespacestd;intmain(){chara;cin>>a;if(a=’*’)cout<<’’***’’<<end1;elsecout<<’’###’’<<end1;rerurn0:}輸入字符+時(shí),程序的運(yùn)行結(jié)果是()。A、***B、###C、***###D、無輸出標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題的考點(diǎn)是雙分支選擇語句的執(zhí)行流程,答題的關(guān)鍵點(diǎn)在于選擇條件的判定。雙分支選擇語句的執(zhí)行流程是首先計(jì)算if后表達(dá)式的值,如果表達(dá)式的值為非零,則執(zhí)行if后面的分支,否則執(zhí)行與其匹配的else后面的分支。本題執(zhí)行時(shí)雖然輸入變量a的值為‘+’,但是在執(zhí)行if后括號內(nèi)表達(dá)式(a=’*’)的時(shí),由于此表達(dá)式為賦值表達(dá)式,因此表達(dá)式的值為賦值號右邊的值’*’,其ASCII碼的值非零,執(zhí)行if后面的輸出語句“***”后回車。12、語句int*p=&k;定義了指針p,與這個(gè)語句等效的語句序列是()。A、int*p;p=&k;B、int*p;p=k;C、int*p;*p=&k;D、int*p;*p=k標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是指針的賦值。題目中的語句int*p=&k;定義了一個(gè)int類型的指針p,并將變量k的地址&k賦給指針p。所以等效語句是:int*p;p=&k;。13、已知函數(shù)FA調(diào)用FB,若要把這兩個(gè)函數(shù)定義在同一個(gè)文件中,則()。A、FA必須定義在FB之前B、FB必須定義在FA之前C、若FA定義在FB之后,則FA的原型必須出現(xiàn)在FB的定義之前D、若FB定義在FA之后,則FB的原型必須出現(xiàn)在FA的定義之前標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C++中,在調(diào)用任何函數(shù)之前,必須確保它已有原型說明。函數(shù)原型說明通常放在程序文件的頭部,以使得該文件中所有函數(shù)都能調(diào)用它們。在本題中,當(dāng)函數(shù)FA調(diào)用FB時(shí),函數(shù)FB可以定義在FA的后面,但是FB的原型必須出現(xiàn)在FA的定義之前,因而選項(xiàng)D)為正確答案。14、若要對類BigNumber中重載的類型轉(zhuǎn)換運(yùn)算符long進(jìn)行聲明,下列選項(xiàng)中正確的是()。A、operatorlong()const;B、operatorlong(bigNumber);C、longoperatorlong()const;D、longoperatorlong(BigNumber);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在重載類型轉(zhuǎn)換符時(shí),由于運(yùn)算符本身已經(jīng)表示出返回值類型,因此不需要返回值類型的聲明。15、下列有關(guān)繼承和派生的敘述中,正確的是()。A、如果一個(gè)派生類私有繼承其基類,則該派生類對象不能訪問基類的保護(hù)成員B、派生類的成員函數(shù)可以訪問基類的所有成員C、基類對象可以賦值給派生類對象D、如果派生類沒有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)抽象類標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是繼承和派生。無論是哪種繼承方式,派生類都能夠訪問基類的公有和保護(hù)成員,而不能訪問基類的私有成員,故選項(xiàng)A和B錯(cuò)誤;公有繼承時(shí),基類的對象不可作為派生類的對象處理,即基類對象不可賦值給派生類對象,所以選項(xiàng)C錯(cuò)誤。16、有如下程序:#inc1ude<iostream>usingnamespacestd;classBase{public:voidfunl(){cout<<"Base\n";}virtualvoidfun2(){cout<<"Base\n";}};classDerived:publicBase{public:voidfunl(){cout<<"Derived\n";}voidfun2(){cout<<"Derived\n";}};voidf(Base&b){b.funl();b.fun2();}intmain(){Derivedobj;f(obj);return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、BaseB、BaseBaseDerivedC、DerivedD、DerivedBaseDerived標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是虛函數(shù)的概念。在C++語言中,一個(gè)派生類的對象可以被它的任何一個(gè)基類的指針?biāo)赶?,若基類和派生類中存在一模一樣的成員函數(shù)。那么通過該基類指針調(diào)用這樣的成員函數(shù)時(shí),若這個(gè)成員函數(shù)被定義成虛函數(shù),那么就調(diào)用派生類中的;否則就調(diào)用基類中的。本題中,在f()函數(shù)中,形參b是一個(gè)基類的引用,它引用的是主函數(shù)中定義的派生類對象obj,所以在調(diào)用funl0時(shí),運(yùn)行的是基類的版本,而fun2()運(yùn)行的是派生類的版本。17、已知類IMS中兩個(gè)成員函數(shù)的聲明為“voidlisten()const;”與“voidspeak();”,另有兩個(gè)對象的定義為“IMSobj1;”與“constIMSobj2;”,則下列語句中,產(chǎn)生編譯錯(cuò)誤的是()。A、obj1.listen();B、obj1.speak();C、obj2.listen();D、obj2.speak();標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)listen()作為類IMS的常成員函數(shù),一般對象obj1和常對象obj2都可以調(diào)用它,而函數(shù)speak()作為IMS的一般成員函數(shù),則只有一般對象obj1可以調(diào)用,而常對象obj2調(diào)用會(huì)產(chǎn)生編譯錯(cuò)誤。18、下列運(yùn)算符中,不能被重載的是()。A、&&B、!=C、.D、++標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載。在C++中,只有.、*、->*、::、?:這五個(gè)運(yùn)算符不能重載。19、運(yùn)算符重載時(shí)不需要保持的性質(zhì)是()。A、操作數(shù)個(gè)數(shù)B、操作數(shù)類型C、優(yōu)先級D、結(jié)合性標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:運(yùn)算符重載應(yīng)該體現(xiàn)為原有運(yùn)算符的功能在新的數(shù)據(jù)類型上的延伸。重載的運(yùn)算符保持原有運(yùn)算符的操作個(gè)數(shù)、優(yōu)先級和結(jié)合性三個(gè)最基本的特征。20、若要對類BigNumber中重載的類型轉(zhuǎn)換運(yùn)算符long進(jìn)行聲明,下列選項(xiàng)中正確的是()。A、operatorlong()const;B、operatorlong(bigNumber);C、longoperatorlong()const;D、longoperatorlong(BigNumber);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在重載類型轉(zhuǎn)換符時(shí),由于運(yùn)算符本身已經(jīng)表示出返回值類型,因此不需要返回值類型的聲明。21、下列有關(guān)C++流的敘述中,錯(cuò)誤的是()。A、C++操作符setw設(shè)置的輸出寬度永久有效B、C++操作符endl可以實(shí)現(xiàn)輸出的回車換行C、處理文件I/O時(shí),要包含頭文件fstreamD、進(jìn)行輸入操作時(shí),eof()函數(shù)用于檢測是否到達(dá)文件尾標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是C++流。C++操作符setw()的作用是設(shè)置輸入輸出寬度,且只對當(dāng)前一次有效,并非永久有效,故選項(xiàng)A敘述錯(cuò)誤。22、下列類模板的定義中語法格式錯(cuò)誤的是()。A、templateclassBuffer{/*…*/};B、templateclassBuffer{/*…*/};C、templateclassBuffer{/*…*/};D、templateclassBuffer{/*…*/};標(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的意義相同。23、假定下列語句都是程序運(yùn)行后首次執(zhí)行的輸出語句,其中輸出結(jié)果與另外三條語句不同的語句是()。A、cout<<setfill(’*’)<<123<<setw(9)<<321;B、cout<<setfill(’*’)<<setw(6)<<left<<123<<setw(6)<<right<<321;C、cout<<123<<setfill(’*’)<<setw(6)<<321;D、cout<<setfill(’*’)<<setw(9)<<left<<123<<321;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:按照選項(xiàng)B的輸出格式控制符輸出的結(jié)果為“123******321”,而按照選項(xiàng)A)、C)、D)的輸出格式控制符輸出的結(jié)果為“123***321”。國家二級C++機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共34題,每題1.0分,共34分。)1、下列符號中,正確的C++標(biāo)識(shí)符是()。A、enumB、100bitC、s-1D、_int標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是C++語言中標(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、下列符號中,正確的C++標(biāo)識(shí)符是()。A、enumB、100bitC、s-1D、int標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是C++語言中標(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)的保留字。3、下列選項(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è)字母必須是字母或下劃線,中間不能有空格,變量名中不能包括“.”、“;”、“,”、“‘”、“"”+-之類的特殊符號??傊畼?biāo)識(shí)符中除了能使用26個(gè)英文大小寫字母和數(shù)字外,只能使用下劃線“-”。4、下列選項(xiàng)可以做C++標(biāo)識(shí)符的是()。A、_256B、fat/pigC、deleteD、5char標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:標(biāo)識(shí)符的命名規(guī)則:①所有標(biāo)識(shí)符必須由一個(gè)字母(a~z或A~z)或下劃線()開頭;②標(biāo)識(shí)符的其他部分u丁以用字母、F劃線或數(shù)字(0~9)組成;③大小寫字母表示不同意義,即代表不同的標(biāo)識(shí)符,如cout和Cout。5、下列語句中錯(cuò)誤的是()。A、constinta;B、constinta=10;C、constint*point=0;D、constint*point=newint(10);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由關(guān)鍵字const聲明符號常量的同時(shí)必須為其賦初值。6、下列關(guān)于線性鏈表的敘述中,正確的是A、各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)空間可以不連續(xù),但它們的存儲(chǔ)順序與邏輯順序必須一致B、各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與邏輯順序可以不一致,但它們的存儲(chǔ)空間必須連續(xù)C、進(jìn)行插入與刪除時(shí),不需要移動(dòng)表中的元素D、以上都不正確標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)稱為線性鏈表。在鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)中,存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)空間可以不連續(xù),各數(shù)據(jù)結(jié)點(diǎn)的存儲(chǔ)順序與數(shù)據(jù)元素之間的邏輯關(guān)系可以不一致,而數(shù)據(jù)元素之間的邏輯關(guān)系是由指針域來確定的。7、某二叉樹中有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。8、設(shè)某棵樹的度為3,其中度為3、2、1的結(jié)點(diǎn)個(gè)數(shù)分別為3、O、4。則該樹中的葉子結(jié)點(diǎn)數(shù)為A、7B、8C、6D、不可能有這樣的樹標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:樹的度是指一棵樹中,最大的結(jié)點(diǎn)的度稱為“樹的度”。根據(jù)題目可知本樹中沒有度為2的結(jié)點(diǎn)。樹的總結(jié)點(diǎn)=(度1*個(gè)數(shù)+度2*個(gè)數(shù)…)+1,這里我們設(shè)總結(jié)點(diǎn)數(shù)為n,那么n=3*3+2*0+1*4+1=14。樹的葉子結(jié)點(diǎn)數(shù)等于總結(jié)點(diǎn)減去所有度不為0的結(jié)點(diǎn),也就是14—3—4=7。9、在面向?qū)ο蠓椒ㄖ?,?shí)現(xiàn)信息隱蔽是依靠()。A、對象的繼承B、對象的多態(tài)C、對象的封裝D、對象的分類標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對象的封裝性是指從外部看只能看到對象的外部特征,即只需知道數(shù)據(jù)的取值范圍和可以對該數(shù)據(jù)施加的操作,而不需要知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法。對象的內(nèi)部,即處理能力的實(shí)行和內(nèi)部狀態(tài),對外是不可見的。從外面不能直接使用對象的處理能力,也不能直接修改其內(nèi)部狀態(tài),對象的內(nèi)部狀態(tài)只能由其自身改變。10、耦合性和內(nèi)聚性是對模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。A、提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性B、降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性C、耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度D、內(nèi)聚性是指模塊間互相連接的緊密程度標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:耦合性是反映模塊間互相連接的緊密程度,內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此接合的緊密程序。提高模塊的內(nèi)聚性,降低模塊的耦合性是有利于模塊的獨(dú)立性。11、數(shù)據(jù)庫系統(tǒng)的核心是()。A、數(shù)據(jù)模型B、軟件開發(fā)C、數(shù)據(jù)庫設(shè)計(jì)D、數(shù)據(jù)庫管理系統(tǒng)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)DBMS是數(shù)據(jù)庫系統(tǒng)的核心。DBMS是負(fù)責(zé)數(shù)據(jù)庫的建立、使用和維護(hù)的軟件。DBMS建立在操作系統(tǒng)之上,實(shí)施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應(yīng)用程序的執(zhí)行,最終都必須通過DBMS。另外,DBMS還承擔(dān)著數(shù)據(jù)庫的安全保護(hù)工作,按照。DBA所規(guī)定的要求,保證數(shù)據(jù)庫的完整性和安全性。12、由于常對象不能被更新,因此()。A、通過常對象只能調(diào)用它的常成員函數(shù)B、通過常對象只能調(diào)用靜態(tài)成員函數(shù)C、常對象的成員都是常成員D、通過常對象可以調(diào)用任何不改變對象值的成員函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是常對象與常成員函數(shù)的概念。使用const關(guān)鍵字修飾的對象稱為常對象,它不能被更新,所以常對象只能調(diào)用常成員函數(shù)而不能調(diào)用其它成員函數(shù);使用const關(guān)鍵字聲明的成員函數(shù)是常成員函數(shù),它也不能被更新,常成員函數(shù)只能調(diào)用常成員函數(shù)而不能調(diào)用其它函數(shù)。13、下列代碼段聲明了3個(gè)類classPerson{};classStudent:publicPerson{};classUndergraduate:Student{};下列關(guān)于這些類之間關(guān)系的描述中,錯(cuò)誤的是()。A、類Person是類Undergraduate的基類B、類Undergraduate從類student公有繼承C、類student是類Person的派生類D、類Undergraduate是類Person的派生類標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:Student類公有繼承自Person類,Undergraduate類私有繼承自Student類。所以LJndergraduate類是從Student類私有繼承的。14、下列各組類型聲明符中,含義相同的一組是()。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。15、有如下程序:#includeusingnamespacestd;classXX{intx;public:XX(intxx=0):x(xx){)intgetX(){returnx;));classYY:publicXX{inty;public:YY(intXX,intyy):XX(xx),y(yy){)intget(){returngetX0+y;));intmain(){YYc(3,4);cout<A、3B、4C、7D、10標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由于類YY公開繼承自類xx,所以執(zhí)行表達(dá)式c.getV()+c.getX()的值等于3+3+4=10。16、若一個(gè)函數(shù)的原型為“int*Xfun1(intx,int&y,charz);”,則該函數(shù)的返回值類型為()。A、int*B、intC、int&D、char標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由“int*Xfunl(intx,int&y,charz);”的定義可知,其返回值為指向int指針的函數(shù)。17、有如下函數(shù)定義:voidfunc(inta,int&b){a++;b++;}若執(zhí)行代碼段:intx=0,y=1;func(x,y);則變量x和y的值分別是()。A、0和1B、1和1C、0和2D、1和2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)參數(shù)的傳遞方式。此題中形參a是普通參數(shù),即傳值調(diào)用,函數(shù)中對a增1不會(huì)影響到實(shí)參x的值;形參b是傳址調(diào)用,函數(shù)中對b增1同時(shí)會(huì)改變實(shí)參y的值。故最終結(jié)果是0和2。18、有如下類定義:classMyClass{intb;chara;doublec;public:MyClass():c(0.0),b(0),a(’,’){}};創(chuàng)建這個(gè)類的對象時(shí),數(shù)據(jù)成員的初始化順序是()。A、a,b,CB、c,b,aC、b,a,CD、c,a,b標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:類的成員初始化順序與成員變量在構(gòu)造函數(shù)中的位置先后順序無關(guān),只與成員變量在類中定義的先后順序有關(guān)。19、下列符號中不屬于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)鍵字。20、有如下類定義:classMyClass{intx;public:MyClass():x(0),y(0){}intGetX(){returnx;}voidSetX(intxx){x=xx;}inty;};已知obj是類MyClass的對象,下列語句中違反類成員訪問控制權(quán)限的是()。A、obj.xB、obj.yC、obj.GetX()D、obj.SetX(0)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由類MyClass的定義可知,數(shù)據(jù)成員x屬于私有成員,所以只能在類的內(nèi)部訪問。類MyClass的對象obj不能訪問類MyClass的私有成員x。21、若AA為一個(gè)類,a為該類的私有整型數(shù)據(jù)成員,getA()為該類的一個(gè)非靜態(tài)公有成員函數(shù),功能是返回a的值。如果x為該類的一個(gè)對象,要在類外訪問x對象中a的值,正確的訪問格式為()。A、AA.getA()B、x.getA()C、x.a(chǎn)D、AA::a標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:要在類外訪問x對象中a的值,必須調(diào)用類的非靜態(tài)公有成員函數(shù)getA()。22、使用輸入輸出操作符setw,可以控制()。A、輸出精度B、輸出寬度C、對齊方式D、填充字符標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是C++流的操作符。在C++流中,操作符sctw的作用是設(shè)置輸入輸出寬度。23、字符串“a+b=12\n\t”的長度為()。A、12B、10C、8D、6標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:題目給出的字符串含有7個(gè)字符,再加字符串的結(jié)束字符,所以共8個(gè)字符。24、下列關(guān)于this指針的描述中,正確的是()。A、類的成員函數(shù)都有this指針B、類的友元函數(shù)都有this指針C、任何與類相關(guān)的函數(shù)都有this指針D、類的非靜態(tài)成員函數(shù)都有this指針標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:this是成員函數(shù)所屬對象的指針,它指向類對象的地址。成員函數(shù)通過這個(gè)指針可以知道自己屬于哪一個(gè)對象。它隱藏于每個(gè)類的非靜態(tài)成員函數(shù)中’。25、下列關(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è)指向本對象的指針。26、下列關(guān)于C++函數(shù)的說明中,正確的是()。A、內(nèi)聯(lián)函數(shù)就是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù)B、函數(shù)體的最后一條語句必須是return語句C、標(biāo)準(zhǔn)C*要求在調(diào)用一個(gè)函數(shù)之前,必須先聲明其原型D、編譯器會(huì)根據(jù)函數(shù)的返回值類型和參數(shù)表來區(qū)分函數(shù)的不同重載形式標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是有關(guān)函數(shù)的概念。內(nèi)聯(lián)函數(shù)是在函數(shù)定義之前加關(guān)鍵字inline來聲明的函數(shù),而不是定義在另一個(gè)函數(shù)體內(nèi)部的函數(shù),故選項(xiàng)A錯(cuò)誤;無返回值的函數(shù)在執(zhí)行完最后一條語句后,會(huì)自動(dòng)返回而不必加入return語句,故選項(xiàng)B錯(cuò)誤;如果函數(shù)只是返回值類型不同,而其它完全相同,則不能作為函數(shù)重載來使用,故選項(xiàng)D錯(cuò)誤。27、由于常對象不能被更新,因此()。A、通過常對象只能調(diào)用它的常成員函數(shù)B、通過常對象只能調(diào)用靜態(tài)成員函數(shù)C、常對象的成員都是常成員D、通過常對象可以調(diào)用任何不改變對象值的成員函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是常對象與常成員函數(shù)的概念。使用const關(guān)鍵字修飾的對象稱為常對象,它不能被更新,所以常對象只能調(diào)用常成員函數(shù)而不能調(diào)用其它成員函數(shù);使用const關(guān)鍵字聲明的成員函數(shù)是常成員函數(shù),它也不能被更新,常成員函數(shù)只能調(diào)用常成員函數(shù)而不能調(diào)用其它函數(shù)。28、己知在一個(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)算符,所以它不能更新對象的數(shù)據(jù)成員,也不能調(diào)用該類中沒有const修飾的成員函數(shù)。29、下列運(yùn)算符函數(shù)中肯定不屬于類FunNumber的成員函數(shù)的是()。A、intoperator-(FunNumber);B、PunNumberoperator-();C、FunNumberoperator-(int);D、intoperator-(FunNumber,F(xiàn)unNumber);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符“-”的重載?!?”運(yùn)算符有一元和二元兩種,且均可以重載為成員函數(shù)和非成員函數(shù)。運(yùn)算符重載為成員函數(shù)時(shí),形參個(gè)數(shù)一般為運(yùn)算符元數(shù)減1;重載為非成員函數(shù)時(shí),形參個(gè)數(shù)一般和運(yùn)算符元數(shù)相等。所以,“-”運(yùn)算符重載為成員函數(shù)時(shí),參數(shù)可以是0個(gè)或1個(gè);而重載為非成員函數(shù)時(shí),參數(shù)個(gè)數(shù)可以是1個(gè)或2個(gè)。所以D選項(xiàng),肯定是重載為非成員函數(shù)。30、有如下的運(yùn)算符重載函數(shù)定義:doubleoperator+(inti,intk){returndouble(i+k);)但定義有錯(cuò)誤,對這個(gè)錯(cuò)誤最準(zhǔn)確的描述是()。A、+只能作為成員函數(shù)重載,而這里的+是作為非成員函數(shù)重載的B、兩個(gè)int型參數(shù)的和也應(yīng)該是int型,而這里將+的返回類型聲明為doubleC、沒有將運(yùn)算符重載函數(shù)聲明為某個(gè)類的友元D、C++已經(jīng)提供了求兩個(gè)int型數(shù)據(jù)之和的運(yùn)算符+,不能再定義同樣的運(yùn)算符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符的重載。C++語言規(guī)定,不能作為非成員函數(shù)重載的運(yùn)算符有=、[]、()、一>以及所有的類型轉(zhuǎn)換運(yùn)算符,故選項(xiàng)A錯(cuò)誤;運(yùn)算符重載對返回值類型沒有限制,故選項(xiàng)B錯(cuò)誤;C++并不強(qiáng)制要求非成員重載的運(yùn)算符一定是某個(gè)類的友元,所以C選項(xiàng)錯(cuò)誤;題目中重載的“+’’運(yùn)算符的兩個(gè)參數(shù)都是int類型,而C++已經(jīng)提供了求兩個(gè)int型數(shù)據(jù)之和的運(yùn)算符+,編譯器無法區(qū)分應(yīng)該調(diào)用哪一個(gè),.所以應(yīng)該選擇D選項(xiàng)。31、下列關(guān)于模板的敘述中,錯(cuò)誤的是()。A、模板聲明中的第一個(gè)符號總是關(guān)鍵字templateB、在模板聲明中用<和>括起來的部分是模板的形參表C、類模板不能有數(shù)據(jù)成員D、在一定條件下函數(shù)模板的實(shí)參可以省略標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查模板的概念。模板的一般說明形式如下:template類型形參表函數(shù)返回值類型函數(shù)名(形參表){函數(shù)體},所以選項(xiàng)A、B正確。函數(shù)模板的實(shí)參在一定條件下是可以省略的,所以選項(xiàng)C錯(cuò)誤。32、下列關(guān)于C++流的說明中,正確的是()。A、與鍵盤、屏幕、打印機(jī)和通信端口的交互都可以通過流類來實(shí)現(xiàn)B、從流中獲取數(shù)據(jù)的操作稱為插入操作,向流中添加數(shù)據(jù)的操作稱為提取操作C、cin是一個(gè)預(yù)定義的輸入流類D、輸出流有一個(gè)名為open的成員函數(shù),其作用是生成一個(gè)新的流對象標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是C++流的概念。從輸入流中提取數(shù)據(jù)稱為提取操作,把表達(dá)式插入到輸出流中的操作稱為插入操作,故選項(xiàng)B錯(cuò)誤:cin是一個(gè)預(yù)定義的輸入流對象而不是流類,故選項(xiàng)C錯(cuò)誤:輸入輸出流中沒有open成員函數(shù),故選項(xiàng)D錯(cuò)誤。33、有如下的運(yùn)算符重載函數(shù)定義:doubleoperator+(inti,intk){returndouble(i+k);}但定義有錯(cuò)誤,對這個(gè)錯(cuò)誤最準(zhǔn)確的描述是()。A、+只能作為成員函數(shù)重載,而這里的+是作為非成員函數(shù)重載的B、兩個(gè)int型參數(shù)的和也應(yīng)該是int型,而這里將+的返回類型聲明為doubleC、沒有將運(yùn)算符重載函數(shù)聲明為某個(gè)類的友元D、C++已經(jīng)提供了求兩個(gè)int型數(shù)據(jù)之和的運(yùn)算符+,不能再定義同樣的運(yùn)算符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符的重載。C++語言規(guī)定,不能作為非成員函數(shù)重載的運(yùn)算符有=、[]、()、->以及所有的類型轉(zhuǎn)換運(yùn)算符,故選項(xiàng)A錯(cuò)誤;運(yùn)算符重載對返回值類型沒有限制,故選項(xiàng)B錯(cuò)誤:C++并不強(qiáng)制要求非成員重載的運(yùn)算符一定是某個(gè)類的友元,所以C選項(xiàng)錯(cuò)誤;題目中重載的“+”運(yùn)算符的兩個(gè)參數(shù)都是int類型,而C++已經(jīng)提供了求兩個(gè)int型數(shù)據(jù)之和的運(yùn)算符+,編譯器無法區(qū)分應(yīng)該調(diào)用哪一個(gè),所以應(yīng)該選擇D選項(xiàng)。34、在C++中,cin是一個(gè)()。A、類B、對象C、模板D、函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:cin為istream流類的對象。國家二級C++機(jī)試(選擇題)模擬試卷第5套一、選擇題(本題共33題,每題1.0分,共33分。)1、算法的有窮性是指A、算法程序的運(yùn)行時(shí)間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長度是有限的D、算法只能被有限的用戶使用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的有窮性,是指算法必須能在有限的時(shí)間內(nèi)做完,即算法必須能在執(zhí)行有限個(gè)步驟之后終止。2、算法的時(shí)間復(fù)雜度是指()。A、算法的執(zhí)行時(shí)間B、算法所處理的數(shù)據(jù)量C、算法程序中的語句或指令條數(shù)D、算法在執(zhí)行過程中所需要的基本運(yùn)算次數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的計(jì)算工作量。算法的工作量可以用算法在執(zhí)行過程中所需基本運(yùn)算的執(zhí)行次數(shù)來度量。3、在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是()。A、并B、交C、投影D、除標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)系R與S經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的有序組所組成,記為R∩S,交運(yùn)算不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)。4、下面敘述中正確的是()。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),二叉樹是樹的一種。5、在函數(shù)中,可以用auto、extem、register和static這四個(gè)關(guān)鍵字中的一個(gè)來說明變量的存儲(chǔ)類型,如果不說明存儲(chǔ)類型,則默認(rèn)的存儲(chǔ)類型是()。A、autoB、extemC、registerD、static標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是存儲(chǔ)類型。c++語言變量的存儲(chǔ)類型分為如下幾種類型:auto…函數(shù)內(nèi)部的局部變量;static…靜態(tài)存儲(chǔ)分配;extem…全局變量;register.一變量存儲(chǔ)存硬件寄存器中。6、在深度為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)。對于深度為7的滿二叉樹,葉子結(jié)點(diǎn)所在的是第7層,一共有27-1=64個(gè)葉子結(jié)點(diǎn)。全部結(jié)點(diǎn)共27-1=127個(gè)。7、對下列二叉樹進(jìn)行前序遍歷的結(jié)果是()。A、DYBEAFCZXB、YDEBFZXCAC、ABDYECFXZD、ABCDEFXYZ標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:二叉樹前序遍歷的簡單描述:若二叉樹為空,則結(jié)束返回;否則:①訪問根結(jié)點(diǎn);②前序遍歷左子樹;③前序遍歷右子樹??梢?,前序遍歷二叉樹的過程是一個(gè)遞歸的過程。根據(jù)題目中給出的二叉樹的結(jié)構(gòu)可知前序遍歷的結(jié)果是ABDYECFXZ。8、對如下二叉樹進(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)。對于后序遍歷,第一個(gè)訪問的結(jié)點(diǎn)一定是最左下的結(jié)點(diǎn),最后一個(gè)訪問的結(jié)點(diǎn)一定是根結(jié)點(diǎn),所以選項(xiàng)D)為正確答案。9、冒泡排序在最壞情況下的比較次數(shù)是A、n(n+1)/2B、nlog2nC、n(n-1)/2D、n/2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對n個(gè)結(jié)點(diǎn)的線性表采用冒泡排序,在最壞情況下,冒泡排序需要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2。10、帶鏈隊(duì)列空的條件是A、front=rear=NULLB、front=rear=一1C、front=NULL且rear=一1D、front=-1且rear=NULL標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:帶鏈隊(duì)列空的條件有兩個(gè):一個(gè)是front=tear,一個(gè)是他們都等于空。11、下面不屬于需求分析階段任務(wù)的是()。A、確定軟件系統(tǒng)的功能需求B、確定軟件系統(tǒng)的性能需求C、需求規(guī)格說明書評審D、制定軟件集成測試計(jì)劃標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:需求分析階段的工作可分為4個(gè)階段:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評審。12、數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下面圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。A、控制流B、加工C、數(shù)據(jù)存儲(chǔ)D、源和潭標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)流圖中的主要圖形元素有加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲(chǔ)文件(數(shù)據(jù)源)、源和潭等。13、下面敘述中錯(cuò)誤的是()。A、軟件測試的目的是發(fā)現(xiàn)錯(cuò)誤并改正錯(cuò)誤B、對被調(diào)試的程序進(jìn)行“錯(cuò)誤定位”是程序調(diào)試的必要步驟C、程序調(diào)試通常也稱為DebugD、軟件測試應(yīng)嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件測試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。軟件測試要嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性。程序調(diào)試通常也稱Debug,對被調(diào)試的程序進(jìn)行“錯(cuò)誤”定位是程序調(diào)試的必要步驟。14、有如下程序:#includeusingnamespacestd;classVAC{public;intf()const{return3;)intf(){return5;)};Intmain(){VACv1;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è)對象,通過普通對象vl調(diào)用的是普通函數(shù),輸出5;通過常對象v2調(diào)用的是常成員函數(shù),輸出3。15、在關(guān)系模型中,每一個(gè)二維表稱為一個(gè)()。A、關(guān)系B、屬性C、元組D、主碼(鍵)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:每個(gè)二維表代表一個(gè)關(guān)系,由表框架及表的元組組成。16、下列描述中,不屬于面向?qū)ο笏枷胫饕卣鞯氖?)。A、封裝性B、跨平臺(tái)性C、繼承性D、多態(tài)性標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:封裝性、繼承性和多態(tài)性是面向?qū)ο蟪绦蛟O(shè)計(jì)的三個(gè)基本特征??缙脚_(tái)性不是面向?qū)ο蟪绦蛟O(shè)計(jì)的特征。17、關(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)算符的有關(guān)概念。運(yùn)算符重載是針對C++原有運(yùn)算符進(jìn)行的,不能通過重載創(chuàng)造新的運(yùn)算符;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論