版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷18(共9套)(共198題)國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共24題,每題1.0分,共24分。)1、有如下程序:#include<iostream>usingnamespacestd;intmain(){charstr[100],*p;cout<<”Pleaseinputastring:”;cin;str;p=str;for(inti=0;木p!=‘\0’;p++,i++);cout<<“i”<A、7B、12C、13D、100標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是默認(rèn)輸入格式。本題輸入數(shù)據(jù)類型為char,因此輸入的數(shù)據(jù)是“從第一個(gè)非守『1字符開始到卜一個(gè)空白字符結(jié)束”,而輸入數(shù)據(jù)為abcdefgabcd,其中abcde堙后有窄格。所以輸入后str中的字符串為“abcdefg”;主函數(shù)中接下來for語(yǔ)句的作用是計(jì)算字符串p的長(zhǎng)度,故最終輸出字符串“abcdefg”的長(zhǎng)度7。2、下列關(guān)于類定義的說法中,正確的是()。A、類定義中包括數(shù)據(jù)成員和函數(shù)成員的聲明B、類成員的缺省訪問權(quán)限是保護(hù)的C、數(shù)據(jù)成員必須被聲明為私有的D、成員函數(shù)只能在類體外進(jìn)行定義標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:類的成員的缺省訪問權(quán)限是私有的,數(shù)據(jù)成員可以是私有,可以是公用的,也可以是受保護(hù)的。類的成員函數(shù)可以在類內(nèi)定義。3、耦合性和內(nèi)聚性是對(duì)模塊獨(dú)立性度量的兩個(gè)標(biāo)準(zhǔn)。下列敘述中正確的是()。A、提高耦合性降低內(nèi)聚性有利于提高模塊的獨(dú)立性B、降低耦合性提高內(nèi)聚性有利于提高模塊的獨(dú)立性C、耦合性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此結(jié)合的緊密程度D、內(nèi)聚性是指模塊間互相連接的緊密程度標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:耦合性是反映模塊間互相連接的緊密程度,內(nèi)聚性是指一個(gè)模塊內(nèi)部各個(gè)元素間彼此接合的緊密程序。提高模塊的內(nèi)聚性,降低模塊的耦合性是有利于模塊的獨(dú)立性。4、有如下程序:#includeusingnamespacestd;classtest{private:inta:public:test0{cout+”constructor”+endl;}test(inta){cout+a+endl;)test(consttest&test){a=test.a(chǎn):cout+“copyconstructor”+endl;)test(){Cout+”destructor”+endl;));intmain(){testA(3);return0:}運(yùn)行時(shí)輸出的結(jié)果是()。A、3B、constructordestructorC、copyconstructordestructorD、3destructor標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是構(gòu)造函數(shù)和析構(gòu)函數(shù)。一個(gè)類可以有多個(gè)構(gòu)造函數(shù),但只能有一個(gè)析構(gòu)函數(shù)。每一個(gè)對(duì)象在被創(chuàng)建時(shí),都會(huì)隱含調(diào)用眾多構(gòu)造函數(shù)中的一個(gè),而在銷毀時(shí)又會(huì)隱含調(diào)用唯一的析構(gòu)函數(shù)。此題中,主函數(shù)創(chuàng)建對(duì)象A是會(huì)隱含調(diào)用test(inta)這個(gè)構(gòu)造函數(shù),輸出3:接著主函數(shù)結(jié)束,對(duì)象A銷毀又隱含調(diào)用~test()析構(gòu)函數(shù)輸出destructor。5、軟件生命周期可分為定義階段、開發(fā)階段和維護(hù)階段,下面不屬于開發(fā)階段任務(wù)的是A、測(cè)試B、設(shè)計(jì)C、可行性研究D、實(shí)現(xiàn)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:軟件生命周期是指軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用、維護(hù)到停止使用退役的過程。其中,定義階段包括可行性研究與計(jì)劃制定和需求分析。測(cè)試、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)屬于開發(fā)階段。6、有如下程序:#includeusingnamespacestd;classXA{inta;public:staticintb:XA(intaa):a(aa){b++;)~XA(){}intget0{returna;});intXA::b=0;intmain(){XAd1(2),d2(3);cout<A、5B、6C、7D、8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:執(zhí)行xA類的實(shí)例變量d1(2)時(shí),成員函數(shù)d1.get()的返回值等于2,xA.b的值等于1,執(zhí)行xA類的實(shí)例變量d2(3)時(shí),成員函數(shù)d1.get()的返回值等于3,xA-b的值等于2,所以輸出結(jié)果為2+3+2=7。7、在下列關(guān)系運(yùn)算中,不改變關(guān)系表中的屬性個(gè)數(shù)但能減少元組個(gè)數(shù)的是()。A、并B、交C、投影D、笛卡兒乘積標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:關(guān)系R與S經(jīng)交運(yùn)算后所得到的關(guān)系是由那些既在R內(nèi)又在S內(nèi)的有序組所組成,記為R∩S。形式定義如下:R∩S≡{t∈R∧t∈S}=R-(R-S)。所以不改變關(guān)系表中的屬性個(gè)數(shù),但能減少元組個(gè)數(shù)的是關(guān)系表之間的交操作。8、函數(shù)swap(a,n)可完成對(duì)a數(shù)組從第1個(gè)元素到第n個(gè)元素兩兩交換。其中b[0]=1;b[1]=2;swap(b,2)。在運(yùn)行調(diào)用函數(shù)中的語(yǔ)句后,b[0]和b[1]的值分別為()。A、1,1B、1,2C、2,2D、2,1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:如果函數(shù)實(shí)參是數(shù)組名,形參也應(yīng)為數(shù)組名,函數(shù)swap中形參進(jìn)行了交換,實(shí)際上也是實(shí)參進(jìn)行了交換。而且數(shù)組名代表數(shù)組首元素的地址,并不代表數(shù)組的全部元素。所以,swapfb,2)是數(shù)組b第一個(gè)元素與第二個(gè)元素進(jìn)行交換,即b[0]與b[1],根據(jù)題干,知道答案為2,1。9、下列關(guān)于繼承方式的描述中,錯(cuò)誤的是()。A、如果不顯式地指定繼承方式,缺省的繼承方式是私有(private)B、采用公有繼承方式時(shí),基類中的公有成員在派生類中仍然是公有成員C、采用保護(hù)繼承方式時(shí),基類中的保護(hù)成員在派生類中仍然是保護(hù)成員D、采用私有繼承方式時(shí),基類中的私有成員在派生類中仍然是私有成員標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:基類中的私有成員在派生類中是隱蔽的,只能在基類內(nèi)部訪問。派生類中的成員不可以訪問基類中的私有成員,只可以訪問基類中的公有成員和保護(hù)成員。10、下列語(yǔ)句中錯(cuò)誤的是()。A、constint*p=0;B、constinty=99;C、constintx;D、constint*p=newint(100);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:const是一個(gè)C++語(yǔ)言的關(guān)鍵字,它限定一個(gè)變量不允許被改變,const常量、常量指針賦值時(shí),均必須同時(shí)初始化。所以C選項(xiàng)錯(cuò)誤。11、下列敘述中,錯(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ī)定的字符常量。12、執(zhí)行語(yǔ)句序列()。inti=0;while(i<25)i+=3;cout<<i;輸出結(jié)果是A、24B、25C、27D、28標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是循環(huán)語(yǔ)句while的使用。i為3的倍數(shù),當(dāng)i=24時(shí),i<25,執(zhí)行while的循環(huán)體i+=3,則i=27,不滿足i<25的條件,結(jié)束循環(huán)。13、語(yǔ)句int*p=&k;定義了指針p,與這個(gè)語(yǔ)句等效的語(yǔ)句序列是()。A、int*p;p=&k;B、int*p;p=k;C、int*p;*p=&k;D、int*p;*p=k標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是指針的賦值。題目中的語(yǔ)句int*p=&k;定義了一個(gè)int類型的指針p,并將變量k的地址&k賦給指針p。所以等效語(yǔ)句是:int*p;p=&k;。14、為了提高函數(shù)調(diào)用的實(shí)際運(yùn)行速度,可以將較簡(jiǎn)單的函數(shù)定義為()。A、內(nèi)聯(lián)函數(shù)B、重載函數(shù)C、遞歸函數(shù)D、函數(shù)模板標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++引入內(nèi)聯(lián)函數(shù)的原因是用它來取代C中盼預(yù)處理宏函數(shù)。兩者的區(qū)別在于,宏函數(shù)是由預(yù)處理器對(duì)宏進(jìn)行替換,而內(nèi)聯(lián)函數(shù)是通過編譯器來實(shí)現(xiàn)的。內(nèi)聯(lián)函數(shù)在調(diào)用時(shí)像宏函數(shù)一樣展開,所以它沒有一般函數(shù)的參數(shù)壓棧和退棧操作,減少了調(diào)用開銷,因此,內(nèi)聯(lián)函數(shù)比普通函數(shù)有更高的執(zhí)行效率。15、若要對(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)表示出返回值類型,因此不需要返回值類型的聲明。16、有如下類定義和變量定義:classA{public:A(){data=0;)~A(){}intGetData()const{returndata;}voidSetData(intn){data=n;}private:intdata;};constAa;Ab;下列函數(shù)調(diào)用中錯(cuò)誤的是()。A、a.GetData();B、a.SetData(10);C、b.GetData();D、b.SetData(10);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由題意可知a為常對(duì)象,因?yàn)槌?duì)象不能被更新,所以通過這個(gè)常對(duì)象只能調(diào)用它的常成員函數(shù)GetData(),而不能調(diào)用其他成員函數(shù)SetData(10),因而選項(xiàng)B為本題的正確答案。17、已知函數(shù)f的原型是“voidflint*x,int&y);”,變量v1、v2的定義是“intv1,v2;”,下列調(diào)用語(yǔ)句中,正確的是()。A、f(v1,V2);B、f(v1,&V2);C、f(&v1,v2);D、f(&v1,&v2);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在函數(shù)f的形參表達(dá)式中第一個(gè)形參為整型指針變量,第二個(gè)為整型引用變量,所以用實(shí)參v1的指針初始化第一個(gè)形參,用實(shí)參v2初始化第二形參。18、當(dāng)派生類從一個(gè)基類保護(hù)繼承時(shí),基類中的一些成員在派生類中成為保護(hù)成員,這些成員在基類中原有的訪問屬性是()。A、任何B、公有或保護(hù)C、保護(hù)或私有D、私有標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:基類的公有成員和保護(hù)成員只有在以保護(hù)繼承方式繼承時(shí),其在繼承類中是保護(hù)成員。19、下列關(guān)于派生類和基類的描述中,正確的是()。A、派生類成員函數(shù)只能訪問基類的公有成員B、派生類成員函數(shù)只能訪問基類的公有和保護(hù)成員C、派生類成員函數(shù)可以訪問基類的所有成員D、派生類對(duì)基類的默認(rèn)繼承方式是公有繼承標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:派生類不論是采用那種繼承方式繼承基類,它的成員函數(shù)只能訪問基類的公有成員和保護(hù)成員。20、有如下程序:#includeusingnamespacestd;classTest{public:Test(){n+=2;}~Test(){n一=3;}staticintgetNum(){returnn;}private:staticintn;};intTest::n=1;intmain(){Test*p=newTest;deletep;cout<<"n="<A、n=0B、n=1C、n=2D、n=3標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)。靜態(tài)數(shù)據(jù)成員是類中所有對(duì)象共享的成員,而不是某個(gè)對(duì)象的成員。題目中的靜態(tài)數(shù)據(jù)成員n的運(yùn)算具有疊加性,執(zhí)行“n+=2”和“n-=3”后n的值為0。21、有如下類定義:classAA{inta;Publie: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)解析:根據(jù)派生類構(gòu)造函數(shù)的一般格式:<派生類名>(<總參數(shù)表>):<基類名1>(<參數(shù)表1>),…<基類名n>(<參數(shù)表n>),<成員對(duì)象名1>(<參數(shù)表n+1>),…<成員對(duì)象名m>(<參數(shù)表n+m>)<派生類構(gòu)造函數(shù)體>。在派生類BB的構(gòu)造函數(shù)總參數(shù)表后面應(yīng)該接上基類名AA和其參數(shù)。22、下列關(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ù)來代表一種未知的數(shù)據(jù)類型。所以,模板參數(shù)可以作為成員函數(shù)的局部變量類型。23、下列有關(guān)抽象類和純虛函數(shù)的敘述中,錯(cuò)誤的是()。A、擁有純虛函數(shù)的類是抽象類,不能用來定義對(duì)象B、抽象類的派生類若不實(shí)現(xiàn)純虛函數(shù),它也是抽象類C、純虛函數(shù)的聲明以’’=0;"結(jié)束D、純虛函數(shù)都不能有函數(shù)體標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是抽象類和純虛函數(shù)的概念。純虛函數(shù)可以有函數(shù)體,它的實(shí)現(xiàn)由派生類給出。24、有如下4個(gè)語(yǔ)句:①cout<<’A’<<setfill(’*’)<<lefc<<setw(7)<<’B’<<endl;②cout<<setfill(’*’)<<left<<setw(7)<<’A’<<’B’<<endl;③cout<<’A’<<serfill(’*’)<<right<<setw(7)<<’B’<<endl;④cout<<setfill(’*’)<<right<<setw(7)<<…A<<’B’<<endl;其中能顯示A******B的是()。A、①和③B、①和④C、②和③D、②和④標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查C++流的使用。setfill()作用是設(shè)置填充字符;left是使輸出數(shù)據(jù)在指定寬度內(nèi)左對(duì)齊:fight是使輸出數(shù)據(jù)在指定寬度內(nèi)右對(duì)齊。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共25題,每題1.0分,共25分。)1、支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是A、棧B、樹C、隊(duì)列D、二叉樹標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:棧是一種限定在一端進(jìn)行插入與刪除的線性表。在主函數(shù)調(diào)用子函數(shù)時(shí),要首先保存主函數(shù)當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子函數(shù),把子函數(shù)的運(yùn)行結(jié)果返回到主函數(shù)調(diào)用子函數(shù)時(shí)的位置,主函數(shù)再接著往下執(zhí)行,這種過程符合棧的特點(diǎn)。所以一般采用棧式存儲(chǔ)方式。2、一棵二叉樹中共有80個(gè)葉子結(jié)點(diǎn)與70個(gè)度為1的結(jié)點(diǎn),則該二叉樹中的總結(jié)點(diǎn)數(shù)為A、219B、229C、230D、231標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè),故總結(jié)點(diǎn)數(shù)=葉子節(jié)點(diǎn)數(shù)+度為2的節(jié)點(diǎn)數(shù)+度為1的節(jié)點(diǎn)數(shù)=80+79+70=229。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、有如下程序:#includeusingnamespacestd;classtest{private:ima;public:test(){cout<<”constructor”<A、3B、constructorC、copyconstructorD、3destructordestructordestructor標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查默認(rèn)構(gòu)造函數(shù)和帶參數(shù)的構(gòu)造函數(shù)以及析構(gòu)函數(shù),本題中定義了一個(gè)對(duì)象A(3),對(duì)象帶著參數(shù),所以執(zhí)行帶參數(shù)的構(gòu)造函數(shù),輸出3,然后執(zhí)行析構(gòu)函數(shù),輸出destructor,所以本題答案為D。5、下列關(guān)于this指針的描述中,正確的是()。A、類的成員函數(shù)都有this指針B、類的友元函數(shù)都有this指針C、任何與類相關(guān)的函數(shù)都有this指針D、類的非靜態(tài)成員函數(shù)都有this指針標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:this是成員函數(shù)所屬對(duì)象的指針,它指向類對(duì)象的地址。成員函數(shù)通過這個(gè)指針可以知道自己屬于哪一個(gè)對(duì)象。它隱藏于每個(gè)類的非靜態(tài)成員函數(shù)中。6、有如下程序:#includeusingnamespacestd;classMyClass{public:MyClass(intx):Val(x){)voidSet(intx){val=x;)voidPrint()const{cout<<"val="<A、語(yǔ)句1B、語(yǔ)句2C、語(yǔ)句3D、語(yǔ)句4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在創(chuàng)建類對(duì)象obil(10)時(shí),前面有關(guān)鍵字const,所以當(dāng)語(yǔ)句3調(diào)用objl的成員函數(shù)試圖修改其私有成員的數(shù)值的時(shí)候,會(huì)編譯出錯(cuò)。7、有如下程序:#include<iostream>usingnamespacestd;classXX{protected:intk;public:XX(intn=5):k(n){};~XX(){cout<<’’XX’’;}virtualvoidf()const=0;};inlinevoidXX::f()const{cout<<k+3;};classYY:publicXX{public:~YY(){cout<<’’YY’’;}voidf()const{cout<<k-3;XX::f();}};intmain(){XX&p=*newYY:p.f();delete&p;return0;}執(zhí)行上面的程序?qū)⑤敵?)。A、28XXB、28YYXXC、33XXD、-33XXYY標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:類YY公有派生于類:XX,派生類對(duì)象可以替代基類對(duì)象向基類對(duì)象的引用進(jìn)行賦值初始化,XX&p=*newYY語(yǔ)句定義了XX對(duì)象p引用,并用YY對(duì)象初始化,p并不是YY對(duì)象的別名,是XX基類對(duì)象的別名,故先調(diào)用基類XX的構(gòu)造函數(shù)將k初始化為5,p.f()首先輸出k-3即2,然后調(diào)用XX::f()輸出k+3即8,delete&p刪除p,調(diào)用XX的析構(gòu)函數(shù)輸出“XX”。8、在開發(fā)一個(gè)C++程序的整個(gè)過程中,第3個(gè)步驟為()。A、鏈接B、運(yùn)行C、編輯D、編譯標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++程序的開發(fā)過程是編輯、編譯、鏈接、運(yùn)行和調(diào)試。9、下面描述中不屬于數(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)一管理與控制。10、有如下程序:#inclu&<iostream>usingnamespacestd;intmain(){inta[6]={23,15,64,33,40,58};ints1,s2;s1=s2=a[0];for(int*p=al+1;p<a+6;p++){if(s1>*p)s1=*p;if(s2<*p)s2=*p;}cout<<s1+s2<<end1;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、23B、58C、64D、79標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:變量s1和s2的初值都等于23,那么在執(zhí)行第一次for循環(huán)時(shí),*p的值等于15,它小于23,所以把15賦給變量s1;執(zhí)行第二次for循環(huán)時(shí),*p的值等于64,它大于23,所以把64賦給變量s2;而數(shù)組a中a[2]后面的元素的值都大于15,小于64,因而變量s1,s2的值不會(huì)再發(fā)生變化,最終值為15+64=79。11、若字符指針P所指向的字符串為ˊˊabcdefgˊˊ,在執(zhí)行語(yǔ)句()。char*ap=newchar[strlen(p)+1];之后,ap指向的字符數(shù)組的元素個(gè)數(shù)為A、9B、8C、7D、6標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:字符指針p所指向的字符串為"abcdefg,所以函數(shù)strlen(p)的值等于7,再加1,等于8。12、下列類模板的定義中語(yǔ)法格式錯(cuò)誤的是()。A、templateclassBuffer{/*…*/};B、templateclassBuffer{/*…*/};C、templateclassBuffer{/*…*/};D、templateclassBuffer{/*…*}標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:定義類模板的一般形式是:template<類型名參數(shù)名1,類型名參數(shù)名2,…>class類名(類聲明體};模板的類型參數(shù)由關(guān)鍵字class或關(guān)鍵字typename及其后的標(biāo)識(shí)符構(gòu)成。在模板參數(shù)表中關(guān)鍵字class和typename的意義相同。13、有如下類定義:classSample{public;Sample(intx):ref(x){}//①private:Sample():ref(0){}//②staticintval=5;//③constintref;//④};上述程序段中,錯(cuò)誤的語(yǔ)句是()。A、①B、②C、③D、④標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:靜態(tài)整型數(shù)據(jù)不能定義為類的數(shù)據(jù)成員。14、使用輸入輸出操作符setw,可以控制()。A、輸出精度B、輸出寬度C、對(duì)齊方式D、填充字符標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是c++流的操作符。在c++流中,操作符setw的作用是設(shè)置輸入輸出寬度。15、有如下類定義: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的值。16、有如下程序:#include<iostream>usingnamespacestd;classBase{private:voidfun1()const{cout<<’’fun1’’;}protected:voidfun2()const{cout<<’’fun2’’;}public:voidfun3()const{cout<<’’fun3’’;}};classDerived:protectedBase{public:voidfun4()const{cout<<’’fun4";}};intmain(){Derivedobj;obj.funl();//①obj.fura();//②obj.fun3();//③obj.fun4();//④return0;}其中有語(yǔ)法錯(cuò)誤的語(yǔ)句是()。A、①②③④B、①②⑧C、②③④D、①④標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是保護(hù)繼承。因?yàn)镈erived以protected方式繼承了Base類,所以父類Base中的公有成員和保護(hù)成員均成了Derived類的保護(hù)成員,而Base類的私有成員Derived類不可訪問。所以,主函數(shù)中通過Derived類的對(duì)象只能夠訪問到Derived類的公有成員。17、有如下程序:#include<iostream>usingnamespacestd;classBase{public:virtualvoidfunctionl(){cout<<’0’;}voidfunction2(){cout<<’1’;}};classDerived:publicBase{public:voidfunction1(){cout<<’2’;}voidfunction2(){cout<<’3’;}};intmain(){Base*p=newDerived();p->ftmction1();p->function2();return0;};運(yùn)行時(shí)的輸出結(jié)果是,()。A、01B、21C、03D、23標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:函數(shù)function1()在基類Base中定義為虛成員函數(shù),而在派生類Dervied中重新進(jìn)行了定義,輸出字符2,函數(shù)function2()在基類Base中定義虛成員函數(shù),在主函數(shù)中使用指向基類的指針變量p訪問function2()時(shí),輸出1。18、有如下程序:#includeusingnamespacestd;classGA{public;virtualintf(){return1;}};classGB:publicGA{public;virtualintf(){return2;}};voidshow(GAg){cout<A、1111B、1211C、1112D、1212標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查派生類與虛函數(shù)的考查。由主函數(shù)main入手,其中分別定義了類GA和GB的對(duì)象a和b。首先,執(zhí)行參數(shù)a的show函數(shù)調(diào)用,其中的輸出語(yǔ)句為調(diào)用GA類中的f()虛函數(shù),返回1。同理display(a)函數(shù)輸出1。show(b)函數(shù)中調(diào)用的為GA中的f()函數(shù),display(b)調(diào)用GA中f()函數(shù),返回1,display(b)調(diào)用GB中的f()函數(shù)返回2。所以最后輸出為1112。19、運(yùn)算符重載時(shí)不需要保持的性質(zhì)是()。A、操作數(shù)個(gè)數(shù)B、操作數(shù)類型C、優(yōu)先級(jí)D、結(jié)合性標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:運(yùn)算符重載應(yīng)該體現(xiàn)為原有運(yùn)算符的功能在新的數(shù)據(jù)類型上的延伸。重載的運(yùn)算符保持原有運(yùn)算符的操作個(gè)數(shù)、優(yōu)先級(jí)和結(jié)合性三個(gè)最基本的特征。20、當(dāng)派生類繼承一個(gè)基類時(shí),默認(rèn)的繼承方式為()。A、PublicB、protectedC、privateD、不確定標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:派生類繼承一個(gè)基類時(shí),默認(rèn)的繼承方式為private。21、建立一個(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ù)。22、有函數(shù)模板聲明和一些變量定義如下:temp1ate<c1assT1,c1assT2,c1assT3>T1sum(T2,T3);doubled1,d2;則下列調(diào)用中,錯(cuò)誤的是()。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知識(shí)點(diǎn)解析:虛擬類型參數(shù)T1沒有出現(xiàn)在模板函數(shù)的形參表中,因此在調(diào)用時(shí)不可能從模板函數(shù)的實(shí)參表中獲得相應(yīng)的信息,因此T1無法省略。而在選項(xiàng)D)中省略了。23、語(yǔ)句ofstreamf("SALARY.DAT",ios_base::app);功能是建立流對(duì)象f,并試圖打開文件SALARY.DAT與f關(guān)聯(lián),而且()。A、若文件存在,將其置為空文件;若文件不存在,打開失敗B、若文件存在,將文件指針定位于文件尾;若文件不存在,建立一個(gè)新文件C、若文件存在,將文件指針定位于文件首;若文件不存在,打開失敗D、若文件存在,打開失??;若文件不存在,建立一個(gè)新文件標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是文件打開模式。文件打開模式iso_base::app是為添加數(shù)據(jù)而打開(總是在尾部寫),故只有選項(xiàng)B說法正確。24、有如下程序:#include<iostream>#include<iomanip>usingnamespacestd;intmain(){ints[]={123,234};cout<<right<<setfill(’*’)<<setw(6);for(inti=0;i<2;i++){cout<<s[i]<<endl;}return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、123234B、***123234C、***123***234D、***123234***標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在輸出語(yǔ)句中定義了輸出的格式是字符寬度為6,并且向右對(duì)齊,不足的位用‘*’補(bǔ)齊。在C++中,輸出格式的設(shè)置只對(duì)第一次輸出有效,在完成了一個(gè)數(shù)據(jù)的輸出后,寬度設(shè)置自動(dòng)恢復(fù)為0(表示按數(shù)據(jù)實(shí)際寬度輸出)。所以對(duì)于本題來說,在循環(huán)語(yǔ)句中輸出數(shù)組s[0]中的元素時(shí),按照規(guī)定的格式輸出,其結(jié)果為***123,當(dāng)輸出s[1]時(shí),輸出格式已經(jīng)恢復(fù)到按數(shù)據(jù)實(shí)際寬度輸出,所以此時(shí)輸出為234。25、若為Fraction類重載前增1運(yùn)算符++,應(yīng)在類體中將其聲明為()。A、Fraction&operator++();B、Fraction&operator++(int);C、friendFraction&operator++();D、friendFraction&operator++(int);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在類Fraction中重載前增1運(yùn)算符++時(shí),其聲明形式為Fraction&operator++();在類Fraction中重載后增1運(yùn)算符十+時(shí),其聲明形式為Fraction&operatorH(int);。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共18題,每題1.0分,共18分。)1、一棵二叉樹中共有80個(gè)葉子結(jié)點(diǎn)與70個(gè)度為1的結(jié)點(diǎn),則該二叉樹中的總結(jié)點(diǎn)數(shù)為()。A、219B、229C、230D、231標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè),故總結(jié)點(diǎn)數(shù)=葉子節(jié)點(diǎn)數(shù)+度為2的節(jié)點(diǎn)數(shù)+度為1的節(jié)點(diǎn)數(shù)=80+79+70=229。2、有三個(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)行的是自然連接操作。3、一棵二叉樹中共有80個(gè)葉子結(jié)點(diǎn)與70個(gè)度為1的結(jié)點(diǎn),則該二叉樹中的總結(jié)點(diǎn)數(shù)為()。A、219B、229C、230D、231標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:根據(jù)二叉樹的性質(zhì),在任意二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè),故總結(jié)點(diǎn)數(shù)=葉子節(jié)點(diǎn)數(shù)+度為2的節(jié)點(diǎn)數(shù)+度為1的節(jié)點(diǎn)數(shù)=80+79+70=229。4、某二叉樹共有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)。5、下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。A、順序存儲(chǔ)的有序線性表B、線性鏈表C、二叉鏈表D、有序線性鏈表標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二分法查找只適應(yīng)于順序存儲(chǔ)的有序表。有序表是指線性表中的元素按值非遞減排序(即從小到大,但允許相鄰元素值相等)的表。6、有如下類定義:classFoo{public:Foo(intv):value(v){)∥①~Foo(){)∥②private:F000{}∥③intvalue=0;∥④);其中存在語(yǔ)法錯(cuò)誤的行是()。A、①B、②C、③D、④標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是類的定義。c++語(yǔ)言規(guī)定,在類體內(nèi)不允許對(duì)所定義的數(shù)據(jù)成員進(jìn)行初始化。7、有如下頭文件:intf10;staticintf2();classMA{public:intf3();staticintf4();};在所描述的函數(shù)中,具有隱含的this指針的是()。A、f1B、f2C、f3D、f4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是this指針。this指針是一個(gè)隱含的指針,它隱含于每個(gè)類的非靜態(tài)成員函數(shù)中,它明確地表示出了成員函數(shù)當(dāng)前操作的數(shù)據(jù)所屬的對(duì)象。題目中,只有f3()滿足“類的非靜態(tài)成員函數(shù)”的要求,故應(yīng)選C選項(xiàng)。8、下列關(guān)于C++函數(shù)的敘述中,正確的是()。A、每個(gè)函數(shù)至少要具有一個(gè)參數(shù)B、每個(gè)函數(shù)都必須返回一個(gè)值C、函數(shù)在被調(diào)用之前必須先聲明D、函數(shù)不能自己調(diào)用自己標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)的性質(zhì)。當(dāng)調(diào)用無參函數(shù)時(shí)主函數(shù)并不將數(shù)據(jù)傳送給被調(diào)函數(shù),且可以帶回或不帶回函數(shù)值。函數(shù)的遞歸調(diào)用就是直接或間接的調(diào)用自己。9、有如下程序:#includeusingnamespacestd;classA{public:virtualvoidf(){cout<<1;}voidg(){cout<<2;}};classB: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為正確答案。10、有如下程序:#include<iostream>usingnamespacestd;intmain(){intf,fl=0,f2=1;for(inti=3;i<=6;i++){f=f1+f2;f1=f2;f2=f;}cout<<f<<endl;retum0:}運(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的值等于1,f1的值等于1,f2的值等于1;第二次循環(huán)結(jié)束時(shí),變量f的值等于2,f1的值等于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)。11、有如下程序:#includeUsingnamespacestd;ClassAmount{intamount;public;Amount(intn=O):amount(n){}IntgetAmountoconst{retumamount;}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ù)的返回值類型為Amount&,所以橫線處填入*this。12、下列關(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ù)來代表一種未知的數(shù)據(jù)類型。所以,模板參數(shù)可以作為成員函數(shù)的局部變量類型。13、建立一個(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ù)來完成。14、下列運(yùn)算符函數(shù)中肯定不屬于類FunNumber的成員函數(shù)的是()。A、intoperator-(FunNumber);B、FunNumberoperator-();C、FunNumberoperator-(int);D、.intoperator-(FunNumber,F(xiàn)unNumber);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符“-”的重載?!?”運(yùn)算符有一元和二元兩種,且均可以重載為成員函數(shù)和非成員函數(shù)。運(yùn)算符重載為成員函數(shù)時(shí),形參個(gè)數(shù)一般為運(yùn)算符元數(shù)減1;重載為非成員函數(shù)時(shí),形參個(gè)數(shù)一般和運(yùn)算符元數(shù)相等。所以,“-”運(yùn)算符重載為成員函數(shù)時(shí),參數(shù)可以是0個(gè)或1個(gè);而重載為非成員函數(shù)時(shí),參數(shù)個(gè)數(shù)可以是1個(gè)或2個(gè)。所以D選項(xiàng),肯定是重載為非成員函數(shù)。15、下列關(guān)于運(yùn)算符重載的敘述中,正確的是()。A、通過運(yùn)算符重載機(jī)制可以為C++語(yǔ)言擴(kuò)充新的運(yùn)算符B、運(yùn)算符重載的作用是使已有的運(yùn)算符作用于類的對(duì)象C、重載運(yùn)算符的操作數(shù)類型可以全部為基本類型D、所有運(yùn)算符都可以被重載標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:運(yùn)算符重載就是賦予已有的運(yùn)算符多重含義。通過重新定義運(yùn)算符,使它能夠用于特定類的對(duì)象執(zhí)行特定的功能,這便增強(qiáng)了C++語(yǔ)言的擴(kuò)充能力。運(yùn)算符重載要注意以下3點(diǎn):①不能重載的運(yùn)算符包括::…,.*,?;②必須重載為成員函數(shù)的運(yùn)算符包括[],(),—>,=;③在類成員函數(shù)中重載運(yùn)算符是不允許返回引用的,會(huì)出現(xiàn)“返回局部變量的地址”警告。16、如果表達(dá)式a>=b中的“>=”是作為非成員函數(shù)重載的運(yùn)算符,則可以等效地表示為()。A、a.operator>=(b)B、b.operatotr>=(a)C、operator>=(a,b)D、operator>=(b,a)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:運(yùn)算符函數(shù)作為非成員函數(shù)時(shí),沒有隱含的this指針,因此所有的操作數(shù)必須出現(xiàn)在參數(shù)表中,對(duì)于二元運(yùn)算符,參數(shù)表中有兩個(gè)參數(shù),分別代表第一操作數(shù)和第二操作數(shù),且順序不能改變。17、下列關(guān)于賦值運(yùn)算符“=”重載的敘述中,正確的是()。A、賦值運(yùn)算符只能作為類的成員函數(shù)重載B、默認(rèn)的賦值運(yùn)算符實(shí)現(xiàn)了“深層復(fù)制”功能C、重載的賦值運(yùn)算符函數(shù)有兩個(gè)本類對(duì)象作為形參D、如果已經(jīng)定義了復(fù)制(拷貝)構(gòu)造函數(shù),就不能重載賦值運(yùn)算符標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:賦值運(yùn)算符“=”只能作為成員函數(shù)重載。18、下列控制對(duì)齊方式的操作符中,錯(cuò)誤的是()。A、internalB、centerC、leftD、right標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:對(duì)齊方式的控制操作符left的含義是在設(shè)定的寬度內(nèi)左對(duì)齊輸出,右端填己設(shè)定的填充字符;right(此為默認(rèn)設(shè)置)在設(shè)定的寬度內(nèi)右對(duì)齊輸出:internal在設(shè)定的寬度內(nèi)右對(duì)齊輸出,但若有符號(hào)(一或+),符號(hào)置于最左端。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共20題,每題1.0分,共20分。)1、算法的空間復(fù)雜度是指()。A、算法在執(zhí)行過程中所需要的計(jì)算機(jī)存儲(chǔ)空間B、算法所處理的數(shù)據(jù)量C、算法程序中的語(yǔ)句或指令條數(shù)D、算法在執(zhí)行過程中所需要的臨時(shí)工作單元數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。這個(gè)內(nèi)存空間包括算法程序所占的空間,輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及算法執(zhí)行過程中所需要的額外空間。2、下列描述中正確的是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ù)處理的效率是不同的。3、在函數(shù)中,可以用auto、extem、register和static這四個(gè)關(guān)鍵字中的一個(gè)來說明變量的存儲(chǔ)類型,如果不說明存儲(chǔ)類型,則默認(rèn)的存儲(chǔ)類型是()。A、autoB、extemC、registerD、static標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是存儲(chǔ)類型。c++語(yǔ)言變量的存儲(chǔ)類型分為如下幾種類型:auto…函數(shù)內(nèi)部的局部變量;static…靜態(tài)存儲(chǔ)分配;extem…全局變量;register.一變量存儲(chǔ)存硬件寄存器中。4、某二叉樹共有7個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè),則該二叉樹的深度為(假設(shè)根結(jié)點(diǎn)在第1層)()。A、3B、4C、6D、7標(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,故該二叉樹為7層,每層只有一個(gè)結(jié)點(diǎn)。5、下面不屬于軟件工程過程的4種基本活動(dòng)()。A、軟件規(guī)格說明B、軟件開發(fā)C、軟件演進(jìn)D、軟件測(cè)試標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件工程過程的4種基本活動(dòng)是:軟件規(guī)格說明、軟件開發(fā)、軟件確認(rèn)、軟件演進(jìn)。6、要定義一個(gè)引用變量P,使之引用類MyClass的一個(gè)對(duì)象,正確的定義語(yǔ)句是()。A、MyClassp=MyClass;B、MyClassp=newMyClass;C、MyClass&p=newMyClass;D、MyClassa,&p=a;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在選項(xiàng)D)中,定義了MyClass類的一個(gè)對(duì)象a和引用變量p,并且聲明p初始化為對(duì)a的引用。7、對(duì)關(guān)系S和關(guān)系R進(jìn)行集合運(yùn)算,結(jié)果中既包含關(guān)系S中的所有元組也包含關(guān)系R中的所有元組,這樣的集合運(yùn)算稱為()。A、并運(yùn)算B、交運(yùn)算C、差運(yùn)算D、除運(yùn)算標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:關(guān)系的并運(yùn)算是指,由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,其中包含兩個(gè)關(guān)系中的所有元組。8、定義派生類時(shí),若不使用關(guān)鍵字顯式地規(guī)定采用何種繼承方式,則默認(rèn)方式為()。A、私有繼承B、非私有繼承C、保護(hù)繼承D、公有繼承標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:繼承的方式包括三種:公有繼承,保護(hù)繼承和私有繼承。如果不顯示的給出繼承方式,缺省的類繼承方式是私有繼承private。9、下列關(guān)于繼承方式的描述中,錯(cuò)誤的是()。A、如果不顯式地指定繼承方式,缺省的繼承方式是私有(private)B、采用公有繼承方式時(shí),基類中的公有成員在派生類中仍然是公有成員C、采用保護(hù)繼承方式時(shí),基類中的保護(hù)成員在派生類中仍然是保護(hù)成員D、采用私有繼承方式時(shí),基類中的私有成員在派生類中仍然是私有成員標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:基類中的私有成員在派生類中是隱蔽的,只能在基類內(nèi)部訪問。派生類中的成員不可以訪問基類中的私有成員,只可以訪問基類中的公有成員和保護(hù)成員。10、數(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ù)的共享問題。11、下列關(guān)于賦值運(yùn)算符“=”重載的敘述中,正確的是()。A、賦值運(yùn)算符只能作為類的成員函數(shù)重載B、默認(rèn)的賦值運(yùn)算符實(shí)現(xiàn)了“深層復(fù)制”功能C、重載的賦值運(yùn)算符函數(shù)有兩個(gè)本類對(duì)象作為形參D、如果已經(jīng)定義了復(fù)制(拷貝)構(gòu)造函數(shù),就不能重載賦值運(yùn)算符標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:重載賦值運(yùn)算符必須定義為類的成員函數(shù);所以選項(xiàng)A正確。重載賦值運(yùn)算符時(shí)應(yīng)返回一個(gè)類的對(duì)象,所以C選項(xiàng)錯(cuò)誤。如果已經(jīng)定義了復(fù)制(拷貝)構(gòu)造函數(shù),仍然可以重載賦值運(yùn)算符,所以D選項(xiàng)錯(cuò)誤。12、已知函數(shù)f的原型是“voidf(int*x,int&y);”,變量v1、v2的定義是“intv1,v2;”,下列調(diào)用語(yǔ)句中,正確的是()。A、f(v1,v2);B、f(v1,&V2);C、f(&v1,v2);D、f(&v1,&v2);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在函數(shù)f的形參表達(dá)式中第一個(gè)形參為整型指針變量,第二個(gè)為整型引用變量,所以用實(shí)參v1的指針初始化第一個(gè)形參,用實(shí)參v2初始化第二形參。13、有如下程序:#include<iostream>usingnamespacestd;classONE{intc;public:ONE():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。14、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assBase{public:Base(intx=0){cout<<x;}};c1assDerived:publicBase{public:Derived(intx=0){cout<<x,}private:Baseval;};intmain(){Derivedd(1);retum0;}程序的輸出結(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ù)1,所以輸出1。故最后輸出結(jié)果是:001。15、有如下程序:#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ò)。16、有如下程序:#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知識(shí)點(diǎn)解析:此題考查的是類的繼承和派生。系統(tǒng)首先要通過派生類的構(gòu)造函數(shù)調(diào)用基類的構(gòu)造函數(shù),對(duì)基類成員初始化;然后對(duì)派生類中的新增成員初始化。17、下列關(guān)于派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的說法中,錯(cuò)誤的是()。A、派生類的構(gòu)造函數(shù)會(huì)隱含調(diào)用基類的構(gòu)造函數(shù)B、如果基類中沒有缺省構(gòu)造函數(shù),那么派生類必須定義構(gòu)造函數(shù)C、在建立派生類對(duì)象時(shí),先調(diào)用基類的構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)D、在銷毀派生類對(duì)象時(shí),先調(diào)用基類的析構(gòu)函數(shù),再調(diào)用派生類的析構(gòu)函數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)。在撤銷派生類對(duì)象時(shí),析構(gòu)函數(shù)的執(zhí)行過程和構(gòu)造函數(shù)嚴(yán)格相反,即:對(duì)派生類新增普通成員進(jìn)行清理;調(diào)用成員對(duì)象析構(gòu)函數(shù),調(diào)用基類析構(gòu)函數(shù)對(duì)基類進(jìn)行清理。18、有如下類定義classAnimal{public:virtualvoidName0=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ì)象的。19、下列關(guān)于運(yùn)算符重載的敘述中,錯(cuò)誤的是()。A、有的運(yùn)算符可以作為非成員函數(shù)重載B、所有的運(yùn)算符都可以通過重載而被賦予新的含義C、不得為重載的運(yùn)算符函數(shù)的參數(shù)設(shè)置默認(rèn)值D、有的運(yùn)算符只能作為成員函數(shù)重載標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:“運(yùn)算符重載”是針對(duì)C++中原有運(yùn)算符進(jìn)行的,不可能通過重載創(chuàng)造新的運(yùn)算符。除了*,.*,-〉*,::,?:,.這五個(gè)運(yùn)算符以外,其他運(yùn)算符都可以重載。20、下列控制格式輸入輸出的操作符中,能夠設(shè)置浮點(diǎn)數(shù)精度的是()。A、setprecisionB、setwC、setfillD、showpoint標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:setprecision(intn):設(shè)置浮點(diǎn)數(shù)的精度(有效位數(shù)或小數(shù)位數(shù)),等價(jià)函數(shù)調(diào)用:io.precision(n)。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第5套一、選擇題(本題共23題,每題1.0分,共23分。)1、下列關(guān)于棧和隊(duì)列的描述中,正確的是()。A、棧是先進(jìn)先出B、隊(duì)列是先進(jìn)后出C、隊(duì)列允許在隊(duì)頭刪除元素D、棧在棧頂刪除元素標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧實(shí)際也是線性表,只不過是一種特殊的線性表。棧是只能在表的一端進(jìn)行插入和刪除運(yùn)算的線性表,通常稱插入、刪除的這一端為棧頂,另一端為棧底。隊(duì)列是只允許在一端刪除,在另一端插入的順序表,允許刪除的一端叫做隊(duì)頭,允許插入的一端叫做隊(duì)尾。2、算法的有窮性是指()。A、算法程序的運(yùn)行時(shí)間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長(zhǎng)度是有限的D、算法只能被有限的用戶使用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的有窮性,是指算法必須能在有限的時(shí)間內(nèi)做完,即算法必須能在執(zhí)行有限個(gè)步驟之后終止。3、下列描述中正確的是()。A、線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B、棧與隊(duì)列是非線性結(jié)構(gòu)C、雙向鏈表是非線性結(jié)構(gòu)D、只有根結(jié)點(diǎn)的二叉樹是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)稱為線性鏈表。線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的基本單位稱為存儲(chǔ)結(jié)點(diǎn),每個(gè)存儲(chǔ)結(jié)點(diǎn)包括數(shù)據(jù)域和指針域兩個(gè)組成部分。各數(shù)據(jù)元素之間的前后件關(guān)系是由各結(jié)點(diǎn)的指針域來指示的,指向線性表中第一結(jié)點(diǎn)的指針HEAD稱為頭指針,當(dāng)HEAD=NULL時(shí)稱為空表。棧、隊(duì)列和雙向鏈表是線性結(jié)構(gòu),樹是一種簡(jiǎn)單的非線性結(jié)構(gòu)。在樹這種數(shù)據(jù)結(jié)構(gòu)中,所有數(shù)據(jù)元素的關(guān)系具有明顯的層次特征。二叉樹是非線性結(jié)構(gòu)。線性結(jié)構(gòu)和非線性結(jié)構(gòu)是從數(shù)據(jù)的邏輯結(jié)構(gòu)角度來講的,與該數(shù)據(jù)結(jié)構(gòu)中有多少個(gè)元素沒有關(guān)系,即使是空的二叉樹也是非線性結(jié)構(gòu)。4、下列有關(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來定義C、內(nèi)聯(lián)函數(shù)是通過編譯器來實(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ù)體來替換,所以它沒有一般函數(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í)行效率。5、計(jì)算斐波那契數(shù)列第n項(xiàng)的函數(shù)定義如下:intfib(intn){if(n==0)return1;elseif(n==1)return2;elsereturnfib(n-1)+fib(n-2);}若執(zhí)行函數(shù)調(diào)用表達(dá)式fib(2),函數(shù)fib被調(diào)用的次數(shù)是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:斐波那契數(shù)列是遞歸函數(shù),所以fib(2)=fib(1)+fib(0)=2+1=3。因而執(zhí)行函數(shù)調(diào)用表達(dá)式fib(2)時(shí),函數(shù)fib被調(diào)用的次是2次。6、有如下程序:#includeusingnamespacestd;classtest{private:ima;public:test(){cout<<”constructor”<A、3B、constructorC、copyconstructorD、3destructordestructordestructor標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查默認(rèn)構(gòu)造函數(shù)和帶參數(shù)的構(gòu)造函數(shù)以及析構(gòu)函數(shù),本題中定義了一個(gè)對(duì)象A(3),對(duì)象帶著參數(shù),所以執(zhí)行帶參數(shù)的構(gòu)造函數(shù),輸出3,然后執(zhí)行析構(gòu)函數(shù),輸出destructor,所以本題答案為D。7、在軟件設(shè)計(jì)中,不屬于過程設(shè)計(jì)工具的是()。A、PDL(過程設(shè)計(jì)語(yǔ)言)B、PAD圖C、N一S圖D、DFD圖標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:DFD(數(shù)據(jù)流圖Data一Flow一Diagram)是描述數(shù)據(jù)處理過程的工具,是需求理解的邏輯模型的圖形表示。它直接支持系統(tǒng)功能建模。在軟件詳細(xì)設(shè)計(jì)的過程階段,要對(duì)每個(gè)模塊規(guī)定的功能以及算法的設(shè)計(jì)給出適當(dāng)?shù)乃惴枋?。常見的過程設(shè)計(jì)工具有:圖形工具:程序流程圖,N一S,PAD,HIPO。表格工具:判定表。語(yǔ)言工具:PDL(偽碼)。8、下列對(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ò)誤為中心,而不是為了演示軟件的正確功能。9、在下列double型常量表示中,錯(cuò)誤的是()。A、E15B、35C、3E5D、3E-5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C++中,科學(xué)計(jì)數(shù)法表示小數(shù)的方法:E(e)左右必須有數(shù),且E(e)的右側(cè)只能為整數(shù)。10、數(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ù)具有“集成”、?!肮蚕怼敝攸c(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ù)的共享問題。11、在E一R圖中,用來表示實(shí)體的圖形是()。A、矩形B、橢圓形C、菱形D、三角形標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在E一R圖中,用矩形表示實(shí)體集,在矩形內(nèi)寫上該實(shí)體集的名字;用橢圓形表示屬性;用菱形(內(nèi)部寫上聯(lián)系名)表示聯(lián)系。12、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是()。A、自然連接B、并C、交D、差標(biāo)準(zhǔn)答案:D知識(shí)點(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)算得到的。13、有三個(gè)關(guān)系R、S和T如下:則由關(guān)系R和S得到關(guān)系T的操作是()。A、自然連接B、交C、除D、并標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:從關(guān)系R、S和T的結(jié)構(gòu)可以得出關(guān)系T是由關(guān)系R、S經(jīng)過除運(yùn)算后得到的。14、下面描述中不屬于數(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)一管理與控制。15、下列關(guān)于運(yùn)算符重載的敘述中,錯(cuò)誤的是()。A、有的運(yùn)算符可以作為非成員函數(shù)重載B、所有的運(yùn)算符都可以通過重載而被賦予新的含義C、不得為重載的運(yùn)算符函數(shù)的參數(shù)設(shè)置默認(rèn)值D、有的運(yùn)算符只能作為成員函數(shù)重載標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:“運(yùn)算符重載”是針對(duì)C++中原有運(yùn)算符進(jìn)行的,不可能通過重載創(chuàng)造新的運(yùn)算符。除了*,.*,->,::,?:,.這五個(gè)運(yùn)算符以外,其他運(yùn)算符都可以重載。16、有如下函數(shù)定義:voidfunc(inta,int&b){a++;b++;}若執(zhí)行代碼段:intx=0,y=1;func(x,y);則變量x和y的值分別是()。A、0和1B、1和1C、0和2D、1和2標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)參數(shù)的傳遞方式。此題中形參a是普通參數(shù),即傳值調(diào)用,函數(shù)中對(duì)a增1不會(huì)影響到實(shí)參x的值;形參b是傳址調(diào)用,函數(shù)中對(duì)b增1同時(shí)會(huì)改變實(shí)參y的值。故最終結(jié)果是0和2。17、下列關(guān)于類定義的說法中,正確的是()。A、類定義中包括數(shù)據(jù)成員和函數(shù)成員的聲明B、類成員的缺省訪問權(quán)限是保護(hù)的C、數(shù)據(jù)成員必須被聲明為私有的D、成員函數(shù)只能在類體外進(jìn)行定義標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是類的定義。類中缺省的訪問權(quán)限是私有的,所以選項(xiàng)B錯(cuò)誤:類的數(shù)據(jù)成員和成員函數(shù)的訪問控制權(quán)限均可被聲明為公有、私有和保護(hù)中的一種,所以選項(xiàng)C錯(cuò)誤:成員函數(shù)的實(shí)現(xiàn)可以在類體內(nèi)定義,也可以在類體外定義,所以選項(xiàng)D錯(cuò)誤。18、如果不使用多態(tài)機(jī)制,那么通過基類的指針雖然可以指向派生類對(duì)象,但是只能訪問從基類繼承的成員。有如下程序,沒有使用多態(tài)機(jī)制。#include<iostream>usingnamespacestd;classBase{inta,b;public:Base(intx,inty){a=x;b=y;}voidshow(){cout<<a<<’,’<<b<<9ndl;}};classDerived:publicBase{intc,d;public:Derived(intx,inty,intz,intm):Base(x,y){c=z;d=m;}voidshow(){cout<<c<<’,’<<d<<endl;}};intmain(){BaseB1(50,50),*pb;DerivedD1(10,20,30,40);pb=&D1;return0:return();}運(yùn)行時(shí)輸出的結(jié)果是()。A、10,20B、30,40C、20,30D、50,50標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是多態(tài)性。在C++中,一個(gè)基類指針可以用于指向它的派生類對(duì)象,而且通過這樣的指針調(diào)用虛函數(shù)時(shí),被調(diào)用的是該指針實(shí)際所指向的對(duì)象類的那個(gè)重定義版本。在實(shí)函數(shù)的情況下。通過基類指針?biāo){(diào)用的只能是基類酌那個(gè)函數(shù)版本,無法調(diào)用到派生類中重定義函數(shù)。此題中,通過指針pb所調(diào)用的是基類的版本,即輸出a和b的值10,20。19、下列是重載乘法運(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)。20、下列模板聲明中,有語(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ì)象,但是可能要考慮溢出的問題。21、有如下程序:#includeusingnamespacestd;classPublication{//出版物類charname[30];public:Publication(char*name="未知名稱"){strcpy(this->name,name);}constchar*getNameoconst{returnname;}virtualconstchar*getTypeoconst{return"未知類型";}};classBook:publicPublication{//書類public:Book(char*name):Publication(name){}virtualconstchar*getType()const{return"書";}};voidshowPublication(Publication&p){cout<A、未知類型:未知名稱B、未知類型:精彩人生C、書:未知名稱D、書:精彩人生標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因?yàn)轭怋ook繼承自基類Publication,所以在類Book中的虛常成員函數(shù)*getType(){return"書";}就會(huì)覆蓋基類中的虛常成員函數(shù)*getType()const{return"未知類型";},所以在主函數(shù)中調(diào)用函數(shù)showPublication(book)時(shí),getType()函數(shù)的輸出的結(jié)果是“書”,getName()函數(shù)的輸出結(jié)果為“精彩人生”。22、關(guān)于運(yùn)算符重載,下列表述中正確的是()。A、C++已有的任何運(yùn)算符都可以重載B、運(yùn)算符函數(shù)的返回類型不能聲明為基本數(shù)據(jù)類型C、在類型轉(zhuǎn)換符函數(shù)的定義中不需要聲明返回類型D、可以通過運(yùn)算符重載來創(chuàng)建C++中原來沒有的運(yùn)算符標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載的概念。C++語(yǔ)言規(guī)定,“.”、’’*’’、’’->*’’、“::”和“?:”這五個(gè)運(yùn)算符不能被重載,故選項(xiàng)A錯(cuò)誤;運(yùn)算符函數(shù)的返回類型由該運(yùn)算符所組成的表達(dá)式的值的類型來決定,故選項(xiàng)B說法是錯(cuò)誤的:運(yùn)算符重載是針對(duì)原有運(yùn)算符,并不能通過重載創(chuàng)造出新的運(yùn)算符,故選項(xiàng)D錯(cuò)誤。23、下列關(guān)于文件流的描述中,正確的是()。A、文件流只能完成針對(duì)磁盤文件的輸入和輸出B、建立一個(gè)文件流對(duì)象時(shí),必須同時(shí)打開一個(gè)文件C、若輸入流要打開的文件不存在,將建立一個(gè)新文件D、若輸出流要打開的文件不存在,將建立一個(gè)新文件標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:對(duì)于輸入文件流類ifstream,默認(rèn)的打開模式是iosbase::in,當(dāng)以這種方式打開文件而文件又不存在時(shí),通過fail()可測(cè)試打開失敗(返回值為true),對(duì)于輸出文件流類ofstream,默認(rèn)的打開模式是ios_base::out,當(dāng)以這種方式.打開文件而文件又不存在時(shí),將自動(dòng)建立新文件。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第6套一、選擇題(本題共24題,每題1.0分,共24分。)1、某二叉樹中有n個(gè)度為2的結(jié)點(diǎn),則該二叉樹中的葉子結(jié)點(diǎn)數(shù)為A、n+1B、n-1C、2nD、n/2標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在任意一棵二叉樹中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。所以該二叉樹的葉子結(jié)點(diǎn)數(shù)等于n+1。2、下列排序方法中,最壞情況下比較次數(shù)最少的是A、冒泡排序B、簡(jiǎn)單選擇排序C、直接插入排序D、堆排序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:冒泡排序、簡(jiǎn)單選擇排序和直接插入排序法在最壞的情況下比較次數(shù)為:n(n-1)/2。而堆排序法在最壞的情況下需要比較的次數(shù)為O(nlog2n)。其中堆排序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《供應(yīng)商檔案管理》課件
- 《園林景觀分析》課件
- 人教版八年級(jí)生物下冊(cè)第八單元健康地生活第三章第二、三章章末總結(jié)教學(xué)課件
- 《密爾沃基美術(shù)館》課件
- 單位管理制度匯編大全員工管理篇
- 單位管理制度合并匯編【職工管理篇】
- 單位管理制度分享合集職員管理十篇
- 單位管理制度范文大合集【人力資源管理篇】十篇
- 單位管理制度范例匯編職工管理篇
- 單位管理制度呈現(xiàn)匯編【人事管理篇】
- 非物質(zhì)文化遺產(chǎn)主題班會(huì)之英歌舞課件
- 柯橋區(qū)五年級(jí)上學(xué)期語(yǔ)文期末學(xué)業(yè)評(píng)價(jià)測(cè)試試卷
- 中國(guó)礦業(yè)大學(xué)《自然辯證法》2022-2023學(xué)年期末試卷
- TCWAN 0105-2024 攪拌摩擦焊接機(jī)器人系統(tǒng)技術(shù)條件
- 江蘇省期無錫市天一實(shí)驗(yàn)學(xué)校2023-2024學(xué)年英語(yǔ)七年級(jí)第二學(xué)期期末達(dá)標(biāo)檢測(cè)試題含答案
- 耕地占補(bǔ)平衡系統(tǒng)課件
- 2022年山東師范大學(xué)自考英語(yǔ)(二)練習(xí)題(附答案解析)
- 醫(yī)院工作流程圖較全
- NB/T 11431-2023土地整治煤矸石回填技術(shù)規(guī)范
- 醫(yī)療器械集中采購(gòu)文件(2024版)
- 上海市2024-2025學(xué)年高一語(yǔ)文下學(xué)期分科檢測(cè)試題含解析
評(píng)論
0/150
提交評(píng)論