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

下載本文檔

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

文檔簡(jiǎn)介

國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷3(共9套)(共209題)國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共23題,每題1.0分,共23分。)1、下列關(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)系是由指針域來(lái)確定的。2、有如下說明:inta[10]={1,2,3,4,5,6,7,8,9,10},*P=a;則數(shù)值為9的表達(dá)式是()。A、*P+9B、*(P+8)C、*P+=9D、P+8標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查指向數(shù)組的指針,本題中指針變量p指向數(shù)組a,那么,*p的值就是1,即表示數(shù)組的第一個(gè)元素,那么數(shù)值為9的表達(dá)式就是將指針向后移動(dòng)8個(gè)地址,即p+8指向的是數(shù)組元素值為9,所以數(shù)值為9的表達(dá)式是術(shù)(p+8)。3、對(duì)長(zhǎng)度為n的線性表進(jìn)行順序查找,在最壞情況下所需要的比較次數(shù)為()。A、log2nB、n/2C、nD、n+1標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在進(jìn)行順序查找過程中,如果被查的元素是線性表中的最后一個(gè)元素,或者被查元素根本不在線性表中,則為了查找這個(gè)元素需要與線性表中的所有元素進(jìn)行比較,這是順序查找的最壞情況,需要比較的次數(shù)為n次。4、對(duì)于長(zhǎng)度為n的線性表,在最壞情況下,下列各排序法所對(duì)應(yīng)的比較次數(shù)中正確的是A、冒泡排序?yàn)閚/2B、冒泡排序?yàn)閚C、快速排序?yàn)閚D、快速排序?yàn)閚(n一1)/2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:假設(shè)線性表的長(zhǎng)度為n,則在最壞情況下,冒泡排序需要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2??焖倥判蚍ㄒ彩且环N交換類的排序方法,但由于它比冒泡排序法的速度快,因此,稱為快速排序法。5、對(duì)長(zhǎng)度為n的線性表作快速排序,在最壞情況下,比較次數(shù)為()。A、nB、n-1C、n(n-1)D、n(n-1)/2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:假設(shè)線性表的長(zhǎng)度為n,則在最壞情況下,冒泡排序需要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2??焖倥判蚍ㄒ彩且环N互換類的排序方法,但由于它比冒泡排序法的速度快,因此,稱為快速排序法。6、開發(fā)大型軟件時(shí),產(chǎn)生困難的根本原因是()。A、大型系統(tǒng)的復(fù)雜性B、人員知識(shí)不足C、客觀世界千變?nèi)f化D、時(shí)間緊、任務(wù)重標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:隨著計(jì)算機(jī)軟件規(guī)模的擴(kuò)大,軟件本身的復(fù)雜性不斷增加,研制周期顯著變長(zhǎng),正確性難以保證,軟件開發(fā)費(fèi)用上漲,生產(chǎn)效率急劇下降,從而出現(xiàn)了人們難以控制軟件發(fā)展的局面,即所謂的“軟件危機(jī)”。7、有如下類定義:classAA{inta;Publc:AA(intn=0):a(n){}};classBB:publicAA{public:BB(intn)};其中橫線處的缺失部分是()。A、:a(n){}B、:AA(n){}C、{a(n);}D、{a=n;}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查公用繼承對(duì)基類成員的訪問屬性。公用繼承中,基類的公用成員和保護(hù)成員在派生類中保持原有訪問屬性,其私有成員仍為基類私有,本題中若要給派生類繼承下來(lái)基類的私有成員賦值,那么只能調(diào)用基類的成員函數(shù)來(lái)對(duì)它賦值,成員變量默認(rèn)的訪問權(quán)限為私有,即a為私有變量。所以本題答案為B。8、—個(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)系是多對(duì)多的聯(lián)系。9、已知函數(shù)print()沒有返回值,如果在類中將之聲明為常成員函數(shù),正確的是()。A、voidprint()const;B、constvoidprint();C、voidconstprint();D、voidprint(const);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:const成員函數(shù)表示該成員函數(shù)只能讀類數(shù)據(jù)成員,而不能修改類成員數(shù)據(jù)。定義const成員函數(shù)時(shí),把const關(guān)鍵字放在函數(shù)的參數(shù)表和函數(shù)體之間。10、若x和y是程序中的兩個(gè)整型變量,則下列if語(yǔ)句中正確的是()。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語(yǔ)句的形式為:if(<條件>)<語(yǔ)句1>else<語(yǔ)句2>所以符合以上形式的ifelse語(yǔ)句為選項(xiàng)A)。11、有如下函數(shù)模板定義:template<typenameT1,hata2,inta3>T1sum(T1a1){return(a1+a2+a3);}則以下調(diào)用中正確的是()。A、sum<int,4,3>(5);B、sum<4,3>(5);C、sum<int,int,int>(5);D、sum(5);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查的函數(shù)模板的使用,有時(shí)不能根據(jù)用戶傳進(jìn)來(lái)的參數(shù)決定所有模板函數(shù)的值類型,如函數(shù)的返回值,還有用戶希望自己指定參數(shù)類型,這時(shí)就需要顯式地指出參數(shù)模板的類型,顯示指定模板的類型格式為:返回值類型函數(shù)模板<參數(shù)類型表>(參數(shù)表)。12、下列關(guān)于函數(shù)模板的描述中,正確的是()。A、函數(shù)模板是一個(gè)實(shí)例函數(shù)B、使用函數(shù)模板定義的函數(shù)沒有返回類型C、函數(shù)模板的類型參數(shù)與函數(shù)的參數(shù)相同D、通過使用不同的類型參數(shù),可以從函數(shù)模板得到不同的實(shí)例函數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)模板是一系列相關(guān)函數(shù)的模型或樣板,這些函數(shù)的源代碼相同,只是所針對(duì)的數(shù)據(jù)類型不同。數(shù)據(jù)類型成了函數(shù)模板的參數(shù),所以函數(shù)模板是一種參數(shù)化類型的函數(shù)。13、已知類Myclass的定義如下classMyClass{public:voidfunction1(MyClass&c){cout<<c.data;}staticvoidfunction2(MyClass&c){cout<<c.data;}voidfunction3(){cout<<data;}staricvoidfunction4(){cout<<data;}private:intdata;};其中有編譯錯(cuò)誤的函數(shù)是()。A、function1B、function2C、function3D、functicIn4標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:funcyion4()函數(shù)作為類的靜態(tài)成員函數(shù),不能直接訪問類中說明的非靜態(tài)成員,即cout<<data在編譯時(shí)會(huì)出錯(cuò)。14、有如下程序:#inc1ude<iostream>#inc1ude<cmath>usingstd::cout;classPoint{public:frienddoubledistance(constPoint&p);//p距原點(diǎn)的距離Point(intxx=0,intyy=0):x(xx),y(yy){}//①private:intx,y;};doubledistance(constPoint&p){//②returnsqrt(p.x*p.x+p.y*p,y);}intmain(){Pointpl(3,4);cout<<distance(pl);//③return0;}下列敘述中正確的是()。A、程序編譯正確B、程序編譯時(shí)語(yǔ)句①出錯(cuò)C、程序編譯時(shí)語(yǔ)句②出錯(cuò)D、程序編譯時(shí)語(yǔ)句③出錯(cuò)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:這段程序是正確的,計(jì)算p距離原點(diǎn)的距離。語(yǔ)句①是類Point的構(gòu)造函數(shù),在構(gòu)造函數(shù)中給變量xx和yy賦初值0。語(yǔ)句②是計(jì)算點(diǎn)p距原點(diǎn)的距離的函數(shù)distance。語(yǔ)句③是計(jì)算點(diǎn)pl距離原點(diǎn)的距離并輸出。15、有如下程序:classBase{public:intdata;};classDerivedl:publicBase{};classDerived2:protectedBase{};intmain(){Derivedldl;Derived2d2;dl.data=0;//①d2.data=0://②return0:}下列關(guān)于程序編譯結(jié)果的描述中,正確的是()。A、①②皆無(wú)編譯錯(cuò)誤B、①有編澤錯(cuò)誤,②無(wú)編譯錯(cuò)誤C、①無(wú)編譯錯(cuò)誤,②有編譯錯(cuò)誤D、①②皆有編譯錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:保護(hù)繼承的類Dervied2不能訪問基類Base中的公共數(shù)據(jù)成員data。16、有如下程序;#include<iostream>usingnamespacestd;classB{public:virtualvoidshow(){cout<<"B";}};classD:publicB{public:voidshow(){cout<<"D";}};voidfun1(B*ptr){ptr->show();}voidfun2(B&ref){ref.show();}voidfun3(Bb){b.show();}intmain(){Bb,*p=newD;Dd;fun1(p);fun2(b);fun3(d);return0;}程序的輸出結(jié)果是()。A、BBBB、BBDC、DBBD、DBD標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是虛函數(shù)與多態(tài)性。在成員函數(shù)的聲明前面加上virual關(guān)鍵字,即可把函數(shù)聲明為虛函數(shù);在C++中,一個(gè)基類指針可以用于指向它的派生類對(duì)象,而且通過這樣的指針調(diào)用虛函數(shù)時(shí),被調(diào)用的是該指針實(shí)際所指向的對(duì)象類的那個(gè)重定義版本。此題中,fun1()和fun2()的形參分別是基類的指針和引用,給fun1()傳入的實(shí)參是指向派生類對(duì)象的指針p,fun1()將調(diào)用D類中的show()輸出字符‘D’;給fun2()出入的實(shí)參是基類對(duì)象,fun2()調(diào)用類B中的show()輸出字符‘B’:fun3()由于形參是基類對(duì)象,調(diào)用的始終都是基類的show(),輸出字符‘B’。故最終輸出結(jié)果是DBB。17、下列有關(guān)繼承和派生的敘述中,正確的是()。A、如果一個(gè)派生類私有繼承其基類,則該派生類對(duì)象不能訪問基類的保護(hù)成員B、派生類的成員函數(shù)可以訪問基類的所有成員C、基類對(duì)象可以賦值給派生類對(duì)象D、如果派生類沒有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)抽象類標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是繼承和派生。無(wú)論是哪種繼承方式,派生類都能夠訪問基類的公有和保護(hù)成員,而不能訪問基類的私有成員,故選項(xiàng)A和B錯(cuò)誤;公有繼承時(shí),基類的對(duì)象不可作為派生類的對(duì)象處理,即基類對(duì)象不可賦值給派生類對(duì)象,所以選項(xiàng)c錯(cuò)誤。18、若要重載+、=、<<、==和[]運(yùn)算符,則必須作為類成員重載的運(yùn)算符是()。A、+和=B、=和<<C、==和<<D、=和[]標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:=、[]、()、—>以及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,而且不能是針對(duì)枚舉類型操作數(shù)的重載。19、有如下程序:#includeusingnamespacestd;classA{public:A(){cout<<"A";}};classB{public:B(){cout<<"B";}}classC:publicA{Bb:public:C(){cout<<"C";}};intmain(){Cobj;return0;}執(zhí)行后的輸出結(jié)果是()。A、CBAB、BACC、ACBD、ABC標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是類的繼承和派生。系統(tǒng)首先要通過派生類的構(gòu)造函數(shù)調(diào)用基類的構(gòu)造函數(shù),對(duì)基類成員初始化;然后對(duì)派生類中的新增成員初始化。20、若有函數(shù)模板mySwap和一些變量定義如下:()。template<classT>voidmySwap(Tx,Ty);doubled1,d2;inti1,i2;下列對(duì)mySwap的調(diào)用中,錯(cuò)誤的是A、mySwap(i1,i2)B、mySwap(d1,d2)C、mySwap(i1,d1)D、mySwap<int>(i2,d2)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:按照函數(shù)模板mySwap的定義,變量x和y應(yīng)該是同一類型,而在選項(xiàng)C的定義中變量i1和d1屬于不同的數(shù)據(jù)類型。21、有如下程序:#include<iostream>usingnamespacestd;classComplex{doublere,im;public:Complex(doubler,doublei):re(r);im(i){}doublereal()const{fetumre;}doubleimage()const{returnim;}Complex&operator+=(Complexa){re+=a.re;im+=a.im;return*this:}};ostream&operator<<(ostrearn&s,constComplex&z){returns<<’(’<<z.real()<<’,’<<z.image()<<’)’;}intmain(){Complexx(1,-2),y(2,3);cout<<(x+=y)<<endt;return0:}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、(1,-2)B、(2,3)C、(3,5)D、(3,1)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查了運(yùn)算符重載應(yīng)用。因?yàn)閤和y都是Complex類的對(duì)象,Complex類中已經(jīng)重載了+=運(yùn)算符,表達(dá)式x+=y就等價(jià)與x.operator+=(y),執(zhí)行后得到(3,1);接著計(jì)算cout<<(x+=y),其等價(jià)于調(diào)用operator<<(cout,(x+=y)),最后輸出結(jié)果是(3,1)。22、有如下程序:#include#includeusingnamespacestd;intmain(){cout<A、***123***456B、***123456***C、***123456D、123456標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在主函數(shù)中第一次輸出時(shí)調(diào)用函數(shù)setfill(’*’)設(shè)置填充字符為‘*’,調(diào)用函數(shù)setw(6)設(shè)置每次輸出的寬度為6,所以第一次輸出123時(shí),多余的三個(gè)空位用‘*’填充,即結(jié)果為***123,第二次從輸出流中輸出456。23、要建立文件流并打開當(dāng)前目錄下的文件file.dat用于輸入,下列語(yǔ)句中錯(cuò)誤的是()。A、ifstreamfin=ifstream.open(’’file.dat’’);B、itstream*fin=ewifstream(’’file.dat’’);C、ifstreamfin;fin.open(’’file.dat’’);D、ifstream*fin=newifstream0;fin->open(’’file.dat’’);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在選項(xiàng)A中,在賦值號(hào)的左側(cè)表示建立一個(gè)輸入流對(duì)象fin,而在賦值號(hào)的右側(cè)的表達(dá)式不正確,因?yàn)槲募斎肓黝恑fstream不能直接調(diào)用其成員函數(shù)open。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共22題,每題1.0分,共22分。)1、下列敘述中正確的是()。A、算法就是程序B、設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C、設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D、以上三種說法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:所謂算法是指解題方案的準(zhǔn)確而完整的描述。是一組嚴(yán)謹(jǐn)?shù)囟x運(yùn)算順序的規(guī)則,并且每一個(gè)規(guī)則都是有效的,且是明確的,此順序?qū)⒃谟邢薜拇螖?shù)下終止。算法不等于程序,也不等于計(jì)算方法。設(shè)計(jì)算法時(shí)不僅要考慮對(duì)數(shù)據(jù)對(duì)象的運(yùn)算和操作,還要考慮算法的控制結(jié)構(gòu)。2、有如下程序:#includeusingnamespacestd;classBasel{public:Basel(intd){cout<A、1234B、2134C、12D、21標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù),在定義一個(gè)派生類的對(duì)象時(shí),先調(diào)用基類的構(gòu)造函數(shù),然后再執(zhí)行派生類的構(gòu)造函數(shù),對(duì)象釋放時(shí),先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù)。本題中定義一個(gè)派生類對(duì)象時(shí),分別調(diào)用基類的構(gòu)造函數(shù),所以分別輸出21。3、在長(zhǎng)度為n的有序線性表中進(jìn)行二分查找,最壞情況下需要比較的次數(shù)是()。A、O(n)B、O(n2)C、O(log2n)D、O(nlog2n)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)于長(zhǎng)度為n的有序線性表,在最壞情況下,二分法查找只需比較log2n次,而順序查找需要比較n次。4、下列關(guān)于函數(shù)的描述中,錯(cuò)誤的是()。A、函數(shù)可以沒有返回值B、函數(shù)可以沒有參數(shù)C、函數(shù)可以是一個(gè)類的成員D、函數(shù)不能被定義為模板標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)的基礎(chǔ)知識(shí),函數(shù)可以沒有返回值,沒有參數(shù),也可以是一個(gè)類的成員,函數(shù)可以定義為模板,即模板函數(shù)。5、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的()。A、存儲(chǔ)問題B、共享問題C、安全問題D、保護(hù)問題標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)中的數(shù)據(jù)具有“集成”、“共享”之特點(diǎn),即數(shù)據(jù)庫(kù)集中了各種應(yīng)用的數(shù)據(jù),進(jìn)行統(tǒng)一地構(gòu)造與存儲(chǔ),而使它們能被不同的應(yīng)用程序所使用。因而數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是解決數(shù)據(jù)的共享問題。6、下列方法中,屬于白盒法設(shè)計(jì)測(cè)試用例的方法的是()。A、錯(cuò)誤推測(cè)B、因果圖C、基本路徑測(cè)試D、邊界值分析標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:白盒測(cè)試方法也稱為結(jié)構(gòu)測(cè)試或邏輯測(cè)試,主要方法有邏輯覆蓋測(cè)試、基本路徑測(cè)試等。7、類的析構(gòu)函數(shù)的作用是()。A、一般成員函數(shù)B、類的初始化C、對(duì)象的初始化D、釋放由對(duì)象所占用的資源標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:類的在撤銷對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用類的析構(gòu)函數(shù),析構(gòu)函數(shù)用來(lái)釋放由對(duì)象所占用的資源。8、必須用一對(duì)大括號(hào)括起來(lái)的程序段是()。A、switch語(yǔ)句中的case標(biāo)號(hào)語(yǔ)句B、if語(yǔ)句的分支C、循環(huán)語(yǔ)句的循環(huán)體D、函數(shù)的函數(shù)體標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是語(yǔ)句塊和函數(shù)。if語(yǔ)句的分支和循環(huán)語(yǔ)句的循環(huán)體可以是一條語(yǔ)句也可以使一個(gè)語(yǔ)句塊,所以不是必須用一個(gè)大括號(hào)括起來(lái):switch語(yǔ)句中的case標(biāo)號(hào)語(yǔ)句可以是一系列語(yǔ)句,也可以包含語(yǔ)句塊,也不是必須用一對(duì)大括號(hào)括起來(lái);函數(shù)的函數(shù)體必須用一對(duì)大括號(hào)括起來(lái)。9、有如下程序:#inc1ude<iostream>usingnamespacestd;intmain(){intf,f1=0,f2=1;for(inti=3;i<=6;i++){f=f1+f2;f1=f2;f2=f;}cout<<f<<end1;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、2B、3C、5D、8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在主函數(shù)中for循環(huán)語(yǔ)句執(zhí)行4次,第一次循環(huán)結(jié)束時(shí),變量f的值等于l,f1的值等于1,f2的值等于1:第二次循環(huán)結(jié)束時(shí),變量f的值等于2,fl的值等于1,f2的值等于2;第三次循環(huán)結(jié)束時(shí),變量f的值等于3,f1的值等于2,f2的值等于3;第四次循環(huán)結(jié)束時(shí),變量f的值等于5,f1的值等于3,f2的值等于5;結(jié)束循環(huán)。10、有如下說明inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;則數(shù)值為9的表達(dá)式是()。A、*p+9B、*(p+8)C、*p+=9D、p+8標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是指針的運(yùn)用。選項(xiàng)A中,*p返回的是數(shù)組元素a[0]的值,所以最后結(jié)果是1+9=10;選項(xiàng)B是指針p后移8個(gè)單位位置處的值,即a[8]其值為9;選項(xiàng)C中表達(dá)式的值和選項(xiàng)A相同;選項(xiàng)D的值是一個(gè)地址值,該值無(wú)法確定。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、有如下程序:#include<iostream>#include<cstring>usingnamespacestd;classXCD{char*a;intb;public:XCD(char*aa,intbb){a=newchar[strlen(aa)+1];strcpy(a,aa);b=bb;}char*Geta(){returna;}intGetb(){returnb;}};intmain(){char*p1="abcd",*p2="weirong";intd1=6,d2=8;XCDx(p1,d1),y(p2,d2);cout<<strlen(x.Geta())+y.Getb()<<endl;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、12B、16C、14D、11標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由類XCD的定義可知,成員函數(shù)Geta()返回的是字符串的長(zhǎng)度,Getb()返回的是參數(shù)b的值。在主函數(shù)中strlen(x.Geta())的值等于4,y.Getb()的值等于8,所以輸出兩者的和為12。13、有如下程序#include<iostream>usingnamespacestd;classBase{protected:Base(){cout<<’A’;}Base(charc){cout<<c;}};classDerived:publicBase{public:Derived(charc){cout<<c;}};intmain(){Derivedd1(’B’);return0;}執(zhí)行這個(gè)程序屏幕上將顯示輸出()。A、BB、BAC、ABD、BB標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)象的構(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ù)。此題中,在建立派生類Derived的對(duì)象dl時(shí)會(huì)先調(diào)用基類Base的構(gòu)造,調(diào)用的是默認(rèn)構(gòu)造函數(shù),輸出字符‘A’;然后調(diào)用自身的構(gòu)造函數(shù),輸出‘B’;故程序的輸出結(jié)果是:AB。14、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assXX{intx;public:XX(intxx=0):x(xx){}intgetX(){returnx;)};c1assYY:publicXX{inty;public:YY(intxx,intyy):XX(xx),y(yy){}intgetV(){retumgetX()+y;}};intmain(){YYc(3,4);cout<<c.getV()+c.getXO<<end1;return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、3B、4C、7D、10標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由于類YY公開繼承自類XX,所以執(zhí)行表達(dá)式c.getVO+c.getXO的值等于3+3+4=10。15、下面程序中對(duì)一維坐標(biāo)點(diǎn)類Point進(jìn)行運(yùn)算符重載#includeusingnamespacestd;classPoint{public:Point(intval){x=val;}Point&operator++(){x++;return*this;}Pointoperator++(int){Pointold=*this;++(*this);returnold;}IntGetX()const{returnx;}private:intx:};intmain(){Pointa(10);cout<<(++a).GetX();cout<A、運(yùn)行時(shí)輸出1011B、運(yùn)行時(shí)輸出1111C、運(yùn)行時(shí)輸出1112D、編譯有錯(cuò)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是重載增1運(yùn)算符“++”。此題中,Point&operator++()重載的是前綴形式,而Pointoperator++(int)重載的是后綴形式。所以主函數(shù)中第1條輸出語(yǔ)句輸出11,此時(shí)a.x的值為11;第2條輸出語(yǔ)句,首先創(chuàng)建了一個(gè)Point對(duì)象old保存自身,然后通過語(yǔ)句++(*this);調(diào)用前綴++的重載函數(shù),因?yàn)榉祷刂凳歉淖兦氨4娴膐ld對(duì)象,故仍輸出11。16、已知在一個(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ù)。17、下列關(guān)于類模板的模板參數(shù)的敘述中,錯(cuò)誤的是()。A、模板參數(shù)可以作為數(shù)據(jù)成員的類型B、模板參數(shù)可以作為成員函數(shù)的返回類型C、模板參數(shù)可以作為成員函數(shù)的參數(shù)類型D、模板參數(shù)不能作為成員函數(shù)的局部變量的類型標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是模板參數(shù)。模板參數(shù)是一種參數(shù)化的數(shù)據(jù)。模型,在模板類或模板函數(shù)中,只要使用數(shù)據(jù)類型的地方都能使用模板參數(shù)來(lái)代表一種未知的數(shù)據(jù)類型。所以,模板參數(shù)可以作為成員函數(shù)的局部變量類型。18、在定義一個(gè)類模板時(shí),模板形參表是用一對(duì)括號(hào)括起來(lái)的,所采用的括號(hào)是()。A、()B、[]C、<>D、{}標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:聲明一個(gè)類模板的格式是:template<<模板形參聲明>><類聲明>。19、在C++中,打開一個(gè)文件時(shí)與該文件建立聯(lián)系的是()。A、流對(duì)象B、模板C、函數(shù)D、類標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在CH中,打開一個(gè)文件時(shí)與該文件建立聯(lián)系的是流對(duì)象。20、有如下程序:#inc1ude<iomanip>#inc1ude<iostream>usingnamespacestd;intmain(){cout<<setfill(’*’)<<setw(6)<<123<<456;return0:}運(yùn)行時(shí)的輸出結(jié)果是()。A、***123***456B、***l23456***C、***123456D、123456標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在主函數(shù)中第一次輸出時(shí)調(diào)用函數(shù)setfill(’*’)設(shè)置填充字符為‘*’,調(diào)用函數(shù)setw(6)設(shè)置每次輸出的寬度為6,所以第一次輸出123時(shí),多余的三個(gè)空位用‘*’填充,即結(jié)果為***l23,第二次從輸出流中輸出456。21、若磁盤上已存在某個(gè)文本文件,其全路徑文件名為d:\ncre\test.txt,下列語(yǔ)句中不能打開該文件的是()。A、ifstreamfile(’’d:\ncre\test.txt’’);B、ifStreamfile(’’d:\ncre\\test.txt’’);C、ifstreamfile;file.open(’’d:\\ncre\\test.txt’’);ifstream(’’d:\\ncre\\test.txt’’);D、ifstream*pFile=new標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是轉(zhuǎn)義字符。在字符常量或字符串中,以“\”開頭的一系列字符被看做是一個(gè)轉(zhuǎn)義字符。要表示“\”字符,必須使用轉(zhuǎn)義字符“\\”。22、有如下類定義classMyClasspublic:Private:intdata;};若要為MyClass類重載流輸入運(yùn)算符>>,使得程序中可以“cin>>obj;”形式輸入MyClass類的對(duì)象obj,則橫線處的聲明語(yǔ)句應(yīng)為()。A、friendistream&operator>>(istream&is,MyClass&a);B、friendistream&operator>>(istream&is,MyClassa);C、istream&operator>>(istream&is,MyClass&a);D、istream&operator>>(istream&is,MyClassa);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++的輸入運(yùn)算符>>作為非類成員函數(shù)重載。在一個(gè)類中,可將輸入運(yùn)算符>>聲明為友元函數(shù),在類MyClass重載輸入運(yùn)算符>>的形式如選項(xiàng)A)所示。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共20題,每題1.0分,共20分。)1、下列敘述中正確的是()。A、—個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度也必定大B、—個(gè)算法的空間復(fù)雜度大,則其時(shí)間復(fù)雜度必定小C、一個(gè)算法的時(shí)間復(fù)雜度大,則其空間復(fù)雜度必定小D、算法的時(shí)間復(fù)雜度與空間復(fù)雜度沒有直接關(guān)系標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的復(fù)雜度主要包括時(shí)間復(fù)雜度和空間復(fù)雜度。算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,算法的工作量用算法所執(zhí)行的基本運(yùn)算次數(shù)來(lái)度量,而算法所執(zhí)行的基本運(yùn)算次數(shù)是問題規(guī)模的函數(shù),即算法的工作量=f(n),其中n是問題的規(guī)模;算法的空間復(fù)雜度,一般是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。一個(gè)算法所占用的存儲(chǔ)空間包括算法程序所占用的空間、輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及算法執(zhí)行過程中所需要的額外空間。根據(jù)各自的定義可知,算法的時(shí)間復(fù)雜度與空間復(fù)雜度并不相關(guān)。2、下列關(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)用無(wú)參函數(shù)時(shí)主函數(shù)并不將數(shù)據(jù)傳送給被調(diào)函數(shù),且可以帶回或不帶回函數(shù)值。函數(shù)的遞歸調(diào)用就是直接或間接的調(diào)用自己。3、下列運(yùn)算符不能重載為友元函數(shù)的是()。A、=()[]->B、+-++--C、><>=<=D、+=-=*=/=標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載的概念。C++語(yǔ)言規(guī)定,=、[]、()、->以及所有的類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,如果要重載為友元函數(shù)就必須重載為非成員函數(shù)。4、下列敘述中正確的是()。A、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)與順序存儲(chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間是相同的B、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要多于順序存儲(chǔ)結(jié)構(gòu)C、線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)所需要的存儲(chǔ)空間一般要少于順序存儲(chǔ)結(jié)構(gòu)D、以上都不正確標(biāo)準(zhǔn)答案:B知識(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ǔ)序號(hào),稱為指針域。所以線性表的鏈?zhǔn)酱鎯?chǔ)方式比順序存儲(chǔ)方式的存儲(chǔ)空間要大一些。5、類MyClass的定義如下,若要對(duì)value賦值,則下面語(yǔ)句正確的是()。classMyClass{public:MyClass(){}MyClass(inti){value=newint(i);}int*value;};A、MyClassmy;my.value=10;B、MyClassmy;*my.value=10;C、MyClassmy;my.*value=10;D、MyClassmy(10);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因題目中定義的指針value是指向變量i的,所以直接利用語(yǔ)句MyClass(inti){value=newint(i);}對(duì)value進(jìn)行賦值即可。6、下列重載函數(shù)中,正確的是()。A、voidfun(inta,floatb);voidfun(intC,floatd)B、voidfun(inta,floatb);voidfun(floata,intb)C、floatfun(inta,floatb);intfun(intb,floata)D、intfun(inta,intb);floatfun(inta,intb)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:所謂函數(shù)重載是指同一函數(shù)名可以對(duì)應(yīng)多個(gè)函數(shù)實(shí)現(xiàn)。進(jìn)行函數(shù)重載時(shí),要求同名函數(shù)在參數(shù)個(gè)數(shù)上不同,或者參數(shù)類型上不同。7、有如下類定義:classPoint{private;staticinthow_many;};_______how_many=0;要初始化point的靜態(tài)成員how_many,下劃線處應(yīng)填入的內(nèi)容是()。A、ingB、staticintC、intPoint∷D、staticintPoint∷標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是靜態(tài)數(shù)據(jù)成員的韌始化,靜態(tài)數(shù)據(jù)成員應(yīng)在類體外進(jìn)行初始化,且初始化的一般格式為:數(shù)據(jù)類型類名∷靜態(tài)數(shù)據(jù)成員名=初始值。8、有如下程序:#includeusingnamespacestd;classBase{public:Base(intx=0){cout<<x;)};classDerived:publicBase{public:Derived(intx=0){cout<<x;)private:Baseval;);intmain(){Derivedd(1);return0:}程序的輸出結(jié)果是()。A、0B、1C、01D、001標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是類的構(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ù)。本題中,首先會(huì)構(gòu)造基類Base,調(diào)用Base類的構(gòu)造函數(shù),輸出0;然后還定義了一個(gè)Base類的對(duì)象,再次調(diào)用Base類的默認(rèn)構(gòu)造函數(shù)輸出0;最后構(gòu)造自身,因主函數(shù)中傳入了構(gòu)造參數(shù)l,所以輸出1。故最后輸出結(jié)果是:001。9、下面屬于黑盒測(cè)試方法的是()。A、語(yǔ)句覆蓋B、邏輯覆蓋C、邊界值分析D、路徑覆蓋標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:采用黑盒技術(shù)設(shè)計(jì)測(cè)試用例的方法有:等價(jià)類劃分、邊界值分析、錯(cuò)誤推測(cè)、因果圖和綜合策略。10、下列描述中正確的是()。A、數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)獨(dú)立的系統(tǒng),不需要操作系統(tǒng)的支持B、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問題C、數(shù)據(jù)庫(kù)管理系統(tǒng)就是數(shù)據(jù)庫(kù)系統(tǒng)D、以上三種說法都不對(duì)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)系統(tǒng)由如下幾個(gè)部分組成:數(shù)據(jù)庫(kù)(數(shù)據(jù))、數(shù)據(jù)庫(kù)管理系統(tǒng)(軟件)、數(shù)據(jù)庫(kù)管理員(人員)、系統(tǒng)平臺(tái)之一——硬件平臺(tái)(硬件)、系統(tǒng)平臺(tái)之二——軟件平臺(tái)(軟件)。這五個(gè)部分構(gòu)成了一個(gè)以數(shù)據(jù)庫(kù)為核心的完整的運(yùn)行實(shí)體,稱為數(shù)據(jù)庫(kù)系統(tǒng)。數(shù)據(jù)庫(kù)技術(shù)的根本目的是要解決數(shù)據(jù)的共享問題。數(shù)據(jù)庫(kù)中的數(shù)據(jù)具有“集成”、“共享”之特點(diǎn),亦即數(shù)據(jù)庫(kù)集中了各種應(yīng)用的數(shù)據(jù),進(jìn)行統(tǒng)一地構(gòu)造與存儲(chǔ),而使它們可被不同應(yīng)用程序所使用。數(shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagementSystem,簡(jiǎn)稱DBMS),是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織、數(shù)據(jù)操作、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。它是數(shù)據(jù)庫(kù)系統(tǒng)的核心。11、有如下程序:usingstd::cout;DuDIIC:frienddoubledistance(constPoint&p);∥p距原點(diǎn)的距離Point(intXX=0,intyy=O):x(xx),y(yy){)∥①private:intX,y;doubledistance(constPoint&p){∥②returnsqrt(p.X木P.x+p.Y*P.y);)intmain(){Pointp1(3,4);cout<A、程序編譯正確B、程序編譯時(shí)語(yǔ)句①出錯(cuò)C、程序編譯時(shí)語(yǔ)句②出錯(cuò)D、程序編譯時(shí)語(yǔ)句③出錯(cuò)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:這段程序是正確的,計(jì)算p距離原點(diǎn)的距離。語(yǔ)句①是類Point的構(gòu)造函數(shù),在構(gòu)造函數(shù)中給變量xx和yy賦初值0。語(yǔ)句②是計(jì)算點(diǎn)p距原點(diǎn)的距離的函數(shù)distance。語(yǔ)句③是計(jì)算點(diǎn)p1距離原點(diǎn)的距離并輸出。12、己知枚舉類型定義語(yǔ)句為:enumToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};則下列敘述中錯(cuò)誤的是()。A、枚舉常量NAME的值為1B、枚舉常量NUMBER的值為1C、枚舉常量MINUS的值為6D、枚舉常量PRINT的值為10標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是C++語(yǔ)言的數(shù)據(jù)類型。第一個(gè)枚舉常量的值為0;允許程序顯示的定義中指定部分或全部枚舉常量的值,枚舉常量默認(rèn)時(shí),在前一枚舉常量值的基礎(chǔ)上以此增1。13、有三個(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)算得到的。14、有如下程序:#inc1ude<iostream>voidfun(int&x,inty){intt=x;x=y;y=t;}intmain(){inta[2]={23,42};std::cout<<a[0]<<","a[1]std::end1;return0;}執(zhí)行后的輸出結(jié)果是()。A、42,42B、23,23C、23,42D、42,23標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查是是函數(shù)的調(diào)用以及參數(shù)值的傳遞。函數(shù)fun中的第一個(gè)參數(shù)是引用傳值方式,是雙向的:第二個(gè)參數(shù)是按值傳遞,是單向的。15、C++中的模板包括()。A、對(duì)象模板和函數(shù)模板B、對(duì)象模板和類模板C、函數(shù)模板和類模板D、變量模板和對(duì)象模板標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是模板。在C++語(yǔ)言中,模板有兩類:函數(shù)模板和類模板。16、若為Fraction類重載前增1運(yùn)算符++,應(yīng)在類體中將其聲明為()。A、Fraction&operator++();B、Fraction&operator++fint);C、friendFraction&operator++();D、friendFraction&operator++(int);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在類Fraction中重載前增l運(yùn)算符++時(shí),其聲明形式為Fraction&operator++();在類Fraction中重載后增1運(yùn)算符++時(shí),其聲明形式為Fraction&operator++(int);。17、有如下程序:#include<iostream>usingnamespacestd;classONE{intc;public:0NE():c(0){cout<<1;}ONE(intn):c(n){cout<<2;}};classTWO{ONEone1;ONEone2;public:TWO(intm):one2(m){cout<<3;}};intmain(){TWOt(4);return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、3B、23C、123D、213標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由類TWO的定義可知,其成員為類ONE的兩個(gè)對(duì)象one1和one2。所以在主函數(shù)中構(gòu)建類TWO的對(duì)象t(4)時(shí),先后調(diào)用類ONE的構(gòu)造函數(shù)ONE():c(0){cout<<1;}和ONE(intn):c(n){cout<<2;}輸出12,然后再調(diào)用類TWO的構(gòu)造函數(shù)TWO(intm):one2(m){cout<<3;},輸出3。18、Sample是一個(gè)類,執(zhí)行下面語(yǔ)句后,調(diào)用Sample類的構(gòu)造函數(shù)的次數(shù)是,()。Samplea[2],*P=newSample;A、0B、1C、2D、3標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C++中,聲明一個(gè)類對(duì)象時(shí),編譯程序需要調(diào)用類的構(gòu)造函數(shù)為對(duì)象分配存儲(chǔ)空間,進(jìn)行必須的初始化。在本題的這條語(yǔ)句中,聲明了一個(gè)Sample類型的包含2個(gè)數(shù)組元素的數(shù)組a[2],一個(gè)指向類Sample對(duì)象的指針P,所以Sample類的構(gòu)造函數(shù)共調(diào)用了3次。19、有如下類模板定義:template<typenameT>classBigNumber{longn;public:BigNumber(Ti):n(i){}BigNumberoperator+(BigNumberb){retumBigNumber(n+b.n);}}己知bl.b2是BigNumber的兩個(gè)對(duì)象,則下列表達(dá)式中錯(cuò)誤的是()。A、bl+b2B、b1+3C、3+blD、3+3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C++運(yùn)算符的重載有兩個(gè)方式,一種是做為成員函數(shù),另一種是做為友元函數(shù)。前種C++默認(rèn)省略第一個(gè)參數(shù)(事實(shí)上是對(duì)象本身),而后一種是所有的參數(shù)都要寫全。比如對(duì)加法的重載:成員方式為COperatoroperator+(COperator&op);,在調(diào)用的過程中我們可以理解為result=operator+(op);友元方式為friendCOperatoroperator一(C0perator&opl,COperator&op2);,在調(diào)用的過程中我們可以理解為result=operator一(opl,op2);。對(duì)于本題來(lái)說,整數(shù)3與bl相加時(shí),3是int型,bl是BigNumbe<>型,int型不能和別的型做運(yùn)算。20、下列函數(shù)模版中的定義中,合法的是()。A、template<typenameT>Tabs(Tx){returnx<0?-x:x;}B、templateclass<T>Tabs(Tx){returnx<0?-x:x;}C、templateT<class.T>abs(Tx){returnx<0?-x:x;}D、templateTabs(Tx){returnx<07-x:x;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是函數(shù)模板。聲明一個(gè)函數(shù)模板的格式是:template<模板形參表聲明>函數(shù)聲明,其中的<模板形參表聲明>是由一個(gè)或多個(gè)“模板形參”組成的,每個(gè)“模板形參”可具有以下幾種形式:typename參數(shù)名;class參數(shù)名;類型修飾參數(shù)名。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共20題,每題1.0分,共20分。)1、下列關(guān)于類、對(duì)象、屬性和方法的敘述中,錯(cuò)誤的是()。A、類是對(duì)一類具有相同的屬性和方法對(duì)象的描述B、屬性用于描述對(duì)象的狀態(tài)C、方法用于表示對(duì)象的行為D、基于同一個(gè)類產(chǎn)生的兩個(gè)對(duì)象不可以分別設(shè)置自己的屬性值標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:類是對(duì)一類具有相同的屬性和方法對(duì)象的描述,屬性用于描述對(duì)象的狀態(tài),方法用于表示對(duì)象的行為,基于同一個(gè)類產(chǎn)生的兩個(gè)對(duì)象是可以分別設(shè)置自己的屬性值。2、若有如下程序:#include<iostream>usingnamespacestd;ints=0;classsample{staticintn:public:sample(inti){n=i;}staticvoidadd(){s+=n;}};intsample::n=0:intmain(){samplea(2),b(5);sample::add();cout<<s<<endl:return0:}程序運(yùn)行后的輸出結(jié)果是()。A、2B、5C、7D、3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:執(zhí)行語(yǔ)句“samplea(2),b(5)”;的結(jié)果是使n的值最終變?yōu)?,sample::add()語(yǔ)句調(diào)用函數(shù)staticvoidadd(),使得S=S+n=5。3、冒泡排序在最壞情況下的比較次數(shù)是()。A、n(n+1)/2B、nlog2nC、n(n-1)/2D、n/2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)n個(gè)結(jié)點(diǎn)的線性表采用冒泡排序,在最壞情況下,冒泡排序需要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2。4、下列描述中,不符合良好程序設(shè)計(jì)風(fēng)格要求的是()。A、程序的效率第一,清晰第二B、程序的可讀性好C、程序中要有必要的注釋D、輸入數(shù)據(jù)前要有提示信息標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:一般來(lái)講,程序設(shè)計(jì)風(fēng)格是指編寫程序時(shí)所表現(xiàn)出的特點(diǎn)、習(xí)慣和邏輯思路。程序設(shè)計(jì)風(fēng)格總體而言應(yīng)該強(qiáng)調(diào)簡(jiǎn)單和清晰,程序必須是可以理解的。著名的“清晰第一,效率第二”的論點(diǎn)已成為當(dāng)今主導(dǎo)的程序設(shè)計(jì)風(fēng)格。5、下列敘述中正確的是()。A、程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)B、程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)C、程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量D、以上都不正確標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:影響程序執(zhí)行效率的因素有很多,如數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)、程序處理的數(shù)據(jù)量、程序的算法等。順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)在數(shù)據(jù)插入和刪除操作上的效率就存在差別。其中,鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的效率要高一些。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來(lái)定義C、內(nèi)聯(lián)函數(shù)是通過編譯器來(lái)實(shí)現(xiàn)的D、內(nèi)聯(lián)函數(shù)函數(shù)體的最后一條語(yǔ)句必須是return語(yǔ)句標(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ù)體來(lái)替換所以它沒有一般函數(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、有如下類定義:classMyClass{intb;chara;doublec;public:MyClass():c(0.0),b(0),a(’,’){}};創(chuàng)建這個(gè)類的對(duì)象時(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ù)中的位置先后順序無(wú)關(guān),只與成員變量在類中定義的先后順序有關(guān)。8、下列選項(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ì)方法的主要原則可以概括為:自頂向下,逐步求精,模塊化,限制使用GOT0語(yǔ)句。自頂向下足指程序設(shè)計(jì)時(shí)應(yīng)先考慮總體,后考慮細(xì)節(jié):先考慮全局目標(biāo),后考慮局部目標(biāo)。逐步求精是指對(duì)復(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ì)方法。9、下列程序用來(lái)判斷數(shù)組中特定元素的位置所在,則輸出結(jié)果為()。#include<conio.h>#include<iostream.h>intfun(int*p,intn,int*j){inti;*j=0;for(i=0;i<n;i++)if(p[*j]<p[i])*j=i;returnp[*j];}voidmain(){inta[10]={1,3,9,O,8,7,6,5,4,2};intj;fun(a,10,&j);cout<<j<<’,’<<a[j];}A、2,9B、3C、9D、3,9標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由程序中的主函數(shù)main入手,調(diào)用fun函數(shù)。其中第一個(gè)實(shí)參為數(shù)組a的名字,數(shù)組名作為實(shí)參,傳遞的是數(shù)組的起始地址。所以在fun函數(shù)中指針p指向了數(shù)組的第一個(gè)元素a[0]。另外實(shí)參整型j傳遞的是引用,也就是j的地址。在fun函數(shù)中在for循環(huán)中,依次將當(dāng)前元素p[i]與j指針值為標(biāo)識(shí)的p[*j]進(jìn)行比較,取較大的。最后循環(huán)后的結(jié)果就是p[*j]存放數(shù)組中的最大值,并且指針j為該值的標(biāo)識(shí)位??梢钥闯鰯?shù)組的最大值是9標(biāo)識(shí)位為2。10、下面描述中不屬于數(shù)據(jù)庫(kù)系統(tǒng)特點(diǎn)的是()。A、數(shù)據(jù)共享B、數(shù)據(jù)完整性C、數(shù)據(jù)冗余度高D、數(shù)據(jù)獨(dú)立性高標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)系統(tǒng)的基本特點(diǎn)有數(shù)據(jù)的集成性、數(shù)據(jù)的高共享性與低冗余性、數(shù)據(jù)的獨(dú)立性、數(shù)據(jù)統(tǒng)一管理與控制。11、已知類Myclass的定義如下:classMyClass{public:MyClass(intd){data=d;)MyClass0{)private:intdata;};下列對(duì)Myclass類對(duì)象數(shù)組的定義和初始化語(yǔ)句中,正確的是()。A、MyClassarrays[2];B、MyClassarrays[2]={MyClass(5)};C、MyClassarrays[2]={MyClass(5),MyClass(6)};D、MyClass*arrays:newMyClass[2];標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在選項(xiàng)C)中定義了類MyC:lass對(duì)象數(shù)組arrays[2],并用對(duì)象MyClass(5)和MyClass(6)對(duì)這個(gè)數(shù)組中的兩個(gè)元素賦初值。12、假定MyClass為一個(gè)類,則該類的拷貝初始化構(gòu)造函數(shù)的聲明語(yǔ)句為()。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è)己知的對(duì)象初始化一個(gè)正在創(chuàng)建的同類對(duì)象,它的一般格式是:類名::類名(const類名&引用對(duì)象名)。13、下列函數(shù)模版中的定義中,合法的是()。A、templateTabs(Tx){returnx<07一x:x;)B、templateclassTabs(Tx){retumxC、templateTabs(Tx){retumx<07一x:x;)D、templateTabs(Tx){returnx標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是函數(shù)模板。聲明一個(gè)函數(shù)模板的格式是:template<模板形參表聲明>函數(shù)聲明,其中的<模板形參表聲明>是由一個(gè)或多個(gè)“模板形參”組成的,每個(gè)“模板形參”可具有以下幾種形式:typename參數(shù)名:class參數(shù)名;類型修飾參數(shù)名。14、下列關(guān)于C++流的描述中,錯(cuò)誤的是()。A、cout>>’A’表達(dá)式可輸出字符AB、eof()函數(shù)可以檢測(cè)是否到達(dá)文件尾C、對(duì)磁盤文件進(jìn)行流操作時(shí),必須包含頭文件fstreamD、以iosbase∷out模式打開的文件不存在時(shí),將自動(dòng)建立一個(gè)新文件標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:tout是一個(gè)標(biāo)準(zhǔn)輸出流對(duì)象。>>稱之為提取運(yùn)算符,它的功能是從輸入流中提取數(shù)據(jù)賦值給一個(gè)變量。<<為插入運(yùn)算符,其功能是把表達(dá)式的值插入到輸出流中。當(dāng)系統(tǒng)執(zhí)行cout<15、在下列關(guān)鍵字中,不能用來(lái)表示繼承方式的是()。A、privateB、staticC、publicD、protected標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是繼承方式。繼承方式有私有(private)、保護(hù)(protected)、公有(public)三種。16、在公有繼承的情況下,允許派生類直接訪問的基類成員包括()。A、公有成員B、公有成員和保護(hù)成員C、公有成員、保護(hù)成員和私有成員D、保護(hù)成員標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)基類成員的訪問?;惖某蓡T有公有、保護(hù)和私有三種訪問屬性;類的繼承方式也有公有繼承、保護(hù)繼承和私有繼承三種。無(wú)論那種繼承方式,派生類中的成員都不能訪問基類中的私有成員,但可以訪問基類中的公有成員和保護(hù)成員。17、虛函數(shù)支持多態(tài)調(diào)用,一個(gè)基類的指針可以指向派生類的對(duì)象,而且通過這樣的指針調(diào)用虛函數(shù)時(shí),被調(diào)用的是指針?biāo)傅膶?shí)際對(duì)象的虛函數(shù)。而非虛函數(shù)不支持多態(tài)調(diào)用。有如下程序:#include<iostream>usingnamespacestd;classBase{public:virtualvoidf(){cout<<"f0+";}voidg(){cout<<"g0+";}};classDerived:publicBase{public:voidf(){cout<<"f+";}voidgo{cout<<,"g+";}};intmain{Derivedd;Base*p=&d;p->f();p->g();return0:}運(yùn)行時(shí)輸出的結(jié)果是()。A、f+g+B、f0+g+C、f+g0+D、f0+g0+標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是虛函數(shù)和多態(tài)性。此題中,因?yàn)閒()是虛函數(shù)具有多態(tài)性,所以通過指針p調(diào)用的fi()是派生類Derived中定義的f();而g()不是虛函數(shù),通過指針p調(diào)用的是Base中的g()。18、已知在一個(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ù)。19、下列關(guān)于函數(shù)模板的描述中,錯(cuò)誤的是()。A、從模板實(shí)參表和從模板函數(shù)實(shí)參表獲得信息矛盾時(shí),以模板實(shí)參的信息為準(zhǔn)B、對(duì)于常規(guī)參數(shù)所對(duì)應(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ù)對(duì)應(yīng)的實(shí)際參數(shù),而且它們正好是參數(shù)表中最后的若干參數(shù),則模板實(shí)參表中的那幾個(gè)參數(shù)可以省略。20、若需要為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ù)表中。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第5套一、選擇題(本題共21題,每題1.0分,共21分。)1、下列敘述中正確的是()。A、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)B、邏輯結(jié)構(gòu)屬于線性結(jié)構(gòu),存儲(chǔ)結(jié)構(gòu)屬于非線性結(jié)構(gòu)C、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)不影響數(shù)據(jù)處理的效率D、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)可以有多種存儲(chǔ)結(jié)構(gòu),且各種存儲(chǔ)結(jié)構(gòu)影響數(shù)據(jù)處理的效率標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間中的存放形式,一種數(shù)據(jù)結(jié)構(gòu)可以根據(jù)需要采用不同的存儲(chǔ)結(jié)構(gòu),常用的存儲(chǔ)結(jié)構(gòu)有順序和鏈?zhǔn)浇Y(jié)構(gòu)。采用不同的存儲(chǔ)結(jié)構(gòu),其處理的效率是不同的。2、下列關(guān)于棧敘述正確的是()。A、棧頂元素最先能被刪除B、棧頂元素最后才能被刪除C、棧底元素永遠(yuǎn)不能被刪除D、以上三種說法都不對(duì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:棧是先進(jìn)后出的線性表,棧頂?shù)脑刈钕缺粍h除,棧底的元素最后被刪除。3、程序執(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語(yǔ)句,由于沒有break短語(yǔ),所以繼續(xù)執(zhí)行“cout<<"4"<<endl:break;”,語(yǔ)句輸出4。4、對(duì)于一個(gè)類定義,下列敘述中錯(cuò)誤的是()。A、如果沒有定義拷貝構(gòu)造函數(shù),編譯器將生成一個(gè)拷貝構(gòu)造函數(shù)B、如果沒有定義缺省的構(gòu)造函數(shù),編譯器一定將生成一個(gè)缺省的構(gòu)造函數(shù)C、如果沒有定義構(gòu)造函數(shù),編譯器將生成一個(gè)缺省的構(gòu)造函數(shù)和一個(gè)拷貝構(gòu)造函數(shù)D、如果已經(jīng)定義了構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù),編譯器不會(huì)生成任何構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù)和復(fù)制構(gòu)造函數(shù),如果沒有定義構(gòu)造函數(shù),編譯器將生成一個(gè)缺省的構(gòu)造函數(shù)和一個(gè)拷貝構(gòu)造函數(shù),如果已經(jīng)定義了構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù),編譯器不會(huì)生成任何構(gòu)造函數(shù)。如果沒有定義拷貝構(gòu)造函數(shù),編譯器將生成一個(gè)拷貝構(gòu)造函數(shù)。5、已知類Myclass的定義如下classMyClass{public:voidfunctionl(MyClass&c){cout<A、functionlB、function2C、function3D、function4標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:funcyion4()函數(shù)作為類的靜態(tài)成員函數(shù),不能直接訪問類中說明的非靜態(tài)成員,即cout<6、已知有數(shù)組定義chara[3][4];下列表達(dá)式中錯(cuò)誤的是()。A、a[2]="WIN"B、strcpy(a[2],"WIN")C、a[2][3]=’W’D、a[0][1]=a[0][1]標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要是對(duì)字符數(shù)組的考查。選項(xiàng)A中a[2]為一個(gè)地址,所以不能用等號(hào)進(jìn)行賦值操作。7、定義學(xué)生選修課程的關(guān)系模式:SC(S#,Sn,C#,Cn,G)(其屬性分別為學(xué)號(hào)、姓名、課程號(hào)、課程名、成績(jī))該關(guān)系的范式最高達(dá)到A、1NFB、2NFC、3NFD、BCNF標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:第一范式(1NF)是指數(shù)據(jù)庫(kù)表的每一列都是不可分割的基本數(shù)據(jù)項(xiàng),同一列中不能有多個(gè)值,即實(shí)體中的某個(gè)屬性不能有多個(gè)值或者不能有重復(fù)的屬性。如果出現(xiàn)重復(fù)的屬性,就可能需要定義一個(gè)新的實(shí)體,新的實(shí)體由重復(fù)的屬性構(gòu)成,新實(shí)體與原實(shí)體之間為一對(duì)多關(guān)系。在第一范式(1NF)中表的每一行只包含一個(gè)實(shí)例的信息。第二范式(2NF)要求數(shù)據(jù)庫(kù)表中的每個(gè)實(shí)例或行必須可以被唯一地區(qū)分。本題中關(guān)系模式中的可能不被唯一地區(qū)分,因此它只能滿足第一范式,而滿足不了第二范式。8、有如下類定義:classMyClass{intb;chara;doublec;public:MyClass():c(0.0),b(0),a(’,’){}};創(chuàng)建這個(gè)類的對(duì)象時(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ù)中的位置先后順序無(wú)關(guān),只與成員變量在類中定義的先后順序有關(guān)。9、有如下程序:#include<iostream>#include<cstfing>usingoamespacestd;classXCF{inta;public:XCF(intaa=0):a(aa){cout<<’’1’’;}XCF(XCF&x){a=x.a;cout<<’’2’’;}-XCF(){cout<<a;}intGeta(){return,a;}};intmain(){XCFd1(5),d2(d1);XCF*pd=newXCF(8);cout<<pd->Geta0;deletepd;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、1215588B、1218855C、12185D、128512標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在這個(gè)程序中在建立對(duì)象dl(5)時(shí),調(diào)用構(gòu)造函數(shù)XCF(intaa=0):a(aa){tout<<"1’’;),輸出1;在建立d2(d1)時(shí),調(diào)用拷貝構(gòu)造函數(shù)XCF(XCF&x){a=x.a(chǎn);cout<<’’2’’;},輸出2;在建立newXCF(8)對(duì)象時(shí),調(diào)用構(gòu)造函數(shù)XCF(intaa=0):a(aa){cout<<"1’’;},輸出1;語(yǔ)句cout<<pd->Geta()的功能是輸出8;語(yǔ)句deletepd;調(diào)用析構(gòu)函數(shù)~XCF(),輸出8;當(dāng)退出程序時(shí),分別釋放對(duì)象d2、d1,輸出55。10、下列關(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ì)象的指針。11、有如下程序:#include<iostream>usingnamespacestd;classVAC{public;intf()const{return3;}intf(){return5;}};Intmain(){VACv1;constVACv2;cout<<v1.f()<<v2.f();feturn0;}運(yùn)行時(shí)的輸出結(jié)果是()。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。12、建立一個(gè)有成員對(duì)象的派生類對(duì)象時(shí),各構(gòu)造函數(shù)體的執(zhí)行次序?yàn)?)。A、派生類、成員對(duì)象類、基類B、成員對(duì)象類、基類、派生類C、基類、成員對(duì)象類、派生類D、基類、派生類、成員對(duì)象類標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:建立派生類對(duì)象的時(shí)候,構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用的順序按照基類被繼承時(shí)候的順序(自左向右)。然后是執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類中的聲明順序(自上而下),最后是執(zhí)行派生類的構(gòu)造函數(shù)。13、對(duì)于通過公有繼承定義的派生類,若其成員函數(shù)可以直接訪問基類的某個(gè)成員,說明該基類成員的訪問權(quán)限是()。A、公有或私有B、私有C、保護(hù)或私有D、公有或保護(hù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:通過公有繼承定義的派生類,其成員函數(shù)可以訪問基類的公有成員和保護(hù)成員,但不能訪問基類的私有成員。14、下列關(guān)于派生類和基類的描述中,正確的是()。A、派生類成員函數(shù)只能訪問基類的公有成員B、派生類成員函數(shù)只能訪問基類的公有和保護(hù)成員C、派生類成員函數(shù)可以訪問基類的所有成員D、派生類對(duì)基類的默認(rèn)繼承方式是公有繼承標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:派生類不論是采用那種繼承方式繼承基類,它的成員函數(shù)只能訪問基類的公有成員和保護(hù)成員。15、有如下類定義classAnimal{public:virtualvoidName()=0;};classKoala:publicAnimal{public:voidName(){/*函數(shù)體略*/)};關(guān)于上述類定義,下列描述中錯(cuò)誤的是()。A、類Koala是類Animal的派生類B、類Koala中的Name函數(shù)是一個(gè)虛函數(shù)C、類Animal中的Name函數(shù)是一個(gè)純虛函數(shù)D、語(yǔ)句“Animala;”能夠建立類Animal的一個(gè)對(duì)象a標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在類Animal定義了純虛函數(shù)Name(),所以類Animal就是一個(gè)抽象類,而抽象類是不能夠建立對(duì)象的。16、下列關(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ù)表中。17、有

溫馨提示

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

評(píng)論

0/150

提交評(píng)論