版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷36(共9套)(共203題)國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共21題,每題1.0分,共21分。)1、算法的空間復(fù)雜度是指A、算法在執(zhí)行過(guò)程中所需要的計(jì)算機(jī)存儲(chǔ)空間B、算法所處理的數(shù)據(jù)量C、算法程序中的語(yǔ)句或指令條數(shù)D、算法在執(zhí)行過(guò)程中所需要的臨時(shí)工作單元數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間。這個(gè)內(nèi)存空間包括算法程序所占的空間,輸入的初始數(shù)據(jù)所占的存儲(chǔ)空間以及算法執(zhí)行過(guò)程中所需要的額外空間。2、算法的有窮性是指()。A、算法程序的運(yùn)行時(shí)間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長(zhǎng)度是有限的D、算法只能被有限的用戶使用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法原則上能夠精確地運(yùn)行,而且人們用筆和紙做有限次運(yùn)算后即可完成。有窮性是指算法程序的運(yùn)行時(shí)間是有限的。3、一個(gè)棧的初始狀態(tài)為空?,F(xiàn)將元素1,2,3,A,B,C依次入棧,然后再依次出棧,則元素出棧的順序是()。A、1,2,3,A,B,CB、C,B,A,1,2,3C、C,B,A,3,2,1D、1,2,3,C,B,A標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。所以出棧順序是CBA321。4、在對(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)型。5、下列有關(guān)運(yùn)算符重載的敘述中,正確的是()。A、運(yùn)算符重載是多態(tài)性的一種表現(xiàn)B、C++中可以通過(guò)運(yùn)算符重載創(chuàng)造新的運(yùn)算符C、C++中所有運(yùn)算符都可以作為非成員函數(shù)重載D、重載運(yùn)算符時(shí)可以改變其結(jié)合性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:重載運(yùn)算符的規(guī)則如下:①c++不允許用戶自己定義新的運(yùn)算符,只能對(duì)已有的c++運(yùn)算符進(jìn)行重載;②c++不能重載的運(yùn)算符只有5個(gè);③重載不能改變運(yùn)算符運(yùn)算對(duì)象的個(gè)數(shù);④重載不能改變運(yùn)算符的優(yōu)先級(jí)和結(jié)合性;⑤重載運(yùn)算符的函數(shù)不能有默認(rèn)的參數(shù);⑥重載的運(yùn)算符必須和用戶定義的自定義類(lèi)型的對(duì)象一起使用,至少應(yīng)有一個(gè)是類(lèi)對(duì)象,即不允許參數(shù)全部是C++的標(biāo)準(zhǔn)類(lèi)型。故本題答案為A。6、關(guān)于運(yùn)算符重載,下列表述中正確的是()。A、C++已有的任何運(yùn)算符都可以重載B、運(yùn)算符函數(shù)的返回類(lèi)型不能聲明為基本數(shù)據(jù)類(lèi)型C、在類(lèi)型轉(zhuǎn)換符函數(shù)的定義中不需要聲明返回類(lèi)型D、可以通過(guò)運(yùn)算符重載來(lái)創(chuàng)建C++中原來(lái)沒(méi)有的運(yùn)算符標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:重載運(yùn)算符的規(guī)則如下:①C++不允許用戶自己定義新的運(yùn)算符,只能對(duì)已有的c++運(yùn)算符進(jìn)行重載;②C++不能重載的運(yùn)算符只有5個(gè);③重載不能改變運(yùn)算符運(yùn)算對(duì)象的個(gè)數(shù);④重載不能改變運(yùn)算符的優(yōu)先級(jí)和結(jié)合性;⑤重載運(yùn)算符的函數(shù)不能有默認(rèn)的參數(shù);⑥重載的運(yùn)算符必須和用戶定義的自定義類(lèi)型的對(duì)象一起使用,至少應(yīng)有一個(gè)是類(lèi)對(duì)象,即不允許參數(shù)全部是C++的標(biāo)準(zhǔn)類(lèi)型。故本題答案為c。7、下列描述中正確的是A、程序就是軟件B、軟件開(kāi)發(fā)不受計(jì)算機(jī)系統(tǒng)的限制C、軟件既是邏輯實(shí)體,又是物理實(shí)體D、軟件是程序、數(shù)據(jù)與相關(guān)文檔的集合標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:計(jì)算機(jī)軟件與硬件是計(jì)算機(jī)系統(tǒng)中相互依存的兩部分。計(jì)算機(jī)軟件是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。軟件由兩部分組成:一部分是機(jī)器可執(zhí)行的程序和數(shù)據(jù);二是機(jī)器不可執(zhí)行的,與軟件開(kāi)發(fā)、運(yùn)行、維護(hù)、使用等有關(guān)的文檔。軟件具有以下六個(gè)特點(diǎn):①軟件是一種邏輯實(shí)體,而不是物理實(shí)體,具有抽象性。②軟件的生產(chǎn)與硬件不同,它沒(méi)有明顯的制作過(guò)程。③軟件在運(yùn)行、使用期間不存在磨損、老化問(wèn)題。④軟件的開(kāi)發(fā)、運(yùn)行對(duì)計(jì)算機(jī)系統(tǒng)具有依賴(lài)性,受計(jì)算機(jī)系統(tǒng)的限制,這導(dǎo)致了軟件移值的問(wèn)題。⑤軟件復(fù)雜性高,成本昂貴。⑥軟件的開(kāi)發(fā)涉及渚多社會(huì)因素。8、在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱(chēng)為該表的鍵或碼。二維表中可能有若干個(gè)鍵,它們稱(chēng)為該表的()。A、連接碼B、關(guān)系碼C、外碼D、候選碼標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱(chēng)為該表的鍵或碼。二維表中可能有若干個(gè)鍵,它們稱(chēng)為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個(gè)作為用戶使用的鍵稱(chēng)為主鍵或主碼。9、建立一個(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í)候的順序(白左陽(yáng)右)。然后是執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類(lèi)中的聲明順序(自上而下),最后是執(zhí)行派生類(lèi)的構(gòu)造函數(shù)。10、有如下語(yǔ)句序列:charstr[10];cin>>str;當(dāng)從鍵盤(pán)輸入"Ilovethisgame"時(shí),str中的字符串是()。A、IlovethisgameB、IlovethiC、IloveD、I標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由于字符\0作為字符串的結(jié)束標(biāo)志,所以當(dāng)從鍵盤(pán)上輸入“Ilovethisgame”時(shí),只把字母I輸入字符串str。11、有如下程序:#include<iostream>usingnamespacestd;intmain(){inti,s=0;for(i=1;s<20;i+=2)s+=i*i;cout<i<<end1;return0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、3B、5C、7D、9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在這段程序中for循環(huán)共執(zhí)行3次,每次循環(huán)變量i的值增2,在執(zhí)行第三次循環(huán)語(yǔ)句時(shí),變量s的值等于25,大于20而退出循環(huán),此時(shí)再執(zhí)行循環(huán)變量i加2運(yùn)算,所以最后變量i的值等于7。12、有如下類(lèi)定義:ciassA{char*a;public:A():a(0){}A(char*aa){∥把a(bǔ)a所指字符串拷貝到a所指向的存儲(chǔ)空間a=___;strcpy(a,aa);}~A()(delete[]a;}};橫線處應(yīng)填寫(xiě)的表達(dá)式是()。A、newchar[strlen(aa)+1]B、char[strlen(aa)+1]C、char[strlen(aa)]一D、newchar[sizeof(aa)一1]標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)strlen(aa)返回字符串a(chǎn)a中字符的個(gè)數(shù),不包括末尾的空字符。所以在內(nèi)存空間創(chuàng)建字符數(shù)組a時(shí),需要字符數(shù)組的長(zhǎng)度是strlen(aa)+1。13、若一個(gè)函數(shù)的原型為“int*Xfun1(intx,int&y,charz);”,則該函數(shù)的返回值類(lèi)型為()。A、int*B、intC、int&D、char標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:由“int*Xfunl(intx,int&y,charz);”的定義可知,其返回值為指向int指針的函數(shù)。14、下列函數(shù)原型聲明中,錯(cuò)誤的是()。A、intfunction(intm,intn);B、intfunction(int,int);C、intfunction(intm=3,intn);D、intfunction(int&m,int&n);標(biāo)準(zhǔn)答案:C知識(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)型。其語(yǔ)法為:<返回類(lèi)型><函數(shù)名>(<形參列表>);使用函數(shù)原型說(shuō)明有兩種形式:①直接使用函數(shù)定義的頭部,并在后面加上一個(gè)分號(hào);②在函數(shù)原型說(shuō)明中省略參數(shù)列表中的形參變量名,僅給出函數(shù)名、函數(shù)類(lèi)型、參數(shù)個(gè)數(shù)及次序。在選項(xiàng)C中,給出了形參變量m的初值。15、若MyClass是一個(gè)類(lèi)名,且有如下語(yǔ)句序列MyClassc1,*c2;MyClass*c3=newMyClass;MyClass&c4=c1;上面的語(yǔ)句序列所定義的類(lèi)對(duì)象的個(gè)數(shù)是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:C1、*C2、C3是3個(gè)MyClass對(duì)象,C4是MyClass對(duì)象的引用,它是對(duì)象C1的別名。16、有如下類(lèi)定義: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ù)不能定義為類(lèi)的數(shù)據(jù)成員。17、已知函數(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初始化第二形參。18、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assSamp1e{friendlongfun(Samp1es);public:Samp1e(longa){x=a;}private:longx;);longfun(Samp1es){if(s.x<2)return1:returns.x*fun(Samp1e(s.x—1)):}intmain(){intsum=0;for(int1=0;1<6;1++){sum+=fun(Samp1e(i));}cout<<sum,returnO;}運(yùn)行時(shí)輸出的結(jié)果是()。A、120B、16C、154D、34標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是友元函數(shù)和遞歸函數(shù)。因?yàn)閒un函數(shù)是Samp1e類(lèi)的友元函數(shù),所以fun函數(shù)可以直接訪問(wèn)Samp1e類(lèi)對(duì)象的私有成員x。主函數(shù)調(diào)用fun函數(shù),構(gòu)造參數(shù)為0~5。當(dāng)n小于2時(shí),fun函數(shù)返回1,其余返回值為n*fun(n—l)。n取0—5的值時(shí)fun(n)依次為1,1,2,6,24,120,累加結(jié)果為154。19、下列有關(guān)繼承和派生的敘述中,正確的是()。A、如果一個(gè)派生類(lèi)私有繼承其基類(lèi),則該派生類(lèi)對(duì)象不能訪問(wèn)基類(lèi)的保護(hù)成員B、派生類(lèi)的成員函數(shù)可以訪問(wèn)基類(lèi)的所有成員C、基類(lèi)對(duì)象可以賦值給派生類(lèi)對(duì)象D、如果派生類(lèi)沒(méi)有實(shí)現(xiàn)基類(lèi)的一個(gè)純虛函數(shù),則該派生類(lèi)是一個(gè)抽象類(lèi)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是繼承和派生。無(wú)論是哪種繼承方式,派生類(lèi)都能夠訪問(wèn)基類(lèi)的公有和保護(hù)成員,而不能訪問(wèn)基類(lèi)的私有成員,故選項(xiàng)A和B錯(cuò)誤;公有繼承時(shí),基類(lèi)的對(duì)象不可作為派生類(lèi)的對(duì)象處理,即基類(lèi)對(duì)象不可賦值給派生類(lèi)對(duì)象,所以選項(xiàng)C錯(cuò)誤。20、為了提高函數(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ù)的原因是用它來(lái)取代C中盼預(yù)處理宏函數(shù)。兩者的區(qū)別在于,宏函數(shù)是由預(yù)處理器對(duì)宏進(jìn)行替換,而內(nèi)聯(lián)函數(shù)是通過(guò)編譯器來(lái)實(shí)現(xiàn)的。內(nèi)聯(lián)函數(shù)在調(diào)用時(shí)像宏函數(shù)一樣展開(kāi),所以它沒(méi)有一般函數(shù)的參數(shù)壓棧和退棧操作,減少了調(diào)用開(kāi)銷(xiāo),因此,內(nèi)聯(lián)函數(shù)比普通函數(shù)有更高的執(zhí)行效率。21、下列關(guān)于運(yùn)算符重載的描述中,正確的是()。A、運(yùn)算符重載為成員函數(shù)時(shí),若參數(shù)表中無(wú)參數(shù),重載的是一元運(yùn)算符B、一元運(yùn)算符只能作為成員函數(shù)重載C、二元運(yùn)算符重載為非成員函數(shù)時(shí),參數(shù)表中有一個(gè)參數(shù)D、C++中可以重載所有的運(yùn)算符標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符的重載。運(yùn)算符重載為成員函數(shù)時(shí),形參個(gè)數(shù)~般為運(yùn)算符元數(shù)減1;重載為非成員函數(shù)時(shí),形參個(gè)數(shù)一般和運(yùn)算符元數(shù)相等。所以二元運(yùn)算符重載為非成員函數(shù)時(shí),參數(shù)表中應(yīng)有兩個(gè)參數(shù),C選項(xiàng)錯(cuò)誤:運(yùn)算符重載為成員函數(shù),若參數(shù)表中無(wú)參數(shù),重載的是一元運(yùn)算符,選項(xiàng)A正確:一元運(yùn)算符中,“.”(取負(fù))、“++”、“..”等均可重載為成員函數(shù):C++語(yǔ)言中,“.”、“.*”、“一>*”、“::”、“?:”五個(gè)運(yùn)算符不能重載。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共22題,每題1.0分,共22分。)1、一個(gè)棧的初始狀態(tài)為空?,F(xiàn)將元素1,2,3,A,B,C依次入棧,然后再依次出棧,則元素出棧的順序是()。A、1,2,3,A,B,CB、C,B,A,1,2,3C、C,B,A,3,2,1D、1,2,3,C,B,A標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:棧是按照“先進(jìn)后出”或“后進(jìn)先出”的原則組織數(shù)據(jù)的。所以出棧順序是CBA321。2、下列有關(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í)行效率。3、在軟件開(kāi)發(fā)中,需求分析階段產(chǎn)生的主要文檔是()。A、軟件集成測(cè)試計(jì)劃B、軟件詳細(xì)設(shè)計(jì)說(shuō)明書(shū)C、用戶手冊(cè)D、軟件需求規(guī)格說(shuō)明書(shū)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在軟件開(kāi)發(fā)過(guò)程中,需求分析階段產(chǎn)生的主要文檔是軟件需求規(guī)格說(shuō)明書(shū)。4、下列描述中正確的是()。A、軟件測(cè)試的主要目的是發(fā)現(xiàn)程序中的錯(cuò)誤B、軟件測(cè)試的主要目的是確定程序中錯(cuò)誤的位置C、為了提高軟件測(cè)試的效率,最好由程序編制者自己來(lái)完成軟件測(cè)試的工作D、軟件測(cè)試是證明軟件沒(méi)有錯(cuò)誤標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。一個(gè)好的測(cè)試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的用例;一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。為了達(dá)到好的測(cè)試效果,應(yīng)該由獨(dú)立的第三方來(lái)構(gòu)造測(cè)試,程序員應(yīng)盡量避免檢查自己的程序。5、有如下程序:#includeusingnamespacestd;className{charname[20];public:Name(){strcpy(name,"");cout<<‘?’;}Name(char*fname){strcpy(name,fname);cout<<‘?’;)};intmain(){Namenames[3]={Name("張三"),Name("李四")};return0:}運(yùn)行此程序輸出符號(hào)?的個(gè)數(shù)是()。A、0B、1C、2D、3標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:類(lèi)Name有兩個(gè)構(gòu)造函數(shù),在默認(rèn)構(gòu)造函數(shù)中,給字符數(shù)組。Flame賦窄值,并輸出一個(gè)?;在帶有字符指針的構(gòu)造函數(shù)中,把字符指針fname所指的字符串賦給字符數(shù)組name,并輸出一個(gè)?。所以在主函數(shù)中,定義了Name的三個(gè)對(duì)象,F(xiàn)lame[0]、name[1]、name[2],在創(chuàng)建這三個(gè)對(duì)象時(shí),會(huì)調(diào)用構(gòu)造帶參數(shù)的函數(shù)對(duì)前兩個(gè)對(duì)象賦值,調(diào)用默認(rèn)的構(gòu)造函數(shù)把name[2]的值賦為空值。這時(shí)會(huì)輸出j個(gè)“?”符號(hào)。6、下列描述中錯(cuò)誤的是()。A、在數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)的物理結(jié)構(gòu)必須與邏輯結(jié)構(gòu)一致B、數(shù)據(jù)庫(kù)技術(shù)的根本目標(biāo)是要解決數(shù)據(jù)的共享問(wèn)題C、數(shù)據(jù)庫(kù)設(shè)計(jì)是指在已有數(shù)據(jù)庫(kù)管理系統(tǒng)的基礎(chǔ)上建立數(shù)據(jù)庫(kù)D、數(shù)據(jù)庫(kù)系統(tǒng)需要操作系統(tǒng)的支持標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在數(shù)據(jù)庫(kù)系統(tǒng)中,物理獨(dú)立性是指數(shù)據(jù)的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)、存取方式等)的改變,如存儲(chǔ)設(shè)備的更換、物理存儲(chǔ)的更換、存取方式改變等都不影響數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu),從而不致引起應(yīng)用程序的變化。7、有如下兩個(gè)類(lèi)定義:classXX{private:doublex1;protected:doublex2;public:doublex3;};classYY:protectedXX{private:doubleyl;protected:doubley2;public:doubley3;};在類(lèi)YY中保護(hù)成員變量的個(gè)數(shù)是()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:本題考查保護(hù)繼承中派生類(lèi)對(duì)基類(lèi)的訪問(wèn)屬性,在受保護(hù)繼承中,基類(lèi)的公用成員和保護(hù)成員在派生類(lèi)中成了保護(hù)成員,所以基類(lèi)的成員x2、x3變成了保護(hù)成員,派生類(lèi)中的y2也是保護(hù)成員所以共有3個(gè)保護(hù)成員。本題答案為C。8、有如下程序:#includeusingnamespacestd;classBase{private:voidfunl0const{cout<<“funl”;)protected:voidfun2()const{cout<<“fun2”;)public:voidfun3()const{cout<<“fun3”;)};classDerived:protectedBase{public:voidfun40const{cout<<“fun4”;)};intmain(){Derivedobj;obj.funl();∥①obj.fun2();∥②obj.fun3();∥③obj.fun4();∥④return();)其中有語(yǔ)法錯(cuò)誤的語(yǔ)句是()。A、①②③④B、①②③C、②③④D、①④標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是保護(hù)繼承。因?yàn)镈erived以protected方式繼承了Base類(lèi),所以父類(lèi)Base中的公有成員和保護(hù)成員均成了Derived類(lèi)的保護(hù)成員,而B(niǎo)ase類(lèi)的私有成員Derived類(lèi)不可訪問(wèn)。所以,主函數(shù)中通過(guò)Derived類(lèi)的對(duì)象只能夠訪問(wèn)到Derived類(lèi)的公有成員。9、程序調(diào)試的任務(wù)是()。A、設(shè)計(jì)測(cè)試用例B、驗(yàn)證程序的正確性C、發(fā)現(xiàn)程序中的錯(cuò)誤D、診斷和改正程序中的錯(cuò)誤標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序調(diào)試的任務(wù)是診斷和改正程序中的錯(cuò)誤。10、有如下程序段:inti=5;while(inti=0){cout<<’*’;i--;}運(yùn)行時(shí)輸出“*”的個(gè)數(shù)是()。A、0+B、1C、5D、無(wú)窮標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:因?yàn)閣hile循環(huán)中,因?yàn)閕的值等于0,所以while循環(huán)體一次也不執(zhí)行。因而運(yùn)行時(shí)輸出“*”,的個(gè)數(shù)是0。11、有如下程序:#includeusingnamespacestd;classB{public:virtualvoidshow(){cout<<“B”;});classD:publicB{public:voidshow(){tout<<“D”;));voidfun1(B*ptr){ptr->show();)voidfun2(B&ref){ref.showO;}voidfun3(Bb){b.show();)intmain(){Bb,*p=newD;Dd;funl(p);fun2(b);fun3(d);returnO:}程序的輸出結(jié)果是()。A、BBBB、BBDC、DBBD、DBD標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是虛函數(shù)與多態(tài)性。在成員函數(shù)的聲明前面加上virual關(guān)鍵字,即可把函數(shù)聲明為虛函數(shù);在c++中,一個(gè)基類(lèi)指針可以用于指向它的派生類(lèi)對(duì)象,而且通過(guò)這樣的指針調(diào)用虛函數(shù)時(shí),被調(diào)用的是該指針實(shí)際所指向的對(duì)象類(lèi)的那個(gè)重定義版本。此題中,funl()和fun2()的形參分別是基類(lèi)的指針和引用,給funl()傳入的實(shí)參是指向派生類(lèi)對(duì)象的指針p,funl()將調(diào)用D類(lèi)中的show()輸出字符‘D’;給fun2()出入的實(shí)參是基類(lèi)對(duì)象,fun2()調(diào)用類(lèi)B中的show()輸出字符‘B’;fun3()由于形參是基類(lèi)對(duì)象,調(diào)用的始終都是基類(lèi)的show(),輸出字符‘B’。故最終輸出結(jié)果是DBB。12、下列有關(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ò)誤。13、在下列字符中,不允許作為C++標(biāo)識(shí)符的是()。A、bB、BC、_D、2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++的標(biāo)識(shí)符是一個(gè)以字母或下劃線開(kāi)頭的,由字母、數(shù)字、下劃線組成的字符串。14、下列語(yǔ)句中,與語(yǔ)句“1n=(a>b?(1)>c?1:0):0);”的功能等價(jià)的是()。A、if(a<=b)n=0;B、if((a>b)Il(b>c))n=1;elsen=0;C、if(a>b)if(b>c)n=1:elsen=0;elsen=0;D、if(a>b)n=1;elseif(<=c)n=1;elseif(b>c)n=1;elsen=0;標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:條件表達(dá)式(a>b?(b>c?1:0):0)的含義是,如果a>b成立,則此表達(dá)式的值等于條件表達(dá)式(b>c?1:0)的值,否則其值等于0。而條件表達(dá)式(b>c?1:0)的含義是,如果b>c成立,其值等于1,否則其值等于0。15、若目前D盤(pán)根目錄下并不存在test.txt文件,則下列打開(kāi)文件方式不會(huì)自動(dòng)創(chuàng)建test.txt文件的是()。A、ifstreamfin;fin.open("d:\\test.txt",ios_base∷in);B、fstreamrio;fio.open("d:\\test.txt",ios_base∷out);C、ofstreamfout;fout.open("d:\\test.txt",ios_base∷out);D、ofstreamfout;fout.open("d:\\test.txt",ios_base∷app);標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:如果以isobase∷in模式打開(kāi)文件但文件又不存在時(shí),可以通過(guò)fail()測(cè)出文件打開(kāi)失敗,不會(huì)自動(dòng)創(chuàng)建文件。16、已知類(lèi)MyClass聲明如下:classMyClass{intn;public:MyClass(intk):n(k){}intgetValue()const{returnn;}};在下列數(shù)組定義中正確的是()。A、MyClassx1[2];B、MyClassx2[2]={newMyClass(1),newMyClass(2)};C、MyClass*x3[2];D、MyClass*x4[2]={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中是將非指針傳給指針。17、下列關(guān)于基類(lèi)和派生類(lèi)關(guān)系的敘述中,正確的是()。A、每個(gè)類(lèi)最多只能有一個(gè)直接基類(lèi)B、派生類(lèi)中的成員可以訪問(wèn)基類(lèi)中的任何成員C、基類(lèi)的構(gòu)造函數(shù)必須在派生類(lèi)的構(gòu)造函數(shù)體中調(diào)用D、派生類(lèi)除了繼承基類(lèi)的成員,還可以定義新的成員標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:繼承分為單繼承和多繼承,一個(gè)類(lèi)只有一個(gè)直接基類(lèi)時(shí),稱(chēng)為單繼承:而一個(gè)類(lèi)同時(shí)有多個(gè)直接基類(lèi)時(shí),則稱(chēng)為多繼承。派生類(lèi)的數(shù)據(jù)成員由所有基類(lèi)的的數(shù)據(jù)成員與派生類(lèi)新增的數(shù)據(jù)成員共同組成。18、在一個(gè)派生類(lèi)的成員函數(shù)中,試圖調(diào)用其基類(lèi)的成員函數(shù)"voidf();",但無(wú)法通過(guò)編譯。這說(shuō)明()。A、f()是基類(lèi)的私有成員B、f()是基類(lèi)的保護(hù)成員C、派生類(lèi)的繼承方式為私有D、派生類(lèi)的繼承方式為保護(hù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在派生類(lèi)對(duì)基類(lèi)的三種繼承形式中,都無(wú)法對(duì)基類(lèi)的私有成員訪問(wèn)A正確。在B中,三種繼承方式都能訪問(wèn)基類(lèi)的保護(hù)成員,故B不正確。C選項(xiàng)的情況在f()是基類(lèi)私有成員情況下是對(duì)的,但是還有別的可能,并不一定正確。同樣D也不一定正確。19、有如下類(lèi)定義和變量定義:classA{public:A(){data=0;}~A(){}intGetData()const{returndata;}voidSetData(intn){data=n;}priyate: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ì)象不能被更新,所以通過(guò)這個(gè)常對(duì)象只能調(diào)用它的常成員函數(shù)GetData(),而不能調(diào)用其他成員函數(shù)SetData(10),因而選項(xiàng)B為本題的正確答案。20、下列運(yùn)算符不能重載為友元函數(shù)的是()。A、=()[]->B、+-++--C、><>=<=D、+=-=*=/=標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載的概念。c1++語(yǔ)言規(guī)定,=、[]、()、->以及所有的類(lèi)型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,如果要重載為友元函數(shù)就必須重載為非成員函數(shù)。21、在定義函數(shù)模板或類(lèi)模板時(shí),開(kāi)頭的保留字是()。A、typenameB、templateC、classD、typedef標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:定義函數(shù)模板或類(lèi)模板時(shí),開(kāi)頭的保留字是template。22、有如下4個(gè)語(yǔ)句:①cout<<’A’<<setfill(’*’)<<left<<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ī)試(選擇題)模擬試卷第3套一、選擇題(本題共22題,每題1.0分,共22分。)1、下列敘述中正確的是A、循環(huán)隊(duì)列有隊(duì)頭和隊(duì)尾兩個(gè)指針,因此,循環(huán)隊(duì)列是非線性結(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)反映的。2、下面是關(guān)于派生類(lèi)聲明的開(kāi)始部分,其中正確的是()。A、classvirtualB:publicAB、virtualclassB:publicAC、classB:publicAvirtualD、classB:virtualpublicA標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:聲明派生類(lèi)的一般形式為:class派生類(lèi)名:[繼承方式]基類(lèi)名。其中繼承方式包括:public,private,protected,而virtual為C++中的關(guān)鍵字。虛函數(shù)的使用方法是在基類(lèi)用virtual聲明成員函數(shù)為虛函數(shù)。3、下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是()。A、可封裝B、自頂向下C、模塊化D、逐步求精標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:結(jié)構(gòu)化設(shè)計(jì)方法的主要原則可以概括為自頂向下、逐步求精、模塊化、限制使用goto語(yǔ)句。4、下列選項(xiàng)中不屬于面向?qū)ο蟪绦蛟O(shè)計(jì)特征的是()。A、繼承性B、多態(tài)性C、類(lèi)比性D、封裝性標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:面向?qū)ο蟪绦蛟O(shè)計(jì)的三個(gè)主要特征是:封裝性、繼承性和多態(tài)性。封裝性即只需知道數(shù)據(jù)的取值范圍和可以對(duì)該數(shù)據(jù)施加的操作,而無(wú)需知道數(shù)據(jù)的具體結(jié)構(gòu)以及實(shí)現(xiàn)操作的算法。繼承性是指使用已有的類(lèi)定義作為基礎(chǔ)建立新類(lèi)的定義技術(shù)。對(duì)象根據(jù)所接受的消息而做出動(dòng)作,同樣的消息被不同的對(duì)象接受時(shí)可導(dǎo)致完全不同的行動(dòng),該現(xiàn)象稱(chēng)為多態(tài)性。5、軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下面屬于應(yīng)用軟件的是()。A、學(xué)生成績(jī)管理系統(tǒng)B、C語(yǔ)言編譯程序C、UNIX操作系統(tǒng)D、數(shù)據(jù)庫(kù)管理系統(tǒng)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:學(xué)生成績(jī)管理系統(tǒng)為應(yīng)用軟件。6、若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()。7、從工程管理角度看,軟件設(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è)步驟。8、構(gòu)成計(jì)算機(jī)軟件的是A、源代碼B、程序和數(shù)據(jù)C、程序和文檔D、程序、數(shù)據(jù)及相關(guān)文檔標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件由兩部分組成:一是機(jī)器可執(zhí)行的程序和數(shù)據(jù);二是機(jī)器不可執(zhí)行的,與軟件開(kāi)發(fā)、運(yùn)行、維護(hù)、使用等有關(guān)的文檔。9、用樹(shù)形結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型是()。A、關(guān)系模型B、網(wǎng)狀模型C、層次模型D、以上三個(gè)都是標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:層次模型的基本結(jié)構(gòu)是樹(shù)形結(jié)構(gòu),這種結(jié)構(gòu)方式在現(xiàn)實(shí)世界中很普遍,它們自頂向下、層次分明。10、有三個(gè)關(guān)系R、S和T如下:由關(guān)系R和S通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。A、笛卡爾積B、交C、并D、自然連接標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在實(shí)際應(yīng)用中,最常用的連接是一個(gè)叫自然連接的特例。它滿足下面的條件:兩關(guān)系間有公共域;通過(guò)公共域的相等值進(jìn)行連接。通過(guò)觀察三個(gè)關(guān)系R,S,T的結(jié)果可知關(guān)系T是由關(guān)系R和S進(jìn)行自然連接得到的。11、有如下程序:#includeusingnarnespacestd;classSample{public:Sample(){}~Sample(){cout<<‘*’;}};intmain(){Sampletemp[2],*pTemp[2];return0;}運(yùn)行這個(gè)程序輸出星號(hào)*的個(gè)數(shù)為()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:本題考查構(gòu)造函數(shù)和析構(gòu)函數(shù),題中定義了對(duì)象數(shù)組,那么析構(gòu)時(shí)就析構(gòu)兩次,輸出兩個(gè)*。答案為B。12、有如下程序:#inc1ude<iostream>usingnamespacestd;intmain(){intf,f1=0,f2=1;for(inti=3;i<=6;i++){f=f1+f2;f1=f2;f2=f;}cout<<f<<end1;return0;}運(yùn)行時(shí)的輸出結(jié)果是()。A、2B、3C、5D、8標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在主函數(shù)中for循環(huán)語(yǔ)句執(zhí)行4次,第一次循環(huán)結(jié)束時(shí),變量f的值等于l,f1的值等于1,f2的值等于1:第二次循環(huán)結(jié)束時(shí),變量f的值等于2,fl的值等于1,f2的值等于2;第三次循環(huán)結(jié)束時(shí),變量f的值等于3,f1的值等于2,f2的值等于3;第四次循環(huán)結(jié)束時(shí),變量f的值等于5,f1的值等于3,f2的值等于5;結(jié)束循環(huán)。13、已知函數(shù)f的原型是voidf(int*a,long&b);,變量v1、v2的定義是:intv1:loongv2;下列調(diào)用語(yǔ)句中正確的是()。A、f(v1,&v2);B、f(v1,v2);C、f(&v1,&v2);D、f(&v1,V2);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是函數(shù)的調(diào)用。因?yàn)樽兞康亩x是intv1:longv2,而函數(shù)f()的第一個(gè)參數(shù)是指針,第二個(gè)參數(shù)是引用,所以選項(xiàng)D為正確引用。14、若已經(jīng)聲明了函數(shù)原型“voidfun(inta,doubleb=0.0);”,則下列重載函數(shù)聲明中正確的是()。A、voidfun(inta=90,doubleb=0.0);B、intfun(inta,doubleB);C、voidfun(doublea,intB);D、boolfun(inta,doubleb=0.0);標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:函數(shù)重載的原則就是至少要在參數(shù)個(gè)數(shù)或參數(shù)類(lèi)型上有所不同,且如果函數(shù)只是函數(shù)類(lèi)型不同的,而其他完全相同,也不能作為重載函數(shù)來(lái)使用。15、有如下類(lèi)定義:classFoo{public:Foo(intv):value(v){}//①Foo(){}∥②private:F00(){}∥③intvalue=0;//④};其中存在語(yǔ)法錯(cuò)誤的行是()。A、①B、②C、③D、④標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是類(lèi)的定義。C++語(yǔ)言規(guī)定,在類(lèi)體內(nèi)不允許對(duì)所定義的數(shù)據(jù)成員進(jìn)行初始化。16、若AA為一個(gè)類(lèi),a為該類(lèi)的非靜態(tài)數(shù)據(jù)成員,t在該類(lèi)的一個(gè)成員函數(shù)定義中訪問(wèn)a時(shí),其書(shū)寫(xiě)格式為()。A、aB、AA.a(chǎn)C、a{}D、AA::a{}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:類(lèi)從的成員函數(shù)直接引用類(lèi)從的非靜態(tài)數(shù)據(jù)成員。17、下列有關(guān)繼承和派生的敘述中,正確的是()。A、如果一個(gè)派生類(lèi)私有繼承其基類(lèi),則該派生類(lèi)對(duì)象不能訪問(wèn)基類(lèi)的保護(hù)成員B、派生類(lèi)的成員函數(shù)可以訪問(wèn)基類(lèi)的所有成員C、基類(lèi)對(duì)象可以賦值給派生類(lèi)對(duì)象D、如果派生類(lèi)沒(méi)有實(shí)現(xiàn)基類(lèi)的一個(gè)純虛函數(shù),則該派生類(lèi)是一個(gè)描象類(lèi)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是繼承和派生。無(wú)論是哪種繼承方式,派生類(lèi)都能夠訪問(wèn)基類(lèi)的公有和保護(hù)成員,而不能訪問(wèn)基類(lèi)的私有成員,故選項(xiàng)A和B錯(cuò)誤;公有繼承時(shí),基類(lèi)的對(duì)象不可作為派生類(lèi)的對(duì)象處理,即基類(lèi)對(duì)象不可賦值給派生類(lèi)對(duì)象,所以選項(xiàng)C錯(cuò)誤。18、有如下程序#include<iostream>usingnamespacestd;classBase{protected:Base(){cout<<’A’;}Base(charc){cout<<c;}};classDerived:publicBase{public:Derived(charc){cout<<c;}};intmain(){Derivedd1(’B’);return0;}執(zhí)行這個(gè)程序屏幕上將顯示輸出()。A、BB、BAC、ABD、BB標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是派生類(lèi)對(duì)象的構(gòu)造。建立派生類(lèi)對(duì)象時(shí),構(gòu)造函數(shù)的執(zhí)行順序是:執(zhí)行基類(lèi)的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)基類(lèi)被被繼承時(shí)聲明的順序;執(zhí)行成員對(duì)象的構(gòu)造函數(shù),調(diào)用順序按照各個(gè)成員對(duì)象在類(lèi)中聲明的順序:執(zhí)行派生類(lèi)的構(gòu)造函數(shù)。此題中,在建立派生類(lèi)Derived的對(duì)象dl時(shí)會(huì)先調(diào)用基類(lèi)Base的構(gòu)造,調(diào)用的是默認(rèn)構(gòu)造函數(shù),輸出字符‘A’;然后調(diào)用自身的構(gòu)造函數(shù),輸出‘B’;故程序的輸出結(jié)果是:AB。19、下列關(guān)于類(lèi)成員對(duì)象構(gòu)造函數(shù)調(diào)用順序的敘述中,正確的是()。A、與它們?cè)诔跏蓟斜碇械捻樞蛳嗤珺、與它們?cè)陬?lèi)中聲明的順序相同C、與析構(gòu)函數(shù)的調(diào)用順序相同D、順序不確定標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:類(lèi)成員對(duì)象構(gòu)造函數(shù)的調(diào)用是按照在類(lèi)中定義的順序進(jìn)行的,而不是按照構(gòu)造函數(shù)說(shuō)明后的冒號(hào)順序進(jìn)行構(gòu)造的。20、若需要為XV類(lèi)重載乘法運(yùn)算符,運(yùn)算結(jié)果為XV類(lèi)型,在將其聲明為類(lèi)的成員函數(shù)時(shí),下列原型聲明正確的是()。A、XVoperator*(XV,XV);B、XV*(XV);C、operator*(XV);D、XVoperator*(XV);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:“*”是一個(gè)二元運(yùn)算符,在作為成員函數(shù)重載時(shí)參數(shù)表中只有一個(gè)參數(shù),對(duì)應(yīng)于第二個(gè)操作數(shù),而第一個(gè)操作數(shù)就是對(duì)象本身,僅以this指針的形式隱藏在參數(shù)表中。21、下列關(guān)于函數(shù)模板的描述中,正確的是()。A、函數(shù)模板是一個(gè)實(shí)例函數(shù)B、使用函數(shù)模板定義的函數(shù)沒(méi)有返回類(lèi)型C、函數(shù)模板的類(lèi)型參數(shù)與函數(shù)的參數(shù)相同D、通過(guò)使用不同的類(lèi)型參數(shù),可以從函數(shù)模板得到不同的實(shí)例函數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:函數(shù)模板是一系列相關(guān)函數(shù)的模型或樣板,這些函數(shù)的源代碼相同,只是所針對(duì)的數(shù)據(jù)類(lèi)型不同。數(shù)據(jù)類(lèi)型成了函數(shù)模板的參數(shù),所以函數(shù)模板是一種參數(shù)化類(lèi)型的函數(shù)。22、C++系統(tǒng)預(yù)定了4個(gè)用于標(biāo)準(zhǔn)數(shù)據(jù)流的對(duì)象,下列選項(xiàng)中不屬于此類(lèi)對(duì)象的是()。A、coutB、cinC、cerrD、cset標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++流有4個(gè)預(yù)定義的流對(duì)象,它們分別是:ein標(biāo)準(zhǔn)輸入:cout標(biāo)準(zhǔn)輸出;cerr標(biāo)準(zhǔn)出錯(cuò)信息輸出;clog帶緩沖的標(biāo)準(zhǔn)出錯(cuò)信息輸出。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第4套一、選擇題(本題共22題,每題1.0分,共22分。)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ì)象有如下一些基本特點(diǎn):標(biāo)識(shí)唯一性、分類(lèi)性、多態(tài)性、封裝性、模塊獨(dú)立性好。所以選擇A。2、算法的時(shí)間復(fù)雜度是指()。A、算法的長(zhǎng)度B、執(zhí)行算法所需要的時(shí)間C、算法中的指令條數(shù)D、算法執(zhí)行過(guò)程中所需要的基本運(yùn)算次數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:算法的時(shí)間復(fù)雜度,是指執(zhí)行算法所需要的工作量,可以用算法在執(zhí)行過(guò)程中所需基本運(yùn)算的執(zhí)行次數(shù)來(lái)度量算法的工作量。3、有以下程序段:#include<iostream.h>#defineMAX(x,y)(x)>(y)?(x):(y)voidmain(){inti,j,k;i=10;j=15;k=MAX(i,j)*10;cout<<k<<end1;}程序執(zhí)行后的輸出結(jié)果是()。A、15B、100C、150D、10標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:題目程序中的MAX函數(shù)是利用條件運(yùn)算符為?:求最大值。即(x>y)?(x):(y)是當(dāng)x大于y時(shí)取x,否則取y。當(dāng)i=10,j=15時(shí),“MAX(i,i)”的值為15,所以“k=MAX(i,j)*10;”答案為:150。4、結(jié)構(gòu)化程序所要求的基本結(jié)構(gòu)不包括A、順序結(jié)構(gòu)B、GOTO跳轉(zhuǎn)C、選擇(分支)結(jié)構(gòu)D、重復(fù)(循環(huán))結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:結(jié)構(gòu)化程序的基本結(jié)構(gòu)有:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),沒(méi)有GOTO跳轉(zhuǎn)結(jié)構(gòu)。5、下面描述中錯(cuò)誤的是()。A、系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細(xì)設(shè)計(jì)B、軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換為軟件表示的過(guò)程C、數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫(kù)設(shè)計(jì)是軟件設(shè)計(jì)的任務(wù)之一D、PAD圖是軟件詳細(xì)設(shè)計(jì)的表示工具標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換為軟件表示的過(guò)程;數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫(kù)設(shè)計(jì)是軟件設(shè)計(jì)的任務(wù)之一;PAD圖,即問(wèn)題分析圖,是一種主要用于描述軟件詳細(xì)設(shè)計(jì)的圖形工具。6、有如下程序#includeusingnamespacestd;inti=1:classFun{public:staticinti;intvalue(){returni—l;}intvalue()const{returni+l;));intFun::i=2;intmain(){inti=3;Funfunl;constFunfun2;retumO;)若程序的輸出結(jié)果是:123則程序中下劃線處遺漏的語(yǔ)句是()。A、cout<B、cout<C、cout<D、cout<標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是常成員函數(shù)。const關(guān)鍵字可以用于參與重函數(shù)的區(qū)分,此時(shí)常對(duì)象調(diào)用常成員函數(shù),一般對(duì)象調(diào)用一般成員函數(shù),當(dāng)類(lèi)中只有一個(gè)常成員函數(shù)時(shí),一般對(duì)象也可以調(diào)用該常成員函數(shù)。本題中,通過(guò)funl調(diào)用value(]函數(shù)時(shí),是調(diào)用前一個(gè),而通過(guò)fun2調(diào)用value()函數(shù)是調(diào)用后一個(gè);另外,value()函數(shù)中訪問(wèn)的i是類(lèi)中定義的數(shù)據(jù)成員i,全局變量i在類(lèi)中被“屏蔽”。funl.value()輸出i.1=2.1=l:fun2.value()調(diào)用后一個(gè)value()函數(shù)輸出i+1=2+l=3;Fun::i是通過(guò)類(lèi)名直接訪問(wèn)類(lèi)的靜態(tài)數(shù)據(jù)成員i的值,即2;所以正確的輸出順序是A選項(xiàng)。7、有如下類(lèi)定義和變量定義:classA{public:AO{data=O;}~A(){)intGetData0const{returndata;)voidSetData(intn){data=n;)private:intdata;);constAa:Ab;下列函數(shù)調(diào)用中錯(cuò)誤的是()。A、a.GetData0;B、a.SetData(10);C、b.GetData();D、b.SetData(10);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:由題意可知a為常對(duì)象,因?yàn)槌?duì)象不能被更新,所以通過(guò)這個(gè)常對(duì)象只能調(diào)用它的常成員函數(shù)GetData(),而不能調(diào)用其他成員函數(shù)SetData(10),因而選項(xiàng)B為本題的正確答案。8、有三個(gè)關(guān)系R、S和T如下:由關(guān)系R和S通過(guò)運(yùn)算得到關(guān)系T,則所使用的運(yùn)算為()。A、笛卡爾積B、交C、并D、自然連接標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在實(shí)際應(yīng)用中,最常用的連接是一個(gè)叫自然連接的特例。它滿足下面的條件:兩關(guān)系間有公共域;通過(guò)公共域的相等值進(jìn)行連接。通過(guò)觀察三個(gè)關(guān)系R,S,T的結(jié)果可知關(guān)系T是由關(guān)系R和S進(jìn)行自然連接得到的。9、下列選項(xiàng)中,不屬于數(shù)據(jù)庫(kù)管理的是()。A、數(shù)據(jù)庫(kù)的建立B、數(shù)據(jù)庫(kù)的調(diào)整C、數(shù)據(jù)庫(kù)的監(jiān)控D、數(shù)據(jù)庫(kù)的校對(duì)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理一般包括:數(shù)據(jù)庫(kù)的建立、數(shù)據(jù)庫(kù)的調(diào)整、數(shù)據(jù)庫(kù)的重組、數(shù)據(jù)庫(kù)的安全性控制與完整性控制、數(shù)據(jù)庫(kù)的故障恢復(fù)和數(shù)據(jù)庫(kù)的監(jiān)控。10、在一個(gè)派生類(lèi)對(duì)象結(jié)束其生命周期時(shí)()。A、先調(diào)用派生類(lèi)的析構(gòu)函數(shù)后調(diào)用基類(lèi)的析構(gòu)函數(shù)B、先調(diào)用基類(lèi)的析構(gòu)函數(shù)后調(diào)用派生類(lèi)的析構(gòu)函數(shù)C、如果基類(lèi)沒(méi)有定義析構(gòu)函數(shù),則只調(diào)用派生類(lèi)的析構(gòu)函數(shù)D、如果派生類(lèi)沒(méi)有定義析構(gòu)函數(shù),則只調(diào)用基類(lèi)的析構(gòu)函數(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是派生類(lèi)對(duì)象的析構(gòu)。釋放派生類(lèi)對(duì)象時(shí),析構(gòu)函數(shù)的執(zhí)行順序是:首先調(diào)用派生類(lèi)自身的析構(gòu)函數(shù);然后淵用類(lèi)成員對(duì)象的析構(gòu)函數(shù);最后調(diào)用基類(lèi)的析構(gòu)函數(shù)。所以四個(gè)選項(xiàng)中只有選項(xiàng)A正確。11、有如下程序#inc1ude<iostream>usingnamespacestd;intmain(){chara;cin>>a;if(a=’*’)cout<<"***"<<end1,eLsecout<<"###"<<end1;retum0;}輸入字符+時(shí),程序的運(yùn)行結(jié)果是()。A、***B、###C、***###D、無(wú)輸出標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題的考點(diǎn)是雙分支選擇語(yǔ)句的執(zhí)行流程,答題的關(guān)鍵點(diǎn)在于選擇條件的判定。雙分支選擇語(yǔ)句的執(zhí)行流程是首先計(jì)算if后表達(dá)式的值,如果表達(dá)式的值為非零,則執(zhí)行if后面的分支,否則執(zhí)行與其匹配的else后面的分支。本題執(zhí)行時(shí)雖然輸入變量a的值為‘+’,但是在執(zhí)行if后括號(hào)內(nèi)表達(dá)式(a=’*’)的時(shí),由于此表達(dá)式為賦值表達(dá)式,因此表達(dá)式的值為賦值號(hào)右邊的值’*’,其ASCII碼的值非零,執(zhí)行if后面的輸出語(yǔ)句“***”后回車(chē)。12、有如下程序:#inc1ude<iostream>usingnamespacestd;intmain0{inti,s=0;for(i=l;s<20;i+=2)s+=i*i;cout<<i<<end1;retum0;}運(yùn)行這個(gè)程序的輸出結(jié)果是()。A、3B、5C、7D、9標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在這段程序中for循環(huán)共執(zhí)行3次,每次循環(huán)變量i的值增2,在執(zhí)行第三次循環(huán)語(yǔ)句時(shí).變量s的值等于25,大于20而退出循環(huán),此時(shí)再執(zhí)行循環(huán)變量i加2運(yùn)算,所以最后變量i的值等于7。13、下列關(guān)于運(yùn)算符重載的敘述中,錯(cuò)誤的是()。A、有的運(yùn)算符可以作為非成員函數(shù)重載B、所有的運(yùn)算符都可以通過(guò)重載而被賦予新的含義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)行的,不可能通過(guò)重載創(chuàng)造新的運(yùn)算符。除了*,.*,->,::,?:,.這五個(gè)運(yùn)算符以外,其他運(yùn)算符都可以重載。14、以下關(guān)鍵字不能用來(lái)聲明類(lèi)的訪問(wèn)權(quán)限的是()。A、publicB、staticC、protectedD、private標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是類(lèi)的訪問(wèn)權(quán)限。在C++語(yǔ)言中,類(lèi)的訪問(wèn)權(quán)限有公有、保護(hù)和私有三種。故本題選B。15、下列語(yǔ)句中,錯(cuò)誤的是()。A、constintbuffer=256;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ò)。16、要建立文件流并打開(kāi)當(dāng)前目錄下的文件file.dat用于輸入,下列語(yǔ)句中錯(cuò)誤的是()。A、ifstreamfin=ifstream.open("file.dat");B、ifstream*fim=newifstream("file.dat");C、ifstreamfin;fin.open("file.dat");D、ifstream*fin=newifstream();fin->open("file.dat");標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在選項(xiàng)A中,在賦值號(hào)的左側(cè)表示建立一個(gè)輸入流對(duì)象fin,而在賦值號(hào)的右側(cè)的表達(dá)式不正確,因?yàn)槲募斎肓黝?lèi)ifstream不能直接調(diào)用其成員函數(shù)open。17、有如下類(lèi)和對(duì)象的定義:classConstants{public;staticdoublegetPl(){return3.1416;}};Constantsconstants;下列各組語(yǔ)句中,能輸出3.1416的是()。A、cout<<constants->getPI();和cout<<Constants::gerPI();B、cout<<constants.getPI();和cout<<Constants.getPI();C、cout<<constants->getaI();和cout<<Constants->getPI();D、cout<<constants.getPI();和cout<<Constants::getPI();標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是靜態(tài)成員函數(shù)的引用。getPI()是類(lèi)C0nstants的靜態(tài)成員函數(shù)。引用靜態(tài)成員函數(shù)可以有兩種形式:一是通過(guò)類(lèi)名直接進(jìn)行調(diào)用,例如類(lèi)名::靜態(tài)成員函數(shù)名;另一種是用類(lèi)的任何對(duì)象名進(jìn)行調(diào)用其作用僅是通過(guò)對(duì)象名間接的指出類(lèi)名,例如constants.getPI()選項(xiàng)D即是這種調(diào)用方式。18、以下關(guān)鍵字不能用來(lái)聲明類(lèi)的訪問(wèn)權(quán)限的是()。A、publicB、staticC、protectedD、private標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是類(lèi)的訪問(wèn)權(quán)限。在C++語(yǔ)言中,類(lèi)的訪問(wèn)權(quán)限有公有、保護(hù)和私有三種。故本題選B。19、關(guān)于運(yùn)算符重載,下列表述中正確的是()。A、C++已有的任何運(yùn)算符都可以重載B、運(yùn)算符函數(shù)的返回類(lèi)型不能聲明為基本數(shù)據(jù)類(lèi)型C、在類(lèi)型轉(zhuǎn)換符函數(shù)的定義中不需要聲明返回類(lèi)型D、可以通過(guò)運(yùn)算符重載來(lái)創(chuàng)建C++中原來(lái)沒(méi)有的運(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ù)的返回類(lèi)型由該運(yùn)算符所組成的表達(dá)式的值的類(lèi)型來(lái)決定,故選項(xiàng)B說(shuō)法是錯(cuò)誤的;運(yùn)算符重載是針對(duì)原有運(yùn)算符,并不能通過(guò)重載創(chuàng)造出新的運(yùn)算符,故選項(xiàng)D錯(cuò)誤。20、關(guān)于關(guān)鍵字class和typename,下列表述中正確的是()。A、程序中的typename都可以替換為classB、程序中的class都可以替換為typenameC、在模板形參表中只能用typename來(lái)聲明參數(shù)的類(lèi)型D、在模板形參表中只能用class或typename來(lái)聲明參數(shù)的類(lèi)型標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是class和typename兩個(gè)關(guān)鍵字。關(guān)鍵字class除了能用來(lái)定義類(lèi)以外還能用來(lái)聲明模板的虛擬類(lèi)型參數(shù)。在用作聲明虛擬類(lèi)型參數(shù)時(shí)typename與class可以互換,但不能使用typename來(lái)定義類(lèi);在模板形參表中除了可以用typename和class聲明虛擬類(lèi)型參數(shù)外,還可以使用普通類(lèi)型聲明常規(guī)函數(shù),故選項(xiàng)C錯(cuò)誤。21、要利用C++流實(shí)現(xiàn)輸入輸出的各種格式控制,必須在程序中包含的頭文件是()。A、fstreamB、istrearaC、ostreamD、iomanip標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:要使用setw、fixed等操作符,須包含iomanip這個(gè)文件。22、下列控制格式輸入輸出的操作符中,能夠設(shè)置浮點(diǎn)數(shù)精度的是()。A、set)recisionB、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套一、選擇題(本題共21題,每題1.0分,共21分。)1、下列語(yǔ)句中,錯(cuò)誤的是()。A、constintbuffel"=256;B、constinttemp;C、constdouble*point;D、constdouble*rt=newdouble(5.5);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是符號(hào)常量的概念。符號(hào)常量必須在聲明的同時(shí)賦初值,故選項(xiàng)B錯(cuò)誤;選項(xiàng)C定義的是一個(gè)指向常量的指針變量,即通過(guò)指針不能改變它所指向的內(nèi)容,而它自己的內(nèi)容是可以改變的,C選項(xiàng)正確。2、下列敘述中正確的是()。A、循環(huán)隊(duì)列有隊(duì)頭和隊(duì)尾兩個(gè)指針,因此,循環(huán)隊(duì)列是非線性結(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)反映的。3、下列敘述中正確的是()。A、棧是一種先進(jìn)先出的線性表B、隊(duì)列是一種后進(jìn)先出的線性表C、棧與隊(duì)列都是非線性結(jié)構(gòu)D、棧與隊(duì)列都是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧是先進(jìn)后出,隊(duì)列是先進(jìn)先出。棧和隊(duì)列都是一種線性表,屬于線性結(jié)構(gòu)。4、數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下面圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是A、控制流B、加工C、數(shù)據(jù)存儲(chǔ)D、源和潭標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)流圖中的主要圖形元素有加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲(chǔ)文件(數(shù)據(jù)源)、源和潭等。5、已知枚舉類(lèi)型聲明語(yǔ)句為:enumCOLOR{WHITE,YELLOW,GREEN=5,RED,BLACK=10};則下列說(shuō)法中錯(cuò)誤的是()。A、枚舉常量YELLOW的值為1B、枚舉常量RED的值為6C、枚舉常量BLACK的值為10D、枚舉常量WHITE的值為1標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:C++語(yǔ)言規(guī)定枚舉常量的默認(rèn)值依次等于0,1,…,n一1。也可以給枚舉常量賦初值,方法是:在枚舉常量的后面跟上“=整型常量”,在給枚舉常量賦初值時(shí),如果給其中任何一個(gè)枚舉常量賦初值,則其后的枚舉常量將按自然數(shù)的規(guī)則依次賦初值。所以本題答案為D。6、有如下程序:#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)解析:類(lèi)YY公有派生于類(lèi):XX,派生類(lèi)對(duì)象可以替代基類(lèi)對(duì)象向基類(lèi)對(duì)象的引用進(jìn)行賦值初始化,XX&p=*newYY語(yǔ)句定義了XX對(duì)象p引用,并用YY對(duì)象初始化,p并不是YY對(duì)象的別名,是XX基類(lèi)對(duì)象的別名,故先調(diào)用基類(lèi)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”。7、層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫(kù)劃分原則是A、記錄長(zhǎng)度B、文件的大小C、聯(lián)系的復(fù)雜程度D、數(shù)據(jù)之間的聯(lián)系方式標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)數(shù)據(jù)之間的聯(lián)系方式,可以把數(shù)據(jù)庫(kù)分為層次型、網(wǎng)狀型和關(guān)系型數(shù)據(jù)庫(kù),它們是根據(jù)數(shù)據(jù)之間的聯(lián)系方式來(lái)劃分的。8、下列選項(xiàng)中,與實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性無(wú)關(guān)的是()。A、重載函數(shù)B、虛函數(shù)C、指針D、引用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在C++中,多態(tài)性可以分為兩類(lèi):編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性。編譯時(shí)的多態(tài)性是通過(guò)函數(shù)重載和模版體現(xiàn)的,運(yùn)行時(shí)的多態(tài)性是通過(guò)虛函數(shù)體現(xiàn)的。9、將E-R圖轉(zhuǎn)換為關(guān)系模式時(shí),實(shí)體和聯(lián)系都可以表示為A、屬性B、鍵C、關(guān)系D、域標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:將E-R圖轉(zhuǎn)換為關(guān)系模式時(shí),實(shí)體和聯(lián)系都可以表示為關(guān)系。10、關(guān)于運(yùn)算符重載,下列表述中正確的是()。A、C++已有的任何運(yùn)算符都可以重載B、運(yùn)算符函數(shù)的返回類(lèi)型不能聲明為基本數(shù)據(jù)類(lèi)型C、在類(lèi)型轉(zhuǎn)換符函數(shù)的定義中不需要聲明返回類(lèi)型D、可以通過(guò)運(yùn)算符重載來(lái)創(chuàng)建C++中原來(lái)沒(méi)有的運(yùn)算符標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:暫無(wú)解析11、Windows環(huán)境下,由C++源程序文件編譯而成的目標(biāo)文件的擴(kuò)展名是()。A、cppB、exeC、objD、lik標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在VC6.0集成開(kāi)發(fā)環(huán)境下,用戶可以使用編譯(compile)命令將一個(gè).cpp為擴(kuò)展名的C++源程序文件轉(zhuǎn)換成一個(gè)以.obj為擴(kuò)展名的目標(biāo)文件。12、有如下程序:#inc1ude<iostream>usingnamespacestd;c1assMyClass{public:MyClass(inti=0){cout<<1;}MyClass(constMyClass&x){cout<<2;}MyClass&operatOF(constMyClass&x){cout<<3;return*tlus;}~MyClass(){cout<<4;}};intmain(){MyClassobj1(l),obj2(2),obj3(objl);retum0:}運(yùn)行時(shí)的輸出結(jié)果是()。A、112444B、11114444C、121444D、11314444標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:當(dāng)創(chuàng)建MyClass類(lèi)對(duì)象obj1(1)和obj2(2)時(shí)候,調(diào)用類(lèi)構(gòu)造函數(shù)會(huì)輸出兩個(gè)1,然后創(chuàng)建類(lèi)對(duì)象obj3(obj(1))時(shí),會(huì)調(diào)用拷貝類(lèi)構(gòu)造函數(shù),輸出一個(gè)2,然后當(dāng)main函數(shù)結(jié)束時(shí)候,調(diào)用三個(gè)對(duì)象的析構(gòu)函數(shù)會(huì)輸出三個(gè)4。13、若磁盤(pán)上已存在某個(gè)文本文件,其全路徑文件名為d:\ncre\test.txt,下列語(yǔ)句中不能打開(kāi)該文件的是()。A、ifstreamfile("dAncre\test.txt");B、ifstreamfile("d:\\kncre\\test.txt");C、ifstreamfile;file.open("d:\\kncre\\test.txt");ifstream("d:\\knere\\test.txt");D、ifstream*pFile=new標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是轉(zhuǎn)義字符。在字符常量或字符串中,以“\”開(kāi)頭的一系列字符被看做是一個(gè)轉(zhuǎn)義字符。要表示“\”字符,必須使用轉(zhuǎn)義字符“\\”。14、在C++中,編譯系統(tǒng)自動(dòng)為一個(gè)類(lèi)生成缺省構(gòu)造函數(shù)的條件是()。A、該類(lèi)沒(méi)有定義任何有參構(gòu)造函數(shù)B、該類(lèi)沒(méi)有定義任何無(wú)參構(gòu)造函數(shù)C、該類(lèi)沒(méi)有定義任何構(gòu)造函數(shù)D、該類(lèi)沒(méi)有定義任何成員函數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:如果一個(gè)類(lèi)中定義了一個(gè)缺省的構(gòu)造函數(shù),則使用該函數(shù)。如果一個(gè)類(lèi)中沒(méi)有定義任何構(gòu)造函數(shù),編譯器將生成一個(gè)不帶參數(shù)的共有缺省構(gòu)造函數(shù)。15、下列有關(guān)抽象類(lèi)和純虛函數(shù)的敘述中,錯(cuò)誤的是()。A、擁有純虛函數(shù)的類(lèi)是抽象類(lèi),不能用來(lái)定義對(duì)象B、抽象類(lèi)的派生類(lèi)若不實(shí)現(xiàn)純虛函數(shù),它也是抽象類(lèi)C、純虛函數(shù)的聲明以“=0;”結(jié)束D、純虛函數(shù)都不能有函數(shù)體標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是抽象類(lèi)和純虛函數(shù)的概念。純虛函數(shù)可以有函數(shù)體,它的實(shí)現(xiàn)由派生類(lèi)給出。16、下列有關(guān)運(yùn)算符重載的敘述中,正確的是()。A、運(yùn)算符重載是多態(tài)性的一種表現(xiàn)B、C++中可以通過(guò)運(yùn)算符重載創(chuàng)造新的運(yùn)算符C、C++中所有運(yùn)算符都可以作為非成員函數(shù)重載D、重載運(yùn)算符時(shí)可以改變基結(jié)合性標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符重載。C++中運(yùn)算符重載是多態(tài)性的一種表現(xiàn);運(yùn)算符重載是針對(duì)C++原有運(yùn)算符進(jìn)行的,不可能通過(guò)重載創(chuàng)造出新的運(yùn)算符;除了“.”、“.*”、“—>*”、“∷”、“?:”這五個(gè)運(yùn)算符外,其它運(yùn)算符都可以重載:但“=”“[]”“—>”及所有的類(lèi)型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載,運(yùn)算符重載不可改變其結(jié)合性、操作數(shù)個(gè)數(shù)和優(yōu)先級(jí)。17、有如下程序:#includeusingnamespacestd;classBASE{public:~BASE(){cout<<"BASE";}};classDERIVED:publicBASE{public:~DERIVED(){cout<<"DERIVED";}};immain(){DERIVEDx;return0;}執(zhí)行后的輸出結(jié)果是()。A、BASEB、DERIVEDC、BASEDERIVEDD、DERJVEDBASE標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題考查的是派生類(lèi)的定義和使用。當(dāng)對(duì)象被刪除時(shí),派生類(lèi)的析構(gòu)函數(shù)就被執(zhí)行。由于析構(gòu)函數(shù)不能被繼承,因此在執(zhí)行派生類(lèi)的析構(gòu)函數(shù)時(shí),基類(lèi)的析構(gòu)函數(shù)也將被調(diào)用。執(zhí)行順序是先執(zhí)行派生類(lèi)的析構(gòu)函數(shù),冉執(zhí)行基類(lèi)的析構(gòu)函數(shù),其順序與執(zhí)行構(gòu)造函數(shù)的順序正好相反。18、有如下類(lèi)定義:classB{public:voidfun1(){}private:voidfun2(){}protected:voidfun3(){)};classD:publicB{protected:voidfun4(){}};若obj是類(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)其它成員。19、下列關(guān)于運(yùn)算符重載的敘述中,錯(cuò)誤的是()。A、有的運(yùn)算符可以作為非成員函數(shù)重載B、所有的運(yùn)算符都可以通過(guò)重載而被賦予新的含義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)行的,不可能通過(guò)重載創(chuàng)造新的運(yùn)算符。除了*,.*,-〉*,::,?:,.這五個(gè)運(yùn)算符以外,其他運(yùn)算符都可以重載。20、已知類(lèi)MyClock中未顯式定義構(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ù)是MyClock類(lèi)的對(duì)象,而第二操作數(shù)是一個(gè)整型數(shù)據(jù)。21、關(guān)于關(guān)鍵字class和typename,下列表述中正確的是()。A、程序中的typename都可以替換為classB、程序中的class都可以替換為typenameC、在模板形參表中只能用typename來(lái)聲明參數(shù)的類(lèi)型D、在模板形參表中只能用class或typename來(lái)聲明參數(shù)的類(lèi)型標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是class和typename兩個(gè)關(guān)鍵字。關(guān)鍵字class除了能用來(lái)定義類(lèi)以外還能用來(lái)聲明模板的虛擬類(lèi)型參數(shù)。在用作聲明虛擬類(lèi)型參數(shù)時(shí)typename與class可以互換,但不能使用typename來(lái)定義類(lèi);在模板形參表中除了可以用typename和class聲明虛擬類(lèi)型參數(shù)外,還可以使用普通類(lèi)型聲明常規(guī)函數(shù),故選項(xiàng)c錯(cuò)誤。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第6套一、選擇題(本題共23題,每題1.0分,共23分。)1、下列敘述中正確的是()。A、有一個(gè)以上根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是非線性結(jié)構(gòu)B、只有一個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)不一定是線性結(jié)構(gòu)C、循環(huán)鏈表是非線性結(jié)構(gòu)D、雙向鏈表是非線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在數(shù)據(jù)結(jié)構(gòu)中,樹(shù)這類(lèi)的數(shù)據(jù)結(jié)構(gòu)只有一個(gè)根結(jié)點(diǎn),但它不是線性結(jié)構(gòu)。2、下列各組類(lèi)型聲明符中,含義相同的一組是()。A、unsignedlongint和longB、signedshortint和shortC、unsignedshort和shortD、shortint和int標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是基本類(lèi)型和派生型。C++語(yǔ)言中,基本類(lèi)型的字長(zhǎng)及其取值范圍可以放大和縮小,改變后的類(lèi)型就叫做基本類(lèi)型和派生類(lèi)型。本題A選項(xiàng)中,unsignedlongint的省略形式為unsignedlong;選項(xiàng)B中,signedshortint的省略形式是short;選項(xiàng)c中,unsignedshort的省略形式是unsignedshort;選項(xiàng)D中,shortin的省略形式是short。3、下列敘述中正確的是A、棧是“先進(jìn)先出”的線性表B、隊(duì)列是“先進(jìn)后出”的線性表C、循環(huán)隊(duì)列是非線性結(jié)構(gòu)D、有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:棧是“先進(jìn)后出”,隊(duì)列“是先進(jìn)先出”。棧和隊(duì)列都是一種線性表,屬于線性結(jié)構(gòu)。有序線性表既可以采用順序存儲(chǔ)結(jié)構(gòu),也可以采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的線性表稱(chēng)之為線性鏈表。4、有如下程序:#include<iostream>usingnamespacestd;classTestClass{protected:TestClass(){cout<<’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)答
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人與企業(yè)合作合同范例
- 工程簽收合同范例
- 儀器標(biāo)簽采購(gòu)合同范例
- 林地用地流轉(zhuǎn)合同范例
- 校服服裝訂購(gòu)合同范例
- 賓館水電維護(hù)合同范例
- 涉外采礦合同范例
- 國(guó)外客戶傭金合同范例
- 展館合同范例
- 期房?jī)?nèi)部合同范例
- 校招面試官培訓(xùn)課件
- 初中九年級(jí)英語(yǔ)課件ReadingThe world in danger 市賽一等獎(jiǎng)
- 展覽館維修維護(hù)投標(biāo)方案
- 項(xiàng)目電氣工程師總結(jié)
- 陳赫賈玲小品《歡喜密探》臺(tái)詞劇本
- 2023招聘專(zhuān)員個(gè)人年終總結(jié)
- 國(guó)際郵輪產(chǎn)業(yè)及未來(lái)郵輪
- 水工建筑物考試試題及答案
- 多元回歸分析論文
- 小學(xué)第四季度意識(shí)形態(tài)分析研判報(bào)告
- 部編二年級(jí)語(yǔ)文上冊(cè) 培優(yōu)輔差測(cè)試記錄表
評(píng)論
0/150
提交評(píng)論