




版權(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ī)試(選擇題)模擬試卷6(共9套)(共343題)國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第1套一、選擇題(本題共38題,每題1.0分,共38分。)1、下面關(guān)于算法的敘述中,正確的是()。A、算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)B、算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止C、算法的空間復(fù)雜度是指算法程序中指令(或語(yǔ)句)的條數(shù)D、以上三種描述都正確標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:算法在運(yùn)行過(guò)程中需輔助存儲(chǔ)空間的大小稱為算法的空間復(fù)雜度。算法的有窮性是指一個(gè)算法必須在執(zhí)行有限的步驟以后結(jié)束。2、下列二叉樹(shù)描述中,正確的是()。A、任何一棵二叉樹(shù)必須有一個(gè)度為2的結(jié)點(diǎn)B、二叉樹(shù)的度可以小于2C、非空二叉樹(shù)有0個(gè)或1個(gè)根結(jié)點(diǎn)D、至少有2個(gè)根結(jié)點(diǎn)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:二叉樹(shù)是由n≥0個(gè)結(jié)點(diǎn)的有限集合構(gòu)成,此集合或者為空集,或者由一個(gè)根結(jié)點(diǎn)及兩棵互不相交的左右子樹(shù)組成,并且左右子樹(shù)都是二叉樹(shù)。二叉樹(shù)可以是空集合,根可以有空的左子樹(shù)或空的右子樹(shù)。二叉樹(shù)不是樹(shù)的特殊情況,它們是兩個(gè)概念。二叉樹(shù)具有如下兩個(gè)特點(diǎn):①非空二叉樹(shù)只有一個(gè)根結(jié)點(diǎn);②每一個(gè)結(jié)點(diǎn)最多有兩棵子樹(shù),且分別稱為該結(jié)點(diǎn)的左子樹(shù)與右子樹(shù)。3、如果進(jìn)棧序列為A,B,C,D,則可能的出棧序列是()。A、C,A,D,BB、B,D,C,AC、C,D,A,BD、任意順序標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:棧的操作原則為后進(jìn)先出。選項(xiàng)B)中出棧順序可按“A進(jìn),B進(jìn),B出,C進(jìn),D進(jìn),D出,C出,A出”實(shí)現(xiàn)。4、下列各選項(xiàng)中,不屬于序言性注釋的是()。A、程序標(biāo)題B、程序設(shè)計(jì)者C、主要算法D、數(shù)據(jù)狀態(tài)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:注釋一般為序言性注釋和功能性注釋。序言性注釋常位于程序開(kāi)頭部分,它包括程序標(biāo)題、程序功能說(shuō)明、主要算法、接口說(shuō)明、程序位置、開(kāi)發(fā)簡(jiǎn)歷、程序設(shè)計(jì)者、復(fù)審者、復(fù)審日期及修改日期等。功能性注釋一般嵌在源程序體之中,用于描述其后的語(yǔ)句或程序的主要功能。5、下列敘述中,不屬于軟件需求規(guī)格說(shuō)明書的作用的是()。A、便于用戶,開(kāi)發(fā)人員進(jìn)行理解和交流B、反映出用戶問(wèn)題的結(jié)構(gòu),可以作為軟件開(kāi)發(fā)工作的基礎(chǔ)和依據(jù)C、作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)D、便于開(kāi)發(fā)人員進(jìn)行需求分析標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件需求規(guī)格說(shuō)明書有以下幾個(gè)方面的作用:①便于用戶、開(kāi)發(fā)人員進(jìn)行理解和交流;②反映出用戶問(wèn)題的結(jié)構(gòu),可以作為軟件開(kāi)發(fā)工作的基礎(chǔ)和依據(jù);③作為確認(rèn)測(cè)試和驗(yàn)收的依據(jù)。6、下列不屬于軟件工程3個(gè)要素的是()。A、工具B、過(guò)程C、方法D、環(huán)境標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:軟件工程包括3個(gè)要素,即方法、工具和過(guò)程。方法是完成軟件工程項(xiàng)目的技術(shù)手段;工具支持軟件的開(kāi)發(fā)、管理、文檔生成;過(guò)程支持軟件開(kāi)發(fā)的各個(gè)環(huán)節(jié)的控制、管理。7、數(shù)據(jù)庫(kù)系統(tǒng)在其內(nèi)部具有3級(jí)模式,用來(lái)描述數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的全局邏輯結(jié)構(gòu)和特性的是()。A、外模式B、概念模式C、內(nèi)模式D、存儲(chǔ)模式標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:概念模式,也稱邏輯模式,是對(duì)數(shù)據(jù)庫(kù)系統(tǒng)中全局?jǐn)?shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶應(yīng)用公共數(shù)據(jù)視圖。它不涉及具體的硬件環(huán)境與平臺(tái),與具體的軟件環(huán)境也無(wú)關(guān)。8、將E-R圖轉(zhuǎn)換到關(guān)系模式時(shí),實(shí)體與聯(lián)系都可以表示成()。A、屬性B、關(guān)系C、記錄D、碼標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:E-R圖由實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系3個(gè)要素組成,關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合,將E-R圖轉(zhuǎn)換為關(guān)系模型:將實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式。如下表所示。9、某二叉樹(shù)中度為2的結(jié)點(diǎn)有10個(gè),則該二叉樹(shù)中有()個(gè)葉子結(jié)點(diǎn)。A、9B、10C、11D、12標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)二叉樹(shù)的性質(zhì)3:對(duì)任何一棵二叉樹(shù),度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。10、有如下程序:#includeusingnamespacestd;classA{public:A(){cout<<“A”;)~A(){cout<<“~A”;)};classB:publicA{A*p;public:B(){cout<<"B";p=newA;}~B(){cout<A、BAA~A~B~AB、ABA~B~A~AC、BAA~B~A~AD、ABA~A~B~A標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是類的構(gòu)造函數(shù)和析構(gòu)函數(shù)。派生類構(gòu)造函數(shù)的執(zhí)行順序?yàn)椋菏紫日{(diào)用基類的構(gòu)造函數(shù),調(diào)用順序按它們被繼承時(shí)說(shuō)明的順序;然后調(diào)用子對(duì)象的構(gòu)造函數(shù),調(diào)用順序按它們?cè)陬愔姓f(shuō)明的順序;最后是派生類構(gòu)造函數(shù)中的內(nèi)容。因此本題中,首先調(diào)用基類構(gòu)造函數(shù)輸出A,然后調(diào)用子對(duì)象的構(gòu)造函數(shù)輸出B,p=newA再調(diào)用類A的構(gòu)造函數(shù)輸出A;析構(gòu)函數(shù)的調(diào)用順序和構(gòu)造函數(shù)的調(diào)用順序相反。11、若有以下程序:#includeusingnamespacestd;classA{public:A(inti,intj){a=i;b=j;}voidmove(intx,inty){a+=x;b+=y;}voidshow(){cout<A、3,4B、6,8C、6,9D、4,3標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題的執(zhí)行過(guò)程如下:首先Bd(3,4);語(yǔ)句調(diào)用B類的構(gòu)造函數(shù):B(inti,intj),B的構(gòu)造函數(shù)中調(diào)用基類A的構(gòu)造函數(shù),使得a=3,b=4;d.fun(、)會(huì)調(diào)用函數(shù)move(3,5),使得(3,4)和(3,5)的對(duì)應(yīng)部分分別相加,最后輸出6,9。12、有如下程序:#includeusingnamespacestd;classTest{public:Test(){n+=2;)~Test(){n-=3;}staticintgetNum(){retumn;}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)解析:語(yǔ)句Test*p=newTest;會(huì)調(diào)用類的構(gòu)造函數(shù)Test(){n+=2;},使n的值由原來(lái)的1變?yōu)?,然后deletep調(diào)用類的析構(gòu)函數(shù)~Test(){n-=3;},因?yàn)閚是static型變量,所以會(huì)在3的基礎(chǔ)上減3使得輸出結(jié)果為0。13、假定MyClass為一個(gè)類,那么下列的函數(shù)說(shuō)明中,()為該類的析構(gòu)函數(shù)。A、void~MyClass():B、MyClass(intn);C、MyClass():D、~MyClass0:標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:CH語(yǔ)言中析構(gòu)函數(shù)為符號(hào)“~”加類名,且析構(gòu)函數(shù)沒(méi)有返回值和參數(shù),故前不加void關(guān)鍵字。所以正確的形式應(yīng)該是~MyClass()。14、下列情況中,不會(huì)調(diào)用拷叭構(gòu)造函數(shù)的是()。A、用一個(gè)對(duì)象去初始化同一類的另一一個(gè)新對(duì)象時(shí)B、將類的一個(gè)對(duì)象賦值給該類的另一個(gè)對(duì)象時(shí)C、函數(shù)的形參是類的對(duì)象,調(diào)用函數(shù)進(jìn)行形參和實(shí)參結(jié)合時(shí)D、函數(shù)的返回值是類的對(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)建的同類對(duì)象,它的一般格式是:類名::類名(const類名&引用對(duì)象名)。當(dāng)一個(gè)類的對(duì)象賦值給該類的另一個(gè)對(duì)象時(shí),是賦值而不是創(chuàng)建對(duì)象,所以不會(huì)調(diào)用拷貝構(gòu)造函數(shù)。15、下列有關(guān)拷貝構(gòu)造函數(shù)的描述中錯(cuò)誤的是()。A、拷貝構(gòu)造函數(shù)是一種構(gòu)造函數(shù)B、拷貝構(gòu)造函數(shù)與一般的構(gòu)造函數(shù)一樣,可以設(shè)置多個(gè)形參C、每一個(gè)類中都必須有一個(gè)拷貝構(gòu)造函數(shù)D、拷貝構(gòu)造函數(shù)的功能是用一個(gè)已知對(duì)象去初始化一個(gè)正在創(chuàng)建的對(duì)象標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù)是一個(gè)特殊的構(gòu)造函數(shù),它用一個(gè)己知的對(duì)象初始化一個(gè)正在創(chuàng)建的同類對(duì)象,它不能指定函數(shù)返回類型;只有一個(gè)參數(shù),是同類的某個(gè)對(duì)象名的引用。每一個(gè)類中都必須有一個(gè)拷貝構(gòu)造函數(shù),如果類中未聲明,編譯器會(huì)自動(dòng)生成一個(gè)公有的拷貝構(gòu)造函數(shù)。16、類MyClass的定義如下,若要對(duì)value賦值,則下面語(yǔ)句正確的是()。classMyClass{public:MyClass0{}MyClass(inti){value=newint(i):}int*value;};A、MyClassmy;my.value=10;B、MyClassmy;*my.value=10;C、MyClassmy;my.*value=10;D、MyClassmy(10);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:因題目中定義的指針value是指向變量i的,所以直接利用語(yǔ)句MyClass(inti)f,value=newint(i);}對(duì)value進(jìn)行賦值即可。17、若有如下程序:#includeusingnamespacestd;ints=0:classsample{staticintn;public:sample(inti){n=i;)staticvoidadd(){s+=n;)};intsample::n=0;intmain(){samplea(2),b(5);sample::add0;cout<A、2B、5C、7D、3標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:執(zhí)行語(yǔ)句“samplea(2),b(5)”;的結(jié)果是使n的值最終變?yōu)?,sample::add()語(yǔ)句調(diào)用函數(shù)staticvoidadd(),使得S=S+n=5。18、下列運(yùn)算符中不能在C++中重載的是()。A、?:B、+C、一D、<=標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是運(yùn)算符的有關(guān)概念。運(yùn)算符重載是針對(duì)C++原有運(yùn)算符進(jìn)行的,不能通過(guò)重載創(chuàng)造新的運(yùn)算符;除了.、.*、一>*、::、?:這五個(gè)運(yùn)算符之外,其他運(yùn)算符都可以重載。19、下列重載函數(shù)中,正確的是()。A、voidfun(inta,floatb);voidfun(intC,foatd)B、voidfun(inta,floatb);voidfun(floata,intb)C、floatfun(inta,floatb);intfun(intb,floata);D、intfun(inta,hatb);floatfun(inta,intb)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:所謂函數(shù)重載是指同一函數(shù)名可以對(duì)應(yīng)多個(gè)函數(shù)實(shí)現(xiàn)。進(jìn)行函數(shù)重載時(shí),要求同名函數(shù)在參數(shù)個(gè)數(shù)上不同,或者參數(shù)類型上不同。20、以下不正確的是()。A、語(yǔ)句for(i=0;;i++)表示無(wú)限循環(huán)B、for(;;)表示無(wú)限循環(huán)C、for()表示無(wú)限循環(huán)D、while(1)表示無(wú)限循環(huán)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:選項(xiàng)C)是一個(gè)錯(cuò)誤的for語(yǔ)句格式,for()語(yǔ)句中三個(gè)表達(dá)式可以省略。但是兩個(gè)分號(hào)(:)不能省略。21、有如下程序:intx=3;do{x一=2:count<A、1B、30C、1-2D、死循環(huán)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:第一次循環(huán)輸出1,第二二次循環(huán)輸出是-2。在輸出二次循環(huán)后!(-x)為0條件不滿足。停止循環(huán)。22、若有以下定義,說(shuō)法錯(cuò)誤的是()。inta=100,*p=&a:A、聲明變量P,其中*表示P是一個(gè)指針變量B、變量P經(jīng)初始化,獲得變量a的地址C、變量P只可以指向一個(gè)整型變量D、變量P的值為100標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:p是一個(gè)指針,用來(lái)存儲(chǔ)a變量的地址,而100是存儲(chǔ)在該地址的一個(gè)值用p表示的為*p。23、若已定義inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0A、a[p—a]B、*(&a[i])C、p[i]D、a[10]標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)組有N個(gè)元素,則數(shù)組元素引用為a(0)~a(N.1),共計(jì)N個(gè),沒(méi)有a(10)i塞個(gè)元素,最后的元素是a(9)。24、有如下程序:#includeusingnamespacestd;classsample{private:intx,y;public:sample(inti,intj){x=i:y=j;}voiddisp0{cout<<“disp1”<A、disp1B、disp2C、disp1disp2D、程序編譯時(shí)出錯(cuò)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:因?yàn)閷?duì)象a被定義為常對(duì)象,所以a.disp()語(yǔ)句調(diào)用的是類的常成員函數(shù)voiddisp()const,輸出的結(jié)果是disp2。25、有如下類的定義,橫線處的語(yǔ)句是()。classTestClass{________intx,y;public:TestClass(inta=0,intb=0){X=a:y=b;}staticvoidchange(){y-=10;y一=10;}};A、publicB、privateC、staticD、protected標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:因?yàn)閟taticvoidchange()為靜態(tài)函數(shù),靜態(tài)函數(shù)主要訪問(wèn)靜態(tài)數(shù)據(jù),不訪問(wèn)非靜態(tài)數(shù)據(jù)。所以函數(shù)中訪問(wèn)了數(shù)據(jù)y,所以下劃線的數(shù)據(jù)類型應(yīng)對(duì)應(yīng)為static。26、有如下程序:#includeusingnamespacestd;classTestClass{protected:TestClass(){cout<<‘x’;}TestClass(charc){cout<A、yB、yxC、xyD、yy標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:程序中的類TestClass為基類,TestClassl為TestClass的派生類。由main主函數(shù)入手,定義TestClass1類型的對(duì)象d1,參數(shù)值為y。TestClassl類繼承17estClass,所以主函數(shù)中“TestClassldl(V);”語(yǔ)句首先調(diào)用調(diào)用基類中的“TestClass(){cout<<‘x’;}”輸出x,然后調(diào)用“TestClassl(charc){cout<27、下面是關(guān)于派生類聲明的開(kāi)始部分,其中正確的是()。A、classvirtualB:publicAB、virtualclassB:publicAC、classB:publicAvirtualD、classB:virtualpublicA標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:聲明派生類的~一般形式為:class派生類名:[繼承方式]基類名。其中繼承方式包括:oublic,private,protected,而virtual為C++中的關(guān)鍵字。虛函數(shù)的使用方法是在基類用virtual聲明成員函數(shù)為虛函數(shù)。28、在函數(shù)中,可以用auto、extern、register和static這四個(gè)關(guān)鍵字中的一個(gè)來(lái)說(shuō)明變量的存儲(chǔ)類型,如果不說(shuō)明存儲(chǔ)類型,則默認(rèn)的存儲(chǔ)類型是()。A、autoB、externC、registerD、static標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是存儲(chǔ)類型。C++語(yǔ)言變量的存儲(chǔ)類型分為如下幾種類型:auto一一函數(shù)內(nèi)部的局部變量;static一一靜態(tài)存儲(chǔ)分配:extern…全局變量;register一一變量存儲(chǔ)在硬件寄存器中。29、若有以下程序:#includeusingnamespacestd;classTestClass{public:voidwhoO{cout<<“TestClass”<who();return0:}則該程序運(yùn)行后的輸出結(jié)果是()。A、TestClass1B、TestClassC、0D、無(wú)輸出標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:程序中的TestClasl為TestClass的派生類,主函數(shù)。main中定義TestClass對(duì)象*p,TestClassl對(duì)象obj1,然后p引用obj1,執(zhí)行p->who()則是調(diào)用基類中的who函數(shù),輸出TestClass。30、下列有關(guān)繼承和派生的敘述中,正確的是()。A、如果一個(gè)派生類私有繼承其基類,則該派生類對(duì)象不能訪問(wèn)基類的保護(hù)成員B、派生類的成員函數(shù)可以訪問(wèn)基類的所有成員C、基類對(duì)象可以賦值給派生類對(duì)象D、如果派生類沒(méi)有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)抽象類標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:如果派生類私有繼承基類,不能訪問(wèn)基類中的私有成員,所以A)、B)是錯(cuò)誤的。派生類是對(duì)基類的具體化,所以C)錯(cuò)誤的。如果派生類沒(méi)有實(shí)現(xiàn)基類的一個(gè)純虛函數(shù),則該派生類是一個(gè)抽象類,即選擇D)。31、下面敘述錯(cuò)誤的是()。A、派生類可以使用private派生B、對(duì)基類成員的訪問(wèn)必須是無(wú)二義性的C、基類成員的訪問(wèn)能力在派生類中維持不變D、賦值兼容規(guī)則也適用于多繼承的組合標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:在建立派生類的時(shí)候,并不是簡(jiǎn)單地把基類的私有成員直接作為派生類的私有成員,把基類的公用成員直接作為派生類的公用成員。涉及如何確定基類的成員在派生類中的訪問(wèn)屬性問(wèn)題,不僅要考慮對(duì)基類成員所聲明的訪問(wèn)屬性,還要考慮派生類所聲明的對(duì)基類的繼承方式,根據(jù)這兩個(gè)因素共同決定基類成員在派生類中的訪問(wèn)屬性。所以本題選擇C)。32、下列程序的輸出結(jié)果為2,橫線處應(yīng)添加語(yǔ)句()。#includeusingnamespacestd;classTestClass1{public:voidfun(){cout<<1;}};classTestClass2:publicTestClass1{public:voidfun0{cout<<2;)};intmain(){TestClass1*p=newTestClass2;p->fun();deletep;retum0:}A、publicB、privateC、virtualD、protected標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由主函數(shù)main入手,定義TestClass1類的指針對(duì)象p指向派生類TestClass2。因?yàn)榛惡团缮愔卸加衒un函數(shù),題目要求輸出為2,就是基類對(duì)象訪問(wèn)派生類中fun函數(shù)。通過(guò)虛函數(shù)與指向基類對(duì)象的指針變量的配合使用,就能方便調(diào)用同名函數(shù)。所以這里將基類中的fun函數(shù)聲明為virtual。并且當(dāng)一個(gè)成員函數(shù)被聲明為虛函數(shù)后,其派生類中的同名函數(shù)自動(dòng)成為虛函數(shù)。33、要使程序執(zhí)行后的輸出結(jié)果為ABCD,應(yīng)在橫線處添加語(yǔ)句()。#includeusingnamespacestd;classA{public:A(){cout<<~A;}};classB:________{public:B0{cout<<’B’;}};classC:virtualpublicA{public:C(){cout<<’C’;)};classD:publicB,publicC{public:DO{cout<<’D’;}};voidmain(){Dobj;}A、publicAB、privateAC、protectedAD、virtualpublicA標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:由主函數(shù)main入手,定義了類D對(duì)象obj。其中D為類B和C的公有繼承,A是C的虛基類。題目中要求的輸出結(jié)果為“ABCD”,依次為類A,類B,類C,類D中構(gòu)造函數(shù)的輸出語(yǔ)句。為了保證基類通過(guò)多條路徑被派生類繼承時(shí),即保證A只被繼承一次,輸出一個(gè)A,所以不但需要聲明A為C的虛基類,同樣也要聲明A為B的虛基類。34、下面的描述中,正確的是()。A、virtual可以用來(lái)聲明虛函數(shù)B、含有純虛函數(shù)的類是不可以用來(lái)創(chuàng)建對(duì)象的,因?yàn)樗翘摶怌、即使基類的構(gòu)造函數(shù)沒(méi)有參數(shù),派生類也必須建立構(gòu)造函數(shù)D、靜態(tài)數(shù)據(jù)成員可以通過(guò)成員初始化列表來(lái)初始化標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在基類中用virtual聲明成員函數(shù)為虛函數(shù),所以A是正確的。純虛函數(shù)是在聲明虛函數(shù)時(shí)被“初始化”為0的虛函數(shù)。純虛函數(shù)是一種特殊的虛函數(shù),它沒(méi)有具體的實(shí)現(xiàn)。靜態(tài)數(shù)據(jù)成員函數(shù)只能在類外進(jìn)行初始化。35、若要把函數(shù)voidfun0定義為TestClass的友元函數(shù),則應(yīng)該在類TestClass的定義中加入的語(yǔ)句是()。A、voidfriendfun()B、friendfun()C、friendvoidfun()D、TestClassvoidfun()標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:如果在類以外的其他地方定義了一個(gè)函數(shù),在類體中用friend對(duì)該函數(shù)進(jìn)行聲明,此函數(shù)就稱為本類的友元函數(shù)。因?yàn)楹瘮?shù)為voidfun(),根據(jù)友元定義補(bǔ)全語(yǔ)句為“friendvoidfun();”。36、已知遞歸函數(shù)fun的定義如下:intfun(hatn){iffn<=1)retum1;//遞歸結(jié)束情況elsereturnn*fun(n-2);//遞歸}則函數(shù)調(diào)用語(yǔ)句fun(S)的返回值是()。A、5B、12C、15D、30標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:遞歸函數(shù)fun被定義為含有參數(shù)intn,返回整型。其中fun函數(shù)遞歸調(diào)用本身,當(dāng)n=1時(shí),fun返回1,如果大于1那么執(zhí)行n*fun(n一21。所以,當(dāng)n等于5時(shí),執(zhí)行5*fun(3);當(dāng)3時(shí)繼續(xù)調(diào)用fun,3*fun(1),即fun(5)=5*(3*fun(1)),答案為15。37、字面常量42、4.2、42L的數(shù)據(jù)類型分別是()。A、long,double,intB、long,float,intC、int,double,longD、int,float,long標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的知識(shí)點(diǎn)是字面常量。對(duì)于整型字面常量,只要沒(méi)有超過(guò)C++中整數(shù)所能表示的范圍,C++將自動(dòng)按整數(shù)來(lái)存儲(chǔ)此數(shù),也可以通過(guò)在整型字面常量后添加u或1來(lái)指定無(wú)符號(hào)整數(shù)或長(zhǎng)整數(shù)來(lái)存儲(chǔ);對(duì)于實(shí)型字面常量,C++將自動(dòng)按照雙精度數(shù)來(lái)存儲(chǔ),也可以通過(guò)在實(shí)型字面常量后添加f來(lái)指定按單精度數(shù)存儲(chǔ)。38、下列有關(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ì)將在類的說(shuō)明部分定義的函數(shù)認(rèn)定為內(nèi)聯(lián)函數(shù),所以選項(xiàng)B)錯(cuò)誤;內(nèi)聯(lián)函數(shù)只是比普通函數(shù)有更高的執(zhí)行效率。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第2套一、選擇題(本題共37題,每題1.0分,共37分。)1、算法的時(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)度量算法的工作量。2、以下數(shù)據(jù)結(jié)構(gòu)中,屬于非線性數(shù)據(jù)結(jié)構(gòu)的是()。A、,棧B、線性表C、隊(duì)列D、二叉樹(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:二叉樹(shù)屬于非線性結(jié)構(gòu)。棧是一種特殊的線性表,這種線性表只能在固定的一端進(jìn)行插入和刪除操作;隊(duì)列可看作是插入在一端進(jìn)行,刪除在另一端進(jìn)行的線性表。3、數(shù)據(jù)結(jié)構(gòu)中,與所使用的計(jì)算機(jī)無(wú)關(guān)的是數(shù)據(jù)的()。A、存儲(chǔ)結(jié)構(gòu)B、物理結(jié)構(gòu)C、邏輯結(jié)構(gòu)D、線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:數(shù)據(jù)的邏輯結(jié)構(gòu)反映的是數(shù)據(jù)元素之間的邏輯關(guān)系,與使用的計(jì)算機(jī)無(wú)關(guān)。4、內(nèi)聚性是對(duì)模塊功能強(qiáng)度的衡量,下列選項(xiàng)中,內(nèi)聚性較弱的是()。A、順序內(nèi)聚B、偶然內(nèi)聚C、時(shí)間內(nèi)聚D、邏輯內(nèi)聚標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:內(nèi)聚是從功能角度來(lái)衡量模塊的聯(lián)系,它描述的是模塊內(nèi)的功能聯(lián)系。內(nèi)聚有如下種類,它們之間的內(nèi)聚度由弱到強(qiáng)排列:偶然內(nèi)聚——模塊中的代碼無(wú)法定義其不同功能的調(diào)用。但它使該模塊能執(zhí)行不同的功能,這種模塊為巧合強(qiáng)度模塊。邏輯內(nèi)聚——這種模塊把幾種相關(guān)的功能組合在一起,每次被調(diào)用時(shí),由傳送給模塊的參數(shù)來(lái)確定該模塊應(yīng)完成哪一種功能。時(shí)間內(nèi)聚——這種模塊順序完成一類相關(guān)功能,比如初始化模塊,它順序地為變量置初值。過(guò)程內(nèi)聚——如果一個(gè)模塊內(nèi)的處理元素是相關(guān)的,而且必須以特定次序執(zhí)行,則稱為過(guò)程內(nèi)聚。通信內(nèi)聚——這種模塊除了具有過(guò)程內(nèi)聚的特點(diǎn)外,還有另外一種關(guān)系,即它的所有功能都通過(guò)使用公用數(shù)據(jù)而發(fā)生關(guān)系。順序內(nèi)聚——如果一個(gè)模塊內(nèi)各個(gè)處理元素和同一個(gè)功能密切相關(guān),而且這些處理必須順序執(zhí)行,處理元素的輸出數(shù)據(jù)作為下一個(gè)處理元素的輸入數(shù)據(jù),則稱為順序內(nèi)聚。功能內(nèi)聚——如果一個(gè)模塊包括為完成某一具體任務(wù)所必需的所有成分,或者說(shuō)模塊中所有成分結(jié)合起來(lái)是為了完成一個(gè)具體的任務(wù),此模塊則為功能內(nèi)聚模塊。5、在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個(gè)鍵,它們稱為該表的()。A、連接碼B、關(guān)系碼C、外碼D、候選碼標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在關(guān)系中凡能惟一標(biāo)識(shí)元組的最小屬性集稱為該表的鍵或碼。二維表中可能有若干個(gè)鍵,它們稱為該表的候選碼或候選鍵。從二維表的所有候選鍵中選取一個(gè)作為用戶使用的鍵稱為主鍵或主碼。6、檢查軟件產(chǎn)品是否符合需求定義的過(guò)程稱為()。A、確認(rèn)測(cè)試B、需求測(cè)試C、驗(yàn)證測(cè)試D、路徑測(cè)試標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:確認(rèn)測(cè)試的任務(wù)是驗(yàn)證軟件的功能和性能,以及其他特性是否滿足需求規(guī)格說(shuō)明中確定的各種需求。7、數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標(biāo)識(shí)的圖符不屬于數(shù)據(jù)流圖合法圖符的是()。A、控制流B、加工C、存儲(chǔ)文件D、源和潭標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)流圖用于抽象描述一個(gè)軟件的邏輯模型,它由一些特定的圖符構(gòu)成,包括4個(gè)方面,即加工、數(shù)據(jù)流、存儲(chǔ)文件、源和潭。8、待排序的關(guān)鍵碼序列為(15,20,9,30,67,65,45,90),要按關(guān)鍵碼值遞增的順序排序,采取簡(jiǎn)單選擇排序法,第一趟排序后關(guān)鍵碼15被放到第()個(gè)位置。A、2B、3C、4D、5標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選擇排序的基本思想是掃描整個(gè)線性表,從中選出最小的元素,將它交換到表的最前面,然后對(duì)剩下的子表采用同樣的方法,直到子表為空。所以第一趟排序后,將選出最小的元素9放在第一個(gè)位置,元素15則放在第二個(gè)位置。9、對(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)系中的所有元組。10、下列選項(xiàng)中,不屬于數(shù)據(jù)管理員(DBA)職責(zé)的是()。A、數(shù)據(jù)庫(kù)維護(hù)B、數(shù)據(jù)庫(kù)設(shè)計(jì)C、改善系統(tǒng)性能,提高系統(tǒng)效率D、數(shù)據(jù)類型轉(zhuǎn)換標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理員(DataBaseAdministrator,DBA)是指對(duì)數(shù)據(jù)庫(kù)的規(guī)劃、設(shè)計(jì)、維護(hù)、監(jiān)視等的人員,其主要工作如下:.?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)。DBA的主要任務(wù)之一是數(shù)據(jù)庫(kù)設(shè)計(jì),具體地說(shuō)是進(jìn)行數(shù)據(jù)模式的設(shè)計(jì)。.?dāng)?shù)據(jù)庫(kù)維護(hù)。DBA必須對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)安全性、完整性、并發(fā)控制及系統(tǒng)恢復(fù)、數(shù)據(jù)定期轉(zhuǎn)儲(chǔ)等進(jìn)行實(shí)施與維護(hù)。.改善系統(tǒng)性能,提高系統(tǒng)效率。DBA必須隨時(shí)監(jiān)視數(shù)據(jù)庫(kù)的運(yùn)行狀態(tài),不斷調(diào)整內(nèi)部結(jié)構(gòu),使系統(tǒng)保持最佳狀態(tài)與效率。11、假定MyClass為一個(gè)類,則該類的拷貝構(gòu)造函數(shù)的聲明語(yǔ)句為()。A、MyClass(MyClassx);B、MyClass(MyClass&x);C、MyClass(&x);D、MyClass(x);標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù)也是構(gòu)造函數(shù),所以函數(shù)名字為MyClass,但它只有一個(gè)參數(shù),這個(gè)參數(shù)是本類的對(duì)象,即x;而且采用對(duì)象的引用的形式,也就是&x。所以本題答案是B)。12、下列函數(shù)的功能是判斷字符串str是否對(duì)稱,對(duì)稱則返回true,否則返回false,則橫線處應(yīng)填上()。Boolfun(ehar*str){inti=0,i=0;while(strD])j++;for([j--;iA、>--B、‖C、&&D、<==標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:while循環(huán)取串長(zhǎng)度,賦值給i,然后在for循環(huán)中由串兩邊開(kāi)始向中間進(jìn)行字符比較,當(dāng)最后i和j標(biāo)識(shí)字符位置的變量相等,那么奇數(shù)個(gè)字符,或者i大于i時(shí)那么偶數(shù)個(gè)字符,則表示是對(duì)稱的。13、有以下程序段:#include#defineMAX(x,y)(x)>(y)?(x):(y)voidmain(){inti,j,k;i=10;j=15;k=MAX(i,j)*10;cout<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,j)”的值為15,所以“k=MAX(i,i)*10;”答案為:150。14、定義如下枚舉類型enum{Monday,Tuesday,Wednesday,Thrusday,F(xiàn)riday=2};表達(dá)式Wednesday==Friday的值是()。A、falseB、trueC、2D、異常標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:enum<枚舉類型名>{<枚舉元素表>};其中:關(guān)鍵詞“enum”表示定義的是枚舉類型,枚舉類型名由標(biāo)識(shí)符組成,而枚舉元素表由枚舉元素或枚舉常量組成。本題中的枚舉類型中的數(shù)據(jù)值Wednesdav為2,而Fridayr的值賦值為2,所以判斷Wednesdayr等于Fridav的表達(dá)式值為真,即true。15、以下程序運(yùn)行后的輸出結(jié)果是()。#includevoidmain(){chara[]="abbcabbcabbc";inti=0,j=0,k=0;while(a[i]){if(a[i]==’a’)j++;if(a[i]==’b’)k++;i++:}cout<A、2,6B、3,5C、4,7D、3,6標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:程序中首先定義字符數(shù)組a,然后在while循環(huán)中統(tǒng)計(jì)字符a和b的個(gè)數(shù)。其中j記錄a的個(gè)數(shù),k記錄b的個(gè)數(shù)。,第一個(gè)if語(yǔ)句是當(dāng)?shù)趇個(gè)字符為a時(shí),i加1;第二個(gè)if語(yǔ)句是當(dāng)?shù)趇個(gè)字符為b時(shí),k加1。16、假定a=3,下列程序的運(yùn)行結(jié)果是()。#includeintfun(intn);voidmain(){cout<<"Pleaseinputanumber:";inta,result=0;cin>>a;result=fun(a);tout<A、4B、8C、9D、20標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由程序main主函數(shù)入手,調(diào)用fun函數(shù)獲得返回值result輸出。題目中假定a=3,即調(diào)用語(yǔ)句fun(a)中的輸入?yún)?shù)為a,進(jìn)入fun函數(shù),在for循環(huán)中當(dāng)i小于等于n,即輸入?yún)?shù)3時(shí),循環(huán)3次執(zhí)行“p*=i;restllt+=p:”語(yǔ)句。即執(zhí)行三次p=p*i,result=restult+p.result的結(jié)果為9返回的fun函數(shù)結(jié)果為9,即“cout<17、下列關(guān)于指針的運(yùn)算中,()是非法的。A、兩個(gè)指針在一定條件下,可以進(jìn)行相等或不等的比較運(yùn)算B、可以將一個(gè)空指針賦值給某個(gè)指針C、一個(gè)指針可以加上兩個(gè)整數(shù)之差D、兩個(gè)指針在一定條件下可以相加標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:指針變量如果指向一個(gè)數(shù)組的元素,則可以進(jìn)行比較,所以A)是正確的。指針變量的賦值就是將一個(gè)變量地址賦給一個(gè)指針變量。并且指針變量可以是空值,即該指針不指向任何變量。B)同樣也是正確的。指針變量加/減一個(gè)整數(shù)是將該指針變量的原值(是一個(gè)地址)和它指向的變量所占用的內(nèi)存單元字節(jié)數(shù)相加或相減。即C)也是正確的。如果兩個(gè)指針指向同一個(gè)數(shù)組元素,兩個(gè)指針是可以相減的,杯識(shí)兩個(gè)指針之間的元素個(gè)數(shù)。但是它們是不可相加的。18、下面程序的輸出結(jié)果為()。#includevoidmain(){intx;int&y=x;∥變量引用31=99;cout<<"x="<A、x=99B、x=9C、x=0D、異常標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序中的“int&y=x:”語(yǔ)句中的“&”引用運(yùn)算符。&y=x語(yǔ)句可以理解為y,具有x的地址,所以y的值99,x的值也是99,所以答案是x=99。19、下面程序輸出的結(jié)果為()。#includevoidfun(inta,intb){inttemp;temp=a;a=b;b=temp;}voidmain(){intm,n;m=1;n=2:fun(m,n);cout<A、12B、21C、22D、程序有錯(cuò)誤標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)fun中定義的參數(shù)a和b為形式參數(shù),它們并不是實(shí)際存在的數(shù)據(jù),只有在發(fā)生函數(shù)調(diào)用時(shí)才被分配內(nèi)行空間,結(jié)束后,形參所占有的內(nèi)存單元也被釋放。并且函數(shù)fun沒(méi)有返回值,它做的交換操作,并不能影響實(shí)際參數(shù)m和n。所以輸出值保持不變,仍然是1和2,即輸出:12。20、對(duì)數(shù)組名作函數(shù)的參數(shù),下面描述正確的是()。A、數(shù)組名作函數(shù)的參數(shù),調(diào)用時(shí)將實(shí)參數(shù)組復(fù)制給形參數(shù)組B、數(shù)組名作函數(shù)的參數(shù),主調(diào)函數(shù)和被調(diào)函數(shù)共用一段存儲(chǔ)單元C、數(shù)組名作參數(shù)時(shí),形參定義的數(shù)組長(zhǎng)度不能省略D、數(shù)組名作參數(shù),不能改變主調(diào)函數(shù)中的數(shù)據(jù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)組作為參數(shù)實(shí)參傳遞的是數(shù)組的首地址。所以主函數(shù)和被調(diào)函數(shù)共用一段存儲(chǔ)單元。21、關(guān)于靜態(tài)成員的描述中,錯(cuò)誤的是()。A、靜態(tài)成員可分為靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)B、靜態(tài)數(shù)據(jù)成員定義后必須在類體內(nèi)進(jìn)行初始化C、靜態(tài)數(shù)據(jù)成員初始化不使用其構(gòu)造函數(shù)D、靜態(tài)數(shù)據(jù)成員函數(shù)中不能直接引用非靜態(tài)成員標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:可以在類的構(gòu)造函數(shù)中對(duì)靜態(tài)數(shù)據(jù)成員進(jìn)行初始化。22、下列關(guān)于構(gòu)造函數(shù)的描述中,錯(cuò)誤的是()。A、構(gòu)造函數(shù)可以設(shè)置默認(rèn)的參數(shù)B、構(gòu)造函數(shù)在定義類對(duì)象時(shí)自動(dòng)執(zhí)行C、構(gòu)造函數(shù)可以是內(nèi)聯(lián)函數(shù)D、構(gòu)造函數(shù)不可以重載標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在一個(gè)個(gè)類中可以定義多個(gè)構(gòu)造函數(shù),以便對(duì)類對(duì)象提供不同的初始化的方法,供用戶選用。這些構(gòu)造函數(shù)具有相同的名字,而參數(shù)的個(gè)數(shù)或參數(shù)的類型不相同。23、有以下程序,輸出結(jié)果()。#includevoidmain(){staticintb[][3]={{1,2,3},{4},{5,6}};b[0][2]=12,b[1][2]=18;cout<<**b<<"\t"<<**(b+1)<<"\t"<<**(b+1)<<"\t"<<*(*(b+1)+2)<<"\n";cout<A、1441830B、114418C、441811D、444301標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題b是一個(gè)3×3的二維數(shù)組:利用指針表示數(shù)組:*(*數(shù)組名-i)+j)**b表示b[0][0]元素,值是1,**(b+1)表示是b[0][1]的元素,值是4。*(*(b+1)+2)表示b[1][2]的元素,值是18,b[0][2]+b[1][2]+b[2][2]之和是30。24、下列程序的輸出結(jié)果是()。#includeusingnamespacestd;voidfun(int&r){r*=2;}intmain(){intn=50;fun(n);cout<A、0B、20C、50D、100標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:題中主程序中首先定義整型變量n=50,然后調(diào)用函數(shù)fun,實(shí)際參數(shù)為n。函數(shù)fun中參數(shù)為引用,為地址。即函數(shù)中形參的改變會(huì)影響實(shí)參的值,函數(shù)的功能是參數(shù)乘以2。25、下列說(shuō)法中錯(cuò)誤的是()。A、公有繼承時(shí)基類中的public成員在派生類中仍是public的B、公有繼承時(shí)基類中的private成員在派生類中仍是prirate的C、私有繼承時(shí)基類中的public成員在派生類中是private的D、保護(hù)繼承時(shí)基類中的public成員在派生類中是protected的標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是繼承時(shí)基類成員屬性改變。選項(xiàng)B)中,公有繼承時(shí)基類中的private成員在派生類中不是private的,而是不可訪問(wèn)的。所以選項(xiàng)B)錯(cuò)誤;其他選項(xiàng)敘述均正確。26、多繼承的構(gòu)造順序可分為如下四步:①所有非虛基類的構(gòu)造函數(shù)按照它們被繼承的順序構(gòu)造②所有虛基類的構(gòu)造函數(shù)按照它們被繼承的順序構(gòu)造③所有子對(duì)象的構(gòu)造函數(shù)按照它們聲明的順序構(gòu)造④派生類自己的構(gòu)造函數(shù)體這四個(gè)步驟的正確順序是()。A、④③①②B、②④③①C、②①③④D、③④①②標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:多繼承派生類的構(gòu)造順序是:首先調(diào)用虛基類的構(gòu)造函數(shù),然后調(diào)用非虛基類的構(gòu)造函數(shù)按照它們被繼承的順序構(gòu)造,其次調(diào)用子對(duì)象的構(gòu)造函數(shù),最后是派生類構(gòu)造函數(shù)中的內(nèi)容。27、下面關(guān)于構(gòu)造函數(shù)和析構(gòu)函數(shù)的描述中,錯(cuò)誤的是()。A、析構(gòu)函數(shù)可以聲明為虛函數(shù)B、對(duì)虛析構(gòu)函數(shù)的調(diào)用可以采用動(dòng)態(tài)聯(lián)編C、一個(gè)類的虛函數(shù)僅對(duì)派生類中重定義的函數(shù)起作用,對(duì)其他函數(shù)沒(méi)有影響D、構(gòu)造函數(shù)可以聲明為虛函數(shù)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:析構(gòu)函數(shù)可以聲明為虛函數(shù),但是構(gòu)造函數(shù)不能聲明為虛函數(shù);類的虛函數(shù)僅對(duì)派生類中重定義的函數(shù)起作用,對(duì)其他函數(shù)沒(méi)有影響。28、設(shè)有以下定義和程序:#includeclassA1{public:voidshow1(){cout<<"classA1"<A、obj1.showl();B、obj2.show1();C、obj3.showl();D、obj2.show2();標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:由于classA3:protectedA2,所以類A3的對(duì)象obi3不能直接訪問(wèn)基類A1的成員函數(shù)showlf),所以選項(xiàng)C)是錯(cuò)誤的;其他選項(xiàng)均有訪問(wèn)的權(quán)限,正確。29、下列關(guān)于運(yùn)算符重載的描述中,正確的是()。A、運(yùn)算符重載可以改變運(yùn)算符的操作數(shù)的個(gè)數(shù)B、運(yùn)算符重載可以改變優(yōu)先級(jí)C、運(yùn)算符重載可以改變結(jié)合性D、運(yùn)算符重載不可以改變語(yǔ)法結(jié)構(gòu)標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:重載的運(yùn)算符仍要保持其原來(lái)的操作數(shù)、優(yōu)先級(jí)和結(jié)合性不變。30、下面程序的輸出結(jié)果是()。#include#includeusingnamespacestd;classpoint{private:doublex:doubley;public:point(doublea,doubleb){x=a;y=b;}frienddoubledistances(pointa,pointb);};doubledistances(pointa,pointb){returnsqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));}intmain(){pointp1(1,2);pointp2(5,2);cout<A、2B、4C、8D、16標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:分析題目,最終要實(shí)現(xiàn)的結(jié)果是sqrt((a.x—b.x)*(a.x—b.x)+(a.y—b.y)*(a.y—b.y)),其中的a.x和a.y分別指p1(1,2)中的1和2。這樣容易得到結(jié)果是(1-5)*(1-5)+(2-2)*(2-2)=16,再開(kāi)方得到結(jié)果為4。31、有以下程序:#includeusingnamespacestd;classR{public:R(intr1,intr2){R1=r1;R2=r2;}voidprim();voidprintoconst;private:intR1,R2;};voidR::print(){cout<A、5,4B、4,5C、20,52D、52,20標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題中,語(yǔ)句Ra(5,4)調(diào)用構(gòu)造函數(shù)R(intr1,intr2),但未有輸出結(jié)果;b.print();調(diào)用常成員函數(shù)(因?yàn)閎是常對(duì)象)voidprint()const,輸出結(jié)果是20,52。32、下列程序的輸出結(jié)果是()。#includeusingnamespacestd;templateTfun(Ta,Tb){return(a<=b)?a:b;)intmain(){cout<A、0,3.14B、3,3.14C、3,3D、3.14,3.14標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此函數(shù)模板的功能是輸出a、b兩數(shù)中較小的那個(gè)數(shù)。(3,6)輸出3,(3.14F,6.28F)輸出3。14。33、如果一個(gè)模板聲明列出了多個(gè)參數(shù),則每個(gè)參數(shù)之間必須使用逗號(hào)隔開(kāi),每個(gè)參數(shù)都必須使用()關(guān)鍵字來(lái)修飾。A、constB、staticC、voidD、class標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:如果一個(gè)模板聲明列出了多個(gè)參數(shù),則每個(gè)參數(shù)之間必須使用逗號(hào)隔開(kāi),每個(gè)參數(shù)都必須使用class關(guān)鍵字來(lái)修飾。34、下列關(guān)于this指針的敘述中,正確的是()。A、this指針是一個(gè)隱含指針,它隱含于類的成員函數(shù)中B、只有在使用this時(shí),系統(tǒng)才會(huì)將對(duì)象的地址賦值給thisC、類的友元函數(shù)也有this指針D、this指針表示了成員函數(shù)當(dāng)前操作的數(shù)據(jù)所屬的對(duì)象標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:this指針是成員函數(shù)所屬對(duì)象的指針,它指向類對(duì)象的地址;它隱含于每個(gè)類的非靜態(tài)成員函數(shù)中;this指針只能在類的成員函數(shù)中使用,它指向該成員函數(shù)被調(diào)用的對(duì)象;靜態(tài)成員函數(shù)沒(méi)有this指針,因?yàn)轭愔兄挥幸粋€(gè)靜態(tài)成員函數(shù)實(shí)例,使用this指針無(wú)意義。35、下列有關(guān)函數(shù)重載的敘述中,錯(cuò)誤的是()。A、函數(shù)重載就是用相同的函數(shù)名定義多個(gè)函數(shù)B、重載函數(shù)的參數(shù)列表必須不同C、重載函數(shù)的返回值類型必須不同D、重載函數(shù)的參數(shù)可以帶有默認(rèn)值標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查的是函數(shù)重載的概念。在C++語(yǔ)言中,允許定義一系列函數(shù)名相同,但形參的個(gè)數(shù)和類型不完全相同的函數(shù),即函數(shù)的重載。重載函數(shù)對(duì)返回值類型不做要求,返回值類型也不參與區(qū)分函數(shù)的重載形式。故選項(xiàng)C)錯(cuò)誤。36、對(duì)于一個(gè)類定義,下列敘述中錯(cuò)誤的是()。A、如果沒(méi)有定義拷貝構(gòu)造函數(shù),編譯器將生成一個(gè)拷貝構(gòu)造函數(shù)B、如果沒(méi)有定義缺省的構(gòu)造函數(shù),編譯器將一定生成一個(gè)缺省的構(gòu)造函數(shù)C、如果沒(méi)有定義構(gòu)造函數(shù),編譯器將生成一個(gè)缺省的構(gòu)造函數(shù)和一個(gè)拷貝構(gòu)造函數(shù)D、如果已經(jīng)定義了構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù),編譯器不會(huì)生成任何構(gòu)造函數(shù)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是構(gòu)造函數(shù)。如果一個(gè)類中沒(méi)有定義任何構(gòu)造函數(shù),編譯器將生成一個(gè)不帶參數(shù)的公有缺省構(gòu)造函數(shù)。但只要定義了一個(gè)任意的構(gòu)造函數(shù),就不會(huì)生成缺省構(gòu)造函數(shù)了。37、下列關(guān)于派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的說(shuō)法中,錯(cuò)誤的是()。A、派生類的構(gòu)造函數(shù)會(huì)隱含調(diào)用基類的構(gòu)造函數(shù)B、如果基類中沒(méi)有缺省構(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í)行過(guò)程和構(gòu)造函數(shù)嚴(yán)格相反,即:對(duì)派生類新增普通成員進(jìn)行清理;調(diào)用成員對(duì)象析構(gòu)函數(shù),調(diào)用基類析構(gòu)函數(shù)對(duì)基類進(jìn)行清理。國(guó)家二級(jí)C++機(jī)試(選擇題)模擬試卷第3套一、選擇題(本題共35題,每題1.0分,共35分。)1、在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開(kāi)發(fā)階段是()。A、邏輯設(shè)計(jì)B、需求分析C、詳細(xì)設(shè)計(jì)D、物理設(shè)計(jì)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件開(kāi)發(fā)階段包括需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試五個(gè)階段。其中需求分析階段常用的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。2、對(duì)序線性表(23,29,34,55,60,70,78)用工分法查找值為60的元素時(shí),需要比較次數(shù)為()。A、1B、2C、3D、4標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:根據(jù)二分法查找法需要兩次:①首先將60與表中間的元素55進(jìn)行比較,由于60大于55,所以在線性表的后半部分查找。②第二次比較的元素是后半部分的中間元素,將60與表中間的元素70進(jìn)行比較,由于60小于70,所以在線性表的前半部分查找。③第三次比較的元素是前半部分的中間元素,即60,這時(shí)兩者相等,即查找成功。3、下列描述中,正確的是()。A、線性鏈表是線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)B、棧與隊(duì)列是非線性結(jié)構(gòu)C、雙向鏈表是非線性結(jié)構(gòu)D、只有根結(jié)點(diǎn)的二叉樹(shù)是線性結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間前后關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個(gè)非空的數(shù)據(jù)結(jié)構(gòu)滿足,下列兩個(gè)條件:①有且只有一個(gè)根結(jié)點(diǎn):②每個(gè)結(jié)點(diǎn)最多有一個(gè)前件,也最多有一個(gè)后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以線性表、棧與隊(duì)列、線性鏈表都是線性結(jié)構(gòu),而二叉樹(shù)是非線性結(jié)構(gòu)。4、下列關(guān)于線性表的敘述中,不正確的是()。A、線性表可以是空表B、線性表是一種線性結(jié)構(gòu)C、線性表的所有結(jié)點(diǎn)有且僅有一個(gè)前件和后件D、線性表是由n個(gè)元素組成的一個(gè)有限序列標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:線性表是一種線性結(jié)構(gòu),由n(n≥0)個(gè)元素組成,所以線性表可以是空表。但是在線性表中,第一個(gè)結(jié)點(diǎn)沒(méi)有前件,最后一個(gè)結(jié)點(diǎn)沒(méi)有后件,其他結(jié)點(diǎn)有且只有一個(gè)前件和后件,所以選項(xiàng)C)是錯(cuò)誤的。5、設(shè)有如下關(guān)系表:則下列操作正確的是()。A、T=R/SB、T=R×SC、T=R∩SD、T=R∪S標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:T就是關(guān)系R中有的,同時(shí)S中也有的有序組(4、5、6),即交運(yùn)算(∩)。6、以下描述中,不是線性表順序存儲(chǔ)結(jié)構(gòu)特征的是()。A、可隨機(jī)訪問(wèn)B、需要連續(xù)的存儲(chǔ)空間C、不便于插入和刪除D、邏輯相鄰的數(shù)據(jù)物理位置上不相鄰標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:線性表的順序存儲(chǔ)是用一片連續(xù)的空間來(lái)存放數(shù)據(jù)元素,其特點(diǎn)是邏輯上相鄰的元素在物理位置上也相鄰。數(shù)據(jù)元素之間邏輯上的先后關(guān)系自動(dòng)隱含在物理位置的相鄰元素之中,因此不需要另外開(kāi)辟空間來(lái)保存元素之間的關(guān)系。7、在三級(jí)模式之間引入兩層映像,其主要功能之一是()。A、使數(shù)據(jù)與程序具有較高的獨(dú)立性B、使系統(tǒng)具有較高的通道能力C、保持?jǐn)?shù)據(jù)與程序的一致性D、提高存儲(chǔ)空間的利用率標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理系統(tǒng)在數(shù)據(jù)庫(kù)的三級(jí)模式之間提供了兩層映像,保證了數(shù)據(jù)庫(kù)中數(shù)據(jù)的較高的邏輯獨(dú)立性和物理獨(dú)立性。8、下列方法中,屬于白盒法設(shè)計(jì)測(cè)試用例的方法的是()。A、錯(cuò)誤推測(cè)B、因果圖C、基本路徑測(cè)試D、邊界值分析標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:白盒測(cè)試方法也稱為結(jié)構(gòu)測(cè)試或邏輯測(cè)試,主要方法有邏輯覆蓋測(cè)試、基本路徑測(cè)試等。9、關(guān)于虛函數(shù),以下說(shuō)法正確的是()。A、若在重定義虛函數(shù)時(shí)使用了virual,則該重定義函數(shù)還是虛函數(shù)B、虛函數(shù)不能聲明為友元C、子類必須重定義父類的虛函數(shù)D、虛函數(shù)不能是static的標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C++中,虛函數(shù)可以是友元函數(shù),但不能是靜態(tài)成員。虛函數(shù)的重定義函數(shù),無(wú)論是否使用virtual關(guān)鍵字,仍然是虛函數(shù)。所以答案選擇D)。10、下列關(guān)于純虛函數(shù)與抽象類的描述中,錯(cuò)誤的是()。A、純虛函數(shù)是一種特殊的虛函數(shù),它沒(méi)有具體的實(shí)現(xiàn)B、抽象類是指具有純虛函數(shù)的類C、一個(gè)基類中說(shuō)明具有純虛函數(shù),該基類的派生類一定不再是抽象類D、抽象類只能作為基類來(lái)使用,其純虛函數(shù)的實(shí)現(xiàn)由派生類給出標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:純虛函數(shù)是在聲明虛函數(shù)時(shí)被“初始化”為O的虛函數(shù)。不定義對(duì)象而只作為一種基本類型用作繼承的類,稱為抽象類。凡是包含純虛函數(shù)的類都是抽象類。抽象類的作用是作為一個(gè)類族的共同基類。11、將x+y*z中的“+”用成員函數(shù)重載,“*”用友元函數(shù)重載應(yīng)寫為()。A、operator+(operator*(y,z))B、x.operator+(operator*(y,z))C、x.operator+(x*(y,z))D、x+(operator*(y,z))標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在定義了重載運(yùn)算符后的函數(shù)后,函數(shù)operator+重載了運(yùn)算符“+”。如果在類以外的其他地方定義了一個(gè)函數(shù),在類體中用friend對(duì)該函數(shù)進(jìn)行聲明,此函數(shù)就稱為本類的友員函數(shù)?!?”用友元函數(shù)重載就是運(yùn)算符函數(shù)不作為成員函數(shù),而把它放在類外,“*”被改寫為“operator*”。“+”為成員函數(shù)重載,x.operator+。所以x+y*z被改寫為“x.operator+(operator*(y,z))”。12、以下程序的執(zhí)行結(jié)果是()。#include<iostream.h>#include<iomanip.h>voidfun(intn){if(n!=0){fun(n-1);for(inti=1;i<=n;i++)cout<<setw(3)<<i;cout<<endl;}}voidmain(){fun(3);A、001012B、112123C、122333D、123標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:首先由程序中的主函數(shù)main入手,調(diào)用fun函數(shù),參數(shù)為3。fun(n)函數(shù)在其內(nèi)部,當(dāng)n不等于0時(shí),遞歸調(diào)用fun(n-1)。當(dāng)參數(shù)為3時(shí),fun(3)調(diào)用fun(2)…,然后利用for循環(huán)輸出i值,當(dāng)n=1時(shí),只輸出1,輸出回車后,就跳入fun(2),輸出1,2,最后輸出是1,2,3。13、有以下程序,在橫線應(yīng)添加()。#include<iostream>usingnamespacestd;classTestClass{public:TestClass(intn){number=n;}//拷貝構(gòu)造函數(shù)~TestClass(){}private:intnumber;};TestClassfun(TestClassp){TestClasstemp(p);returntemp;}intmain(){TestClassobj1(10),obj2(0);TestClassobj3(obj1);obj2=fun(obj3);return0:}A、TestClass(TestClass&other){number=other.number;}B、TestClass(TestClassother){number=other.number;}C、TestClass(TestClass&other){number;}D、TestClass(&other){number=other.number;}標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:拷貝構(gòu)造函數(shù)也是構(gòu)造函數(shù),但它只有一個(gè)參數(shù),這個(gè)參數(shù)是本類的對(duì)象,即other,所以賦值操作將本類的參數(shù)other.number賦值給number;而且采用對(duì)象的引用的形式,也就是&other。14、執(zhí)行完下列代碼段之后:boolx=true,y=false,z=false;x=x&&y‖z;y=x‖y&&z;z=!(x!=y)‖(y=z);則x=false,y=false,z=()。A、trueB、falseC、不確定D、異常標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:其中“x=x&&y‖z”語(yǔ)句計(jì)算后x=false,“y=x‖y&&z;”語(yǔ)句計(jì)算后y=false。那么“z=!(x!=y)‖(y==z);”語(yǔ)句計(jì)算后“z=!(ture)‖true”,所以答案為:true。15、定義如下枚舉類型:enum{Monday,Tuesday,Wednesday,Thrusday,F(xiàn)riday=2};,則下列語(yǔ)句正確的是()。A、表達(dá)式Wednesday==Friday的值是trueB、Dayday;day=3C、Dayday;day=Monday+3D、Dayday;day=Tuesday+10標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:enum<枚舉類型名>{<枚舉元素表>};其中:關(guān)鍵詞enum表示定義的是枚舉類型,枚舉類型名由標(biāo)識(shí)符組成,而枚舉元素表由枚舉元素或枚舉常量組成。其中enum{Monday,Tuesday,Wednesday,Thrusday,F(xiàn)riday=2}的值由0開(kāi)始,即0,1,2,3。D中的本題中的枚舉類型中的數(shù)據(jù)值Wednesday為2,而Friday的值賦值為2,所以判斷Wednesday等于:Friday的表達(dá)式值為真,即true。即選擇A)。16、函數(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。17、下列for循環(huán)的循環(huán)體執(zhí)行次數(shù)為()。for(inti(0),j(10);i=j=4;i++,j--)A、0B、1C、4D、無(wú)限標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:循環(huán)條件i=i=4;是個(gè)賦值語(yǔ)句,使得i,i的值非0,所以是死循環(huán)。18、下述關(guān)于開(kāi)關(guān)語(yǔ)句的描述中,正確的是()。A、開(kāi)關(guān)語(yǔ)句中default子句可以沒(méi)有,也可以有一個(gè)B、開(kāi)關(guān)語(yǔ)句中每個(gè)語(yǔ)句序列中必須有break語(yǔ)句C、開(kāi)關(guān)語(yǔ)句中default子句只能放在最后D、開(kāi)關(guān)語(yǔ)句中case子句后面的表達(dá)式可以是整型表達(dá)式標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:在switch語(yǔ)句中default的位置不是固定在最后的位置,同時(shí)default也是可以省略。19、下列存儲(chǔ)類標(biāo)識(shí)符中,可見(jiàn)性與存在性不一致的是()。A、外部類B、自動(dòng)類C、內(nèi)部靜態(tài)類D、寄存器類標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:可見(jiàn)性是函數(shù)內(nèi)部,存在整個(gè)程序中,第二次調(diào)用值不變。20、下述靜態(tài)數(shù)據(jù)成員的特征中,錯(cuò)誤的是()。A、說(shuō)明靜態(tài)數(shù)據(jù)成員時(shí)前面要加修飾符staticB、靜態(tài)數(shù)據(jù)成員要在類體外進(jìn)行初始化C、引用靜態(tài)數(shù)據(jù)成員時(shí),要在靜態(tài)數(shù)據(jù)成員名前加<類名>和作用域運(yùn)算符D、靜態(tài)數(shù)據(jù)成員不是所有對(duì)象所共用的標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:靜態(tài)數(shù)據(jù)成員是在類裝載的時(shí)候就分配了內(nèi)存空間,而類的成員變量是在生成對(duì)象時(shí)分配內(nèi)存空間。所以只要類裝載了,就可以用類名訪問(wèn)靜態(tài)數(shù)據(jù)成員。事實(shí)上,該類的所有對(duì)象都只保存類靜態(tài)數(shù)據(jù)成員的引用,它們都指向同一塊內(nèi)存區(qū)域。21、以下程序的執(zhí)行結(jié)果是()。#include<iostream.h>inta[8]={1,2,3,4,5,6,7};voidfun(int*pa,intn);voidmain(){intm=8;fun(a,m);cout<<a[7]<<endl;}voidfun(int*pa,intn){for(intI=0;I<n-1;I++)*(pa+7)+=*(pa+I);}A、0B、1C、4D、28標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:voidfun(int*pa,intn)函數(shù)定義的功能就是把數(shù)組的每個(gè)元素的值加到元素pa[7]中,也就是數(shù)組的元素之和放在a[7]中存儲(chǔ),所以結(jié)果28。22、以下程序段是函數(shù)返回a所指數(shù)組中最大的值所在的下標(biāo)值,橫線處的語(yǔ)句為()。fun(int*a,intn){inti,j=0.k:k=j;for(i=j;i<n;i++)if(a[i]>a[k])_______;return(k);}A、k=iB、k=jC、i=iD、i=n標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:函數(shù)fun中首先定義整型變量k用來(lái)存放返回最大值的下標(biāo),并將其首先指向第一個(gè)元素,即k=j。然后在for循環(huán)中依次將當(dāng)前元素a[i]與標(biāo)識(shí)為最大值的元素進(jìn)行比較,如果當(dāng)前元素大于這個(gè)標(biāo)識(shí)元素,那么將最大值標(biāo)識(shí)為當(dāng)前元素,即k=i。23、有如下類聲明:classMyBASE{intk;public;voidset(intn){k=n;}intget()const{returnk;}};classMyDERIVED:protectedMyBASE{protected:intj;public:voidset(intm,intn){MyBASE::set(m);j=n;}intget()const{returnMyBASE::get()+j;}};則類MyDERIVED中保護(hù)的數(shù)據(jù)成員和成員函數(shù)的個(gè)數(shù)是()。A、4B、3C、2D、1標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:因?yàn)樵诒Wo(hù)繼承的情況下,基類中的公有成員voidset(intn)和intget()const在派生類中是保護(hù)成員,再加上派生類自身的保護(hù)成員i,一共是三個(gè)保護(hù)成員。24、下列關(guān)于繼承的描述中,錯(cuò)誤的是()。A、析構(gòu)函數(shù)不能被繼承B、派生類是基類的組合C、派生類的成員除了它自己的成員外,還包含了它的基類的成員D、派生類中繼承的基類成員的訪問(wèn)權(quán)限到派生類保持不變標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:派生類中繼承的基類成員的訪問(wèn)權(quán)限到派生類會(huì)發(fā)生變化,例如:私有繼承時(shí),派生類不能訪問(wèn)基類的成員,所以選項(xiàng)D)錯(cuò)誤,其他選項(xiàng)均正確。25、類的析構(gòu)函數(shù)的作用是()。A、一般成員函數(shù)B、類的初始化C、對(duì)象的初始化D、釋放由對(duì)象所占用的資源標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:類的在撤銷對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用類的析構(gòu)函數(shù),析構(gòu)函數(shù)用來(lái)釋放由對(duì)象所占用的資源。26、如果表達(dá)式v*x++中,“*”是作為成員函數(shù)重載的運(yùn)算符,“++”是作為友元函數(shù)重載的運(yùn)算符,采用運(yùn)算符函數(shù)調(diào)用格式,該表達(dá)式還可表示為()。A、x.operator++(0).operator*(y)B、operator*(x.operator++(0),y)C、y.operator*(operator++(x,0))D、operator*(operator++(x,0),y)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:運(yùn)算符函數(shù)有兩種調(diào)用形式,第一種是像一般函數(shù)那樣用函數(shù)名調(diào)用,即y.operator*(z)或者operator*(y,z):另一種是通過(guò)運(yùn)算符構(gòu)成表達(dá)式,即y水z。因?yàn)椤?+”運(yùn)算符既可以作為前綴運(yùn)算符,又可以作為后綴運(yùn)算符,所以重載這個(gè)運(yùn)算符時(shí),重載后綴“++”時(shí)必須多一個(gè)虛擬參數(shù):int。27、有如下程序:#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”。28、有如下函數(shù)模板:template<typenameT.typenameU>Tcast(Uu){returnu;}其功能是將U類型數(shù)據(jù)轉(zhuǎn)換為T類型數(shù)據(jù)。已知i為int型變量,下列對(duì)模板函數(shù)cast的調(diào)其功能是將U類型數(shù)據(jù)轉(zhuǎn)換為T類型數(shù)據(jù)。已知i為int型變量,下列對(duì)模板函數(shù)cast的調(diào)用中正確的是()。A、cast(i);B、cast<>(i);C、cast<char*,int>(i);D、cast<double,int>(i);標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:選項(xiàng)D)是將double類型的數(shù)據(jù)轉(zhuǎn)化成int類型的數(shù)據(jù),正確。29、閱讀下面的程序:#include<iostream.h>voidmain(){intx;cin>>x;if(x++>5)cout<<x<<endl;elsecout<<x--<<endl;}如果兩次執(zhí)行上述程序,且鍵盤輸入分別為4和6,則輸出結(jié)果分別是()。A、4,6B、3,6C、4,7D、5,7標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:此題首先讀入數(shù)值4賦給變量x,因?yàn)閤++>5不成立,因?yàn)椤?+”后綴,之后x的值變?yōu)?,執(zhí)行語(yǔ)句cout<<x--<<endl;輸出:5,之后x的值變?yōu)?。當(dāng)讀入的數(shù)值是6時(shí),因?yàn)閤++>5成立,所以執(zhí)行語(yǔ)句cout<<x<<endl;輸出7。30、按照標(biāo)識(shí)符的要求,下列選項(xiàng)中,()符號(hào)不能組成標(biāo)識(shí)符。A、連接符B、下劃線C、大小寫字母D、數(shù)字字符標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是標(biāo)識(shí)符。標(biāo)識(shí)符是由數(shù)字、字母以及下劃線構(gòu)成,其第一個(gè)字符必須是字母或下劃線,中間不能有空格;標(biāo)識(shí)符的長(zhǎng)度是任意的,但由于編譯系統(tǒng)的限制一般不超過(guò)31個(gè)字符;標(biāo)識(shí)符中的大小寫字母是不同的;定義標(biāo)識(shí)符時(shí)不能采用系統(tǒng)的保留字。31、已知枚舉類型定義語(yǔ)句為:enumToken{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};則下列敘述中錯(cuò)誤的是()。A枚舉常量NAME的值為1,B枚舉常量NUMBER的則下列敘述中錯(cuò)誤的是()。A、枚舉常量NAME的值為1B、枚舉常量NUMBER的值為1C、枚舉常量MINUS的值為6D、枚舉常量PRINT的值為10標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:此題考查的是枚舉類型的聲明。聲明枚舉類型的語(yǔ)法形式為:enum類型名{枚舉值表}。需注意的是:當(dāng)n個(gè)枚舉值全部未賦常量值時(shí),它們自左至右分別與整數(shù)0、1、2、3…n-1對(duì)應(yīng);若第i個(gè)枚舉值賦常量值為m,則其未賦常量值的后續(xù)枚舉值分別與整數(shù)m+1、m+2…對(duì)應(yīng),直到下一個(gè)賦了值的枚舉值或結(jié)束。枚舉常量NAME的值為0。32、類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)用兩次類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)正確。33、下列關(guān)于虛函數(shù)的描述中,正確的是()。A、虛函數(shù)是一個(gè)static類型的成員函數(shù)B、虛函數(shù)是一個(gè)非成員函數(shù)C、基類中采用virtual說(shuō)明一個(gè)虛函數(shù)后,派生類中定義相同原型的函數(shù)時(shí)可不必加virtual說(shuō)明D、派生類中的虛函數(shù)與基類中相同原型的虛函數(shù)具有不同的參數(shù)個(gè)數(shù)或類型標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:此題考查虛函數(shù)的概念。在成員函數(shù)聲明的前面加上virtual修飾,即把該函數(shù)聲明為虛函數(shù)。虛函數(shù)只能是類中的一個(gè)成員函數(shù),但不能是靜態(tài)成員函數(shù),所以選項(xiàng)A)和B)錯(cuò)誤;在派生類中重新定義虛函數(shù)時(shí)必須有相同的函數(shù)類型,包括函數(shù)的返回類型、函數(shù)名、參數(shù)個(gè)數(shù)、參數(shù)類型的順序必須相同。故選項(xiàng)D)錯(cuò)誤。34、有如下程序:#include<iostream>voidfun(int&x,inty){intt=x;x=y;y=t;}intmain(){inta[2]={23,42};fun(a[1],a[0]);std::cout<<a[0]<<","<<a[1]<<std::endl;return0;}執(zhí)行后的輸出結(jié)果是()。A、42,42B、23,23C、23,42D、42,23標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:此題考查的是函數(shù)的調(diào)用以及參數(shù)值的傳遞。函數(shù)fun中的第一個(gè)參數(shù)是引用傳值方式,是雙向的;第二個(gè)參數(shù)是按值傳遞,是單向的。35、有如下程序:#include<iostream>usingnamespacestd;classA{public;staticinta;voidinit(){a=1;}A(inta=2){init();a
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)高壓加速器行業(yè)市場(chǎng)調(diào)查研究及發(fā)展戰(zhàn)略研究報(bào)告
- 2025年一般漆包線項(xiàng)目可行性研究報(bào)告
- 中國(guó)汽車車身總成行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報(bào)告
- 衡水5G+智慧電力項(xiàng)目投資分析報(bào)告
- 2024-2025學(xué)年高中生物寒假作業(yè)精練2動(dòng)物及人體生命活動(dòng)的調(diào)節(jié)含解析
- 2024-2025學(xué)年高中數(shù)學(xué)第三章空間向量與立體幾何3.1.2空間向量的數(shù)乘運(yùn)算練習(xí)含解析新人教A版選修2-1
- 2024-2025學(xué)年高中物理第2章交變電流第2節(jié)交變電流的描述學(xué)案粵教版選修3-2
- 2024-2025學(xué)年高中數(shù)學(xué)課時(shí)分層作業(yè)14指數(shù)冪及運(yùn)算含解析新人教A版必修1
- 2025年滑水鞋項(xiàng)目投資可行性研究分析報(bào)告
- 人工骨缺損假體行業(yè)行業(yè)發(fā)展趨勢(shì)及投資戰(zhàn)略研究分析報(bào)告
- 徐州生物工程職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試參考試題及答案
- 小兒急性胃腸炎課件
- 翁愷C語(yǔ)言課件下載
- 維生素D缺乏性手足搐搦癥課件
- 2024年山東省公務(wù)員考試《行測(cè)》真題及答案解析
- 《人工智能通識(shí)教程》(第2版)教學(xué)大綱
- 國(guó)家基本醫(yī)療保險(xiǎn)和工傷保險(xiǎn)藥品目錄(2004年版)
- 文學(xué)類文本閱讀(理解賞析類)-2025年北京高考語(yǔ)文一輪總復(fù)習(xí)(原卷版)
- 北京某中學(xué)2024-2025學(xué)年九年級(jí)上學(xué)期開(kāi)學(xué)考數(shù)學(xué)試卷
- 三下 第11課 《在線學(xué)習(xí)工具》教案 浙教版2023信息科技
- 2024年高考真題-英語(yǔ)(新高考Ⅱ卷) 含解析
評(píng)論
0/150
提交評(píng)論