版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷13(共9套)(共211題)國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共24題,每題1.0分,共24分。)1、下面程序的輸出結(jié)果為()。#include<iostream.h>classTestClass{public:TestClass(){val++;}staticintval;};intTestClass::val=0:voidmain(){TestClasscs1;cout<<cs1.val<<"";TestClasscs2;TestClasscs3,cs4;cout<<cs2.val<<endl;}A、03B、13C、14D、24標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由主函數(shù)main入手,定義TestClass類(lèi)的對(duì)象cs1,執(zhí)行cs1.val,其中val為靜態(tài)變量,根據(jù)“intTestClass::val=0;”初始化,TestClass中的TestClass(){val++;}構(gòu)造函數(shù)執(zhí)行后,val值為1。主函數(shù)中接著定義對(duì)象cs2,cs3,cs4。執(zhí)行“cout<<cs2.val<<endl:”中的val值為4。2、有如下程序:#include<iostream>usingnamespacestd;classTestClass{protected:TestClass0{tout<<’x’;}TestClass(charc){cout<<c;}};classTestClass1:publicTestClass{public:TestClass1(charc){cout<<c;}};intmain(){TestClass1d1(’y’);return0:}執(zhí)行這個(gè)程序,屏幕上將顯示輸出()。A、yB、yxC、xyD、yy標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序中的類(lèi)TestClass為基類(lèi),TestClass1為T(mén)estClass的派生類(lèi)。由main主函數(shù)入手。定義TestClassl類(lèi)型的對(duì)象d1,參數(shù)值為’y’。TestClass1類(lèi)繼承TestClass,所以主函數(shù)中“TestClass1dl(y);”語(yǔ)句首先調(diào)用基類(lèi)中的“TestClass(){cout<<’x’;}”輸出x,然后調(diào)用“TestClass1(charc){cout<<c;}”輸出y,即答案為“xy”。3、下列敘述中錯(cuò)誤的是A、具有兩個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定屬于非線(xiàn)性結(jié)構(gòu)B、具有兩個(gè)以上指針域的鏈?zhǔn)浇Y(jié)構(gòu)一定屬于非線(xiàn)性結(jié)構(gòu)C、具有兩個(gè)以上葉子結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定屬于非線(xiàn)性結(jié)構(gòu)D、具有一個(gè)根結(jié)點(diǎn)且只有一個(gè)葉子結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)也可能是非線(xiàn)性結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:非線(xiàn)性結(jié)構(gòu),數(shù)學(xué)用語(yǔ),其邏輯特征是一個(gè)結(jié)點(diǎn)元素可能有多個(gè)直接前趨和多個(gè)直接后繼。常見(jiàn)的非線(xiàn)性結(jié)構(gòu)有:二維數(shù)組,多維數(shù)組,廣義表,樹(shù)(二又樹(shù)等),圖。4、有如下程序段:inti=0,j=1;nt&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)解析:本題考查指針和引用。①為引用,使用正確;④中&r表示一個(gè)地址,而,*p已經(jīng)是一個(gè)值了,不能將一個(gè)指針賦值給一個(gè)值,所以編譯錯(cuò)誤。5、軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于系統(tǒng)軟件的是()。A、編輯軟件B、操作系統(tǒng)C、教務(wù)管理系統(tǒng)D、瀏覽器標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件根據(jù)應(yīng)用目標(biāo)的不同,是多種多樣的。軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件(或工具軟件)。應(yīng)用軟件是為解決特定領(lǐng)域的應(yīng)用而開(kāi)發(fā)的軟件。系統(tǒng)軟件是計(jì)算機(jī)管理自身資源,提高計(jì)算機(jī)使用效率并為計(jì)算機(jī)用戶(hù)提供各種服務(wù)的軟件。支撐軟件是介于系統(tǒng)軟件和應(yīng)用軟件之問(wèn),協(xié)助用戶(hù)開(kāi)發(fā)軟件的工具性軟件,包括輔助和支持開(kāi)發(fā)和維護(hù)應(yīng)用軟件的工具軟件,還包括輔助管理人員控制開(kāi)發(fā)進(jìn)程和項(xiàng)目管理的工具軟件。6、存在定義inta[10],x,*pa;,若pa=&a[0],下列的哪個(gè)選項(xiàng)和其他3個(gè)選項(xiàng)不是等價(jià)的?()A、x*pa;B、x=*(a+1);C、x=*(pa+1);D、x=a[1];標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)B)、C)、D)都是獲取a(1)元素,而選項(xiàng)A)是獲取a(0)的元素。7、有如下程序:classBase{public:intdata;};classDerivedl:publicBase{};classDerived2:protectedBase{};intmain(){Derived1d1;Derived2d2;d1.data=0;//①d2.data=0;//②retum0;}下列關(guān)于程序編譯結(jié)果的描述中,正確的是()。A、①②皆無(wú)編譯錯(cuò)誤B、①有編譯錯(cuò)誤,②無(wú)編譯錯(cuò)誤C、①無(wú)編譯錯(cuò)誤,②有編譯錯(cuò)誤D、①②皆有編譯錯(cuò)誤標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查公用繼承和保滬繼承對(duì)基類(lèi)成員的訪問(wèn)屬性。在公用繼承中,基類(lèi)的公用成員和保護(hù)成員在派生類(lèi)中保持原有訪問(wèn)屬性,其私有成員仍為基類(lèi)私有。在受保護(hù)繼承中,基類(lèi)的公用成員和保護(hù)成員在派生類(lèi)中成了保護(hù)成員,其私有成員仍為基類(lèi)私有。本題中Deljvedl公用繼承Base,所以①編譯正確,Derived2保護(hù)繼承Base,所以②編譯不正確。8、在C++中,cin是一個(gè)()。A、類(lèi)B、對(duì)象C、模板D、函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查流對(duì)象cin,屬于基礎(chǔ)知識(shí),cin是輸入流對(duì)象,負(fù)責(zé)從鍵盤(pán)獲取數(shù)據(jù),然后送到內(nèi)存。本題答案為B。9、下列描述中正確的是()。A、軟件測(cè)試應(yīng)該由程序開(kāi)發(fā)者來(lái)完成B、程序經(jīng)調(diào)試后一般不需要再測(cè)試C、軟件維護(hù)只包括對(duì)程序代碼的維護(hù)D、以上三種說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:為了達(dá)到好的測(cè)試效果,應(yīng)該由獨(dú)立的第三方進(jìn)行測(cè)試工作。因?yàn)閺男睦韺W(xué)角度講,程序人員或設(shè)計(jì)方在測(cè)試自己的程序時(shí),要采取客觀的態(tài)度是會(huì)不同程度地存在障礙的,所以選項(xiàng)A)錯(cuò)誤。在程序調(diào)試時(shí),修改了一個(gè)錯(cuò)誤的同時(shí)可能引入了新的錯(cuò)誤,解決的辦法是在修改了錯(cuò)誤之后,必須進(jìn)行回歸測(cè)試,所以選項(xiàng)B)錯(cuò)誤。所謂軟件維護(hù),就是將交付的軟件投入運(yùn)行,并在運(yùn)行使用中不斷地維護(hù),根據(jù)新提出的需求進(jìn)行必要而且可能的擴(kuò)充和刪改,所以選項(xiàng)C)錯(cuò)誤。10、類(lèi)MyClass的定義如下:classMyClass{public:MyClass(){value=0;}SetVariable(inti){value=i;}private;intvalue;);則對(duì)下列語(yǔ)句序列正確的描述是()。MyClass*P,my;p=&my;A、語(yǔ)句p=&my;是把對(duì)象my賦值給指針變量PB、語(yǔ)句Myaass*p,my;會(huì)調(diào)用兩次類(lèi)MyClass的構(gòu)造函數(shù)C、對(duì)語(yǔ)句*p.SetVariable(5)的調(diào)用是正確的D、語(yǔ)句p->SetVariable(5)與語(yǔ)句my.SetVariable(5)等價(jià)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:選項(xiàng)A),語(yǔ)句p=&my;是把對(duì)象my的地址值賦值給指針變量p;選項(xiàng)B),語(yǔ)句MyClass*p,my;,由于p只是一個(gè)指向?qū)ο蟮闹羔?,因此定義指針p不調(diào)用構(gòu)造函數(shù),所以此語(yǔ)句只調(diào)用一次構(gòu)造函數(shù);對(duì)成員函數(shù)的引用可以通過(guò)兩種形式:指針->成員函數(shù)(形參表)或者對(duì)象名.成語(yǔ)函數(shù)名(形參表),故選項(xiàng)C)錯(cuò)誤,選項(xiàng)D)正確。11、在數(shù)據(jù)庫(kù)設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過(guò)程屬于()。A、需求分析階段B、概念設(shè)計(jì)階段C、邏輯設(shè)計(jì)階段D、物理設(shè)計(jì)階段標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù):概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),為了能夠用某一DBMS實(shí)現(xiàn)用戶(hù)需求,還必須將概念結(jié)構(gòu)進(jìn)一步轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)模型,這正是數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)所要完成的任務(wù)。它包括從E-R圖向關(guān)系模式轉(zhuǎn)換和邏輯模式規(guī)范化及調(diào)整、實(shí)現(xiàn)。12、關(guān)于new運(yùn)算符的下列描述中,錯(cuò)誤的是()。A、它可以用來(lái)動(dòng)態(tài)創(chuàng)建對(duì)象和對(duì)象數(shù)組B、使用它創(chuàng)建的對(duì)象或?qū)ο髷?shù)組可以通過(guò)運(yùn)算符delete刪除C、使用它創(chuàng)建對(duì)象時(shí)要調(diào)用構(gòu)造函數(shù)D、使用它創(chuàng)建對(duì)象數(shù)組時(shí)必須指定初始值標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:用new創(chuàng)建對(duì)象是不用顯式調(diào)用構(gòu)造函數(shù)的,它自己會(huì)自動(dòng)調(diào)用。13、執(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,不滿(mǎn)足i<25的條件,結(jié)束循環(huán)。14、有如下程序段:inti=l;while(1){i++:if(i==10)break;if(i%2==0)cout<<’*’;}執(zhí)行這個(gè)程序段輸出字符木的個(gè)數(shù)是()。A、10B、3C、4D、5標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:這段程序代碼的功能是計(jì)算在1~10(包括10)之間偶數(shù)i的個(gè)數(shù),如果整數(shù)i為偶數(shù),則輸出一個(gè)‘*’,共有4個(gè)偶數(shù),所以共輸出4個(gè)‘*’。15、有如下程序:#includeusingnamespacestd;classComplex{doublere,im;public:Complex(doubler,doublei):re(r),im(i){}doublereal()const{returnre;}doubleimage()const{returnim;}Complex&operator+=(Complexa){re+=a.re;im+=a.im;return*this;}};ostream&operator<<(ostream&s,constComplex&z){returns<<’(’<A、(1,-2)B、(2,3)C、(3,5)D、(3,1)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查了運(yùn)算符重載應(yīng)用。因?yàn)閤和y都是Complex類(lèi)的對(duì)象,Complex類(lèi)中已經(jīng)重載了+=運(yùn)算符,表達(dá)式x+=y(tǒng)就等價(jià)與x.operator+=(y),執(zhí)行后得到(3,1);接著計(jì)算cout<<(x+=y(tǒng)),其等價(jià)于調(diào)用operator<<(cout,(x+=y(tǒng))),最后輸出結(jié)果是(3,1)。16、在對(duì)函數(shù)進(jìn)行原型聲明時(shí),下列語(yǔ)法成分中,不需要的是()。A、函數(shù)返回類(lèi)型B、函數(shù)參數(shù)列表C、函數(shù)名D、函數(shù)體標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C++中函數(shù)在使用之前要預(yù)先聲明,這種聲明在標(biāo)準(zhǔn)C++中稱(chēng)為函數(shù)原型。函數(shù)給出了函數(shù)名、返回類(lèi)型以及在調(diào)用函數(shù)時(shí)必須指明參數(shù)個(gè)數(shù)和類(lèi)型。17、有類(lèi)定義如下:classType{public:Type(inti=0);Typeoperator一(int);friendTypeoperator+(Type,Type);private:intval;};若有對(duì)象定義Typecl;則下列語(yǔ)句序列中,錯(cuò)誤的是()。A、Type(3)+c1;B、cl+Type(3);C、3一cl;D、c1—3;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由于在類(lèi)Type中對(duì)“-”進(jìn)行了重載,所以根據(jù)“-”重載的形式定義,c1-3是正確的,而3-c1是錯(cuò)誤的表達(dá)式。18、如果派生類(lèi)以protected方式繼承基類(lèi),則原基類(lèi)的protected成員和public成員在派生類(lèi)中的訪問(wèn)屬性分別是()。A、public和publicB、public和protectedC、protected和publicD、protected和protected標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是基類(lèi)成員在派生類(lèi)中的訪問(wèn)屬性。派生類(lèi)中的成員不能訪問(wèn)基類(lèi)中的私有成員,可以訪問(wèn)基類(lèi)中的公有成員和保護(hù)成員。派生類(lèi)從基類(lèi)公有繼承時(shí),基類(lèi)的公有成員和保護(hù)成員在派生類(lèi)中仍然是公有成員和保護(hù)成員;派生類(lèi)從基類(lèi)私有繼承時(shí),基類(lèi)的公有成員和保護(hù)成員在派生類(lèi)中都變成私有成員;派生類(lèi)從基類(lèi)保護(hù)繼承時(shí),基類(lèi)的公有成員在派生類(lèi)中變成保護(hù)成員,基類(lèi)的保護(hù)成員在派生類(lèi)中仍然是保護(hù)成員。19、下列代碼段聲明了3個(gè)類(lèi)classPerson{};classStudent:publicPerson{};classUndergraduate:Student{};下列關(guān)于這些類(lèi)之間關(guān)系的描述中,錯(cuò)誤的是()。A、類(lèi)Person是類(lèi)Undergraduate的基類(lèi)B、類(lèi)Undergraduate從類(lèi)student公有繼承C、類(lèi)student是類(lèi)Person的派生類(lèi)D、類(lèi)Undergraduate是類(lèi)Person的派生類(lèi)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:Student類(lèi)公有繼承自Person類(lèi),Undergraduate類(lèi)私有繼承自Srudent類(lèi)。所以Undergraduate類(lèi)是從Student類(lèi)私有繼承的。20、如果表達(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í),沒(méi)有隱含的this指針,因此所有的操作數(shù)必須出現(xiàn)在參數(shù)表中,對(duì)于二元運(yùn)算符,參數(shù)表中有兩個(gè)參數(shù),分別代表第一操作數(shù)和第二操作數(shù),且順序不能改變。21、下列關(guān)于類(lèi)模板的模板參數(shù)的敘述中,錯(cuò)誤的是()。A、模板參數(shù)可以作為數(shù)據(jù)成員的類(lèi)型B、模板參數(shù)可以作為成員函數(shù)的返回類(lèi)型C、模板參數(shù)可以作為成員函數(shù)的參數(shù)類(lèi)型D、模板參數(shù)不能作為成員函數(shù)的局部變量的類(lèi)型標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是模板參數(shù)。模板參數(shù)是一種參數(shù)化的數(shù)據(jù)模型,在模板類(lèi)或模板函數(shù)中,只要使用數(shù)據(jù)類(lèi)型的地方都能使用模板參數(shù)來(lái)代表一種未知的數(shù)據(jù)類(lèi)型。所以,模板參數(shù)可以作為成員函數(shù)的局部變量類(lèi)型。22、有如下函數(shù)模板定義:temp1ate<typenameT1,TypenameT2>T1Fun(T2n){returnn*5.0;}若要求以int型數(shù)據(jù)9作為函數(shù)實(shí)參調(diào)用該模板,并返回一個(gè)double型數(shù)據(jù),則該調(diào)用應(yīng)表示為()。A、FUN(9)B、FUN<9>C、FUN<double>[9]D、FUN<9>(double)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)函數(shù)模板的定義,在選項(xiàng)C的調(diào)用中,把double類(lèi)型傳遞給T1,int型傳遞給T2。23、下列關(guān)于模板的敘述中,正確的是()。A、如果一個(gè)類(lèi)中存在純虛函數(shù),這個(gè)類(lèi)就是類(lèi)模板B、函數(shù)模板不能有形式參數(shù)表C、類(lèi)模板是一種參數(shù)化類(lèi)型的類(lèi),是類(lèi)的生成器D、類(lèi)模板中不能包含構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:對(duì)于函數(shù)模板,數(shù)據(jù)類(lèi)型本身成了它的參數(shù),是一種參數(shù)化類(lèi)型的函數(shù)。對(duì)于類(lèi)模板,數(shù)據(jù)類(lèi)型本身成了它的參數(shù),因而是一種參數(shù)化類(lèi)型的類(lèi),是類(lèi)的生成器。24、下列關(guān)于C++預(yù)定義流對(duì)象的敘述中,正確的是()。A、cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象B、cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類(lèi)C、cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象D、cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類(lèi)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:cin為istream流類(lèi)的標(biāo)準(zhǔn)輸入對(duì)象,標(biāo)準(zhǔn)輸入設(shè)備就是指鍵盤(pán)。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共21題,每題1.0分,共21分。)1、下列運(yùn)算符函數(shù)中肯定不屬于類(lèi)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)算符重載的一些規(guī)則:①一般情況下,單目運(yùn)算符最好重載為類(lèi)的成員函數(shù),雙目運(yùn)算符則最好重載為類(lèi)的友元函數(shù);②雙目運(yùn)算符=、()、[]、一>不能重載為類(lèi)的友元函數(shù);③類(lèi)型轉(zhuǎn)換函數(shù)只能定義為一個(gè)類(lèi)的成員函數(shù),而不能定義為類(lèi)的友元函數(shù);④若一個(gè)運(yùn)算符的操作需要修改對(duì)象的狀態(tài),選擇重載為成員函數(shù)較好;⑤若運(yùn)算符所需的操作數(shù)(尤其是第一個(gè)操作數(shù))希望有隱式類(lèi)型轉(zhuǎn)換,則只能選用友元函數(shù);⑥當(dāng)運(yùn)算符函數(shù)是一個(gè)成員函數(shù)時(shí),最左邊的操作數(shù)(或者只有最左邊的操作數(shù))必須是運(yùn)算符類(lèi)的一個(gè)類(lèi)對(duì)象(或者是對(duì)該類(lèi)對(duì)象的引用);如果左邊的操作數(shù)必須是一個(gè)不同類(lèi)的對(duì)象,或者是一個(gè)內(nèi)部類(lèi)型的對(duì)象,該運(yùn)算符函數(shù)必須作為一個(gè)友元函數(shù)來(lái)實(shí)現(xiàn)。所以答案為D。2、下列關(guān)于數(shù)據(jù)庫(kù)設(shè)計(jì)的敘述中,正確的是()。A、在需求分析階段建立數(shù)據(jù)字典B、在概念設(shè)計(jì)階段建立數(shù)據(jù)字典C、在邏輯設(shè)計(jì)階段建立數(shù)據(jù)字典D、在物理設(shè)計(jì)階段建立數(shù)據(jù)字典標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)設(shè)計(jì)目前一般采用生命周期法,即將整個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)分解成目標(biāo)獨(dú)立的若干階段。分別是:需求分析階段、概念設(shè)計(jì)階段、邏輯設(shè)計(jì)階段、物理設(shè)計(jì)階段、編碼階段、測(cè)試階段、運(yùn)行階段、進(jìn)一步修改階段。數(shù)據(jù)字典是對(duì)系統(tǒng)中數(shù)據(jù)的詳盡描述,是各類(lèi)數(shù)據(jù)屬性的清單。對(duì)數(shù)據(jù)設(shè)計(jì)來(lái)講,數(shù)據(jù)字典是進(jìn)行詳細(xì)的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要結(jié)果。3、必須用一對(duì)大括號(hào)括起來(lái)的程序段是()。A、switch語(yǔ)句中的cIise標(biāo)號(hào)語(yǔ)句B、if語(yǔ)句的分支C、循環(huán)語(yǔ)句的循環(huán)體D、函數(shù)的函數(shù)體標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查c++基本控制結(jié)構(gòu),A、B、c三個(gè)選項(xiàng)中的大括號(hào)不是必須的,而D選項(xiàng)中的函數(shù)體必須使用大括號(hào)。4、軟件生命周期是指A、軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程B、軟件從需求分析、設(shè)計(jì)、實(shí)現(xiàn)到測(cè)試完成的過(guò)程C、軟件的開(kāi)發(fā)過(guò)程D、軟件的運(yùn)行維護(hù)過(guò)程標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件生命周期是指軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用、維護(hù)到停止使用、退役的過(guò)程。5、以下程序的輸出結(jié)果是()。#include<iostream>usingnamespacestd;voidfun(char**q){++q;cout<<*q<<end1;}main(){staticchar*s[]={’’HI","HELLO’’,’’TEST’’};char**p;p=s;fun(p);system(’’PAUSE’’);return0;}A、為空B、HIC、HELLOD、TEST標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由程序main主函數(shù)入手,調(diào)用fun函數(shù),在fun函數(shù)中執(zhí)行“cout<<*q<<end1;”語(yǔ)句實(shí)現(xiàn)程序輸出。主函數(shù)中變量char*s[]為指針數(shù)組,char**p表示p指向的字符指針數(shù)據(jù)。*p就代表p指向的字符指針。語(yǔ)句“p=s;"表明p指向字符指針s,而**p則是s[]中的第一個(gè)字符串“HI”。主函數(shù)將變量p傳值給函數(shù)fun(char**q)中的q,在函數(shù)體內(nèi)部首先執(zhí)行“++q”語(yǔ)句,就是將q的指針指向s中的下一個(gè)字符串,即“HEILO”,所以輸出語(yǔ)句“cout<<*q<<end1:”輸出該字符串值。6、數(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)用程序而不依賴(lài)于應(yīng)用程序,即數(shù)據(jù)與程序間的互不依賴(lài)性。也就是說(shuō)數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)與存取方式的改變不會(huì)影響應(yīng)用程序。數(shù)據(jù)的獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性?xún)杉?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ù)類(lèi)型、改變數(shù)據(jù)間聯(lián)系等,不需要相應(yīng)的應(yīng)用程序改變,這就是數(shù)據(jù)的邏輯獨(dú)立性。7、數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式不包括()。A、概念模式B、內(nèi)模式C、外模式D、數(shù)據(jù)模式標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式包括概念模式、外模式和內(nèi)模式(物理模式)。8、有三個(gè)關(guān)系R、S和T如下:其中關(guān)系T由關(guān)系R和S通過(guò)某種操作得到,該操作為()。A、選擇B、投影C、交D、并標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由關(guān)系T中的數(shù)據(jù)可以看出,其數(shù)據(jù)由關(guān)系R和s的數(shù)據(jù)組成。所以關(guān)系T是由關(guān)系R和T通過(guò)并運(yùn)算得到的。9、已知類(lèi)MyClass聲明如下:classMyClass{intn:public:MyClass(intk):n(k){}intgetValue()const{returnn;}};在下列數(shù)組定義中正確的是()。A、MyClassxl[2];B、MyClassx212]--{newMyClass(1),newMyClass(2)};C、MyClass木x312];D、MyClass*x412]={MyClass(1),MyClass(2));標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:考查的是對(duì)象數(shù)組。選項(xiàng)A中在建立對(duì)象數(shù)組時(shí)也同樣需要調(diào)用構(gòu)造函數(shù);選項(xiàng)B和D的類(lèi)型不匹配,B中不能將指針傳給非指針,D中是將非指針傳給指針。10、()提供了類(lèi)對(duì)外部的接口,私有成員是類(lèi)的內(nèi)部實(shí)現(xiàn),而保護(hù)成員不允許外界訪問(wèn),但允許派生類(lèi)的成員訪問(wèn),這樣既有一定的隱藏能力,又提供了開(kāi)放的接口。A、公有成員B、私有成員C、私有成員函數(shù)D、保護(hù)成員標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是公有成員的特點(diǎn)。公有成員允許可使用者訪問(wèn),提供了類(lèi)對(duì)外部的接口。11、下列語(yǔ)句中,錯(cuò)誤的是()。A、constintbuffeF256;B、constdouble*point;C、intconstbuffer=256;D、double*constpoint;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是常指針和指針常量的概念。常指針是指向一個(gè)常量的指針變量,指針自身的內(nèi)容可以改變但指針指向的內(nèi)容不可以改變:指針常量是一個(gè)常量,即不能修改指針自身的內(nèi)容,但可以通過(guò)指針修改其所指向的內(nèi)容。D選項(xiàng)中指針常量point沒(méi)有初始化.編譯無(wú)法通過(guò)。12、若要對(duì)類(lèi)BigNumber中重載的類(lèi)型轉(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)解析:在重載類(lèi)型轉(zhuǎn)換符時(shí),由于運(yùn)算符本身已經(jīng)表示出返回值類(lèi)型,因此不需要返回值類(lèi)型的聲明。13、已知有數(shù)組定義chara[3][4];下列表達(dá)式中錯(cuò)誤的是()。A、a[2]="WIN"B、strcpy(a[2],"WIN")C、a[2][3]=’W’D、a[0][1]=a[0][1]標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題主要是對(duì)字符數(shù)組的考查。選項(xiàng)A中a[2]為一個(gè)地址,所以不能用等號(hào)進(jìn)行賦值操作。14、下列關(guān)于this指針的描述中,正確的是()。A、類(lèi)的成員函數(shù)都有this指針B、類(lèi)的友元函數(shù)都有this指針C、任何與類(lèi)相關(guān)的函數(shù)都有this指針D、類(lèi)的非靜態(tài)成員函數(shù)都有this指針標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:this是成員函數(shù)所屬對(duì)象的指針,它指向類(lèi)對(duì)象的地址。成員函數(shù)通過(guò)這個(gè)指針可以知道自己屬于哪一個(gè)對(duì)象。它隱藏于每個(gè)類(lèi)的非靜態(tài)成員函數(shù)中。15、有如下類(lèi)定義classMyClasspublic:____________Private:intdata;};若要為MyClass類(lèi)重載流輸入運(yùn)算符>>,使得程序中可以“cin>>obj;”形式輸入MyClass類(lèi)的對(duì)象obj,則橫線(xiàn)處的聲明語(yǔ)句應(yīng)為()。A、friendistream&operator>>(istream&is,MyClass&a);B、friendistream&operator>>(istream&is,MyClassa);C、istream&operator>>(istream&is,MyClass&a);D、istream&operator>>(istream&is,MyClassa);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C++的輸入運(yùn)算符>>作為非類(lèi)成員函數(shù)重載。在一個(gè)類(lèi)中,可將輸入運(yùn)算符>>聲明為友元函數(shù),在類(lèi)MyClass重載輸入運(yùn)算符>>的形式如選項(xiàng)A所示。16、關(guān)于函數(shù)重載,下列敘述中錯(cuò)誤的是()。A、重載函數(shù)的函數(shù)名必須相同B、重載函數(shù)必須在參數(shù)個(gè)數(shù)或類(lèi)型上有所不同C、重載函數(shù)的返回值類(lèi)型必須相同D、重載函數(shù)的函數(shù)體可以有所不同標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)重載。在C++語(yǔ)言中,允許定義一系列函數(shù)名相同,但形參的個(gè)數(shù)和類(lèi)型不完全相同的函數(shù),即函數(shù)的重載。重載函數(shù)對(duì)返回值類(lèi)型不做要求,返回值類(lèi)型也不參與區(qū)分函數(shù)的重載形式。17、計(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次。18、建立一個(gè)有成員對(duì)象的派生類(lèi)對(duì)象時(shí),各構(gòu)造函數(shù)體的執(zhí)行次序?yàn)?)。A、派生類(lèi)、成員對(duì)象類(lèi)、基類(lèi)B、成員對(duì)象類(lèi)、基類(lèi)、派生類(lèi)C、基類(lèi)、成員對(duì)象類(lèi)、派生類(lèi)D、基類(lèi)、派生類(lèi)、成員對(duì)象類(lèi)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:建立派生類(lèi)對(duì)象的時(shí)候,構(gòu)造函數(shù)的執(zhí)行順序如下:執(zhí)行基類(lèi)的構(gòu)造函數(shù),調(diào)用的順序按照基類(lèi)被繼承時(shí)候的順序(自左向右)。然后是執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類(lèi)中的聲明順序(自上而下),最后是執(zhí)行派生類(lèi)的構(gòu)造函數(shù)。19、有如下程序#include<iostream>#include<iomanip>usingnamespacestd;classMyClass{public:MyClass(){cout<<’A’;}MyClass(chafc){cout<<c;}~MyClass(){cout<<’B’;}};intmain(){MyClassp1,*p2;p2=newMyClass(’X’);deletep2;return0;}執(zhí)行這個(gè)程序屏幕上將顯示輸出()。A、ABXB、ABXBC、AXBD、AXBB標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是構(gòu)造函數(shù)和析構(gòu)函數(shù)。構(gòu)造函數(shù)在對(duì)象被創(chuàng)建的時(shí)候由系統(tǒng)自動(dòng)調(diào)用,而析構(gòu)函數(shù)在對(duì)象的生存期即將結(jié)束的時(shí)候由系統(tǒng)自動(dòng)調(diào)用。此題中,主程序在創(chuàng)建MayClass類(lèi)的對(duì)象p1時(shí),調(diào)用MayClass類(lèi)的默認(rèn)構(gòu)造函數(shù),輸出字母A;然后在創(chuàng)建*p2對(duì)象時(shí),調(diào)用帶字母參數(shù)的構(gòu)造函數(shù),輸出字母X;語(yǔ)句deletep2:調(diào)用析構(gòu)函數(shù),輸出字母B;在主函數(shù)退出時(shí),調(diào)用析構(gòu)函數(shù)清除對(duì)象p1,輸出字母B。20、有如下類(lèi)聲明:classMyBASE{intk;public:voidset(intn){k=n;}intgetoconst{returnk;}};classMyDERIVED:protectedMyBASE{protected:intj;public:voidset(intm,intn){MyBASE::set(m);j=n;}intget()const{returnMyBASE::get()+j;}};則類(lèi)MyDERIVED中保護(hù)的數(shù)據(jù)成員和成員函數(shù)的個(gè)數(shù)是()。A、4B、3C、2D、1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是派生與繼承中的訪問(wèn)權(quán)限。protected派生:private->不可見(jiàn);protected->private;public->protected。21、下列語(yǔ)句都是程序運(yùn)行時(shí)的第1條輸出語(yǔ)句,其中一條語(yǔ)句的輸出效果與其他三條語(yǔ)句不同,該語(yǔ)句是()。A、cout<<internal<<12345;B、cout<<left<<12345:C、cout<<right<<12345;D、cout<<setw(6)<<12345;標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:選項(xiàng)A,B,C都沒(méi)有指輸出數(shù)據(jù)的寬度,所以在輸出時(shí),按實(shí)際字符的寬度輸出,而選項(xiàng)D指定輸出字符的寬度為6,而實(shí)際輸出的寬度等于5,所以最后一個(gè)字符用空格補(bǔ)齊。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共24題,每題1.0分,共24分。)1、下列敘述中正確的是A、算法就是程序B、設(shè)計(jì)算法時(shí)只需要考慮數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)C、設(shè)計(jì)算法時(shí)只需要考慮結(jié)果的可靠性D、以上三種說(shuō)法都不對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:所謂算法是指解題方案的準(zhǔn)確而完整的描述。是一組嚴(yán)謹(jǐn)?shù)囟x運(yùn)算順序的規(guī)則,并且每一個(gè)規(guī)則都是有效的,且是明確的,此順序?qū)⒃谟邢薜拇螖?shù)下終止。算法不等于程序,也不等于計(jì)算方法。設(shè)計(jì)算法時(shí)不僅要考慮對(duì)數(shù)據(jù)對(duì)象的運(yùn)算和操作,還要考慮算法的控制結(jié)構(gòu)。2、下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。A、順序存儲(chǔ)的有序線(xiàn)性表B、線(xiàn)性鏈表C、二叉鏈表D、有序線(xiàn)性鏈表標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:二分法查找只適應(yīng)于順序存儲(chǔ)的有序表。有序表是指線(xiàn)性表中的元素按值非遞減排序(即從小到大,但允許相鄰元素值相等)的表。3、對(duì)長(zhǎng)度為10的線(xiàn)性表進(jìn)行冒泡排序,最壞情況下需要比較的次數(shù)為()。A、9B、10C、45D、90標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:線(xiàn)性表的長(zhǎng)度為n,最壞情況下冒泡排序需要比較的次數(shù)為n(n-1)/2。4、下列排序方法中,最壞情況下比較次數(shù)最少的是()。A、冒泡排序B、簡(jiǎn)單選擇排序C、直接插入排序D、堆排序標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:冒泡排序、簡(jiǎn)單選擇排序和直接插入排序法在最壞的情況下比較次數(shù)為:n(n—1)/2。而堆排序法在最壞的情況下需要比較的次數(shù)為O(log2n)。其中堆排序的比較次數(shù)最少。5、下列敘述中正確的是A、算法的復(fù)雜度是指算法所處理的數(shù)據(jù)量B、算法的復(fù)雜度是指算法程序中指令的數(shù)量C、算法的復(fù)雜度是指算法控制結(jié)構(gòu)的復(fù)雜程度D、算法的復(fù)雜度包括時(shí)間復(fù)雜度與空間復(fù)雜度標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法分析的目的在于選擇合適算法和改進(jìn)算法。一個(gè)算法的評(píng)價(jià)主要從時(shí)間復(fù)雜度和空間復(fù)雜度來(lái)考慮。6、數(shù)據(jù)流程圖(DFD圖)是()。A、軟件概要設(shè)計(jì)的工具B、軟件詳細(xì)設(shè)計(jì)的工具C、結(jié)構(gòu)化方法的需求分析工具D、面向?qū)ο蠓椒ǖ男枨蠓治龉ぞ邩?biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查數(shù)據(jù)流程圖DFD的概念。對(duì)于面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法,按照DeMarco的定義,“結(jié)構(gòu)化分析就是使用數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、結(jié)構(gòu)化英語(yǔ)、判定表和判定樹(shù)等工具,來(lái)建立一種新的、稱(chēng)為結(jié)構(gòu)化規(guī)格說(shuō)明的目標(biāo)文檔”。結(jié)構(gòu)化分析方法的實(shí)質(zhì)是著眼于數(shù)據(jù)流,自項(xiàng)向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。數(shù)據(jù)流圖(DFD-DataFlowDiagram)是描述數(shù)據(jù)處理過(guò)程的工具,是需求理解的邏輯模型的圖形表示,它直接支持系統(tǒng)的功能建模。數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來(lái)刻畫(huà)數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過(guò)程。由此可得數(shù)據(jù)流程圖是結(jié)構(gòu)化方法的需求分析工具。7、在下列函數(shù)原型中,可以作為類(lèi)AA構(gòu)造函數(shù)的是()。A、voidAA(int);B、intAA();C、AA(int)const;D、AA(int);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是構(gòu)造函數(shù)的概念。構(gòu)造函數(shù)是類(lèi)的一個(gè)特殊成員函數(shù),它與類(lèi)同名,并且沒(méi)有返回值。選項(xiàng)A、B不符合要求。選項(xiàng)c中函數(shù)AA,會(huì)更新對(duì)象的數(shù)據(jù)成員。8、程序流程圖中帶有箭頭的線(xiàn)段表示的是()。A、圖元關(guān)系B、數(shù)據(jù)流C、控制流D、調(diào)用關(guān)系標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序流程圖是一種傳統(tǒng)的、應(yīng)用廣泛的軟件過(guò)程設(shè)計(jì)工具,通常也稱(chēng)為程序框圖。其中,用帶箭頭的線(xiàn)段表示控制流,用柜形表示加工步驟,用菱形表示邏輯條件。9、在數(shù)據(jù)庫(kù)管理技術(shù)的發(fā)展中,數(shù)據(jù)獨(dú)立性最高的是()。A、人工管理B、文件系統(tǒng)C、數(shù)據(jù)庫(kù)系統(tǒng)D、數(shù)據(jù)模型標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在人工管理階段,數(shù)據(jù)無(wú)法共享,冗余度大,不獨(dú)立,完全依賴(lài)程序;在文件系統(tǒng)階段,數(shù)據(jù)共享性差;在數(shù)據(jù)庫(kù)系統(tǒng)階段,共享性好,獨(dú)立性高。10、下列關(guān)于對(duì)象概念的描述中,正確的是()。A、對(duì)象就是C語(yǔ)言中的結(jié)構(gòu)變量B、對(duì)象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體C、對(duì)象是一個(gè)狀態(tài)和操作(或方法)的封裝體D、對(duì)象之間的信息傳遞是通過(guò)消息進(jìn)行的標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:對(duì)象之間的信息傳遞是通過(guò)消息進(jìn)行的。對(duì)象=方法(函數(shù))+屬性(數(shù)據(jù)),而C語(yǔ)言的結(jié)構(gòu)體其實(shí)就是不同類(lèi)型數(shù)據(jù)的組合。并沒(méi)有處理數(shù)據(jù)的方法。11、對(duì)于int*pa[5];的描述,正確的是()。A、pa是一個(gè)指向數(shù)組的指針,所指向的數(shù)組是5個(gè)int型元素B、pa是一個(gè)指向某個(gè)數(shù)組中第5個(gè)元素的指針,該元素是int型變量C、pa[5]表示某個(gè)數(shù)組的第5個(gè)元素的值D、pa是一個(gè)具有5個(gè)元素的指針數(shù)組,每個(gè)元素是一個(gè)int型指針標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:語(yǔ)句“int*p[5]”表示一個(gè)數(shù)組p,它的大小是5,里面存放的數(shù)據(jù)類(lèi)型是int*,也就是整型指針。稱(chēng)之為指針數(shù)組(從右向左解析這個(gè)表示)。12、下列存儲(chǔ)類(lèi)標(biāo)識(shí)符中,可見(jiàn)性與存在性不一致的是()。A、外部類(lèi)B、自動(dòng)類(lèi)C、內(nèi)部靜態(tài)類(lèi)D、寄存器類(lèi)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:可見(jiàn)性是函數(shù)內(nèi)部,存在整個(gè)程序中,第二次調(diào)用值不變。13、有如下程序:撕ncludeusingnamespacestd;classAA{intk;protected:intn;voidsetK(intk){this一>k=k;}public:voidsetN(intn){this一>n=n;}};classBB:publicAA{/*類(lèi)體略*/};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)解析:本題考查公用繼承對(duì)基類(lèi)成員的訪問(wèn)屬性。在公用繼承中,基類(lèi)的公用成員和保護(hù)成員在派生類(lèi)中保持原有訪問(wèn)屬性,其私有成員仍為基類(lèi)私有。所以本題中n、k和setK變?yōu)榱伺缮?lèi)的保護(hù)成員,不能直接使用,即1、3、4錯(cuò)誤,所以B選項(xiàng)正確。14、若已定義了類(lèi)Vehicle,則下列派生類(lèi)定義中,錯(cuò)誤的是()。A、classCar:vehicle{/*類(lèi)體略*/};B、classCar:publiccar{/*類(lèi)體略*/};C、classCar:publicVehicle{/*類(lèi)體略*/):D、classCar:virtualpublicVehicle{/*類(lèi)體略*/};標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類(lèi)Car不能派生自它本身。15、下列選項(xiàng)可以做C++標(biāo)識(shí)符的是()。A、_256B、fat/pigC、deleteD、Schar標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:標(biāo)識(shí)符的命名規(guī)則:①所有標(biāo)識(shí)符必須由一個(gè)字母(a~Z或A~Z)或下劃線(xiàn)()開(kāi)頭;②標(biāo)識(shí)符的其他部分可以用字母、下劃線(xiàn)或數(shù)字(0~9)組成;③大小寫(xiě)字母表示不同意義,即代表不同的標(biāo)識(shí)符,如cout和Cout。16、有如下程序:#inc1ude<iostream>usingnamespacestd;intmain(){intsum;for(inti=0;i<6;i+=3){sum=i;for(intj=i;j<6;j++)sum+=j;}cout<<sum<<end1;retum0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、3B、10C、12D、15標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由題干可以知道,外層循環(huán)會(huì)進(jìn)行兩次,且第一次的結(jié)果我們可以不去理會(huì)和計(jì)算,讀者仔細(xì)觀察能發(fā)現(xiàn),在第一次的循環(huán)以后sum和j都會(huì)被重新賦值,所以外層第二次循環(huán)如下:此時(shí)i=3,sum=3內(nèi)層循環(huán)開(kāi)始如下:j=3,j<6,sum=6;j=4,j<6,sum=10,j=5,j<6,sum=15,j=6退出內(nèi)層循環(huán)。得到sum=15。17、有如下類(lèi)定義:classAA{inta:public:AA(intn=0):a(n){}};classBB:publicAA{public:BB(intn)______};其中橫線(xiàn)處缺失部分是()。A、:a(n){}B、:AA(n){}C、{a(n);}D、{a=n;}標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:根據(jù)派生類(lèi)構(gòu)造函數(shù)的一般格式:<派生類(lèi)名>(<總參數(shù)表>):<基類(lèi)名1>(<參數(shù)表1>),…<基類(lèi)名n>(<參數(shù)表n>),<成員對(duì)象名1>(<參數(shù)表n+1>),…<成員對(duì)象名m>(<參數(shù)表n+m>)<派生類(lèi)構(gòu)造函數(shù)體>。在派生類(lèi)BB的構(gòu)造函數(shù)總參數(shù)表后面應(yīng)該接上基類(lèi)名AA和其參數(shù)。18、有如下程序#inc1ude<iostream>#inc1ude<iomanip>usingnamespacestd;c1assMyClass{public:MyClass(){cout<<’A’;)MyClass(charc){cout<<c;}~MyClass(){cout<<’B’;}};intmain(){MyClassp1,*p2;p2newMyClass(’X’);deletep2;retum0;}執(zhí)行這個(gè)程序屏幕上將顯示輸出()。A、ABXB、ABXBC、AXBD、AXBB標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是構(gòu)造函數(shù)和析構(gòu)函數(shù)。構(gòu)造函數(shù)在對(duì)象被創(chuàng)建的時(shí)候由系統(tǒng)自動(dòng)調(diào)用,而析構(gòu)函數(shù)在對(duì)象的生存期即將結(jié)束的時(shí)候由系統(tǒng)自動(dòng)調(diào)用。此題中,主程序在創(chuàng)建MayClass類(lèi)的對(duì)象p1時(shí),調(diào)用MayClass類(lèi)的默認(rèn)構(gòu)造函數(shù),輸出字母A:然后在創(chuàng)建.p2對(duì)象時(shí),調(diào)用帶字母參數(shù)的構(gòu)造函數(shù),輸出字母X;語(yǔ)句deletep2;調(diào)用析構(gòu)函數(shù),輸出字母B:在主函數(shù)退出時(shí),調(diào)用析構(gòu)函數(shù)清除對(duì)象p1,輸出字母B。19、有如下類(lèi)定義:classB{public:voidfun1(){}private:voidfun2(){}protected:voidfun3(){}};classD:publicB{protected:voidfun4(){}};若obi是類(lèi)D的對(duì)象,則下列語(yǔ)句中不違反訪問(wèn)控制權(quán)限的是()。A、obj.fun1();B、obj.fun2();C、obj.fun3();D、obj.fun4();標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:派生類(lèi)D公有繼承父類(lèi)B,所以obj可以訪問(wèn)基類(lèi)B的公有,不能訪問(wèn)其它成員。20、生成派生類(lèi)對(duì)象時(shí),派生類(lèi)構(gòu)造函數(shù)調(diào)用基類(lèi)構(gòu)造函數(shù)的條件是()。A、無(wú)需任何條件B、基類(lèi)中顯示定義了構(gòu)造函數(shù)C、派生類(lèi)中顯式定義了構(gòu)造函數(shù)D、派生類(lèi)構(gòu)造函數(shù)明確調(diào)用了基類(lèi)構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:因?yàn)榕缮?lèi)從基類(lèi)中繼承,它含有基類(lèi)中的數(shù)據(jù)成員和函數(shù)成員,所以當(dāng)生成派生類(lèi)對(duì)象時(shí),能無(wú)條件的調(diào)用基類(lèi)的構(gòu)造函數(shù)。21、有如下程序:#includeusingnamespacestd;classVAC{public;intf()const{return3;}intf(){return5;}};Intmain(){VACv1;constVACv2;cout<A、53B、35C、55D、33標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是常成員函數(shù)的應(yīng)用。VAC類(lèi)中說(shuō)明了兩個(gè)函數(shù),一個(gè)是常成員函數(shù),一個(gè)是普通函數(shù);在主函數(shù)中說(shuō)明了兩個(gè)對(duì)象,通過(guò)普通對(duì)象v1調(diào)用的是普通函數(shù),輸出5;通過(guò)常對(duì)象V2調(diào)用的是常成員函數(shù),輸出3。22、下列關(guān)于運(yùn)算符函數(shù)的描述中,錯(cuò)誤的是()。A、運(yùn)算符函數(shù)的名稱(chēng)總是以operator為前綴B、運(yùn)算符函數(shù)的參數(shù)可以是對(duì)象C、運(yùn)算符函數(shù)只能定義為類(lèi)的成員函數(shù)D、在表達(dá)式中使用重載的運(yùn)算符相當(dāng)于調(diào)用運(yùn)算符重載函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C++把重載的運(yùn)算符視為特殊的函數(shù),稱(chēng)為運(yùn)算符函數(shù)。編譯系統(tǒng)能夠依據(jù)使用運(yùn)算符的不同環(huán)境,即參數(shù)(操作數(shù))的數(shù)量或類(lèi)型的差異,區(qū)分同一運(yùn)算符的不同含義。運(yùn)算符函數(shù)作為非成員函數(shù)時(shí),所有的操作數(shù)必須出現(xiàn)在參數(shù)表中。23、若有函數(shù)模板mySwap和一些變量定義如下:()。template<classT>voidmySwap(Tx,Ty);doubled1,d2;inti1,i2;下列對(duì)mySwap的調(diào)用中,錯(cuò)誤的是A、mySwap(i1,i2)B、mySwap(d1,d2)C、mySwap(i1,d1)D、mySwap<int>(i2,d2)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:按照函數(shù)模板mySwap的定義,變量x和y應(yīng)該是同一類(lèi)型,而在選項(xiàng)C的定義中變量i1和d1屬于不同的數(shù)據(jù)類(lèi)型。24、有如下程序:#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”/寬度沒(méi)有定義實(shí)際大小輸出,結(jié)果得到OK;故最后得到的輸出結(jié)果是123*OK。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共18題,每題1.0分,共18分。)1、在面向?qū)ο蠓椒ㄖ?,不屬于“?duì)象”基本特點(diǎn)的是()。A、一致性B、分類(lèi)性C、多態(tài)性D、標(biāo)識(shí)唯一性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:對(duì)象具有如下特征;標(biāo)識(shí)惟一性、分類(lèi)性、多態(tài)性、封裝性、模塊獨(dú)立性。2、軟件生命周期中的活動(dòng)不包括()。A、市場(chǎng)調(diào)研B、需求分析C、軟件測(cè)試D、軟件維護(hù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件的生命周期描述了軟件從產(chǎn)生到最終消亡的全過(guò)程,生命周期中的活動(dòng)包括需求分析、軟件設(shè)計(jì)(分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì))、軟件實(shí)現(xiàn)、軟件測(cè)試和軟件維護(hù),不包括市場(chǎng)調(diào)研。3、從工程管理角度看,軟件設(shè)計(jì)一般分為兩步完成,它們是()。A、概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)B、數(shù)據(jù)設(shè)計(jì)與接口設(shè)計(jì)C、軟件結(jié)構(gòu)設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)D、過(guò)程設(shè)計(jì)與數(shù)據(jù)設(shè)計(jì)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件設(shè)計(jì)是開(kāi)發(fā)階段最重要的步驟.從工程管理的角度來(lái)看可分為兩步:概要設(shè)計(jì)和詳細(xì)設(shè)計(jì).概要設(shè)計(jì)是將軟件需求轉(zhuǎn)化為軟件體系結(jié)構(gòu),確定系統(tǒng)級(jí)接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)庫(kù)模式;詳細(xì)設(shè)計(jì)是指確立每個(gè)模塊的實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu),用適應(yīng)方法表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié)。從技術(shù)觀點(diǎn)來(lái)看,軟件設(shè)計(jì)包括軟件結(jié)構(gòu)設(shè)計(jì)(定義軟件系統(tǒng)各主要部件之間的關(guān)系)、數(shù)據(jù)設(shè)計(jì)(將分析時(shí)創(chuàng)建的模型轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu))、接口設(shè)計(jì)(描述軟件內(nèi)部、軟件與協(xié)作系統(tǒng)之間以及軟件與人之間如何通信)、過(guò)程設(shè)計(jì)(把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過(guò)程)四個(gè)步驟。4、數(shù)據(jù)庫(kù)系統(tǒng)的核心是()。A、數(shù)據(jù)模型B、數(shù)據(jù)庫(kù)管理系統(tǒng)C、數(shù)據(jù)庫(kù)D、數(shù)據(jù)庫(kù)管理員標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)是數(shù)據(jù)庫(kù)的機(jī)構(gòu),它是一種系統(tǒng)軟件,負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)、控制及保護(hù)和數(shù)據(jù)服務(wù)等。所以,數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)系統(tǒng)的核心。5、數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式不包括()。A、概念模式B、內(nèi)模式C、外模式D、數(shù)據(jù)模式標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式包括概念模式、外模式和內(nèi)模式(物理模式)。6、一般情況下,當(dāng)對(duì)關(guān)系R和S進(jìn)行自然連接時(shí),要求R和S含有一個(gè)或者多個(gè)共有的()。A、記錄B、行C、屬性D、元組標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:自然連接要滿(mǎn)足兩個(gè)條件:一是兩關(guān)系之間有公共域。二是通過(guò)共域的相等值進(jìn)行連接。7、下列關(guān)于運(yùn)算符重載的描述中,錯(cuò)誤的是()。A、可以通過(guò)運(yùn)算符重載在C++中創(chuàng)建新的運(yùn)算符B、賦值運(yùn)算符只能重載為成員函數(shù)C、運(yùn)算符函數(shù)重載為類(lèi)的成員函數(shù)時(shí),第一操作數(shù)是該類(lèi)對(duì)象D、重載類(lèi)型轉(zhuǎn)換運(yùn)算符時(shí)不需要聲明返回類(lèi)型標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:運(yùn)算符重載應(yīng)盡可能保持其原有的基本語(yǔ)義,而不是創(chuàng)建新的運(yùn)算符。重載的運(yùn)算符應(yīng)該體現(xiàn)為原運(yùn)算符的功能在新數(shù)據(jù)類(lèi)型上的延伸,它的使用應(yīng)當(dāng)使程序中算法的表達(dá)式顯得更流暢、自然,使閱讀程序的人在不借助于其他說(shuō)明資料的情況下就能夠正確理解。8、有如下程序:#include<iostream>usingnamespacestd;voidf1(intax,int&y){intz=x;x=y;y=z;}voidf2(intx,inty){intz=x;x=y;y=z;}intmain(){intx=10,y=26;f1(x,y);f2(x,y);cout<<y<<end1;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、10B、16C、26D、36標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:子函數(shù)f1中的形參是引用變量,所以執(zhí)行子函數(shù)實(shí)現(xiàn)了變量x,y值的交換,變量x的值等于26,而變量y的值等于10。而子函數(shù)f2中的形參是普通變量,因?yàn)镃++的函數(shù)之間的參數(shù)傳遞是傳值,所以執(zhí)行函數(shù)f2不能實(shí)現(xiàn)變量x,y值的交換。9、下列關(guān)于模板形參的描述中,錯(cuò)誤的是()。A、模板形參表必須在關(guān)鍵字template之后B、模板形參表必須用括弧()括起來(lái)C、可以用class修飾模板形參D、可以用typename修飾模板形參標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:聲明一個(gè)函數(shù)模板的格式是:template<<模板形參表聲明>><函數(shù)聲明>,其中的<模板形參表聲明>是由一個(gè)或多個(gè)<模板形參>組成(如果是多個(gè),需要用逗號(hào)隔開(kāi))。每個(gè)<模板形參>具有下面的幾種形式:①typename<參數(shù)表>②class<參數(shù)名>③<類(lèi)型修飾><參數(shù)名>由此可知,模板形參表必須用括弧
括起來(lái),而不是(),所以選項(xiàng)B為正確答案.10、已知枚舉類(lèi)型定義語(yǔ)句為:enumToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};則下列敘述中錯(cuò)誤的是()。A、枚舉常量NAME的值為1B、枚舉常量NUMBER的值為1C、枚舉常量MINUS的值為6D、枚舉常量PRINT的值為10標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是C++語(yǔ)言的數(shù)據(jù)類(lèi)型。第一個(gè)枚舉常量的值為0;允許程序顯示的定義中指定部分或全部枚舉常量的值,枚舉常量默認(rèn)時(shí),在前一枚舉常量值的基礎(chǔ)上以此增1。11、有如下兩個(gè)類(lèi)定義:classAA{};classBB{AAvl,*v2;BBv3;int*v4;};其中有一個(gè)成員變量的定義是錯(cuò)誤的,這個(gè)變量是()。A、v1B、v2C、v3D、v4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在定義類(lèi)的數(shù)據(jù)成員時(shí),類(lèi)中的數(shù)據(jù)成員可以是任意類(lèi)型,包括整型、浮點(diǎn)型、字符符型、數(shù)組、指針和引用等,也可以是對(duì)象。但是要注意,只有另外一個(gè)類(lèi)的對(duì)象,才可以作為該類(lèi)的成員,即作為類(lèi)的成員對(duì)象存在。自身類(lèi)的對(duì)象是不可以作為自身類(lèi)的成員存在,但自身類(lèi)的指針可以。對(duì)于本題,在定義類(lèi)BB時(shí),不能包括其對(duì)象v3。12、已知函數(shù)print()沒(méi)有返回值,如果在類(lèi)中將之聲明為常成員函數(shù),正確的是()。A、voidprint()const;B、constvoidprint();C、voidconstprint();D、voidprint(const);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:const成員函數(shù)表示該成員函數(shù)只能讀類(lèi)數(shù)據(jù)成員,而不能修改類(lèi)成員數(shù)據(jù)。定義const成員函數(shù)時(shí),把const關(guān)鍵字放在函數(shù)的參數(shù)表和函數(shù)體之間。13、有如下程序:#include<iostream>usingnamespacestd;classC1{public:~C1(){cout<<1;}};classC2:publicC1{public:~C2(){cout<<2;}};intmain(){C2cb2;C1*cb1;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、121B、21C、211D、12標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在主函數(shù)中定義C2類(lèi)的對(duì)象,當(dāng)程序結(jié)束時(shí),首先調(diào)用C2類(lèi)的析構(gòu)函數(shù)~C2,輸出2,再調(diào)用Cl類(lèi)的析構(gòu)函數(shù)~C1,輸出1。所以程序運(yùn)行的結(jié)果就是21。14、有如下程序:#include<iostream>usingnamespacestd;classA{public:A(inti=0):r1(i){}voidprint(){cout<<’E’<<r1<<’-’;}voidprint()const{cout<<’C’<<r1*r1<<’-’;}voidprint(intx){cout<<’p’<<r1*r1*r1<<’-’;}private:intr1;};mtmain(){Aa1;constAa2(4);a1.print(2);a2.print();return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、P8-E4B、P8-C16-C、P0-E4-D、P0-C16-標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在主函數(shù)中創(chuàng)建a1對(duì)象時(shí),調(diào)用類(lèi)A的默認(rèn)構(gòu)造函數(shù),其數(shù)據(jù)成員r1的值等于0。當(dāng)執(zhí)行a1.print(2)語(yǔ)句時(shí),調(diào)用帶參數(shù)的print成員函數(shù),所以輸出結(jié)果為p0-對(duì)象a2為常成員,所以其成員變量r1的值等于4,因?yàn)槌?duì)象只能調(diào)用常成員函數(shù),所以當(dāng)執(zhí)行語(yǔ)句a2.print()語(yǔ)句時(shí),輸出結(jié)果為C14.。15、下列關(guān)于運(yùn)算符重載的描述中,錯(cuò)誤的是()。A、∷運(yùn)算符不能重載B、類(lèi)型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載C、將運(yùn)算符作為非成員函數(shù)重載時(shí)必須定義為友元D、重載[]運(yùn)算符應(yīng)完成“下標(biāo)訪問(wèn)”操作標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C++把重載的運(yùn)算符視為特殊的函數(shù),稱(chēng)為運(yùn)算符函數(shù)。“運(yùn)算符重載”是針對(duì)C++中原有運(yùn)算符進(jìn)行的,不可能通過(guò)重載創(chuàng)造出新的運(yùn)算符。16、已知類(lèi)MyCiock中未顯式定義構(gòu)造函數(shù),并重載了加法運(yùn)算符,使得下面的語(yǔ)句序列能夠正確執(zhí)行:MyClockc1,c2;//……c2=c1+10;由此可知:為類(lèi)MyClock重載的“+”運(yùn)算符函數(shù)的聲明是()。A、friendMyClockoperator+(MyClock,int);B、friendMyClockoperator+(MyClock,MyClock);C、friendMyClockoperator+(int,MyClock);D、MyClockoperator+(MyClock);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由表達(dá)式c2=c1+10可知,在對(duì)“+”進(jìn)行重載時(shí),第一操作數(shù)是MyCloek類(lèi)的對(duì)象,而第二操作數(shù)是一個(gè)整型數(shù)據(jù)。17、下列關(guān)于C++預(yù)定義流對(duì)象的敘述中,正確的是()。A、cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象B、cin是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類(lèi)C、cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流對(duì)象D、cout是C++預(yù)定義的標(biāo)準(zhǔn)輸入流類(lèi)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:cin為istream流類(lèi)的標(biāo)準(zhǔn)輸入對(duì)象,標(biāo)準(zhǔn)輸入設(shè)備就是指鍵盤(pán)。18、語(yǔ)句ofstreamf(’’SALARY.DAT’’,ios_base::app);的功能是建立流對(duì)象f,并試圖打開(kāi)文件SALARY.DAT與f關(guān)聯(lián),而且()。A、若文件存在,將其置為空文件;若文件不存在,打開(kāi)失敗B、若文件存在,將文件指針定位于文件尾;若文件不存在,建立一個(gè)新文件C、若文件存在,將文件指針定位于文件首;若文件不存在,打開(kāi)失敗D、若文件存在,打開(kāi)失?。蝗粑募淮嬖?,建立一個(gè)新文件標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是文件打開(kāi)模式。文件打開(kāi)模式isobase::app是為添加數(shù)據(jù)而打開(kāi)(總是在尾部寫(xiě)),故只有選項(xiàng)B說(shuō)法正確。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第5套一、選擇題(本題共17題,每題1.0分,共17分。)1、下列情況中,不會(huì)調(diào)用拷貝構(gòu)造函數(shù)的是()。A、用一個(gè)對(duì)象去初始化同一類(lèi)的另一個(gè)新對(duì)象時(shí)B、將類(lèi)的一個(gè)對(duì)象賦值給該類(lèi)的另一個(gè)對(duì)象時(shí)C、函數(shù)的形參是類(lèi)的對(duì)象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時(shí)D、函數(shù)的返回值是類(lèi)的對(duì)象,函數(shù)執(zhí)行返回調(diào)用時(shí)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù)是一個(gè)特殊的構(gòu)造函數(shù),它用一個(gè)己知的對(duì)象初始化一個(gè)正在創(chuàng)建的同類(lèi)對(duì)象,它的一般格式是:類(lèi)名::類(lèi)名(const類(lèi)名&引用對(duì)象名)。當(dāng)一個(gè)類(lèi)的對(duì)象賦值給該類(lèi)的另一個(gè)對(duì)象時(shí),是賦值而不是創(chuàng)建對(duì)象,所以不會(huì)調(diào)用拷貝構(gòu)造函數(shù)。2、若AA為一個(gè)類(lèi),a為該類(lèi)的私有整型數(shù)據(jù)成員,getA()為該類(lèi)的一個(gè)非靜態(tài)公有成員函數(shù),功能是返回a的值。如果x為該類(lèi)的一個(gè)對(duì)象,要在類(lèi)外訪問(wèn)x對(duì)象中a的值,正確的訪問(wèn)格式為()。A、AA.getA()B、x.getA()C、x.a(chǎn)D、AA∷a標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:要在類(lèi)外訪問(wèn)x對(duì)象中a的值,必須調(diào)用類(lèi)的非靜態(tài)公有成員函數(shù)getA()。3、下面不屬于需求分析階段任務(wù)的是A、確定軟件系統(tǒng)的功能需求B、確定軟件系統(tǒng)的性能需求C、需求規(guī)格說(shuō)明書(shū)評(píng)審D、制定軟件集成測(cè)試計(jì)劃標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:需求分析階段的工作可分為4個(gè)階段:需求獲取、需求分析、編寫(xiě)需求規(guī)格說(shuō)明書(shū)、需求評(píng)審。4、在下列字符中,不允許作為C++標(biāo)識(shí)符的是()。A、bB、BC、_D、2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++的標(biāo)識(shí)符是一個(gè)以字母或下劃線(xiàn)開(kāi)頭的,由字母、數(shù)字、下劃線(xiàn)組成的字符串。5、下列敘述中,錯(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)稱(chēng)字符,它以單引號(hào)作為起止符號(hào),中間有一個(gè)或若干個(gè)字符。或者以“\”開(kāi)頭的包括多個(gè)字符的字符序列也符合規(guī)定的字符常量。6、下列定義語(yǔ)句中,錯(cuò)誤的是()。A、intpx*;B、char*acp[10];C、char(*pac)[10];D、int(*p)();標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:指針變量聲明的一般形式為:<數(shù)據(jù)類(lèi)型>*<變量名>,在選項(xiàng)A)中,*放在變量名的后面,所以是錯(cuò)誤的。7、下列關(guān)于運(yùn)算符重載的描述中,錯(cuò)誤的是()。A、∷運(yùn)算符不能重載B、類(lèi)型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載C、將運(yùn)算符作為非成員函數(shù)重載時(shí)必須定義為友元D、重載[]運(yùn)算符應(yīng)完成“下標(biāo)訪問(wèn)”操作標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C++把重載的運(yùn)算符視為特殊的函數(shù),稱(chēng)為運(yùn)算符函數(shù)?!斑\(yùn)算符重載”是針對(duì)C++中原有運(yùn)算符進(jìn)行的,不可能通過(guò)重載創(chuàng)造出新的運(yùn)算符。8、有如下函數(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。9、下列有關(guān)函數(shù)重載的敘述中,錯(cuò)誤的是()。A、函數(shù)重載就是用相同的函數(shù)名定義多個(gè)函數(shù)B、重載函數(shù)的參數(shù)列表必須不同C、重載函數(shù)的返回值類(lèi)型必須不同D、重載函數(shù)的參數(shù)可以帶有默認(rèn)值標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)重載的概念。在C++語(yǔ)言中,允許定義一系列函數(shù)名相同,但形參的個(gè)數(shù)和類(lèi)型不完全相同的函數(shù),即函數(shù)的重載。重載函數(shù)對(duì)返回值類(lèi)型不做要求,返回值類(lèi)型也不參與區(qū)分函數(shù)的重載形式。故選項(xiàng)C錯(cuò)誤。10、對(duì)于語(yǔ)句cout<A、cout是一個(gè)輸出流對(duì)象B、endl的作用是輸出回車(chē)換行C、x是一個(gè)變量D、<<稱(chēng)作提取運(yùn)算符標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是C++語(yǔ)言的輸出流。符號(hào)“<<”是預(yù)定義插入符,提取運(yùn)算符是“>>”。11、有如下定義:inta[5]={1,3,5,7,9},*p=a;下列表達(dá)式中不能得到數(shù)值5的是()。A、a[2]B、a[3]C、*(p+2)D、*p+4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是指針引用數(shù)組元素。B選項(xiàng)中,a[3]是數(shù)組的第四個(gè)元素,即7,其它選項(xiàng)的引用均可得到5。12、有如下類(lèi)聲明:c1assBase{protected;intamount;public;Base(intn=0):amount(n){}intgetAmount()const{retumamount;}};c1assDerived:publicBase{protected;intvalue;public;Derived(intm,intn):value(m).Base(n){}IntgetData()const{returnvalue+amount;}};已知x是一個(gè)Derived對(duì)象,則下列表達(dá)式中正確的是()。A、x.value+x.getAmount()B、x.getData()—x.gctAmount()C、x.getData()—x.a(chǎn)mountD、x.vabled—x.a(chǎn)ount標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是派生類(lèi)對(duì)基類(lèi)成員的訪問(wèn)權(quán)限。派生類(lèi)中的成員不能訪問(wèn)基類(lèi)中的私有成員,可以訪問(wèn)基類(lèi)中的公有成員和保護(hù)成員。派生類(lèi)從基類(lèi)公有繼承時(shí),基類(lèi)的公有成員和保護(hù)成員在派生類(lèi)中仍然是公有成員和保護(hù)成員;派生類(lèi)從基類(lèi)私有繼承時(shí),基類(lèi)的公有成員和保護(hù)成員在派生類(lèi)中都變成私有成員;派生類(lèi)從基類(lèi)保護(hù)繼承時(shí),基類(lèi)的公有成員在派生類(lèi)中變成保護(hù)成員,基類(lèi)的保護(hù)成員在派生類(lèi)中仍然是保護(hù)成員。13、已知類(lèi)IMS中兩個(gè)成員函數(shù)的聲明為“voidlisten()const;”與“voidspeak();”,另有兩個(gè)對(duì)象的定義為“IMSobj1;”與“constIMSobj2;”,則下列語(yǔ)句中,產(chǎn)生編譯錯(cuò)誤的是()。A、obj1.listen();B、obj1.speak();C、obj2.listen();D、obj2.speak();標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)listen()作為類(lèi)IMS的常成員函數(shù),一般對(duì)象obj1和常對(duì)象obj2都可以調(diào)用它,而函數(shù)speak()作為IMS的一般成員函數(shù),則只有一般對(duì)象obj1可以調(diào)用,而常對(duì)象obj2調(diào)用會(huì)產(chǎn)生編譯錯(cuò)誤。14、下列有關(guān)C++流的敘述中,錯(cuò)誤的是()。A、C++操作符setw設(shè)置的輸出寬度永久有效B、C++操作符endl可以實(shí)現(xiàn)輸出的回車(chē)換行C、處理文件I/O時(shí),要包含頭文件fstreamD、進(jìn)行輸入操作時(shí),eof()函數(shù)用于檢測(cè)是否到達(dá)文件尾標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是C++流。C++操作符setw()的作用是設(shè)置輸入輸出寬度,且只對(duì)當(dāng)前一次有效,并非永久有效,故選項(xiàng)A敘述錯(cuò)誤。15、有如下程序:#inc1ude<iostream>#inc1ude<iomanip>usingnamespacestd;intmain(){ints[]={123,234};cout<<right<<setfill(’*’)<<setw(6);for(intl=0;1<2;1++){cout<<s[i]<<end1;}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ù)的輸出后,寬度毆置自動(dòng)恢復(fù)為0(表示按數(shù)據(jù)實(shí)際寬度輸出)。所以對(duì)于本題來(lái)說(shuō),在循環(huán)語(yǔ)句中輸出數(shù)組s[0]中的元素時(shí),按照規(guī)定的格式輸出,其結(jié)果為¨—123,當(dāng)輸出s[1]時(shí),輸出格式已經(jīng)恢復(fù)到按數(shù)據(jù)實(shí)際寬度輸出,所以此時(shí)輸出為234。16、下列控制格式輸入輸出的操作符中,能夠設(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)。17、若要對(duì)Data類(lèi)中重載的加法運(yùn)算符成員函數(shù)進(jìn)行聲明,下列選項(xiàng)中正確的是()。A、Data+(Data);B、Dataoperator+{Data};C、Data+operator{Data};D、operator+(Data,Data);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:“+”是一個(gè)二元運(yùn)算符,因此作為成員函數(shù)重載時(shí)參數(shù)表中只有一個(gè)參數(shù),對(duì)應(yīng)于第二個(gè)操作數(shù),而第一個(gè)操作數(shù)是對(duì)象本身。運(yùn)算符函數(shù)的函數(shù)名是由運(yùn)算符前加關(guān)鍵字operator構(gòu)成的。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第6套一、選擇題(本題共23題,每題1.0分,共23分。)1、算法的有窮性是指A、算法程序的運(yùn)行時(shí)間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長(zhǎng)度是有限的D、算法只能被有限的用戶(hù)使用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的有窮性,是指算法必須能在有限的時(shí)間內(nèi)做完,即算法必須能在執(zhí)行有限個(gè)步驟之后終止。2、下列符號(hào)中,正確的C++標(biāo)識(shí)符是()。A、enumB、100bitC、s-1D、int標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是C++語(yǔ)言中標(biāo)識(shí)符的概念。標(biāo)識(shí)符是由數(shù)字、字母以及下劃線(xiàn)構(gòu)成,其第一個(gè)字符必須是字母或下劃線(xiàn),中間不能有空格;標(biāo)識(shí)符的長(zhǎng)度是任意的,但由于編譯系統(tǒng)的限制一般不超過(guò)31個(gè)字符;標(biāo)識(shí)符中的大小寫(xiě)字母是不同的:定義標(biāo)識(shí)符時(shí)不能采用系統(tǒng)的保留字。3、下列符號(hào)中不屬于C++關(guān)鍵字的是()。A、friendB、namespaceC、continueD、byte標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是C++語(yǔ)言的關(guān)鍵字。Friend是聲明友元函數(shù)或友元類(lèi)時(shí)用到的關(guān)鍵字:namespace是定義或使用名字空間時(shí)用到的關(guān)鍵字;continue是終止本次循環(huán)直接開(kāi)始下一次循環(huán)所用到的關(guān)鍵字;byte是字節(jié)的意思,它不是C++語(yǔ)言中的關(guān)鍵字。4、下列關(guān)于棧的描述中錯(cuò)誤的是()。A、棧是先進(jìn)后出的線(xiàn)性表B、棧只能順序存儲(chǔ)C、棧具有記憶作用D、對(duì)棧的插入與刪除操作中,不需要改變棧底指針標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧是限定在一端進(jìn)行插入與刪除的線(xiàn)性表。棧頂(top):插入數(shù)據(jù)(即入棧)的一端:棧底(bottom):不能入棧也不能出棧的一端。棧存儲(chǔ)數(shù)據(jù)的原則:“先進(jìn)后出”或“后進(jìn)先出”。棧的特性是具有記憶作用。5、下列敘述中正確的是A、循環(huán)隊(duì)列有隊(duì)頭和隊(duì)尾兩個(gè)指針,因此,循環(huán)隊(duì)列是非線(xiàn)性結(jié)構(gòu)B、在循環(huán)隊(duì)列中,只需要隊(duì)頭指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況C、在循環(huán)隊(duì)列中,只需要隊(duì)尾指針就能反映隊(duì)列中元素的動(dòng)態(tài)變化情況D、循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列中元素的個(gè)數(shù)是由隊(duì)頭指針和隊(duì)尾指針共同決定的,元素的動(dòng)態(tài)變化也是通過(guò)隊(duì)頭指針和隊(duì)尾指針來(lái)反映的。6、設(shè)循環(huán)隊(duì)列的存儲(chǔ)空間為Q(1:35),初始狀態(tài)為frontrear=35。現(xiàn)經(jīng)過(guò)一系列入隊(duì)與退隊(duì)運(yùn)算后,front=15,rear=15,則循環(huán)隊(duì)列中的元素個(gè)數(shù)為()。A、15B、16C、20D、0或35標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)隊(duì)列的隊(duì)頭指針和尾指針都等于15.此循環(huán)隊(duì)列中元素的個(gè)數(shù)有兩種情況,第一種情況是隊(duì)頭指針和尾指針都是第一次到達(dá)15,此時(shí)元素個(gè)數(shù)為0:第二種情況是隊(duì)頭指針第一次到達(dá)15,而尾指針第二次到達(dá)15,此時(shí)元素個(gè)數(shù)為35。7、下列有關(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ò)關(guān)鍵字inline來(lái)定義C、內(nèi)聯(lián)函數(shù)是通過(guò)編譯器來(lái)實(shí)現(xiàn)的D、內(nèi)聯(lián)函數(shù)函數(shù)體的最后一條語(yǔ)句必須是return語(yǔ)句標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是內(nèi)聯(lián)函數(shù)的概念。在調(diào)用時(shí),內(nèi)聯(lián)函數(shù)會(huì)像宏函數(shù)一樣的展開(kāi),將調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)體來(lái)替換所以它沒(méi)有一般函數(shù)的參數(shù)壓棧和和退棧操作,所以選項(xiàng)A錯(cuò)誤;即使沒(méi)有使用。inline說(shuō)明,編譯器也會(huì)將在類(lèi)的說(shuō)明部分定義的函數(shù)認(rèn)定為內(nèi)聯(lián)函數(shù),所以選項(xiàng)B錯(cuò)誤;內(nèi)聯(lián)函數(shù)只是比普通函數(shù)有更高的執(zhí)行效率,所以選項(xiàng)D錯(cuò)誤。8、有以下程序:#include<iostrearn>usingnamespacestd;classR{public:R(intr1,intr2){R1=r1;R2=r2;}voidprint();
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 健身租賃合同范例
- 天府新區(qū)信息職業(yè)學(xué)院《建筑設(shè)計(jì)原理(2)》2023-2024學(xué)年第一學(xué)期期末試卷
- 產(chǎn)品包裝合同范例
- 外包司機(jī)協(xié)議合同范例
- 淘寶代拍合同范例
- 炸雞店勞務(wù)合同范例
- 第五章 第4節(jié) 眼睛和眼鏡 教學(xué)實(shí)錄2023-2024學(xué)年人教版物理八年級(jí)上冊(cè)
- 勞務(wù)合同范例工廠
- 法蘭采購(gòu)合同范例
- 財(cái)會(huì)從業(yè)資格考試模擬題+答案
- GB 19517-2004國(guó)家電氣設(shè)備安全技術(shù)規(guī)范
- 【表格】面試評(píng)分等級(jí)標(biāo)準(zhǔn)表
- 山西省太原市市藥品零售藥店企業(yè)藥房名單目錄
- 全面設(shè)備保養(yǎng)TPM培訓(xùn)教材課件
- 垃圾焚燒發(fā)電廠項(xiàng)目給排水安裝工程專(zhuān)項(xiàng)方案
- DB64-T 1147-2022 寧夏工業(yè)單位產(chǎn)品能源消耗限額
- 授課比賽評(píng)分表
- XXXX供電項(xiàng)目可行性研究報(bào)告
- 抗菌藥物供應(yīng)目錄備案表
- TSG G0002-2010 鍋爐節(jié)能技術(shù)監(jiān)督管理規(guī)程
- cass實(shí)體名稱(chēng),圖層,實(shí)體代碼對(duì)照表
評(píng)論
0/150
提交評(píng)論