版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷16(共9套)(共222題)國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共25題,每題1.0分,共25分。)1、由于常對(duì)象不能被更新,因此()。A、通過常對(duì)象只能調(diào)用它的常成員函數(shù)B、通過常對(duì)象只能調(diào)用靜態(tài)成員函數(shù)C、常對(duì)象的成員都是常成員D、通過常對(duì)象可以調(diào)用任何不改變對(duì)象值的成員函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查常對(duì)象的基本知識(shí),常對(duì)象只能調(diào)用它的常成員函數(shù),而不能調(diào)用非const函數(shù),常對(duì)象的成員函數(shù)不一定都是常成員函數(shù),只需保證其數(shù)據(jù)成員是常數(shù)據(jù)成員即可。所以本題選A。2、有如下函數(shù)模板:ternplateTcast(Uu){returnu;}其功能是將U類型數(shù)據(jù)轉(zhuǎn)換為T類型數(shù)據(jù)。已知i為int型變量,下列對(duì)模板函數(shù)cast的調(diào)用中正確的是()。A、cast(i);B、cast<>(i);C、cast(i);D、cast(i);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)模板的基本運(yùn)用,屬于基礎(chǔ)知識(shí)。函數(shù)模板實(shí)際上是建立一個(gè)通用函數(shù),其函數(shù)類型和形參類型不具體指定,用一個(gè)虛擬的類型代表,這個(gè)通用函數(shù)就是函數(shù)模板。函數(shù)模板可以設(shè)定默認(rèn)參數(shù),這樣在調(diào)用模板函數(shù)時(shí)就可以省略實(shí)參,函數(shù)模板的實(shí)例就是一個(gè)函數(shù)的定義。所以本題答案為D。3、假定MyClass為一個(gè)類,那么下列的函數(shù)說(shuō)明中,()為該類的析構(gòu)函數(shù)。A、void~MyClass();B、~MyClass(intn);C、MyClass();D、~MyClass();標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++語(yǔ)言中析構(gòu)函數(shù)為符號(hào)“~”加類名,且析構(gòu)函數(shù)沒有返回值和參數(shù),故前不加void關(guān)鍵字。所以正確的形式應(yīng)該是~MyClass()。4、下列敘述中正確的是()。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)的效率要高一些。5、下面關(guān)于算法的敘述中,正確的是()。A、算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)B、算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止C、算法的空間復(fù)雜度是指算法程序中指令(或語(yǔ)句)的條數(shù)D、以上三種描述都正確標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:算法在運(yùn)行過程中需輔助存儲(chǔ)空間的大小稱為算法的空間復(fù)雜度。算法的有窮性是指一個(gè)算法必須在執(zhí)行有限的步驟后結(jié)束。6、下列各組類型聲明符中,含義相同的一組是()。A、unsignedlongim和longB、signedshortint和shortC、unsignedshort和shortD、shortint和int標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查整型變量的類型,A、c選項(xiàng)中前者為無(wú)符號(hào)的,后者為有符號(hào)的,D選項(xiàng)中shortint為2個(gè)字節(jié),int為4個(gè)字節(jié)。7、執(zhí)行下列語(yǔ)句段后,輸出字符“*”的個(gè)數(shù)是()。for(inti=50;i>1;i-=2)cout<<’*’;A、24B、25C、26D、50標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查for循環(huán)語(yǔ)句,題目中每執(zhí)行完循環(huán)體后,i都會(huì)減2,那么只有50到2之間的偶數(shù)才能輸出“*”,所以總共輸出25次。8、數(shù)據(jù)庫(kù)管理系統(tǒng)中負(fù)責(zé)數(shù)據(jù)模式定義的語(yǔ)言是()。A、數(shù)據(jù)定義語(yǔ)言B、數(shù)據(jù)管理語(yǔ)言C、數(shù)據(jù)操縱語(yǔ)言D、數(shù)據(jù)控制語(yǔ)言標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理系統(tǒng)一般提供相應(yīng)的數(shù)據(jù)語(yǔ)言,它們分別是:數(shù)據(jù)定義語(yǔ)言,負(fù)責(zé)數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)操縱語(yǔ)言,負(fù)責(zé)數(shù)據(jù)的操縱,包括查詢及增、刪、改等操作;數(shù)據(jù)控制語(yǔ)言,負(fù)責(zé)數(shù)據(jù)完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復(fù)等功能。9、靜態(tài)數(shù)據(jù)成員在()進(jìn)行初始化。A、成員函數(shù)列表B、類體外C、構(gòu)造函數(shù)D、成員函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:靜態(tài)數(shù)據(jù)成員不能在參數(shù)初始化表對(duì)靜態(tài)數(shù)據(jù)成員初始化,只能在類體外進(jìn)行初始化。10、有三個(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。11、定義如下枚舉類型enum{Monday,Tuesday,Wednesday,Thrusday,Friday=2};則下列語(yǔ)句正確的是()。A、表達(dá)式Wednesday=Friday的值是trueB、Dayday;day=3C、Dayday;day=Mondday+3D、Dayday;day=Tuesday+10標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:enum<枚舉類型名>{<枚舉元素表>):其中:關(guān)鍵詞enum表示定義的是枚舉類型,枚舉類型名由標(biāo)識(shí)符組成,而枚舉元素表由枚舉元素或枚舉常量組成。其中enum{Monday,Tuesday,Wednesday,Thrusday,F(xiàn)riday=2}的值由0開始,即0,1,2,3。D中的本題中的枚舉類型中的數(shù)據(jù)值Wednesday為2,而Friday的值賦值為2,所以判斷Wednesday等于Friday的表達(dá)式值為真,即true。即選擇A。12、某系統(tǒng)總體結(jié)構(gòu)如下圖所示該系統(tǒng)結(jié)構(gòu)圖是A、層次結(jié)構(gòu)B、網(wǎng)狀結(jié)構(gòu)C、分支結(jié)構(gòu)D、循環(huán)結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:層次結(jié)構(gòu)(hicrarchy)是一種操作系統(tǒng)的組織結(jié)構(gòu),其提供了一種隔離操作系統(tǒng)各層功能的模型。其包括歸屬層次結(jié)構(gòu)dissonance-attributionhierarchy維度層次結(jié)構(gòu)dimensionhiemrchv層次結(jié)構(gòu)數(shù)據(jù)庫(kù)hierarchicaldatabase等。網(wǎng)狀結(jié)構(gòu)這一名詞來(lái)自早期解剖學(xué)家用光學(xué)顯微鏡對(duì)腦干中央?yún)^(qū)網(wǎng)絡(luò)狀外觀的描述,在光鏡下這部分組織學(xué)的特點(diǎn)是神經(jīng)細(xì)胞分散,形態(tài)各異,大小不等,神經(jīng)纖維交錯(cuò)穿行其間,形成一種灰白質(zhì)交織的結(jié)構(gòu),稱之為網(wǎng)狀結(jié)構(gòu)。分支結(jié)構(gòu)的執(zhí)行是依據(jù)一定的條件選擇執(zhí)行路徑,而不是嚴(yán)格按照語(yǔ)句出現(xiàn)的物理順序。分支結(jié)構(gòu)的程序設(shè)計(jì)方法的關(guān)鍵在于構(gòu)造合適的分支條件和分析程序流程,根據(jù)不同的程序流程選擇適當(dāng)?shù)姆种дZ(yǔ)句。循環(huán)結(jié)構(gòu)可以減少源程序重復(fù)書寫的工作量,用來(lái)描述重復(fù)執(zhí)行某段算法的問題,這是程序設(shè)計(jì)中最能發(fā)揮計(jì)算機(jī)特長(zhǎng)的程序結(jié)構(gòu)。13、在下列關(guān)鍵字中,不能用來(lái)表示繼承方式的是()。A、privateB、staticC、publicD、protected標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是繼承方式。繼承方式有私有(研vate)、保護(hù)(protected)、公有(public)三種。14、下列關(guān)于虛基類的描述中,錯(cuò)誤的是()。A、使用虛基類可以消除由多繼承產(chǎn)生的二義性B、構(gòu)造派生類對(duì)象時(shí),虛基類的構(gòu)造函數(shù)只被調(diào)用一次C、聲明“classB:virtualpublicA”說(shuō)明類B為虛基類D、建立派生類對(duì)象時(shí),首先調(diào)用虛基類的構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:虛基類是為了消除由多重繼承產(chǎn)生的二義性而提出的。虛基類的說(shuō)明格式是:Class<類名>:virtual<繼承方式><基類名>,其中關(guān)鍵字virtual與繼承方式的位置無(wú)關(guān),但必須位于基類名之前,且virtual只對(duì)緊隨其后基類名起作用。對(duì)于本題來(lái)說(shuō),聲明“classB:virtualpublicA”說(shuō)明類A為虛基類。15、有如下程序:#include<iostream>usingnamespacestd;classTestClass1{public:virtualvoidfun(){cout<<"1";}};classTestClass2:publicTestClass1{public:TestClass2(){cout<<"2";}};classTestClass3:publicTestClass2{public:virtualvoidfun(){TestClass2::fun();cout<<"3";}};intmain(){TestClass1aa,*p;TestClass2bb;TestClass3cc;p=&cc;p->fun();return0:}執(zhí)行上面程序的輸出是()。A、1122B、2112C、2213D、2223標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:主函數(shù)中定義TestClass1的對(duì)象aa,*p對(duì)象指針,TestClass2的對(duì)象bb以及TestClass3的對(duì)象cc。p指向cc,TestClass3為TestClass2的派生類,構(gòu)造函數(shù)輸出2。TestClass3中fun函數(shù)中為TestClass2中的fun,調(diào)用TestClass2的構(gòu)造函數(shù),輸出2。“p->funn();”,TestClass2繼承于TestClass1中的fun,所以輸出1。然后輸出TestClass3中的“cout<<"3"”,即輸出3。16、有如下程序:#includeusingnamespacestd;classBase{public:voidfunlO{cout<<“BasCn”;)virtualvoidfun20{cout<<“BasCn”;)};classDerived:publicBase{public:voidfunlO{cout<<”Derivedha”;)voidfun2(){cout<<”DerivedLq”;));voidf(Base&b){b.funl0;b.fun2();)intmain(){Derivedobj;f(obj);return0:}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、BaseBaseB、BaseDerivedC、DerivedBaseD、DerivedDerived標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是虛函數(shù)的概念。在C++語(yǔ)言中,一個(gè)派生類的對(duì)象可以被它的任何一個(gè)基類的指針?biāo)赶?,若基類和派生類中存在一模一樣的成員函數(shù)。那么通過該基類指針調(diào)用這樣的成員函數(shù)時(shí),若這個(gè)成員函數(shù)被定義成虛函數(shù),那么就調(diào)用派生類中的;否則就調(diào)用基類中的。本題中,在f()函數(shù)中,形參b是一個(gè)基類的引用,它引用的是主函數(shù)中定義的派生類對(duì)象obi,所以在調(diào)用fun()時(shí),運(yùn)行的是基類的版本,而fun2()運(yùn)行的是派生類的版本。17、有如下類定義:classTest{public:Test(){a=0;c=0;)//①intf(inta)const{this一>a=a;}//②staticintg(){retuma;}//③void.h(intb){Test::b=b;);//④private:inta:staticintb:constintc;};intTest::b=0;在標(biāo)注號(hào)碼的行中,能被正確編譯的是()。A、①B、②C、③D、④標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是類的定義。一個(gè)類的長(zhǎng)數(shù)據(jù)成員的初始化只能在成員初始化列表中進(jìn)行,故選項(xiàng)A錯(cuò)誤;常成員函數(shù)不能更新對(duì)象的數(shù)據(jù)成員,故選項(xiàng)B錯(cuò)誤;靜態(tài)成員函數(shù)可以直接訪問類中說(shuō)明的靜態(tài)成員,但不能直接訪問類中說(shuō)明的非靜態(tài)成員,故選項(xiàng)C錯(cuò)誤。18、下列關(guān)于C++預(yù)定義流對(duì)象的敘述中,正確的是()。A、cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象B、cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類C、cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象D、cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:cin為istream流類的標(biāo)準(zhǔn)輸入對(duì)象,標(biāo)準(zhǔn)輸入設(shè)備就是指鍵盤。19、有如下程序:#include<iostream>usingnamespacestd;classBASE{public:~BASE(){cout<<"BASE";}};classDERIVED:publicBASE{public:~DERIVED(){cout<<"DERIVED";}};intmain(){DERIVED.x;return0;}執(zhí)行后的輸出結(jié)果是()。A、BASEB、DERIVEDC、BASEDERIVEDD、DERIVEDBASE標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是派生類的定義和使用。當(dāng)對(duì)象被刪除時(shí),派生類的析構(gòu)函數(shù)就被執(zhí)行。由于析構(gòu)函數(shù)不能被繼承,因此在執(zhí)行派生類的析構(gòu)函數(shù)時(shí),基類的析構(gòu)函數(shù)也將被調(diào)用。執(zhí)行順序是先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù),其順序與執(zhí)行構(gòu)造函數(shù)的順序正好相反。20、在一個(gè)抽象類中,一定包含有()。A、虛函數(shù)B、純虛函數(shù)C、模板函數(shù)D、重載函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:擁有純虛函數(shù)的類叫做抽象類,所以抽象類中必然包含有虛函數(shù)。21、有如下類定義:classTest{chara;constcharb;public:Test(charc){a=c;b=c;)//第1行voidf(chara)const{this->a=a;}//第2行voidg(charb){this->b=b;)//第3行charh()const{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的值。22、有如下程序:#include<iostream>#include<cmath>usingstd::cout;classPoint{public:Menddoubledistance(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(){Pointp1(3,4);cout<<distance(p1);//③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)p1距離原點(diǎn)的距離并輸出。23、有如下程序:#includeusingnamespacestd;classB{public:virtualvoidf(){cout<<"B";}voidg(){cout<<"B";}};classD:publicB{public:voidf(){cout<<"D";}voidg(){cout<<"D";}};voidh(B*p){p->f();p->g();}intmain(){Dobj;h(&obj);return0:}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、DDB、BBC、BDD、DB標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在基類B中定義虛函數(shù)f()和成員函數(shù)g(),而在派生類D中定義了函數(shù)f()和同名函數(shù)g()。而函數(shù)h中的形參為指向基類的指針變量p,所以在主函數(shù)中執(zhí)行h(&obj)時(shí),會(huì)調(diào)用派生類的函數(shù)f(),輸出D,再調(diào)用基類的函數(shù)g(),輸出B。24、有如下程序:#includeUsingnamespacestd;ClassAmount{intamount;public;Amount(intn=0):amount(n){}IntgetAmountoconst{returnamount;}Amount&operator+=(Amounta){amount+=a.a(chǎn)mount;return;}};intmain(){Amountx(3),y(7);x+=y;cout<A、*thisB、thisC、&amountD、amount標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是“+”運(yùn)算符重載和this指針。語(yǔ)句amount+=a.a(chǎn)mount;實(shí)現(xiàn)3和7的求和得到amount=10,要使程序的輸出結(jié)果為10,又因?yàn)楹瘮?shù)的返回值類型為Amoum&,所以橫線處填入*this。25、有如下程序:#include<iostream>#include<iomanip>usingnamespacestd;intmain(){cout.fill(’*’);cout<<left<<setw(4)<<123<<<’’OK’’<<endl;return0;}執(zhí)行這個(gè)程序的輸出結(jié)果是()。A、123*OKB、123*OK**C、*123OKD、*123**OK標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查了輸出流的格式控制。cout的fill()是設(shè)置填充字符:left和endl分別是使輸出數(shù)據(jù)左對(duì)齊和換行;setw()函數(shù)的作用是設(shè)置輸入輸出的寬度,此設(shè)置效果只對(duì)以此輸入或輸出有效。此題中,輸出整數(shù)123時(shí)寬度為4且左對(duì)齊,得到“123*”;輸出字符串“OK”時(shí)寬度沒有定義實(shí)際大小輸出,結(jié)果得到OK:故最后得到的輸出結(jié)果是123*K。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、下列描述中正確的是A、一個(gè)邏輯數(shù)據(jù)結(jié)構(gòu)只能有一種存儲(chǔ)結(jié)構(gòu)B、數(shù)據(jù)的邏輯結(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ù)的邏輯結(jié)構(gòu)是指數(shù)據(jù)集合中各數(shù)據(jù)元素之間所固有的邏輯關(guān)系:數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是在對(duì)數(shù)據(jù)進(jìn)行處理時(shí),各數(shù)據(jù)元素在計(jì)算機(jī)中的存儲(chǔ)關(guān)系。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)是指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的表示,一種邏輯結(jié)構(gòu)可以表示成多種存儲(chǔ)結(jié)構(gòu);而采用不同的存儲(chǔ)結(jié)構(gòu),其數(shù)據(jù)處理的效率是不同的。2、下列敘述中正確的是()。A、有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)B、只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)C、循環(huán)鏈表是非線性結(jié)構(gòu)D、雙向鏈表是非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在數(shù)據(jù)結(jié)構(gòu)中,樹這類的數(shù)據(jù)結(jié)構(gòu)只有一個(gè)根結(jié)點(diǎn),但它不是線性結(jié)構(gòu)。3、下列數(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)。4、下列關(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)用自己。5、下列有關(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)解析:私有繼承方式為基類的公用成員和保護(hù)成員在派生類中成了私有成員,其私有成員仍為基類私有,但派生類對(duì)象可以訪問基類的保護(hù)成員,所以基類對(duì)象不能賦值給派生類對(duì)象。抽象類是指含有純虛擬函數(shù)的類,所以選項(xiàng)D正確。6、數(shù)據(jù)字典(DD)所定義的對(duì)象都包含于()。A、數(shù)據(jù)流圖(DFD圖)B、程序流程圖C、軟件結(jié)構(gòu)圖D、方框圖標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)字典是指對(duì)數(shù)據(jù)的數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、處理邏輯、外部實(shí)體等進(jìn)行定義和描述,其目的是對(duì)數(shù)據(jù)流程圖中的各個(gè)元素做出詳細(xì)的說(shuō)明。7、下面不能作為結(jié)構(gòu)化方法軟件需求分析工具的是()。A、系統(tǒng)結(jié)構(gòu)圖B、數(shù)據(jù)字典(DD)C、數(shù)據(jù)流程圖(DFD圖)D、判定表標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:按照DeMarco的定義,“結(jié)構(gòu)化分析就是使用數(shù)據(jù)流圖(DFD圖)、數(shù)據(jù)字典(DD)、結(jié)構(gòu)化英語(yǔ)、判定表和判定樹等工具,來(lái)建立一種新的、稱為結(jié)構(gòu)化規(guī)格說(shuō)明的目標(biāo)文檔?!毕到y(tǒng)結(jié)構(gòu)圖不能作為結(jié)構(gòu)化方法軟件需求分析工具。8、有如下語(yǔ)句序列:charstr[10];cin>>str;當(dāng)從鍵盤輸入“Ilovethisgame”時(shí),str中的字符串是()。A、“Ilovethisgame”B、“Ilovethi”C、“Ilove”D、“I”標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象,cin用來(lái)接收字符串時(shí),遇“空格”、“TAB”、“回車”時(shí)都會(huì)結(jié)束。所以本題答案為D。9、在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是()。A、邏輯設(shè)計(jì)B、需求分析C、詳細(xì)設(shè)計(jì)D、物理設(shè)計(jì)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件開發(fā)階段包括需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試五個(gè)階段。其中需求分析階段常用的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。10、下列for循環(huán)的循環(huán)體執(zhí)行次數(shù)為()。for(inti(0),j(10);i=j=4;i++,j--)A、0B、1C、4D、無(wú)限標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)條件i=i=4;是個(gè)賦值語(yǔ)句,使得i,i的值非0,所以是死循環(huán)。11、己知枚舉類型定義語(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)解析:此題考查的是枚舉類型的聲明。聲明枚舉類型的語(yǔ)法形式為:enum類型名{枚舉值表}。需注意的是:當(dāng)n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右分別與整數(shù)0、1、2、3…n-1對(duì)應(yīng);若第i個(gè)枚舉值賦常量值為m,則其未賦常量值的后續(xù)枚舉值分別與整數(shù)m+1、m+2…對(duì)應(yīng),直到下一個(gè)賦了值的枚舉值或結(jié)束。枚舉常量NAME的值為0。12、屬于對(duì)象構(gòu)成成份的是A、規(guī)則B、屬性C、標(biāo)識(shí)D、方法(或操作)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象由屬性、方法和標(biāo)識(shí)構(gòu)成。13、下列字符串中可以用作C++標(biāo)識(shí)符的是()。A、2009varB、gotoC、test一2009D、_123標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:標(biāo)識(shí)符是用戶為程序中各種需要命名的“元素”所起的名字。標(biāo)識(shí)符的組成要符合一定的規(guī)則:①標(biāo)識(shí)符是一個(gè)以字母或下劃線開頭的,由字母、數(shù)字、下劃線組成的字符串。②標(biāo)識(shí)符不能與任意一個(gè)關(guān)鍵字同名。③標(biāo)識(shí)符中的字母區(qū)分大小寫。④標(biāo)識(shí)符不宜過長(zhǎng)。C++語(yǔ)言一般設(shè)定一個(gè)標(biāo)識(shí)符的有效長(zhǎng)度為32個(gè)字符。由這四條規(guī)則可知,選項(xiàng)D)為正確答案。14、在定義函數(shù)模板或類模板時(shí),開頭的保留字是()。A、typenameB、templateC、classD、typedef標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:定義函數(shù)模板或類模板時(shí),開頭的保留字是template。15、有如下程序:#include<iostream>#include<cstring>usingnamespacestd;classXCF{inta:public:XCF(intaa=0):a(aa){cout<<"1";}XCF(XCF&x){a=x.a(chǎn);cout<<"2";}~XCFO{cout<<a;}intGeta(){returna;}};intmain(){XCFd1(5),d2(d1);XCF*pd=newXCF(8);cout<<pd->Geta();deletepd;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、1215588B、1218855C、12185D、128512標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在這個(gè)程序中在建立對(duì)象d1(5)時(shí),調(diào)用構(gòu)造函數(shù)XCF(intaa=0):a(aa){cout<<"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。16、有如下語(yǔ)句序列:ifstreaminfile("DATA.DAT");if(infile.good())eout<<"A";else{cout<<"B";ofstreamoutfile("DATA.DAT");if(outfile.fail())cout<<"C";elsecout<<"D";}若執(zhí)行這個(gè)語(yǔ)句序列顯示的是BD,則說(shuō)明文件DATA.DAT()。A、以讀方式打開成功B、以讀方式打開失敗,但以寫方式打開成功C、以讀方式打開失敗,以寫方式打開也失敗D、以讀方式打開成功,以寫方式打開也成功標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由這個(gè)語(yǔ)句序列顯示的結(jié)果是BD,說(shuō)明執(zhí)行了cout<<"B"和eout<<"D"語(yǔ)句。17、若已定義了類Vehicle,則下列派生類定義中;錯(cuò)誤的是()。A、classCar:vehicle{/*類體略*/};B、classCar:publiccar{/*類體略*/};C、classCar:publicVehicle{/*類體略*/};D、classCar:virtualpublicVehicle{/*類體略*/};標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類Car不能派生自它本身。18、定義派生類時(shí),若不使用關(guān)鍵字顯式地規(guī)定采用何種繼承方式,則默認(rèn)方式為()。A、私有繼承B、非私有繼承C、保護(hù)繼承D、公有繼承標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:繼承的方式包括三種:公有繼承,保護(hù)繼承和私有繼承。如果不顯示的給出繼承方式,缺省的類繼承方式是私有繼承private。19、有如下程序:#include<iostream>usingnamespacestd;classPoint{intx,y;public:Point(intx1=0,inty1=0):x(x1),y(y1){}intget(){returnx+y;}};classCircle{Pointcenter;intradius;public:Circle(intcx,intcy,intr):center(cx,cy),radius(r){}intgetO{returncenter.get0+radius;}};intmain(){Circlec(3,4,5);cout<<c.get()<<end1;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。20、有如下程序:c1assBase{public:intdata;};c1assDerivedl:publicBase{};c1assDerived2:protectedBase{};intmain(){Derivedld1;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。21、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assA{public:virtualvoidf(){cout<<1;}voidg0{cout<<2;}};c1assB:publicA{public:Virtualvoidf(){cout<<3;}voidg(){cout<<4;}};voidshow(A&a){a.f();a.g();}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ù)voidg()進(jìn)行了重新定義,在主函數(shù)中通過語(yǔ)句show(b);調(diào)用派生類中的虛函數(shù)virtualvoidf(){cout<<3;}輸出3,調(diào)用基類的實(shí)函數(shù)voidg(){cout<<2;}輸出2。所以選項(xiàng)D為正確答案。22、已知將運(yùn)算符“+”和“*”作為類Complex的成員函數(shù)重載,設(shè)c1和c2是類Complex的對(duì)象,則表達(dá)式c1+c2*c1等價(jià)于()。A、c1.operator*(c2.operator+(c1))B、c1.operator+(c2.operator*(c1))C、c1.operator*(c1.operator+(c2))D、c2.operator+(c1.operator*(c1))標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:表達(dá)式c1+c2*c1的含義是c1加上c2與c1的積。23、有如下程序:#includeusingnamespacestd;classAA{intk;protected:intn;voidsetK(intk){this->k=k;}public:voidsetN(intn){this->n=n;}};classBB:publicAA{/*類體略*/};intmain(){BBx;x.n=1://1x.setN(2);//2x.k=3;//3x.setK(4);//4return0:}在標(biāo)注號(hào)碼的四條語(yǔ)句中正確的是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:因?yàn)轭怋B公有繼承自類AA,所以AA中的保護(hù)成員和公有成員在類BB中仍是保護(hù)成員和公有成員。在選項(xiàng)B中調(diào)用了公有成員函數(shù)setN(intn){this->n=n;},對(duì)保護(hù)成員n進(jìn)行賦值操作。24、下列模板聲明中,有語(yǔ)法錯(cuò)誤的是()。A、template<typenameT>Tfun(Tx){returnx;}B、template<typenameT>Tfun(Tx,intn){returnx*n;}C、template<classT>Tfun(T*p){return*p;}D、template<classT>TclassA{Tn;};標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:第四個(gè)選項(xiàng)是定義類模板的,但是class前面的T是多余的。對(duì)于第二個(gè)選項(xiàng),同一個(gè)類的對(duì)象相乘還是同一個(gè)類的對(duì)象,但是可能要考慮溢出的問題。25、有如下程序:#includeusingnamespacestd;classBasel{public:Basel(intd){cout<A、1234B、2134C、12D、21標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序在創(chuàng)建派生類對(duì)象d時(shí),分別調(diào)用基類Base1和Base1的構(gòu)造函數(shù)。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共35題,每題1.0分,共35分。)1、下列敘述中正確的是()。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ǔ)空間要大一些。2、有如下程序:#includeusingnamespacestd;intmain(){intef1=0,f2=1;for(inti=3;i<=6;i++){f=f1+f2;f1=f2;t2=f}cout<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的值等于1,f1的值等于1,f2的值等于1;第二次循環(huán)結(jié)束時(shí),變量f的值等于2,n的值等于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)。3、在軟件開發(fā)中,需求分析階段可以使用的工具是()。A、N―S圖B、DFD圖C、PAD圖D、程序流程圖標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在需求分析階段可以使用的工具有數(shù)據(jù)流圖DFD圖,數(shù)據(jù)字典DD,判定樹與判定表,所以選擇B。4、有三個(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)解析:自然連接是一種特殊的等值連接,它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,所以根據(jù)T關(guān)系中的有序組可知R與S進(jìn)行的是自然連接操作。5、冒泡排序在最壞情況下的比較次數(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。6、下列有關(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)解析:私有繼承方式為基類的公用成員和保護(hù)成員在派生類中成了私有成員,其私有成員仍為基類私有,但派生類對(duì)象可以訪問基類的保護(hù)成員,所以基類對(duì)象不能賦值給派生類對(duì)象。抽象類是指含有純虛擬函數(shù)的類,所以選項(xiàng)D正確。7、帶鏈隊(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è)是他們都等于空。8、軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()。A、編譯程序B、操作系統(tǒng)C、教務(wù)管理系統(tǒng)D、匯編程序標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:編譯軟件、操作系統(tǒng)、匯編程序都屬于系統(tǒng)軟件,只有c教務(wù)管理系統(tǒng)才是應(yīng)用軟件。9、對(duì)于循環(huán)隊(duì)列,下列敘述中正確的是()。A、隊(duì)頭指針是固定不變的B、隊(duì)頭指針一定大于隊(duì)尾指針C、隊(duì)頭指針一定小于隊(duì)尾指針D、隊(duì)頭指針可以大于隊(duì)尾指針,也可以小于隊(duì)尾指針標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列的隊(duì)頭指針與隊(duì)尾指針都不是固定的,隨著入隊(duì)與出隊(duì)操作要進(jìn)行變化。因?yàn)槭茄h(huán)利用的隊(duì)列結(jié)構(gòu)所以隊(duì)頭指針有時(shí)可能大于隊(duì)尾指針有時(shí)也可能小于隊(duì)尾指針。10、下列對(duì)于軟件測(cè)試的描述中正確的是()。A、軟件測(cè)試的目的是證明程序是否正確B、軟件測(cè)試的目的是使程序運(yùn)行結(jié)果正確C、軟件測(cè)試的目的是盡可能多地發(fā)現(xiàn)程序中的錯(cuò)誤D、軟件測(cè)試的目的是使程序符合結(jié)構(gòu)化原則標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。一個(gè)好的測(cè)試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的用例;一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。軟件測(cè)試的目的要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。11、下面不屬于軟件工程過程的4種基本活動(dòng)A、軟件規(guī)格說(shuō)明B、軟件開發(fā)C、軟件演進(jìn)D、軟件測(cè)試標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件工程過程的4種基本活動(dòng)是:軟件規(guī)格說(shuō)明、軟件開發(fā)、軟件確認(rèn)、軟件演進(jìn)。12、在數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,數(shù)據(jù)共享最好的是()。A、人工管理階段B、文件系統(tǒng)階段C、數(shù)據(jù)庫(kù)系統(tǒng)階段D、三個(gè)階段相同標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了三個(gè)階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫(kù)系統(tǒng)階段。人工管理階段無(wú)共享,冗余度大;文件管理階段共享性差,冗余度大;數(shù)據(jù)庫(kù)系統(tǒng)管理階段共享性大,冗余度小。13、一間宿舍可住多個(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)系。14、有以下程序,在橫線應(yīng)添加()。#include<iostream>usingnamespacestd;classTestClass{public:TestClass(intn){number=n;}//拷貝構(gòu)造函數(shù)~TestClass(){}private:intnumber;};TestClassfun(TestClassp){TestClasstemp(p);returntemp;}intmain(){TestClassobj1(10),obj2(0);TestClassobj3(obj1);obj2=fun(obj3);return0:}A、TestClass(TestClass&other){number=other.number;}B、TestClass(TestClassother){number=other.number;}C、TestClass(TestClass&other){number;}D、TestClass(&other){number=other.number;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù)也是構(gòu)造函數(shù),但它只有一個(gè)參數(shù),這個(gè)參數(shù)是本類的對(duì)象,即other,所以賦值操作將本類的參數(shù)other.number賦值給number;而且采用對(duì)象的引用的形式,也就是&other。15、下列敘述中正確的是A、對(duì)象具有封裝性B、對(duì)象標(biāo)識(shí)可以不唯一C、對(duì)象間的通信是靠方法調(diào)用D、對(duì)象是屬性名和屬性的封裝體標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象的特征有:唯一性、分類性、繼承性和多態(tài)性(多形性)。對(duì)象的要素有:抽象、封裝性(信息隱藏)和共享性。對(duì)象標(biāo)識(shí)是唯一的。16、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是()。A、自然連接B、交C、投影D、并標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在實(shí)際應(yīng)用中,最常用的連接是一個(gè)叫自然連接的特例。它滿足下面的條件:兩關(guān)系間有公共域;通過公共域的相等值進(jìn)行連接。通過觀察三個(gè)關(guān)系R,S,T的結(jié)果可知關(guān)系T是由關(guān)系R和S進(jìn)行自然連接得到的。17、設(shè)一棵滿二叉樹共有15個(gè)結(jié)點(diǎn),則在該滿二叉樹中的葉子結(jié)點(diǎn)數(shù)為()。A、7B、8C、9D、10標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在具有n個(gè)結(jié)點(diǎn)的滿二叉樹,其非葉子結(jié)點(diǎn)數(shù)為int(n/2),而葉子結(jié)點(diǎn)數(shù)等于總結(jié)點(diǎn)數(shù)減去非葉子結(jié)點(diǎn)數(shù)。本題n=15,故非葉子結(jié)點(diǎn)數(shù)等于int(15/2)=7,葉子結(jié)點(diǎn)數(shù)等于15-7=8。18、下列敘述中,錯(cuò)誤的是()。A、false是一個(gè)邏輯型常量B、b是一個(gè)字符型常量C、365是一個(gè)int常量D、3.1415926是一個(gè)double常量標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:字符常量簡(jiǎn)稱字符,它以單引號(hào)作為起止符號(hào),中間有一個(gè)或若干個(gè)字符。或者以“\”開頭的包括多個(gè)字符的字符序列也符合規(guī)定的字符常量。19、數(shù)據(jù)獨(dú)立性是數(shù)據(jù)庫(kù)技術(shù)的重要特點(diǎn)之一,所謂數(shù)據(jù)獨(dú)立性是指A、數(shù)據(jù)與程序獨(dú)立存放B、不同的數(shù)據(jù)被存放在不同的文件中C、不同的數(shù)據(jù)只能被對(duì)應(yīng)的應(yīng)用程序所使用D、以上三種說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)獨(dú)立性是指數(shù)據(jù)庫(kù)中數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序,即數(shù)據(jù)與程序間的互不依賴性。也就是說(shuō)數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)與存取方式的改變不會(huì)影響應(yīng)用程序。數(shù)據(jù)的獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性兩級(jí)。①物理獨(dú)立性:數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)、存取方式等)的改變,如存儲(chǔ)設(shè)備的更換、物理存儲(chǔ)的更換、存取方式改變等都不影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化。②邏輯獨(dú)立性:數(shù)據(jù)庫(kù)總體邏輯結(jié)構(gòu)的改變,如修改數(shù)據(jù)模式、增加新的數(shù)據(jù)類型、改變數(shù)據(jù)間聯(lián)系等,不需要相應(yīng)的應(yīng)用程序改變,這就是數(shù)據(jù)的邏輯獨(dú)立性。20、有如下類定義:classTV{public:Tv(intS=41,stringbr=“TCL”):size(s),brand(br){}一Tv(){}private:intsize;stringbrand;};若執(zhí)行語(yǔ)句TVli,*net[2],company[3];則Tv類的構(gòu)造函數(shù)被調(diào)用的次數(shù)是()。A、6次B、4次C、3次D、2次標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù)和析構(gòu)函數(shù),題中定義了一個(gè)對(duì)象以及對(duì)象數(shù)組,那么構(gòu)造函數(shù)需要執(zhí)行4次,而,*net[2]并不執(zhí)行構(gòu)造函數(shù),所以答案為B。21、在關(guān)系模型中,每一個(gè)二維表稱為一個(gè)A、關(guān)系B、屬性C、元組D、主碼(鍵)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:每個(gè)二維表代表一個(gè)關(guān)系,由表框架及表的元組組成。22、生成派生類對(duì)象時(shí),派生類構(gòu)造函數(shù)調(diào)用基類構(gòu)造函數(shù)的條件是()。A、無(wú)需任何條件B、基類中顯示定義了構(gòu)造函數(shù)C、派生類中顯式定義了構(gòu)造函數(shù)D、派生類構(gòu)造函數(shù)明確調(diào)用了基類構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:因?yàn)榕缮悘幕愔欣^承,它含有基類中的數(shù)據(jù)成員和函數(shù)成員,所以當(dāng)生成派生類對(duì)象時(shí),能無(wú)條件的調(diào)用基類的構(gòu)造函數(shù)。23、有如下兩個(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。24、建立一個(gè)類對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用()。A、析構(gòu)函數(shù)B、構(gòu)造函數(shù)C、靜態(tài)函數(shù)D、友元函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:建立一個(gè)類的對(duì)象時(shí),編譯程序需要為對(duì)象分配存儲(chǔ)空間,進(jìn)行必要的初始化。在C++中,這項(xiàng)工作是由構(gòu)造函數(shù)來(lái)完成。25、有如下程序段:inti=0,j=1;int&r=i;//①r=j;//②int*p=&i://③*p=&r;//④其中會(huì)產(chǎn)生編譯錯(cuò)誤的語(yǔ)句是()。A、④B、③C、②D、①標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是指針和引用。本題中,語(yǔ)句①是一條合法的引用聲明語(yǔ)句,使得變量i被r引用;語(yǔ)句②通過引用r將變量j的值賦給變量i;語(yǔ)句③聲明了指針變量p,并初始化指向變量i;語(yǔ)句④中*p代表了變量i的值,要將&r賦給*p,這會(huì)使編譯器產(chǎn)生類型不符的錯(cuò)誤提示。26、在類聲明中,緊跟在“public;”后聲明的成員的訪問權(quán)限是()。A、私有B、公有C、保護(hù)D、默認(rèn)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類中提供了3種訪問控制的權(quán)限:公有。私有和保護(hù)。其中公有類型定義了類的外部接口,任何一個(gè)外部的訪問都必須通過外部接口進(jìn)行。私有類型的成員只允許本類的成員函數(shù)訪問,來(lái)自類外部的任何訪問都是非法的,保護(hù)類型介于公有類型和私有類型之間,在繼承和派生時(shí)可以體現(xiàn)出其特點(diǎn)。27、在類聲明中,緊跟在“public:”后聲明的成員的訪問權(quán)限是()。A、私有B、公有C、保護(hù)D、默認(rèn)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類中提供了3種訪問控制的權(quán)限:公有,私有和保護(hù)。其中公有類型定義了類的外部接口,任何一個(gè)外部的訪問都必須通過外部接口進(jìn)行。私有類型的成員只允許本類的成員函數(shù)訪問,來(lái)自類外部的任何訪問都是非法的,保護(hù)類型介于公有類型和私有類型之間,在繼承和派生時(shí)可以體現(xiàn)出其特點(diǎn)。28、如需要向一個(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ù)而打開(總是在尾部寫)。29、派生類的成員函數(shù)不能訪問基類的()。A、公有成員和保護(hù)成員B、公有成員C、私有成員D、保護(hù)成員標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是派生類對(duì)基類成員的訪問。派生類對(duì)基類的各個(gè)成員的訪問能力與繼承方式無(wú)關(guān),其成員不能訪問基類中的私有成員,可以訪問基類的公有成員和保護(hù)成員。30、若AA為一個(gè)類,a為該類的非靜態(tài)數(shù)據(jù)成員,在該類的一個(gè)成員函數(shù)定義中訪問a時(shí),其書寫格式為()。A、aB、AA.a(chǎn)C、a{}D、AA::a{}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:類AA的成員函數(shù)直接引用類AA的非靜態(tài)數(shù)據(jù)成員。31、若要對(duì)類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)表示出返回值類型,因此不需要返回值類型的聲明。32、有如下函數(shù)模板:templateTcast(Uu){returnu;}其功能是將U類型數(shù)據(jù)轉(zhuǎn)換為T類型數(shù)據(jù)。已知i為int型變量,下列對(duì)模板函數(shù)cast的調(diào)用中正確的是()。A、cast(i);B、cast<>(i);C、cast(i);D、cast(i);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是模板函數(shù)的調(diào)用。本題中cast()函數(shù)的實(shí)參i只能確定模板參數(shù)U的類型為int,而不能確定另外一個(gè)模板參數(shù)T,故選項(xiàng)A、B錯(cuò)誤;C++語(yǔ)言不允許隱式地將int轉(zhuǎn)化為char*,故選項(xiàng)C錯(cuò)誤。33、下列關(guān)于類模板的描述中,錯(cuò)誤的是()。A、類模板的成員函數(shù)都是模板函數(shù)B、可以為類模板參數(shù)設(shè)置默認(rèn)值C、類模板描述了一組類D、類模板中只允許有一個(gè)類型參數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:類模板就是一系列相關(guān)類的模型或樣板,這些類的成員組成相同,成員函數(shù)的源代碼形式相同,所不同的只是所針對(duì)的類型(成員的類型以及成員函數(shù)的參數(shù)和返回值的類型)。一個(gè)類模板的格式是:temp1ate<<模板形參表聲明>><類聲明>,<模板形參表聲明>是由一個(gè)或多個(gè)模板形參組成。在定義類模板時(shí),可以為模板形參表聲明的最后若干個(gè)參數(shù)設(shè)置默認(rèn)值。34、下列關(guān)于C++流的描述中,錯(cuò)誤的是()。A、cout>>’A’表達(dá)式可輸出字符AB、eof()函數(shù)可以檢測(cè)是否到達(dá)文件尾C、對(duì)磁盤文件進(jìn)行流操作時(shí),必須包含頭文件fstreamD、以ios_base::out模式打開的文件不存在時(shí),將自動(dòng)建立一個(gè)新文件標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:cout是一個(gè)標(biāo)準(zhǔn)輸出流對(duì)象。>>稱之為提取運(yùn)算符,它的功能是從輸入流中提取數(shù)據(jù)賦值給一個(gè)變量。<<為插入運(yùn)算符,其功能是把表達(dá)式的值插入到輸出流中。當(dāng)系統(tǒng)執(zhí)行cout<<x操作時(shí),首先根據(jù)x值的類型調(diào)用相應(yīng)的插入運(yùn)算符重載器函數(shù),把x的值傳送給對(duì)應(yīng)的形參,接著執(zhí)行函數(shù)體,把x的值輸出到顯示器屏幕上,在當(dāng)前屏幕光標(biāo)位置處顯示出來(lái),然后返回ostream流,以便繼續(xù)使用插入運(yùn)算符輸出下一個(gè)表達(dá)式的值。對(duì)于本題來(lái)說(shuō),要輸出字符‘A’的值應(yīng)該寫成cout<<’A’。因而選項(xiàng)A)是錯(cuò)誤的。35、下列運(yùn)算符中,不能被重載的是()。A、&&B、!=C、.D、++標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載。在C++中,只有.、.*、.>*、::、?:這五個(gè)運(yùn)算符不能重載。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共23題,每題1.0分,共23分。)1、結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括()。A、多態(tài)性B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序設(shè)計(jì)的思想包括:自頂向下、逐步求精、模塊化、限制使用goto語(yǔ)句,所以選擇A。2、下列枚舉類型的定義中,包含枚舉值3的是()。A、enumtest{RED,YELLOW,BLUE,BLACK};B、enumtest{RED,YELLOW=4,BLUE,BLACK};C、enumtest{RED=-1,YELLOW,BLUE,BLACK};D、enumtest{RED,YELLOW=6,BLUE,BLACK};標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:聲明枚舉類型的語(yǔ)法格式為:enum<類型名>{<枚舉值表>};<枚舉值表>包含多個(gè)枚舉值,它們用逗號(hào)隔開,每個(gè)枚舉值就是一個(gè)枚舉常量。枚舉值有兩種定義形式:一是<值名>;二是<值名>=<整型常量>。關(guān)于枚舉類型有以下4點(diǎn)說(shuō)明:①一個(gè)enum類型實(shí)際上是int類型的一個(gè)子集,其每一個(gè)枚舉值代表一個(gè)整數(shù)。②n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右分別與整數(shù)0,l,…n.1對(duì)應(yīng)。③若第i個(gè)枚舉值賦常量值為m,則其未賦常量值的后續(xù)枚舉值分別與整數(shù)m+l,m+2…對(duì)應(yīng),直到下一個(gè)賦了值的枚舉值或結(jié)束。因此,為枚舉值賦的整型常量值應(yīng)從左到右遞增。④枚舉類型的聲明也可作為組聲明若干整型符號(hào)常量的方法。也就是說(shuō),把每個(gè)要聲明的符號(hào)常量作為一個(gè)枚舉值,將各個(gè)枚舉值合在一起定義成一個(gè)枚舉類型。對(duì)于本題來(lái)說(shuō),在選項(xiàng)A)巾,對(duì)4個(gè)枚舉值沒有賦常量值,所以它們從左到右與整數(shù)0,1,2,3相對(duì)應(yīng)。因而選項(xiàng)A)為正確選項(xiàng)。3、閱讀下面程序:#include<iostream.h>fun(inta,intB.{intc;c=a+b:returnC;}voidmain(){intx=6,y=7,z=8,r;r=fun((x--,y++,x+y),z--);cout<<r<<end1;}則該程序的輸出結(jié)果是()。A、11B、20C、21D、31標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由主函數(shù)入手,定義變量x、y、z,然后調(diào)用函數(shù)fun,其中的參數(shù)為(x--,y++,x+y)的計(jì)算結(jié)果和z--的計(jì)算結(jié)果,所以調(diào)用fun(13,8)計(jì)算結(jié)果為21。4、下列鏈表中,其邏輯結(jié)構(gòu)屬于非線性結(jié)構(gòu)的是()。A、二叉鏈表B、循環(huán)鏈表C、雙向鏈表D、帶鏈的棧標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二叉鏈表作為樹的存儲(chǔ)結(jié)構(gòu)。鏈表中結(jié)點(diǎn)的兩個(gè)鏈域分別指向該結(jié)點(diǎn)的第一個(gè)孩子結(jié)點(diǎn)和下一個(gè)兄弟結(jié)點(diǎn)。5、某二叉樹共有12個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè)。則該二叉樹的深度為(根結(jié)點(diǎn)在第1層)A、3B、6C、8D、12標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì),度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。題目中的二叉樹的葉子結(jié)點(diǎn)為1,因此度為2的結(jié)點(diǎn)的數(shù)目為0,故該二叉樹為12層,每層只有一個(gè)結(jié)點(diǎn)。6、有如下程序:#includeusingnamespacestd;intmain(){int*p;*P=9;cout<<"Thevalueatp:"<<*p;return0;}編譯運(yùn)行程序?qū)⒊霈F(xiàn)的情況是()。A、編譯時(shí)出現(xiàn)語(yǔ)法錯(cuò)誤,不能生成可執(zhí)行文件B、運(yùn)行時(shí)一定輸出:Thevalueatp:9C、運(yùn)行時(shí)一定輸出:Thevalueatp:*9D、運(yùn)行時(shí)有可能出錯(cuò)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是指針的使用。本題中,在給*p賦值前,指針p并沒有指向一個(gè)具體的對(duì)象。此時(shí)可以通過編譯,但運(yùn)行時(shí)由于p中為隨機(jī)值,該賦值可能會(huì)破壞內(nèi)存中某個(gè)重要的地址空間的內(nèi)容,導(dǎo)致程序出錯(cuò)。7、已知遞歸函數(shù)fun的定義如下:intfun(intn){if(n<=1)return1;//遞歸結(jié)束情況elsereturnn*fun(n.2);//遞歸}則函數(shù)調(diào)用語(yǔ)句fun(5)的返回值是()。A、5B、12C、15D、30標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:遞歸函數(shù)fun被定義為含有參數(shù)intn,返回整型。其中fun函數(shù)遞歸調(diào)用本身,當(dāng)n=1時(shí),fun返回1,如果大于1那么執(zhí)行n*fun(n-2)。所以,當(dāng)n等于5時(shí),執(zhí)行5*fun(3);當(dāng)3時(shí)繼續(xù)調(diào)用fun,3*fun(1),即fun(5)=5*(3*fun(1)),答案為15。8、若從為一個(gè)類,a為該類的非靜態(tài)數(shù)據(jù)成員,在該類的一個(gè)成員函數(shù)定義中訪問a時(shí),其書寫格式為()。A、aB、AA.a(chǎn)C、a{)D、AA∷a{}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:類從的成員函數(shù)直接引用類從的非靜態(tài)數(shù)據(jù)成員。9、對(duì)于語(yǔ)句cout<<endl<<x;中的各個(gè)組成部分,下列敘述中錯(cuò)誤的是()。A、“cout”是一個(gè)輸出流對(duì)象B、“end1”的作用是輸出回車換行C、“x”是一個(gè)變量D、“<<”稱作提取運(yùn)算符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:語(yǔ)句cout<<end1<<x;作用是輸出回車和變量x的值。所以題目中選項(xiàng)A、B、C的敘述均正確,只有選項(xiàng)D敘述錯(cuò)誤,“<<”是插入運(yùn)算符。10、閱讀下面的程序:#include<iostream.h>voidmain(){intx;cin>>x;if(x++>5)cout<<x<<end1;elsecout<<x--<<end1;}如果兩次執(zhí)行上述程序,且鍵盤輸入分別為4和6,則輸出結(jié)果分別是()。A、4,6B、3,6C、4,7D、5,7標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題首先讀入數(shù)值4賦給變量x,因?yàn)閤++>5不成立,因?yàn)椤?+”后綴,之后x的值變?yōu)?,執(zhí)行語(yǔ)句cout<<x-<<end1;輸出:5,之后x的值變?yōu)?。當(dāng)讀入的數(shù)值是6時(shí),因?yàn)閤++>》5成立,所以執(zhí)行語(yǔ)句cout<<x<<end1;輸出7。11、下列關(guān)于類成員對(duì)象構(gòu)造函數(shù)調(diào)用順序的敘述中,正確的是()。A、與它們?cè)诔跏蓟斜碇械捻樞蛳嗤珺、與它們?cè)陬愔新暶鞯捻樞蛳嗤珻、與析構(gòu)函數(shù)的調(diào)用順序相同D、順序不確定標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類成員對(duì)象構(gòu)造函數(shù)的調(diào)用是按照在類中定義的順序進(jìn)行的,而不是按照構(gòu)造函數(shù)說(shuō)明后的冒號(hào)順序進(jìn)行構(gòu)造的。12、有三個(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。13、下列敘述中正確的是A、對(duì)象標(biāo)識(shí)具有唯一性B、屬性是對(duì)象的動(dòng)態(tài)屬性C、任何對(duì)象都必須有多態(tài)性D、對(duì)象是對(duì)象屬性和方法的封裝體標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:每個(gè)對(duì)象都有自身唯一的標(biāo)識(shí),通過這種標(biāo)識(shí),可找到相應(yīng)的對(duì)象。在對(duì)象的整個(gè)生命期中,它的標(biāo)識(shí)都不改變,不同的對(duì)象不能有相同的標(biāo)識(shí)。14、按照標(biāo)識(shí)符的要求,下列選項(xiàng)中,()符號(hào)不能組成標(biāo)識(shí)符。A、連接符B、下劃線C、大小寫字母D、數(shù)字字符標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是標(biāo)識(shí)符。標(biāo)識(shí)符是由數(shù)字、字母以及下劃線構(gòu)成,其第一個(gè)字符必須是字母或下劃線,中間不能有空格:標(biāo)識(shí)符的長(zhǎng)度是任意的,但由于編譯系統(tǒng)的限制一般不超過31個(gè)字符;標(biāo)識(shí)符中的大小寫字母是不同的;定義標(biāo)識(shí)符時(shí)不能采用系統(tǒng)的保留字。15、已知枚舉類型聲明語(yǔ)句為:enumCOLOR{WHITE,YELLOW,GREEN=5,RED,BLACK=10}:則下列說(shuō)法中錯(cuò)誤的是()。A、枚舉常量YELLOW的值為1B、枚舉常量RED的值為6C、枚舉常量BLACK的值為10D、枚舉常量WHITE的值為1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是枚舉類型的聲明。聲明枚舉類型的語(yǔ)法形式為:enum類型名{枚舉值表}。需注意的是:當(dāng)n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右分別與整數(shù)0、1、2、3…n-1對(duì)應(yīng):若第i個(gè)枚舉值賦常量值為m,則其未賦常量值的后續(xù)枚舉值分別與整數(shù)m+1、m+2…對(duì)應(yīng),直到下一個(gè)賦了值的枚舉值或結(jié)束。16、下列語(yǔ)句中錯(cuò)誤的是()。A、constinta;B、constinta=10;C、eonstint*point=0;D、constint*point=newint(10);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由關(guān)鍵字const聲明符號(hào)常量的同時(shí)必須為其賦初值。17、下列關(guān)于運(yùn)算符重載的描述中,錯(cuò)誤的是()。A、∷運(yùn)算符不能重載B、類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載C、將運(yùn)算符作為非成員函數(shù)重載時(shí)必須定義為友元D、重載[]運(yùn)算符應(yīng)完成“下標(biāo)訪問”操作標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C++把重載的運(yùn)算符視為特殊的函數(shù),稱為運(yùn)算符函數(shù)?!斑\(yùn)算符重載”是針對(duì)C++中原有運(yùn)算符進(jìn)行的,不可能通過重載創(chuàng)造出新的運(yùn)算符。18、有如下程序:#includeusingnamespacestd;intmain(){cout.fill(’*’);cout.width(6);cout.fill(’#’);cout<<123<A、###123B、123###C、***123D、123***標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是I/O格式化輸出。函數(shù)width(intn)設(shè)置輸入輸出寬度,當(dāng)實(shí)際數(shù)據(jù)寬度小于制定的寬度時(shí),多余的位置用填充字符填滿;當(dāng)實(shí)際數(shù)據(jù)寬度大于設(shè)置的寬度時(shí),仍按實(shí)際寬度輸出;函數(shù)fill(charc)用來(lái)設(shè)置填充字符。19、有如下兩個(gè)類定義classxx{private:dOublex1;protected:doublex2;public:doublex3;};classYY:protectedXX{private:doubley1;potected:doubley2;public:doubley3;};在類YY中保護(hù)成員變量的個(gè)數(shù)是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在C++中派生類從基類保護(hù)繼承時(shí),基類的公有成員在派生類中改變?yōu)楸Wo(hù)成員,基類的保護(hù)成員在派生類中仍為保護(hù)成員。所以對(duì)于本題來(lái)說(shuō),YY類保護(hù)繼承自類XX,那么類XX中的公有成員x3和保護(hù)成員x2在派生類中都成為保護(hù)成員,再加上類YY。中的保護(hù)成員y2,因此在派生類YY中保護(hù)成員的個(gè)數(shù)為3。20、下列有關(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)解析:此題考查的是繼承和派生。無(wú)論使用哪種繼承方式,派生類中的成員都不能訪問基類中的私有成員,而可以訪問基類中的公有成員和保護(hù)成員,所以選項(xiàng)A錯(cuò)誤;C++中只有抽象類不能被實(shí)例化,而虛基類不一定非得是抽象類。所以選項(xiàng)B錯(cuò)誤;在派生類中可以重新定義從基類繼承下來(lái)的虛函數(shù),也可以不重新定義,故選項(xiàng)D錯(cuò)誤。21、有如下程序;#includeusingnamespacestd;classB{public:virtualvoidshow(){tout<<"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。22、C++系統(tǒng)預(yù)定了4個(gè)用于標(biāo)準(zhǔn)數(shù)據(jù)流的對(duì)象,下列選項(xiàng)中不屬于此類對(duì)象的是()。A、coutB、cinC、cerrD、cset標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++流有4個(gè)預(yù)定義的流對(duì)象,它們分別是:cin標(biāo)準(zhǔn)輸入;cout標(biāo)準(zhǔn)輸出;cerr標(biāo)準(zhǔn)出錯(cuò)信息輸出;clog帶緩沖的標(biāo)準(zhǔn)出錯(cuò)信息輸出。23、在下列枚舉符號(hào)中,用來(lái)表示“相對(duì)于當(dāng)前位置”文件定位方式的是()。A、iosbase::curB、iosbase::begC、iosbase::outD、iosbase::end.標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++流的定位方式(也就是指針移動(dòng)方式)有三種,被定義為ios_base::seek_dir中的一組枚舉符號(hào):ios_base::beg相當(dāng)于文件首;ios_base::cur相當(dāng)于當(dāng)前位置(負(fù)數(shù)表示當(dāng)前位置之前);ios_base::end相對(duì)于文件尾。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第5套一、選擇題(本題共20題,每題1.0分,共20分。)1、對(duì)長(zhǎng)度為n的線性表排序,在最壞情況下,比較次數(shù)不是n(n-1)/2的排序方法是()。A、快速排序B、冒泡排序C、直接插入排序D、堆排序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:除了堆排序算法的比較次數(shù)是O(nlog2n),其他的都是n(n一1)/2。2、如果有以下定義及初始化:inta=3,*p=&a;則由此可以推斷,*p的值是()。A、變量a的值,即3B、變量a的地址值C、變量P的地址值D、無(wú)意義標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:題目中的定義初始化是定義一個(gè)整型變量a,初始化為3。而“int*p=&a;”是定義一個(gè)整型指針變量p,將變量a的地址作為指針變量p的初值。木p是指針變量p指向的存儲(chǔ)單元的內(nèi)容,即變量值。所以木p指向a的值3。3、軟件是指()。A、程序B、程序和文檔C、算法加數(shù)據(jù)結(jié)構(gòu)D、程序、數(shù)據(jù)與相關(guān)文檔的完整集合標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:計(jì)算機(jī)軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分。是包括程序、數(shù)據(jù)與相關(guān)文檔的完整集合。軟件由兩部分組成:一是機(jī)器可執(zhí)行的程序和數(shù)據(jù);二是機(jī)器不可執(zhí)行的,與軟件開發(fā)、運(yùn)行、維護(hù)、使用等有關(guān)的文檔。4、假定a=3,下列程序的運(yùn)行結(jié)果是()。#include<iostream.h>intfun(intn);voidmain(){cout<<’’Pleaseinputanumber:’’;inta,result=0;cin>>a;result=fun(a);cout<<result<<end1;}intfun(intn){iIltp=1,result=0;tbr(inti=1;i<=n;i++){p*=i;result+=p;}returnresult;}A、4B、8C、9D、20標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由程序main主函數(shù)入手,調(diào)用fun函數(shù)獲得返回值result輸出。題目中假定a=3,即調(diào)用語(yǔ)句fun(a.)中的輸入?yún)?shù)為a,進(jìn)入fun函數(shù),在for循環(huán)中當(dāng)i小于等于n,即輸入?yún)?shù)3時(shí),循環(huán)3次執(zhí)行“p*=i;result+=p;”語(yǔ)句。即執(zhí)行三次p=p*i,result=result+p,result的結(jié)果為9。返回的fun函數(shù)結(jié)果為9,即“cout<<result<<end1;”輸出9。5、有如下程序:#includeusingnamespacestd;classPoint{public:staticintnumber;public:Pointo{number++;}
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度文化創(chuàng)意產(chǎn)品采購(gòu)合同變更及版權(quán)協(xié)議3篇
- 二零二五版美團(tuán)騎手薪酬福利及晉升體系合同2篇
- 課題申報(bào)參考:南嶺走廊儺戲服飾文化基因解碼及傳承路徑研究
- 課題申報(bào)參考:慢波睡眠期間無(wú)意識(shí)序列學(xué)習(xí)的神經(jīng)機(jī)制及認(rèn)知調(diào)控
- 2025年度虛擬現(xiàn)實(shí)游戲開發(fā)與授權(quán)合同范本4篇
- 2025年度個(gè)人旅游居間代理合同樣本2篇
- 南京市2025年度二手房購(gòu)房合同(含環(huán)保檢測(cè)報(bào)告)4篇
- 2025年度個(gè)人租賃城市中心公寓及家電配置合同3篇
- 2025版南寧高新區(qū)廠房租賃合同及技術(shù)支持服務(wù)協(xié)議4篇
- 2025年度個(gè)人小額信用貸款合同范本7篇
- 綠化養(yǎng)護(hù)難點(diǎn)要點(diǎn)分析及技術(shù)措施
- 2024年河北省高考?xì)v史試卷(含答案解析)
- 車位款抵扣工程款合同
- 2023年湖北省襄陽(yáng)市中考數(shù)學(xué)真題(原卷版)
- 小學(xué)六年級(jí)數(shù)學(xué)奧數(shù)題100題附答案(完整版)
- 湖南高速鐵路職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試參考試題庫(kù)(含答案)
- 英漢互譯單詞練習(xí)打印紙
- 2023湖北武漢華中科技大學(xué)招聘實(shí)驗(yàn)技術(shù)人員24人筆試參考題庫(kù)(共500題)答案詳解版
- 一氯二氟甲烷安全技術(shù)說(shuō)明書MSDS
- 母嬰護(hù)理員題庫(kù)
- SWITCH暗黑破壞神3超級(jí)金手指修改 版本號(hào):2.7.6.90885
評(píng)論
0/150
提交評(píng)論