版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
國家二級C++機(jī)試(選擇題)模擬試卷5(共9套)(共213題)國家二級C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共24題,每題1.0分,共24分。)1、有如下類定義:classMyClass{public:private:intdata;};若要為MyClass類重載流輸入運(yùn)算符“>>”,使得程序中可以“cin>>obj;”的形式改變MyClass類的對象obj中數(shù)據(jù)成員data的值,則橫線處的聲明語句應(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知識點(diǎn)解析:本題考查重載流運(yùn)算符“>>”,根據(jù)重載規(guī)則,本題答案為A。2、下列敘述中正確的是()。A、棧是一種先進(jìn)先出的線性表B、隊(duì)列是一種后進(jìn)先出的線性表C、棧與隊(duì)列都是非線性結(jié)構(gòu)D、以上三種說法都不對標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:棧是先進(jìn)后出的線性表,隊(duì)列是先進(jìn)先出的線性表,二者均為線性結(jié)構(gòu)。3、字符串“a+b=12\n\t”的長度為()。A、12B、10C、8D、6標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:題目給出的字符串含有7個字符,再加字符串的結(jié)束字符,所以共8個字符。4、設(shè)樹T的深度為4,其中度為1,2,3,4的結(jié)點(diǎn)個數(shù)分別為4,2,1,1。則T中的葉子結(jié)點(diǎn)數(shù)為()。A、8B、7C、6D、5標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:深度為m二叉樹其總結(jié)點(diǎn)數(shù)為2m-1=24-1=15??偨Y(jié)點(diǎn)數(shù)減去度為1,2,3,4的結(jié)點(diǎn)個數(shù)就是葉子結(jié)點(diǎn)數(shù)。15-4-2-1-1=7。5、關(guān)于函數(shù)中的<返回類型>,下列表述中錯誤的是()。A、<返回類型>中有可能包含關(guān)鍵字intB、<返回類型>中有可能包含自定義標(biāo)識符C、<返回類型>中有可能包含字符*D、<返回類型>中可能包含[]標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:<返回類型>又稱為函數(shù)類型,表示一個函數(shù)所計(jì)算(或運(yùn)行)的結(jié)果值的類型。它可以是C++中已定義的數(shù)據(jù)類犁,也可能是用戶自定義的數(shù)據(jù)類型。但是不能包含[],因?yàn)榉朳]不是一個數(shù)據(jù)類型。6、對序線性表(23,29,34,55,60,70,78)用二分法查找值為60的元素時,需要比較次數(shù)為()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:根據(jù)二分法查找法需要兩次:①首先將60與表中間的元素55進(jìn)行比較,由于60大于55,所以在線性表的后半部分查找。②第二次比較的元素是后半部分的中間元素,將60與表中間的元素70進(jìn)行比較,由于60小于70,所以在線性表的前半部分查找。③第三次比較的元素是前半部分的中間元素,即60,這時兩者相等,即查找成功。7、下列關(guān)于類定義的說法中,正確的是()。A、類定義中包括數(shù)據(jù)成員和函數(shù)成員的聲明B、類成員的缺省訪問權(quán)限是保護(hù)的C、數(shù)據(jù)成員必須被聲明為私有的D、成員函數(shù)只能在類體外進(jìn)行定義標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:此題考查的是類的定義。類中缺省的訪問權(quán)限是私有的,所以選項(xiàng)B錯誤;類的數(shù)據(jù)成員和成員函數(shù)的訪問控制權(quán)限均可被聲明為公有、私有和保護(hù)中的一種,所以選項(xiàng)c錯誤:成員函數(shù)的實(shí)現(xiàn)可以在類體內(nèi)定義,也可以在類體外定義,所以選項(xiàng)D錯誤。8、下面不屬于軟件設(shè)計(jì)原則的是A、抽象B、模塊化C、自底向上D、信息隱藏標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:軟件設(shè)計(jì)的基本原則包括抽象、信息隱藏、模塊化、局部化、確定性、一致性、完備性和可驗(yàn)證性。9、按照標(biāo)識符的要求,下列選項(xiàng)中,()符號不能組成標(biāo)識符。A、連接符B、下劃線C、大小寫字母D、數(shù)字字符標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:此題考查的是標(biāo)識符。標(biāo)識符是由數(shù)字、字母以及下劃線構(gòu)成,其第一個字符必須是字母或下劃線,中間不能有空格:標(biāo)識符的長度是任意的,但由于編譯系統(tǒng)的限制一般不超過31個字符;標(biāo)識符中的大小寫字母是不同的;定義標(biāo)識符時不能采用系統(tǒng)的保留字。10、己知枚舉類型定義語句為:enumToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};則下列敘述中錯誤的是()。A、枚舉常量NAME的值為1B、枚舉常量NUMBER的值為1C、枚舉常量MINUS的值為6D、枚舉常量PRINT的值為10標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:此題考查的是C++語言的數(shù)據(jù)類型。第一個枚舉常量的值為0;允許程序顯示的定義中指定部分或全部枚舉常量的值,枚舉常量默認(rèn)時,在前一枚舉常量值的基礎(chǔ)上以此增1。11、若一個函數(shù)的原型為“int*Xfun1(intx,int&y,charz);”,則該函數(shù)的返回值類型為()。A、int*B、intC、int&D、char標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:由“int*Xfunl(intx,int&y,charz);”的定義可知,其返回值為指向int指針的函數(shù)。12、將運(yùn)算符重載為類成員函數(shù)時,其參數(shù)表中沒有參數(shù),說明該運(yùn)算符是()。A、不合法的運(yùn)算符B、一元運(yùn)算符C、無操作數(shù)的運(yùn)算符D、二元運(yùn)算符標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:對于一元或二元運(yùn)算符函數(shù)作為成員函數(shù)重載時,第一操作數(shù)就是對象本身,并不顯式地出現(xiàn)在參數(shù)表中。即第一操作數(shù)僅以this指針的形式隱含存在于參數(shù)表中。因此,對于一元運(yùn)算符參數(shù)表是空的:對于二元運(yùn)算符參數(shù)表中只有一個參數(shù),它代表第二操作數(shù)。13、若AA為一個類,a為該類的私有整型數(shù)據(jù)成員,getA()為該類的一個非靜態(tài)公有成員函數(shù),功能是返回a的值。如果x為該類的一個對象,要在類外訪問x對象中a的值,正確的訪問格式為()。A、AA.getA()B、x.getA()C、x.AD、AA::a標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:要在類外訪問x對象中a的值,必須調(diào)用類的非靜態(tài)公有成員函數(shù)getA()。14、下列情況中,不會調(diào)用拷貝構(gòu)造函數(shù)的是()。A、用一個對象去初始化同一類的另一個新對象時B、將類的一個對象賦值給該類的另一個對象時C、函數(shù)的形參是類的對象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時D、函數(shù)的返回值是類的對象,函數(shù)執(zhí)行返回調(diào)用時標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:此題考查的是復(fù)制構(gòu)造函數(shù)的概念。用一個已知的對象初始化一個正在創(chuàng)建的同類對象時,就會發(fā)生復(fù)制構(gòu)造函數(shù)。因此,選項(xiàng)A、C、D均會調(diào)用復(fù)制構(gòu)造函數(shù),而只有選項(xiàng)B沒有創(chuàng)建的動作,不調(diào)用復(fù)制構(gòu)造函數(shù)。15、若MyClass是一個類名,且有如下語句序列MyClassc1,*c2;MyClass*c3=newMyClass;MyClass&c4=c1;上面的語句序列所定義的類對象的個數(shù)是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:C1、*C2、C3是3個MyClass對象.C4是MyClass對象的引用,它是對象C1的別名。16、下列關(guān)于this指針的描述中,正確的是()。A、類的成員函數(shù)都有this指針B、類的友元函數(shù)都有this指針C、任何與類相關(guān)的函數(shù)都有this指針D、類的非靜態(tài)成員函數(shù)都有this指針標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:this是成員函數(shù)所屬對象的指針,它指向類對象的地址。成員函數(shù)通過這個指針可以知道自己屬于哪一個對象。它隱藏于每個類的非靜態(tài)成員函數(shù)中。17、有如下程序:#include<iostream>usingnamespacestd;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知識點(diǎn)解析:此題考查的是類的繼承和派生。系統(tǒng)首先要通過派生類的構(gòu)造函數(shù)調(diào)用基類的構(gòu)造函數(shù),對基類成員初始化;然后對派生類中的新增成員初始化。18、下列程序段中包含4個函數(shù)。其中具有隱含this指針的是()。intfun1();classTest{public:intfun2();friendintfun3():staticintfun4();}A、fun1B、fun2C、fun3D、fun4標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:this指針是成員函數(shù)所屬對象的指針,它指向類對象的地址。成員函數(shù)通過這個指針知道自己屬于哪一個對象。this指針是一個隱含的指針,它隱含于每個類的非靜態(tài)成員函數(shù)中,它明確的地表示出了成員函數(shù)當(dāng)前操作的數(shù)據(jù)所屬的對象。19、已知類MyCiock中未顯式定義構(gòu)造函數(shù),并重載了加法運(yùn)算符,使得下面的語句序列能夠正確執(zhí)行:MyClockc1,c2;//……c2=c1+10;由此可知:為類MyClock重載的“+”運(yùn)算符函數(shù)的聲明是()。A、friendMyClockoperator+(MyClock,int);B、friendMyClockoperator+(MyClock,MyClock);C、friendMyClockoperator+(int,MyClock);D、MyClockoperator+(MyClock);標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:由表達(dá)式c2=c1+10可知,在對“+”進(jìn)行重載時,第一操作數(shù)是MyCloek類的對象,而第二操作數(shù)是一個整型數(shù)據(jù)。20、有如下程序:#include<iostream>usingnamespacestd;classMedia{public:voidName();voidShow();protected:intpage;};classBook:privateMedia{public:voidPrint(){cout<<page<<endl;}voidShow(){Media::Show();}//①};intmain(){BookBible;Bible.Name();//②Bible.Print();//③Bible:Show();//④return0;}編譯時有錯誤的是()。A、語句①B、語句②C、語句③D、語句④標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:類Book私有繼承自類Media,所以類Media中的公有成員函數(shù)Name()在繼承類Book中變成了私有成員函數(shù),因而類Book的對象Bible不能訪問私有成員函數(shù)Name()。21、下列關(guān)于虛函數(shù)的說明中,正確的是()。A、從虛基類繼承的函數(shù)都是虛函數(shù)B、虛函數(shù)不得是靜態(tài)成員函數(shù)C、只能通過指針或引用調(diào)用虛函數(shù)D、抽象類中的成員函數(shù)都是虛函數(shù)標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:此題考查的是虛函數(shù)的概念。在成員函數(shù)的聲明前面加上viual關(guān)鍵字,即可把函數(shù)聲明為虛函數(shù)。虛函數(shù)可以是另一個函數(shù)的友元函數(shù)而不能是靜態(tài)成員函數(shù)。22、有如下程序:#include<iostream>usingnamespacestd;classBase{public:virtualvoidfunction1(){tout<<’0’;}voidfunction2(){cout<<’1’;}};classDerived:publicBase{public:voidfunction1(){tout<<’2’;}voidfunction2(){cout<<’3’;}};intmain(){Base*p=newDerived();p->function1();p->function2();return0;};運(yùn)行時的輸出結(jié)果是()。A、01B、21C、03D、23標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:函數(shù)function1()在基類Base中定義為虛成員函數(shù),而在派生類Dervied中重新進(jìn)行了定義,輸出字符2,函數(shù)function2()在基類Base中定義虛成員函數(shù),在主函數(shù)中使用指向基類的指針變量p訪問function2()時,輸出1。23、下列關(guān)于運(yùn)算符重載的描述中,錯誤的是()。A、可以通過運(yùn)算符重載在C++中創(chuàng)建新的運(yùn)算符B、賦值運(yùn)算符只能重載為成員函數(shù)C、運(yùn)算符函數(shù)重載為類的成員函數(shù)時,第一操作數(shù)是該類對象D、重載類型轉(zhuǎn)換運(yùn)算符時不需要聲明返回類型標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:運(yùn)算符重載應(yīng)盡可能保持其原有的基本語義,而不是創(chuàng)建新的運(yùn)算符。重載的運(yùn)算符應(yīng)該體現(xiàn)為原運(yùn)算符的功能在新數(shù)據(jù)類型上的延伸,它的使用應(yīng)當(dāng)使程序中算法的表達(dá)式顯得更流暢、自然,使閱讀程序的人在不借助于其他說明資料的情況下就能夠正確理解。24、下面關(guān)于C++流的敘述中,正確的是()。A、cin是一個輸入流對象B、可以用ifstream定義一個輸出流對象C、執(zhí)行語句序列char*y="PQMN’’;cout<<,y;將輸出字符串"PQMN”的地址D、執(zhí)行語句序列charx[80];cin.getline(x,80);時,若鍵入Happynewyear則x中的字符串是"Happy’’標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:此題考查的是C++流的概念和I/O的格式化。cin是類的對象,亦即輸入流對象;ifstream是輸入文件流類,不能定義一個輸出流對象:C選項(xiàng)中最后輸出的是字符串“PQMN”:D選項(xiàng)中x中字符串應(yīng)該是“Happynewyear”。國家二級C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共21題,每題1.0分,共21分。)1、下列字符串中,不可以用作C++標(biāo)識符的是()。A、y_2006B、____TEST__HC、ReturnD、switch標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:此題考查的是標(biāo)識符。標(biāo)識符是由數(shù)字、字母以及下劃線構(gòu)成,其第一個字符必須是字母或下劃線,中間不能有空格;標(biāo)識符的長度是任意的,但由于編譯系統(tǒng)的限制一般不超過31個字符;標(biāo)識符中的大小寫字母是不同的;定義標(biāo)識符時不能采用系統(tǒng)的保留字。2、下列關(guān)于棧的描述中錯誤的是A、棧是先進(jìn)后出的線性表B、棧只能順序存儲C、棧具有記憶作用D、對棧的插入與刪除操作中,不需要改變棧底指針標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:棧是限定在一端進(jìn)行插入與刪除的線性表。棧頂(top):插入數(shù)據(jù)(即入棧)的一端;棧底(bottom):不能入棧也不能出棧的一端。棧存儲數(shù)據(jù)的原則:“先進(jìn)后出”或“后進(jìn)先出”。棧的特性是具有記憶作用。3、有如下程序:#includevoidfun(int&X,inty){intt=x;x=y;y=t;)intmain(){inta[2]={23,42);fun(a[1],a[0]);std::cout<<a[0]<<“,”<<a[1]<<std::endl;retum0:}執(zhí)行后的輸出結(jié)果是()。A、42,42B、23,23C、23,42D、42,23標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:此題考查是是函數(shù)的調(diào)用以及參數(shù)值的傳遞。函數(shù)fun中的第一個參數(shù)是引用傳值方式,是雙向的;第二個參數(shù)是按值傳遞,是單向的。4、兩個或兩個以上模塊之間關(guān)聯(lián)的緊密程度稱為()。A、耦合度B、內(nèi)聚度C、復(fù)雜度D、數(shù)據(jù)傳輸特性標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:模塊的獨(dú)立性是指每個模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系較少且接口簡單。衡量軟件的模塊獨(dú)立性使用:內(nèi)聚性和耦合性兩個定性度量標(biāo)準(zhǔn)。內(nèi)聚性是對…個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度的度量;耦合性是對模塊間互相連接的緊密程度的度量。一般較優(yōu)秀的軟件設(shè)計(jì),應(yīng)盡量做到高內(nèi)聚、低耦合,即減弱模塊之間的耦合性和提高模塊內(nèi)的內(nèi)聚性,有利于提高模塊的獨(dú)立性。5、數(shù)據(jù)獨(dú)立性是數(shù)據(jù)庫技術(shù)的重要特點(diǎn)之一,所謂數(shù)據(jù)獨(dú)立性是指()。A、數(shù)據(jù)與程序獨(dú)立存放B、不同的數(shù)據(jù)被存放在不同的文件中C、不同的數(shù)據(jù)只能被對應(yīng)的應(yīng)用程序所使用D、以上三種說法都不對標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:數(shù)據(jù)獨(dú)立性是指數(shù)據(jù)庫中數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序,即數(shù)據(jù)與程序間的互不依賴性。也就是說數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)與存取方式的改變不會影響應(yīng)用程序。數(shù)據(jù)的獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性兩級。①物理獨(dú)立性:數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)、存取方式等)的改變,如存儲設(shè)備的更換、物理存儲的更換、存取方式改變等都不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化。②邏輯獨(dú)立性:數(shù)據(jù)庫總體邏輯結(jié)構(gòu)的改變,如修改數(shù)據(jù)模式、增加新的數(shù)據(jù)類型、改變數(shù)據(jù)間聯(lián)系等,不需要相應(yīng)的應(yīng)用程序改變,這就是數(shù)據(jù)的邏輯獨(dú)立性。6、耦合性和內(nèi)聚性是對模塊獨(dú)立性度量的兩個標(biāo)準(zhǔn)。下列敘述中正確的是A、提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性B、降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性C、耦合性是指一個模塊內(nèi)部各個元素間彼此結(jié)合的緊密程度D、內(nèi)聚性是指模塊間互相連接的緊密程度標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:耦合性是反映模塊問互相連接的緊密程度,內(nèi)聚性是指一個模塊內(nèi)部各個元素問彼此接合的緊密程序。提高模塊的內(nèi)聚性,降低模塊的耦合性是有利于模塊的獨(dú)立性。7、有以下程序,在橫線應(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知識點(diǎn)解析:拷貝構(gòu)造函數(shù)也是構(gòu)造函數(shù),但它只有一個參數(shù),這個參數(shù)是本類的對象,即other,所以賦值操作將本類的參數(shù)other.number賦值給number;而且采用對象的引用的形式,也就是&other。8、有三個關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是()。A、自然連接B、并C、交D、差標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:由關(guān)系T中的數(shù)據(jù)可以看出,其數(shù)據(jù)由屬于關(guān)系R但是不屬于關(guān)系S的數(shù)據(jù)組成。所以關(guān)系T是由關(guān)系R和S通過差運(yùn)算得到的。9、下列符號中可以用作C++標(biāo)識符的是()。A、_radiusB、foo-barC、elseD、3room標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:此題考查的是C++語言中標(biāo)識符的定義。標(biāo)識符有字母、數(shù)字和下劃線構(gòu)成,其第一個字母必須是字母或下劃線;定義標(biāo)識符時,不要采用系統(tǒng)的保留字。10、數(shù)據(jù)獨(dú)立性是數(shù)據(jù)庫技術(shù)的重要特點(diǎn)之一,所謂數(shù)據(jù)獨(dú)立性是指A、數(shù)據(jù)與程序獨(dú)立存放B、不同的數(shù)據(jù)被存放在不同的文件中C、不同的數(shù)據(jù)只能被對應(yīng)的應(yīng)用程序所使用D、以上三種說法都不對標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:數(shù)據(jù)獨(dú)立性是指數(shù)據(jù)庫中數(shù)據(jù)獨(dú)立于應(yīng)用程序而不依賴于應(yīng)用程序,即數(shù)據(jù)與程序間的互不依賴性。也就是說數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)與存取方式的改變不會影響應(yīng)用程序。數(shù)據(jù)的獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性兩級。①物理獨(dú)立性:數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲結(jié)構(gòu)、存取方式等)的改變,如存儲設(shè)備的更換、物理存儲的更換、存取方式改變等都不影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化。②邏輯獨(dú)立性:數(shù)據(jù)庫總體邏輯結(jié)構(gòu)的改變,如修改數(shù)據(jù)模式、增加新的數(shù)據(jù)類型、改變數(shù)據(jù)間聯(lián)系等,不需要相應(yīng)的應(yīng)用程序改變,這就是數(shù)據(jù)的邏輯獨(dú)立性。11、C++類體系中,不能被派生類繼承的有()。A、構(gòu)造函數(shù)B、虛函數(shù)C、靜態(tài)成員函數(shù)D、賦值操作函數(shù)標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:不能被繼承的有構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)、賦值函數(shù)、析構(gòu)函數(shù)。12、有如下語句序列:charstr[10];cin>>str;當(dāng)從鍵盤輸入”Ilovethisgame”時,str中的字符串是()。A、ˊˊIlovethisgameˊˊB、ˊˊIlovethiˊˊC、ˊˊIloveˊˊD、ˊˊIˊˊ標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:由于字符\0作為字符串的結(jié)束標(biāo)志,所以當(dāng)從鍵盤上輸入“Ilovethisgame”時,只把字母I輸入字符串str。13、若字符指針p所指向的字符串為’’abcdefg’’,在執(zhí)行語句()。Char*ap=newchar[strlen(p)+1];之后,印指向的字符數(shù)組的元素個數(shù)為A、9B、8C、7D、6標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:字符指針p所指向的字符串為"abcdefg’’,所以函數(shù)strlen(p)的值等于7,再加1,等于8。14、若有下面的函數(shù)調(diào)用:fun(a+b,3,max(n-1,b))則fun的實(shí)參個數(shù)是()。A、3B、4C、5D、6標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:此題考查的是函數(shù)的調(diào)用。C++中函數(shù)調(diào)用的一般形式為:函數(shù)名(實(shí)參表),其中實(shí)參表是用逗號分隔的一系列表達(dá)式。因此,本題中fun()函數(shù)的實(shí)參表由a+b、3和max(n-1,b)組成。15、若為Fraction類重載前增1運(yùn)算符++,應(yīng)在類體中將其聲明為()。A、Fraction&operator++();B、Fraction&operator++(int);C、MendFraction&operator++();D、friendFraction&operator++(int);標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:在類Fraction中重載前增1運(yùn)算符++時,其聲明形式為Fraction&operator++();在類Fraction中重載后增1運(yùn)算符++時,其聲明形式為Fraction&operatorH(int);。16、有如下程序:#include<iostream>usingnamespacestd;classBase{public:voidfun1(){cout<<’’Base\n’’;}virtualvoidfun2(){cout<<’’Base\n’’;}};classDerived:publicBase{public:voidfun1(){cout<<’’Derived\n’’;}voidfun2(){cout<<’’Derived\n’’;}};voidf(Base&b){b.fun1();b.fun2();}intmain(){Derivedobj;f(obj);return0:}執(zhí)行這個程序的輸出結(jié)果是()。A、BaseBaseB、BaseDerivedC、DerivedBaseD、DerivedDerived標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:此題考查的是虛函數(shù)的概念。在C++語言中,一個派生類的對象可以被它的任何一個基類的指針?biāo)赶?,若基類和派生類中存在一模一樣的成員函數(shù)。那么通過該基類指針調(diào)用這樣的成員函數(shù)時,若這個成員函數(shù)被定義成虛函數(shù),那么就調(diào)用派生類中的;否則就調(diào)用基類中的。本題中,在f()函數(shù)中,形參b是一個基類的引用,它引用的是主函數(shù)中定義的派生類對象obj,所以在調(diào)用fun1()時,運(yùn)行的是基類的版本,而fun2()運(yùn)行的是派生類的版本。17、有如下程序:#includeusingnamespacestd;classInstrument{public:virtualvoidDisplay()=0:};classPiano:publicInstrument{public:voidDisplay(){/*函數(shù)體程序略*/}};intmain(){Instruments;Instrument*p=0;//…;return0;}下列敘述中正確的是()。A、語句“Insturment*p=0;”編譯時出錯B、語句“Instruments;”編譯時出錯C、類Piano中的Display函數(shù)不是虛函數(shù)D、類Instrument是一個虛基類標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:由于函數(shù)Display()是一個純虛函數(shù),所以類Instrument是抽象類,而抽象類是不能定義對象的,因而選項(xiàng)B為正確選項(xiàng)。18、下列關(guān)于賦值運(yùn)算符“=”重載的敘述中,正確的是()。A、賦值運(yùn)算符只能作為類的成員函數(shù)重載B、默認(rèn)的賦值運(yùn)算符實(shí)現(xiàn)了“深層復(fù)制”功能C、重載的賦值運(yùn)算符函數(shù)有兩個本類對象作為形參D、如果已經(jīng)定義了復(fù)制(拷貝)構(gòu)造函數(shù),就不能重載賦值運(yùn)算符標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:賦值運(yùn)算符“=”只能作為成員函數(shù)重載。19、如果利用C++流進(jìn)行輸入輸出,下面的敘述中正確的是()。A、只能借助于流對象進(jìn)行輸入輸出B、只能進(jìn)行格式化輸入輸出C、只能借助于cin和cout進(jìn)行輸入輸出D、只能使用運(yùn)算符>>和<<進(jìn)行輸入輸出標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:此題考查的知識點(diǎn)是C++流。利用C++流既可以進(jìn)行有格式輸入輸出,也可以進(jìn)行無格式輸入輸出,所以選項(xiàng)B錯誤;C++的4個預(yù)定義的流對象為:cin—標(biāo)準(zhǔn)輸入,cout—標(biāo)準(zhǔn)輸出,cerr—標(biāo)準(zhǔn)出錯信息輸出,clog-一帶緩沖的標(biāo)準(zhǔn)出錯信息輸出,選項(xiàng)C錯誤;C++流除了可以使用提取“>>”插入“<<”進(jìn)行輸入輸出外,還可以通過流對象的一些成員函數(shù)進(jìn)行輸入輸出,故選項(xiàng)D錯誤。20、模板對類型的參數(shù)化提供了很好的支持,因此()。A、類模板的主要作用是生成抽象類B、類模板實(shí)例化時,編譯器將根據(jù)給出的模板實(shí)參生成一個類C、在類模板中的數(shù)據(jù)成員都具有同樣類型D、類模板中的成員函數(shù)都沒有返回值標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:此題考查了類模板的概念。在定義對象的過程中,系統(tǒng)會自動地根據(jù)需要生成相應(yīng)的類定義,這種依據(jù)類模板生成具體類的過程稱為類模板的實(shí)例化。21、要利用C++流進(jìn)行文件操作,必須在程序中包含的頭文件是()。A、iostreamB、fstreamC、strstreamD、iomanip標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:要使用文件流對象進(jìn)行針對磁盤文件的I/O操作,必須包含fstrem.頭文件。國家二級C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共19題,每題1.0分,共19分。)1、下列字符串中可以用作C++標(biāo)識符的是()。A、2009varB、gotoC、test-2009D、_123標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:標(biāo)識符是用戶為程序中各種需要命名的“元素”所起的名字。標(biāo)識符的組成要符合一定的規(guī)則:①標(biāo)識符是一個以字母或下劃線開頭的,由字母、數(shù)字、下劃線組成的字符串。②標(biāo)識符不能與任意一個關(guān)鍵字同名。③標(biāo)識符中的字母區(qū)分大小寫。④標(biāo)識符不宜過長。C++語言一般設(shè)定一個標(biāo)識符的有效長度為32個字符。由這四條規(guī)則可知,選項(xiàng)D為正確答案。2、下列有關(guān)指針的用法中,錯誤的是()。A、inti;int*p=&i;B、inti;int*p;i=*p;C、int*p;p=0;D、inti=5;int*P;p=&i;標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:“inti:”語句為定義了一個整型變量i?!癷nt*p”為定義一個整型指針p。選項(xiàng)A中的“int*p=&i;”是定義整型指針變量p,并指向整型i的地址。選項(xiàng)B)中“i=*p”語句是將p指向的變量賦值給i,而指針p沒有初始化,所以選項(xiàng)B錯誤。選項(xiàng)C中“p=0;”表示p指向0的地址。選項(xiàng)D中“&i”為取i的地址,并賦值給p。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知識點(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、下列敘述中正確的是()。A、循環(huán)隊(duì)列是隊(duì)列的一種鏈?zhǔn)酱鎯Y(jié)構(gòu)B、循環(huán)隊(duì)列是隊(duì)列的一種順序存儲結(jié)構(gòu)C、循環(huán)隊(duì)列是非線性結(jié)構(gòu)D、循環(huán)隊(duì)列是一種邏輯結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題主要考查循環(huán)隊(duì)列的概念,循環(huán)隊(duì)列作為隊(duì)列的一種也應(yīng)該是線性結(jié)構(gòu)。隊(duì)列是一種邏輯結(jié)構(gòu),而循環(huán)隊(duì)列是一種順序存儲結(jié)構(gòu)的隊(duì)列。5、結(jié)構(gòu)化程序設(shè)計(jì)中,下面對goto語句使用描述正確的是()。A、禁止使用goto語句B、使用goto語句程序效率高C、應(yīng)避免濫用goto語句D、goto語句確實(shí)一無是處標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:濫用goto語句確實(shí)有害,應(yīng)盡量避免;完全避免使用goto語句并非是明智的方法,有些地方使用goto語句會使程序流程更清楚、效率更高;爭論的焦點(diǎn)不應(yīng)該放在是否取消goto語句,而應(yīng)該放在用在什么程序結(jié)構(gòu)上。6、下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是()。A、可封裝B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:結(jié)構(gòu)化設(shè)計(jì)方法的主要原則可以概括為自頂向下、逐步求精、模塊化、限制使用goto語句。7、已知函數(shù)fun的原型為intfun(int,int,int);下列重載函數(shù)原型中錯誤的是()。A、charfun(int,int);B、doublefun(int,int,double);C、intfun(int,char*);D、floatfun(int,int,int);標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:重載函數(shù)至少要在參數(shù)個數(shù)或參數(shù)類型上不同。而選項(xiàng)D中的函數(shù)與原函數(shù)只是函數(shù)類型不同,而其他完全相同(參數(shù)個數(shù)及類型),則不能作為重載函數(shù)來使用。8、軟件生命周期可分為定義階段、開發(fā)階段和維護(hù)階段,下面不屬于開發(fā)階段任務(wù)的是()。A、測試B、設(shè)計(jì)C、可行性研究D、實(shí)現(xiàn)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:軟件生命周期是指軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用、維護(hù)到停止使用退役的過程。其中,定義階段包括可行性研究與計(jì)劃制定和需求分析。測試、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)屬于開發(fā)階段。9、數(shù)據(jù)字典(DD)所定義的對象都包含于()。A、數(shù)據(jù)流圖(DFD圖)B、程序流程圖C、軟件結(jié)構(gòu)圖D、方框圖標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:數(shù)據(jù)字典是指對數(shù)據(jù)的數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲、處理邏輯、外部實(shí)體等進(jìn)行定義和描述,其目的是對數(shù)據(jù)流程圖中的各個元素做出詳細(xì)的說明。10、有如下程序:#includeusingnamespacestd;classMedia{public:voidName();voidShow();protected:intpage;};classBook:privateMedia{public:voidPrint(){cout<A、語句①B、語句②C、語句③D、語句④標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:類Book私有繼承白類Media,所以類Media中的公有成員函數(shù)Name()在繼承類Book中變成了私有成員函數(shù),岡而類Book的對象Bible不能訪問私有成員函數(shù)Name()。11、有如下函數(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知識點(diǎn)解析:此題考查的是函數(shù)參數(shù)的傳遞方式。此題中形參a是普通參數(shù),即傳值調(diào)用,函數(shù)中對a增1不會影響到實(shí)參x的值;形參b是傳址調(diào)用,函數(shù)中對b增1同時會改變實(shí)參y的值。故最終結(jié)果是0和2。12、下列關(guān)于函數(shù)重載的敘述中,錯誤的是()。A、重載函數(shù)的參數(shù)個數(shù)可以不同B、重載函數(shù)的參數(shù)類型可以不同C、重載函數(shù)的返回值類型必須不同D、重載函數(shù)的參數(shù)個數(shù)或參數(shù)類型必須有所不同標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:兩個或兩個以上的函數(shù),具有相同的函數(shù)名,但是形參的個數(shù)或者類型不同,編譯器根據(jù)實(shí)參和形參的類型及個數(shù)進(jìn)行最佳匹配,自動確定調(diào)用哪個函數(shù),這就是函數(shù)的重載。13、有如下程序:#include<iostream>usingnamespacestd;classPoint{public:staticintnumber;public:Pointo{number++;}~Point(){number--;}};intPoint::number--0:voidmainO{Point*ptr;PointA,B:{Point*ptr_point=newPoint[3];ptx=ptr_point;}PointC;Gout+Point:number+endl;delete[]ptr;}運(yùn)行時輸出的結(jié)果是()。A、3B、4C、6D、7標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:此題是靜態(tài)成員、對象的構(gòu)造和對象的生存期等知識點(diǎn)的綜合考查。此題定義了一個靜態(tài)成員變量number,初始值為0。主函數(shù)中第2行定義了2個Point對象,此時number變?yōu)?;隨后new運(yùn)算符又定義了一個包含3個Point對象元素的數(shù)組,其通過delete結(jié)束后number的值變?yōu)?;然后又定義了一個Point對象C,number變?yōu)?;最后輸出number的內(nèi)容。14、有如下程序:#include<iostream>usingnamespacestd;intmain(){charstr[100],*p;cout<<’’Pleaseinputastring:’’;cin;str;p=str;for(inti=0;*p!=’\0’;p++,i++);cout<<’’i’’<<end1;return0;}運(yùn)行這個程序時,若輸入字符串為:abcdefgabcd則輸出結(jié)果是()。A、7B、12C、13D、100標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:此題考查的是默認(rèn)輸入格式。本題輸入數(shù)據(jù)類型為char,因此輸入的數(shù)據(jù)是“從第一個非空白字符開始到下一個空白字符結(jié)束”,而輸入數(shù)據(jù)為abcdefgabed,其中abcdefg后有空格。所以輸入后str中的字符串為"abcdefg’’:主函數(shù)中接下來for語句的作用是計(jì)算字符串p的長度,故最終輸出字符串"abcdefg’’的長度7。15、有如下程序:#include<iostream>#include<cstring>usingnamespacestd;classMyString{public:charstr[80];MyString(constchar*s){strcpy(str,s);}MyString&operator+=(MySringa){strcat(str,a.str);return*this;}};ostream&operator<<(ostream&s,constMyString&z){returns<<z.str;}intmain(){MyStringx(’’abe’’),y(’’ede’’);eout<<(x+=y)<<end1;return0;}運(yùn)行這個程序的輸出結(jié)果是()。A、ahcB、CdeC、abCdeD、ahccde標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:在類MyString中,定義了帶參數(shù)的構(gòu)造函數(shù)MyString(constchar*s),其作用是把s指向的字符串拷貝到字符組str中。在類中還對運(yùn)算+=進(jìn)行重載定義,其作用是把字符串s仃和a相連接并賦給str,所以在主函數(shù)中執(zhí)行x+=y時,結(jié)果為abccde。16、已知類Myclass的定義如下:classMyClass{public:MyClass(intd){data=d;}~MyClass(){}private:intdata;};下列對Myclass類對象數(shù)組的定義和初始化語句中,正確的是()。A、MyClassarrays[2];B、MyClassarrays[2]={MyClass(5)};C、MyClassarrays[2]={MyClass(5),MyClass(6)};D、MyClass*arrays=newMyClass[2];標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:在選項(xiàng)C中定義了類MyClass對象數(shù)組arrays[2],并用對象MyClass(5)和MyClass(6)對這個數(shù)組中的兩個元素賦初值。17、有如下程序:#include<iostrearm>#include<iomanip>usingnamespacestd;intmain(){cout<<setfill(’#’)<<setw(4)<<’’OK’’<<123<<endl;return0;}運(yùn)行這個程序的輸出結(jié)果是()。A、##OK123B、##OK#123C、K#123D、OK##123#標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:setfill是設(shè)置填充字符,setw設(shè)置輸出的寬度,它們的作用表現(xiàn)在緊接著輸出的字符串上。這個寬度是填充后的寬度。所以cout<<setfill(’#’)<<setw(4)<<’’OK’’<<123中,setfill和s6tw只作用在’’OK’’,表示在’’OK’’前面填充2個##。18、要建立文件流并打開當(dāng)前目錄下的文件file.dat用于輸入,下列語句中錯誤的是()。A、ifstreamfin=ifstream.open("file.dat");B、ifstream*fin=newifstream("file.dat");C、ifstreamfin;fin.open("file.dat");D、ifstream*fin=newifstream();fin->open("file.dat");標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:在選項(xiàng)A中,在賦值號的左側(cè)表示建立一個輸入流對象fin,而在賦值號的右側(cè)的表達(dá)式不正確,因?yàn)槲募斎肓黝恑fStream不能直接調(diào)用其成員函數(shù)open。19、語句ofstreamf("SALARYDAT",iosbase::app);的功能是建立流對象f,并試圖打開文件SALARYDAT與f關(guān)聯(lián),而且()。A、若文件存在,將其置為空文件;若文件不存在,打開失敗B、若文件存在,將文件指針定位于文件尾;若文件不存在,建立一個新文件C、若文件存在,將文件指針定位于文件首;若文件不存在,打開失敗D、若文件存在,打開失??;若文件不存在,建立一個新文件標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:此題考查的是文件打開模式。文件打開模式iso_base::app是為添加數(shù)據(jù)而打開(總是在尾部寫),故只有選項(xiàng)B說法正確。國家二級C++機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共23題,每題1.0分,共23分。)1、下列敘述中正確的是A、算法的效率只與問題的規(guī)模有關(guān),而與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)B、算法的時間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量C、數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)是一一對應(yīng)的D、算法的時間復(fù)雜度與空間復(fù)雜度一定相關(guān)標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:算法的時間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量。算法的工作量用算法所執(zhí)行的基本運(yùn)算的次數(shù)來度量,而算法所執(zhí)行的基本運(yùn)算次數(shù)是問題規(guī)模的函數(shù);算法的空間復(fù)雜度一般是指執(zhí)行這個算法所需要的內(nèi)存空間。算法的時間復(fù)雜度與空間復(fù)雜度并不相關(guān)。數(shù)據(jù)的邏輯結(jié)構(gòu)就是數(shù)據(jù)元素之間的邏輯關(guān)系,它是從邏輯上描述數(shù)據(jù)元素之間的關(guān)系,是獨(dú)立于計(jì)算機(jī)的;數(shù)據(jù)的存儲結(jié)構(gòu)是研究數(shù)據(jù)元素和數(shù)據(jù)元素之間的關(guān)系如何在計(jì)算機(jī)中表示,它們并非一對應(yīng)。算法的執(zhí)行效率不僅與問題的規(guī)模有關(guān),還與數(shù)據(jù)的存儲結(jié)構(gòu)有關(guān)。2、一棵二叉樹的前序遍歷結(jié)果是ABCEDF,中序遍歷結(jié)果是CBAEDF,則其后序遍歷的結(jié)果是()。A、DBACEFB、CBEFDAC、FDAEBCD、DFABEC標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:由于該二叉樹的前序遍歷結(jié)果是ABCEDF,顯然A結(jié)點(diǎn)為根結(jié)點(diǎn),所以后序遍歷時A結(jié)點(diǎn)是最后遍歷的,其后序遍歷的結(jié)果為CBEFDA。3、在下列枚舉符號中,用來表示“相對于當(dāng)前位置”文件定位方式的是()。A、ios―base::curB、ios―base::begC、ios―base::outD、ios―base::end標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:streamoff定義于iostream.h中,定義有偏移量offset所能取得的最大值,seek―dir表示移動的基準(zhǔn)位置,是一個有以下值的枚舉:ios::beg:(文件開頭)、ios::cur:(文件當(dāng)前位置)、ios::end:(文件結(jié)尾)。4、軟件生命周期是指()。A、軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程B、軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測試完成的過程C、軟件的開發(fā)過程D、軟件的運(yùn)行維護(hù)過程標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:軟件生命周期是指軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用、維護(hù)到停止使用、退役的過程。5、下列敘述中正確的是A、程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)B、程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)C、程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量D、以上都不正確標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:影響程序執(zhí)行效率的岡素有很多,如數(shù)據(jù)的存儲結(jié)構(gòu)、程序處理的數(shù)據(jù)量、程序的算法等。順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)在數(shù)據(jù)插入和刪除操作上的效率就存在差別。其中,鏈?zhǔn)酱鎯Y(jié)構(gòu)的效率要高一些。6、數(shù)據(jù)庫設(shè)計(jì)中反映用戶對數(shù)據(jù)要求的模式是()。A、內(nèi)模式B、概念模式C、外模式D、設(shè)計(jì)模式標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:概念模式,是由數(shù)據(jù)庫設(shè)計(jì)者綜合所有用戶的數(shù)據(jù),按照統(tǒng)一的觀點(diǎn)構(gòu)造的全局邏輯結(jié)構(gòu),是對數(shù)據(jù)庫中全部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的總體描述,是所有用戶的公共數(shù)據(jù)視圖(全局視圖)。它是由數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)模式描述語言(DataDescriptionLanguage,DDL)來描述、定義的,體現(xiàn)、反映了數(shù)據(jù)庫系統(tǒng)的整體觀。外模式對應(yīng)于用戶級,它是某個或某幾個用戶所看到的數(shù)據(jù)庫的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式是從模式導(dǎo)出的一個子集,也稱為子模式或用戶模式.它是用戶的數(shù)據(jù)視圖,也就是用戶所見到的數(shù)據(jù)模式,它反映了用戶對數(shù)據(jù)的要求。包含模式中允許特定用戶使用的那部分?jǐn)?shù)據(jù),用戶可以通過外模式描述語言來描述、定義對應(yīng)于用戶的數(shù)據(jù)記錄(外模式),也可以利用數(shù)據(jù)操縱語言(DataManipulationLanguage,DML)對這些數(shù)據(jù)記錄進(jìn)行描述。內(nèi)模式,對應(yīng)于物理級,它是數(shù)據(jù)庫中全體數(shù)據(jù)的內(nèi)部表示或底層描述,是數(shù)據(jù)庫最低一級的邏輯描述,它描述了數(shù)據(jù)在存儲介質(zhì)上的存儲方式和物理結(jié)構(gòu),對應(yīng)著實(shí)際存儲在外存儲介質(zhì)上的數(shù)據(jù)庫。內(nèi)模式由內(nèi)模式描述語言來描述、定義,它是數(shù)據(jù)庫的存儲觀。7、負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是()。A、數(shù)據(jù)定義語言B、數(shù)據(jù)管理語言C、數(shù)據(jù)操縱語言D、數(shù)據(jù)控制語言標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:負(fù)責(zé)數(shù)據(jù)庫中查詢操作的數(shù)據(jù)庫語言是數(shù)據(jù)操縱語言。8、在數(shù)據(jù)庫設(shè)計(jì)中,將E—R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。A、需求分析階段B、概念設(shè)計(jì)階段C、邏輯設(shè)計(jì)階段D、物理設(shè)計(jì)階段標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:數(shù)據(jù)庫的設(shè)計(jì)階段包括需要分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)和物理設(shè)計(jì),其中將E—R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于邏輯設(shè)計(jì)階段。9、下列關(guān)于虛基類的描述中,錯誤的是()。A、使用虛基類可以消除由多繼承產(chǎn)生的二義性B、構(gòu)造派生類對象時,虛基類的構(gòu)造函數(shù)只被調(diào)用一次C、聲明“classB:virtualpublicA”說明類B為虛基類D、建立派生類對象時,首先調(diào)用虛基類的構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:虛基類是為了消除由多重繼承產(chǎn)生的二義性而提出的。虛基類的說明格式是:Class<類名>:virtual<繼承方式><基類名>,其中關(guān)鍵字virtual與繼承方式的位置無關(guān),但必須位于基類名之前,且virtual只對緊隨其后基類名起作用。對于本題來說,聲明“classB:virtualpublicA”說明類A為虛基類。10、下列符號中不屬于C++關(guān)鍵字的是()。A、friendB、namespaceC、continueD、byte標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:此題考查的是C++語言的關(guān)鍵字。Friend是聲明友元函數(shù)或友元類時用到的關(guān)鍵字;namespace是定義或使用名字空間時用到的關(guān)鍵字;continue是終止本次循環(huán)直接開始下一次循環(huán)所用到的關(guān)鍵字;byte是字節(jié)的意思,它不是C++語言中的關(guān)鍵字。11、下列有關(guān)類成員的敘述中,正確的是()。A、友元函數(shù)是類的成員函數(shù)B、類成員的默認(rèn)訪問權(quán)限是私有的C、類成員函數(shù)必須聲明為公有的D、類的靜態(tài)數(shù)據(jù)成員不能是常成員標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:此題考查的是類成員的有關(guān)概念。類的友元函數(shù)可以直接訪問該類的所有成員,但它不是類的成員函數(shù),故選項(xiàng)A錯誤;類成員函數(shù)的訪問權(quán)限可以聲明為公有、保護(hù)、私有,故選項(xiàng)C錯誤;靜態(tài)數(shù)據(jù)成員的聲明是使用關(guān)鍵字static.它可以是常成員,故選項(xiàng)D錯誤。12、有如下程序:#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)行時的輸出結(jié)果是()。A、5B、7C、9D、12標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:根據(jù)類Point和類Circle韻定義可知,類Circle的實(shí)例c(3,4,5)的成員函數(shù)c.get()返回值為3+4+5=12。13、下列關(guān)于派生類的敘述中,錯誤的是()。A、派生類至少要有一個基類B、派生類中包括了從基類繼承的成員C、一個派生類可以作為另一個派生類的基類D、基類成員被派生類繼承以后訪問權(quán)限保持不變標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:派生類對象對基類成員的訪問權(quán)限:①對于公有繼承,只有基類的公有成員可以被派生類對象訪問,其他(保護(hù)和私有)成員不能被訪問。②對于私有繼承和保護(hù)繼承,基類中所有成員都不能被派生類對象訪問。派生類對基類成員的訪問權(quán)限:①對于公有繼承,基類中公有成員和保護(hù)成員可以訪問,而基類中私有成員不能被訪問。②對于私有繼承和保護(hù)繼承,也是基類中的公有成員和保護(hù)成員可以被派生類訪問,而基類中的私有成員不能被訪問。14、有如下程序#include<iostream>usingnamespacestd;classBase{protected:Base(){cout<<’A’;}Base(charc){cout<<c;}};classDerived:publicBase{public:Derived(charc){cout<<c;}};intmain(){Derivedd1(’B’);return0;}執(zhí)行這個程序屏幕上將顯示輸出()。A、BB、BAC、ABD、BB標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:此題考查的是派生類對象的構(gòu)造。建立派生類對象時,構(gòu)造函數(shù)的執(zhí)行順序是:執(zhí)行基類的構(gòu)造函數(shù),調(diào)用順序按照各個基類被被繼承時聲明的順序;執(zhí)行成員對象的構(gòu)造函數(shù),調(diào)用順序按照各個成員對象在類中聲明的順序:執(zhí)行派生類的構(gòu)造函數(shù)。此題中,在建立派生類Derived的對象dl時會先調(diào)用基類Base的構(gòu)造,調(diào)用的是默認(rèn)構(gòu)造函數(shù),輸出字符‘A’;然后調(diào)用自身的構(gòu)造函數(shù),輸出‘B’;故程序的輸出結(jié)果是:AB。15、在C++中,編譯系統(tǒng)自動為一個類生成缺省構(gòu)造函數(shù)的條件是()。A、該類沒有定義任何有參構(gòu)造函數(shù)B、該類沒有定義任何無參構(gòu)造函數(shù)C、該類沒有定義任何構(gòu)造函數(shù)D、該類沒有定義任何成員函數(shù)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:如果一個類中定義了一個缺省的構(gòu)造函數(shù),則使用該函數(shù)。如果一個類中沒有定義任何構(gòu)造函數(shù),編譯器將生成一個不帶參數(shù)的共有缺省構(gòu)造函數(shù)。16、通過運(yùn)算符重載,可以改變運(yùn)算符原有的()。A、操作數(shù)類型B、操作數(shù)個數(shù)C、優(yōu)先級D、結(jié)合性標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:此題考查的是運(yùn)算符重載。運(yùn)算符重載具有保持其原有的操作數(shù)個數(shù)、優(yōu)先級、語法結(jié)構(gòu)和結(jié)合性不變的特性。故本題選項(xiàng)A正確。17、若在表達(dá)式y(tǒng)/x中,"/"是作為成員函數(shù)重載的運(yùn)算符,則該表達(dá)式還可以表示為()。A、x.operator/(y)B、operator/(x,y)C、y.operator/(x)D、operator/(y,x)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:運(yùn)算符函數(shù)的函數(shù)名是由運(yùn)算符前加關(guān)鍵字operator構(gòu)成的。所以當(dāng)“/”作為運(yùn)算符重載后,其格式為operator/。所以其作為成員函數(shù)調(diào)用時的格式為y.operator/(x)。18、有如下類定義c1assMyClasspublic:________Private:intdata;};若要為MyClass類重載流輸入運(yùn)算符>>,使得程序中可以“cin>>obj;”形式輸入MyClass類的對象obj,則橫線處的聲明語句應(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知識點(diǎn)解析:C++的輸入運(yùn)算符>>作為非類成員函數(shù)重載。在一個類中,可將輸入運(yùn)算符>>聲明為友元函數(shù),在類MyClass重載輸入運(yùn)算符>>的形式如選項(xiàng)A)所示。19、若為Fraction類重載前增1運(yùn)算符++,應(yīng)在類體中將其聲明為()。A、Fraction&operator++();B、Fraction&operator++(int),C、friendFraction&operator++();D、friendFraction&operator++(int);標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:在類Fraction中重載前增1運(yùn)算符++時,其聲明形式為Fraction&operator++();在類Fraction中重載后增1運(yùn)算符++時,其聲明形式為Fraction&operator++(int);。20、有函數(shù)模板聲明和一些變量定義如下:template<classT1,classT2,classT3>T1sum(T2,T3);doubledl,d2;則下列調(diào)用中,錯誤的是()。A、sum<double,double,double>(d1,d2);B、sum<double,double>(d1,d2);C、sum<double>(d1,d2);D、sum(d1,d2);標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:虛擬類型參數(shù)T1沒有出現(xiàn)在模板函數(shù)的形參表中,因此在調(diào)用時不可能從模板函數(shù)的實(shí)參表中獲得相應(yīng)的信息,因此T1無法省略。而在選項(xiàng)D)中省略了。21、要利用C++流實(shí)現(xiàn)輸入輸出的各種格式控制,必須在程序中包含的頭文件是()。A、fstreamB、istrearaC、ostreamD、iomanip標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:要使用setw、fixed等操作符,須包含iomanip這個文件。22、有如下函數(shù)模板:templateTsquare(Tx){returnx*x;}其中T是()。A、函數(shù)形參B、函數(shù)實(shí)參C、模板形參D、模板實(shí)參標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:此題考查的是函數(shù)模板。聲明一個函數(shù)模板的格式是:template<模板形參表聲明>函數(shù)聲明,{函數(shù)體}其中的<模板形參表聲明>是由一個或多個“模板形參”組成的,每個“模板形參”可具有以下幾種形式:typename參數(shù)名;class參數(shù)名:類型修飾參數(shù)名。23、當(dāng)使用ifstream流類定義一個流對象并打開一個磁盤文件時,文件的默認(rèn)打開方式為()。A、ios_base:finB、ios_base::in|ios_base::outC、iosbase::outD、iosbase::in&iosbase::out標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:對于ifstream,默認(rèn)打開模式是ios_base::in。ifstream只能用于輸入,它沒有提供任何用于輸出的操作。國家二級C++機(jī)試(選擇題)模擬試卷第5套一、選擇題(本題共17題,每題1.0分,共17分。)1、下列敘述中正確的是A、一個算法的空間復(fù)雜度大,則其時間復(fù)雜度也必定大B、一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定小C、一個算法的時間復(fù)雜度大,則其空間復(fù)雜度必定小D、算法的時間復(fù)雜度與空間復(fù)雜度沒有直接關(guān)系標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:算法的復(fù)雜度主要包括時間復(fù)雜度和空間復(fù)雜度。算法的時間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量,算法的工作量用算法所執(zhí)行的基本運(yùn)算次數(shù)來度量,而算法所執(zhí)行的基本運(yùn)算次數(shù)是問題規(guī)模的函數(shù),即算法的工作量=f(n),其中n是問題的規(guī)模;算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需要的內(nèi)存空間。一個算法所占用的存儲空間包括算法程序所占用的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行過程中所需要的額外空間。根據(jù)各自的定義可知,算法的時間復(fù)雜度與空間復(fù)雜度并不相關(guān)。2、下列數(shù)據(jù)結(jié)構(gòu)中,能夠按照“先進(jìn)后出”原則存取數(shù)據(jù)的是()。A、循環(huán)隊(duì)列B、棧C、隊(duì)列D、二叉樹標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:棧按照“先進(jìn)后出”(FILO)或“后進(jìn)先出”(LIFO)組織數(shù)據(jù):隊(duì)列是“先進(jìn)先出”(FIFO)或“后進(jìn)后出”(LILO)的線性表。3、下列敘述中正確的是()。A、棧是“先進(jìn)先出”的線性表B、隊(duì)列是“先進(jìn)后出”的線性表C、循環(huán)隊(duì)列是非線性結(jié)構(gòu)D、有序線性表既可以采用順序存儲結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題主要考查了棧、隊(duì)列、循環(huán)隊(duì)列的概念,棧是先進(jìn)后出的線性表,隊(duì)列是先進(jìn)先出的線性表。根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間的前后件關(guān)系的復(fù)雜程度.一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。有序線性表既可以采用順序存儲結(jié)構(gòu),又可以采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。4、有三個關(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知識點(diǎn)解析:自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉,所以根據(jù)T關(guān)系中的有序組可知R與S進(jìn)行的是自然連接操作。5、已知遞歸函數(shù)fun的定義如下:intfun(intn){if(n<=1)return1;//遞歸結(jié)束情況elsereturnn*fun(n.2);//遞歸}則函數(shù)調(diào)用語句fun(5)的返回值是()。A、5B、12C、15D、30標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:遞歸函數(shù)fun被定義為含有參數(shù)intn,返回整型。其中fun函數(shù)遞歸調(diào)用本身,當(dāng)n=1時,fun返回1,如果大于1那么執(zhí)行n*fun(n-2)。所以,當(dāng)n等于5時,執(zhí)行5*fun(3);當(dāng)3時繼續(xù)調(diào)用fun,3*fun(1),即fun(5)=5*(3*fun(1)),答案為15。6、在三級模式之間引入兩層映像,其主要功能之一是()。A、使數(shù)據(jù)與程序具有較高的獨(dú)立性B、使系統(tǒng)具有較高的通道能力C、保持?jǐn)?shù)據(jù)與程序的一致性D、提高存儲空間的利用率標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:數(shù)據(jù)庫管理系統(tǒng)在數(shù)據(jù)庫的三級模式之間提供了兩層映像,保證了數(shù)據(jù)庫中數(shù)據(jù)的較高的邏輯獨(dú)立性和物理獨(dú)立性。7、下面不屬于需求分析階段任務(wù)的是()。A、確定軟件系統(tǒng)的功能需求B、確定軟件系統(tǒng)的性能需求C、需求規(guī)格說明書評審D、制定軟件集成測試計(jì)劃標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:需求分析階段的工作可分為4個階段:需求獲取、需求分析、編寫需求規(guī)格說明書、需求評審。8、有三個關(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知識點(diǎn)解析:關(guān)系R與S經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的有序組組成的,記為R∩S。9、在下列關(guān)鍵字中,不能用來表示繼承方式的是()。A、privateB、staticC、publicD、protected標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:此題考查的是繼承方式。繼承方式有私有(private)、保護(hù)(protected)、公有(public)三種。10、有如下程序:#inc1ude<iostream>voidfun(int&x,inty){intt=x;x=y;y=t;}intmain(){inta[2]={23,42};return0,}執(zhí)行后的輸出結(jié)果是()。A、42,42B、23,23C、23,42D、42,23標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:此題考查是是函數(shù)的調(diào)用以及參數(shù)值的傳遞。函數(shù)fun中的第一個參數(shù)是引用傳值方式,是雙向的;第二個參數(shù)是按值傳遞,是單向的。11、下列描述中,不屬于面向?qū)ο笏枷胫饕卣鞯氖?)。A、封裝性B、跨平臺性C、繼承性D、多態(tài)性標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:封裝性、繼承性和多態(tài)性是面向?qū)ο蟪绦蛟O(shè)計(jì)的三個基本特征??缙脚_性不是面向?qū)ο蟪绦蛟O(shè)計(jì)的特征。12、有如下類定義: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知識點(diǎn)解析:此題考查的是靜態(tài)數(shù)據(jù)成員的初始化。靜態(tài)數(shù)據(jù)成員應(yīng)在類體外進(jìn)行初始化,且初始化的一般格式為:數(shù)據(jù)類型類名::靜態(tài)數(shù)據(jù)成員名=初始值。13、有如下程序:#inc1ude<iostream>#inc1ude<cstring>usingnamespacestd;classMyString{public:charstr[80];MyString(constchar*s){strcpy(str,s);}MyString&operator+=(MyStringa){strcat(str,a.str);return*this;}};ostream&operator<<(ostream&s,constMyString&z){returns<<z.str,}intmain(){MyStringx(”2lbc¨),y("cde");cout<<(x+=y)<<endl;return0;}運(yùn)行這個程序的輸出結(jié)果是()。A、abcB、cdeC、abcdeD、abccde標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:在類MyString中,定義了帶參數(shù)的構(gòu)造函數(shù)MyString(constchar*s),其作用是把s指向的字符串拷貝到字符組str中。在類中還對運(yùn)算+=進(jìn)行重載定義,其作用是把字符串str和a相連接并賦給str,所以在主函數(shù)中執(zhí)行x+=y時,結(jié)果為abccde。14、有如下程序:#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)行時的輸出結(jié)果是()。A、1215588B、1218855C、12185D、128512標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:在這個程序中在建立對象dl(5)時,調(diào)用構(gòu)造函數(shù)XCF(intaa=0):a(aa){tout<<"1";),輸出1;在建立d2(d1)時,調(diào)用拷貝構(gòu)造函數(shù)XCF(XCF&x){a=x.a(chǎn);cout<<"2";},輸出2;在建立newXCF(8)對象時,調(diào)用構(gòu)造函數(shù)XCF(intaa=0):a(aa){cout<<"1";},輸出1;語句cout<<pd->Geta()的功能是輸出8;語句deletepd;調(diào)用析構(gòu)函數(shù)~XCF(),輸出8;當(dāng)退出程序時,分別釋放對象d2、d1,輸出55。15、有如下程序:#include<iostream>usingnamespacestd;classTest{public:Test(){n+=2;}~Test(){n-=3;}staticintgetNum0{returnn;}private:staticintn;};intTest::n=1;intmain(){Test*p=new"rest;deletep;tout<<’’n=’’<<Test::getNum()<<end1;return0;}執(zhí)行后的輸出結(jié)果是()。A、n=0B、n=1C、n=2D、n=3標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:此題考查的是靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)。靜態(tài)數(shù)據(jù)成員是類中所有對象共享的成員,而不是某個對象的成員。題目中的靜態(tài)數(shù)據(jù)成員n的運(yùn)算具有疊加性,執(zhí)行“n+=2”和“n-=3”后n的值為0。16、下列關(guān)于模板的敘述中,正確的是()。A、如果一個類中存在純虛函數(shù),這個類就是類模板B、函數(shù)模板不能有形式參數(shù)表C、類模板是一種參數(shù)化類型的類,是類的生成器D、類模板中不能包含構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:對于函數(shù)模板,數(shù)據(jù)類型本身成了它的參數(shù),是一種參數(shù)化類型的函數(shù)。對于類模板,數(shù)據(jù)類型本身成了它的參數(shù),因而是一種參數(shù)化類型的類,是類的生成器。17、下列語句都是程序運(yùn)行時的第1條輸出語句,其中一條語句的輸出效果與其他三條語句不同,該語句是()。A、cout<<internal<<12345;B、cout<<left<<12345:C、cout<<right<<12345;D、cout<<setw(6)<<12345;標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:選項(xiàng)A,B,C都沒有指輸出數(shù)據(jù)的寬度,所以在輸出時,按實(shí)際字符的寬度輸出,而選項(xiàng)D指定輸出字符的寬度為6,而實(shí)際輸出的寬度等于5,所以最后一個字符用空格補(bǔ)齊。國家二級C++機(jī)試(選擇題)模擬試卷第6套一、選擇題(本題共24題,每題1.0分,共24分。)1、某二叉樹有5個度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)是()。A、10B、8C、6D、4標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為O的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個。2、對如下二叉樹進(jìn)行后序遍歷的結(jié)果為()。A、ABCDEFB、DBEAFCC、ABDECFD、DEBFCA標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:所謂后序遍歷是指在訪問根據(jù)結(jié)點(diǎn)、遍歷左子樹與遍歷右予樹這三者中,首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn),并且,在遍歷左、右子樹時,仍然先遍歷左予樹,然后遍歷右子樹,最后訪問根點(diǎn)。因此,后序遍歷二叉樹的過程也是一個遞歸過程。其簡單描述為:若二叉樹為空,則結(jié)束返回;否則,先后序遍歷左子樹,然后后序遍歷右子樹,最后訪問根結(jié)點(diǎn)。對于后序遍歷,第一個訪問的結(jié)點(diǎn)一定是最左下的結(jié)點(diǎn),最后一個訪問的結(jié)點(diǎn)一定是根結(jié)點(diǎn),所以選項(xiàng)D)為正確答案。3、在長度為64的有序線性表中進(jìn)行順序查找,最壞情況下需要比較的次數(shù)為()。A、63B、64C、6D、7標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:順序查找又稱順序搜索。順序查找一般是指在線性表中查找指定的元素,其基本方法是:從線性表的第一元素開始,依次將線性表中的元素與被查找的元素進(jìn)行比較,若相等則表示找到(即查找成功),若線性表中所有元素都與被查元素進(jìn)行了比較但都不相等,則表示線性表中沒有要找的元素(即查找失敗)。如果線性表中的第一個元素就是要查找的元素,則只需要做一次比較
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 年會活動總結(jié)范文15篇
- 法治社會+學(xué)案 高中政治統(tǒng)編版必修三政治與法治
- 初級會計(jì)實(shí)務(wù)-《初級會計(jì)實(shí)務(wù)》預(yù)測試卷263
- 初級會計(jì)經(jīng)濟(jì)法基礎(chǔ)-初級會計(jì)《經(jīng)濟(jì)法基礎(chǔ)》??荚嚲?10
- 二氧化硅殼層微膠囊的制備及其復(fù)合材料自潤滑性能研究
- 二零二五年度健康產(chǎn)業(yè)養(yǎng)生顧問勞動合同2篇
- 二零二五年度高校就業(yè)指導(dǎo)中心委托代理招聘合同3篇
- 2025版稅務(wù)代理與合規(guī)服務(wù)合同范本9篇
- 二零二五年度室內(nèi)裝修拆除與垃圾清運(yùn)合同樣本4篇
- 二零二五年度產(chǎn)品發(fā)布會舞臺租賃與現(xiàn)場直播合同3篇
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年參考題庫含答案解析
- 上海鐵路局招聘筆試沖刺題2025
- 國旗班指揮刀訓(xùn)練動作要領(lǐng)
- 植物芳香油的提取 植物有效成分的提取教學(xué)課件
- 2024年國家工作人員學(xué)法用法考試題庫及參考答案
- 肖像繪畫市場發(fā)展現(xiàn)狀調(diào)查及供需格局分析預(yù)測報(bào)告
- 三創(chuàng)賽獲獎-非遺文化創(chuàng)新創(chuàng)業(yè)計(jì)劃書
- 旅游文本的翻譯課件
- 最全新能源材料-鋰離子電池材料189張課件
- 封條模板A4直接打印版
- 用友NC財(cái)務(wù)軟件操作手冊
評論
0/150
提交評論