c++歷年真題分類匯總_第1頁
c++歷年真題分類匯總_第2頁
c++歷年真題分類匯總_第3頁
c++歷年真題分類匯總_第4頁
已閱讀5頁,還剩72頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第一大類C++基礎(chǔ).要求指針P既不可修改其本身的內(nèi)容,也不可修改其所指向地址的內(nèi)容,定義正確的是A.constchar*p="ABCD"; B.char*constp="ABCD"; 2016.C.charconst?p=**ABCDW; D.constchar?constp=**ABCD";答案:D2〇.已知:func()函數(shù)是ー個(gè)類的常成員函數(shù).它無返回值,下列表示中,是正確的是A.voidfunc()const; B.constvoidfunc();C.voidconstfunc(); D.voidfunc(const);答案:A8.在兩數(shù)體之前加 關(guān)情字可以防止用或雨鼓改變數(shù)屐成員的伍.3.已知:print()函數(shù)是ー個(gè)類的常成員函數(shù),無返回值,下列表示中正確的是voidprint()voidprint()constC.voidconstprint()voidprint(const)D.constvoidprint()constint?p=c:constint?p=c:P是指針不能用變量賦值改&c#include<iostream>usingnamespacestd;intmain()Iinta=10,b=18,c=77;cout?*p?endl;return0;

51.#include<iostream.h>classexampleIinta;public:sample(intb=5)|a=b++;|voidprint(){a=a+1;cout?a?voidprint()constIcout?a?endl;|輸出62輸出62x是普通對象.調(diào)用普通的print。函數(shù)y是常量對象調(diào)用常量成員函數(shù)voidmain()Iexamplex;ccmstexampley(2);x.print();y.print();13.用于標(biāo)識ハ進(jìn)制常量的前綴或后綴是()A.無 B.后綴L或1C.前綴零 D.前綴Ox41.#include<iostream.h>main(){intx=9,y=8,z=7;constint*p=z;cout?*p?endl;}42.#include<iostream.h>main(){intx=8,y=6;constint*constp=&x;p=&y;cout?*p?endl;)41?constint?p=z: 普通変曜不能給指針變鼠賦值改為constint?p=&z;P=&y; p是指向常嚴(yán)的常歐指什不能做為表達(dá)式的左值.#include<iostream.h>inain(){intx=5.y=6:constint*p=&x;*p=y;〃?p不能作為左伯出現(xiàn),改:把con、lよ掉cout?*p?endl:}45.#include<iostream.h>main(){intx=6;constint*p=x://error:應(yīng)改為constint*p=&x:cout?*p?endl:47.下面是ー個(gè)輸入半徑,輸出其面積和周長的Ch程序,在下劃線處填上正確的語句。#include<iostream>usingnamespacestd; constpi=3.14159;voidmain()(doubler:coutvv"r=";_cin?r;;doublel=2.0*pi*r:doubles=pi*r*r;cout?"\nThelongis:”?l?endl;coutcv“Theareais:”?s?endl:繼承18.ー個(gè)類可以獲得另ー個(gè)類的特性的機(jī)制稱為()A.抽象 B.封裝C.繼承 D.多態(tài)性20.在哪種派生方式中,派生類可以訪問基類中的protected成員( )BA.public和private B.public和protectedC.protected和private D.僅protected20.派生類的對象可以訪問以下那種情況繼承的基類成員(D)A.私有繼承的私有成員 B.公有繼承的私有成員C.私有繼承的保護(hù)成員 D.公有繼承的公有成員19.基類中的public成員,通過public派生,其在派生類中的訪問權(quán)限為()A.不可訪問B.privateC.protectedD.public.在繼承中,派生類擁有的基類個(gè)數(shù)為( )A.0個(gè) B.1個(gè)C.多個(gè) D.至少1個(gè)B.privateD.public.基類中的protected成員,通過public派生,其在派生類中的可見性為B.privateD.publicA.不可訪問C.protected36.派生類的主要用途是可以定義其基類中ユ好ルす員類A繼承了類B,類C繼承了類A,那么類C也相應(yīng)的繼承了類B,也就是說類B的后代是A,類A的后代是C,那么類C也具有類B的特征,這就叫傳遞性。2.在C++中,類與類之間的繼承關(guān)系具有A,自反性 B.對稱性 C.傳遞性 D,反對稱性答案:C5.在04中,類與類之間的編款關(guān)系具有A,自反性 &對稱性C傳遞性ユ反對稱性26.C++中有兩種繼承:單ー繼承和〇多重繼承39.舉出C++中兩種代碼復(fù)用的方式: 、復(fù)用。繼承3.下列關(guān)于對靜態(tài)數(shù)據(jù)成員的描述中,正確的是A.靜態(tài)數(shù)據(jù)成員不能用public控制符修飾B.靜態(tài)數(shù)據(jù)成員可以直接用類名或者對象名來調(diào)用C.靜態(tài)數(shù)據(jù)成員不可以被類的對象調(diào)用D.靜態(tài)數(shù)據(jù)成員不能用private控制符修飾答案:B13.當(dāng)ー個(gè)派生類公有繼承一個(gè)基類時(shí),基類中的所有公有成員成為派生類的J^/ublic成員 B.private成員protected成員 D.友元9.下列關(guān)于類的繼承描述中,錯誤的是ん基類不一定具有派生類的全部屬性和方法B.派生類可以訪問基類的所有數(shù)據(jù)成員,也能調(diào)用基類的所有成員函數(shù)C繼承描述類的層次關(guān)系,派生類可以具有與基類相同的屬性和方法 bー個(gè)基類可以有多個(gè)派生類,ー個(gè)派生類可以有多個(gè)基類33.在保護(hù)派生中,基類權(quán)限為pubUc的成員在派生類中為丄ユ_。^include<iostreain.h>classBasedIpublic:Based() 1cout?"Based構(gòu)造函數(shù)、n”;fun();|vixtualvoidfun()Icoul?**Based::fun()函數(shù)、2IIclassDerived:publicBasedIpublic?TOC\o"1-5"\h\zDerived() キIcout?"Derived構(gòu)造函數(shù)'n" ;|voidfun()Icout?"Derived::fun()函數(shù)'n";| ,I;voidmain(){Derivedd;內(nèi)聯(lián)函數(shù)為什么要用內(nèi)聯(lián)函數(shù)?舉例:對于ー個(gè)簡單的函數(shù)intisnumber(charc){Return(c>='0'&&c<=,9,)?1:0;}Voidmain(){Charc;Cout?S'shurucharacter";Cin?c;lf(isnumber(c))cout?"shuzi";Elsecout?"bushishuzi";)

如果在程序中需要多次用到,那么就要多次調(diào)用這個(gè)函數(shù),降低使用效率,為了提交效率,將主函數(shù)中對isnumber函數(shù)的調(diào)用替換成表達(dá)式即"(isnumbe「⑹)換成if((c>=O&&cv='9')?1:0)手工替換很繁瑣,那么把函數(shù)定義的前面加上inline即可聲明內(nèi)聯(lián)函數(shù)Inlineintisnumber(charc)(Return(c>=,0,&&c<=,9,)?1:0;}編譯器在調(diào)用函數(shù)的地方都會用函數(shù)體替換C++中除具有循環(huán)語句,switch語句的函數(shù)不能聲明為內(nèi)聯(lián)函數(shù),其他都可以。4,適宜采用inline定義函數(shù)情況是A.函數(shù)體含有循環(huán)語句 B.函數(shù)體含有遞歸語句C,函數(shù)代碼多、不常調(diào)用 D.函數(shù)代碼少、頻繁調(diào)用答案:D8.下列哪個(gè)類型函數(shù)不適合聲明為內(nèi)聯(lián)函數(shù)( )AA.函數(shù)體語句較多A.函數(shù)體語句較多C.函數(shù)執(zhí)行時(shí)間較短B.函數(shù)體語句較少D,函數(shù)執(zhí)行時(shí)間過長12.內(nèi)聯(lián)函數(shù)的特點(diǎn)是12.內(nèi)聯(lián)函數(shù)的特點(diǎn)是(A)A.減少代碼量,加快訪問速度C.增加代碼量,減緩訪問速度B.減少代碼量,減緩訪問速度D.増加代碼量,加快訪問速度28.C++中使用_inline_關(guān)鍵字說明函數(shù)為內(nèi)聯(lián)函數(shù)。10.聲明函數(shù)為內(nèi)聯(lián)函數(shù)時(shí)所使用的關(guān)鍵字為()A.constB.inlineC.shortD.signed10.包含哪種語句的函數(shù)不能聲明為內(nèi)聯(lián)函數(shù)( )A.循環(huán) B.變量自增自減C.if...else... D.變量聲明10.下列哪個(gè)類型函數(shù)不適合聲明為內(nèi)聯(lián)函數(shù)??函數(shù)?函數(shù)體語句較多C.函數(shù)執(zhí)行時(shí)間較短B,函數(shù)體語句較少D.函數(shù)執(zhí)行時(shí)間過長3.要求通過函數(shù)來實(shí)現(xiàn)ー種不太復(fù)雜的功能,并且要求加快執(zhí)行速度,選用AA.內(nèi)聯(lián)函數(shù) B.重載函數(shù)C.內(nèi)部函數(shù)D,函數(shù)模板6.下列哪個(gè)類型函數(shù)不適合聲明為內(nèi)聯(lián)函數(shù)A.函數(shù)體語句較多C.函數(shù)執(zhí)行時(shí)間較短B,函數(shù)體語句較少D.函數(shù)被頻繁調(diào)用34,在函數(shù)前面用一心一保留字修飾時(shí),則表示該函數(shù)為內(nèi)聯(lián)函數(shù)。25.在C++中除具有川 語句和switch語句的函數(shù)外,其它函數(shù)都1函數(shù)聲明11.函數(shù)intsum(inta=Lintb=l,intc=3)可ワト列哪個(gè)函數(shù)同時(shí)聲明()A.doublesum(int);B.charsum(inttint);C.intsum(double):D.intsum(int?int,int):50,在卜.而橫線處填上求兩個(gè)浮點(diǎn)數(shù)之差的cha函數(shù)的原型聲明、調(diào)用方法Q#include<iostream>usingnamespacestd:voidmain()(floata,b:_floatcha(float,float); //函數(shù)cha的原型聲明a=12.5;b=6.5:floatc=_cha(a.b); //調(diào)用函數(shù)chacout?c?endl;)floatcha(floatx,floaty)(floatw;w=x-y:returnw:函數(shù)引用9.函數(shù)int&min(int&,inl&)返回參數(shù)中較小者,設(shè)有兩整型變量:inla=10;inlb=15:在執(zhí)行語句min(a,bA:之后,a,b值分別為()A.9,14B.9,15C.10,14DJ0,159.設(shè)int&max(int&,int&)返回兩參數(shù)中較大者,如有兩整型變量inta=10;in"后,a,b值分別為( )A.10,15 B.1L15C.10,16 D.11,16成員函數(shù)6.C++允許在結(jié)構(gòu)中定義函數(shù),這些函數(shù)稱為( )A.靜態(tài)函數(shù) B.構(gòu)造函數(shù)C.析構(gòu)函數(shù) D.成員函數(shù)8.決定C++語言中函數(shù)的返回值類型的是()A.return語句中的表達(dá)式類型B.調(diào)用該函數(shù)時(shí)系統(tǒng)隨機(jī)產(chǎn)生的類型C.調(diào)用該函數(shù)時(shí)的主調(diào)用函數(shù)類型D,在定義該函數(shù)時(shí)所指定的數(shù)據(jù)類型1.對C++中主函數(shù)描述正確的是()A.名稱為main,可為多個(gè)B.名稱不限,可為多個(gè)C.名稱為main,必須有且只能有一個(gè)D.名稱不限,必須有且只能有一個(gè)25.C++程序必須有且只有一個(gè)主函數(shù),其函數(shù)名為_main.II.關(guān)于成員函數(shù)特征的楕述中,錯誤的是A.成員函數(shù)一定是內(nèi)樂的數(shù) B,成員函數(shù)可以重載Q成員法政可以改置參數(shù)的默認(rèn)侑 d成員弱敷可以是靜態(tài)的解釋:A在C++中,成員函數(shù)可以是內(nèi)聯(lián)函數(shù),也可以是非內(nèi)聯(lián)函數(shù).在類定義體內(nèi)定義和實(shí)現(xiàn)的函數(shù)都是內(nèi)聯(lián)函數(shù).在類定義體外實(shí)現(xiàn)的函數(shù)可以通過在函數(shù)說明和定義上分別加上inline來表示該函數(shù)是內(nèi)聯(lián)函數(shù),否則就不是內(nèi)聯(lián)函數(shù).C++要求對一般的內(nèi)置函數(shù)要用關(guān)鍵字inline聲明,但對類內(nèi)定義的成員函數(shù),可以省略inline,因?yàn)檫@些成員函數(shù)已被隱含地指定為內(nèi)置函數(shù).如果成員函數(shù)不在類體內(nèi)定義,而在類體外定義,系統(tǒng)并不把它默認(rèn)為內(nèi)置(inline)函數(shù),調(diào)用這些成員函數(shù)的過程和調(diào)用一般函數(shù)的過程是相同的。如果想將這些成員函數(shù)指定為內(nèi)置函數(shù),應(yīng)當(dāng)用inline作顯式聲明。10.在C++中,函數(shù)原型不能標(biāo)識A.函數(shù)的返回類型 B.函數(shù)參數(shù)的個(gè)數(shù)C.函數(shù)參數(shù)類型 D,函數(shù)的功能 口19.以下敘述中不正確的是A.在ー個(gè)函數(shù)中,可以有多條return語句B.函數(shù)的定義不能嵌套,但函數(shù)的調(diào)用可以嵌套函數(shù)必須有返回值D?不同的函數(shù)中可以使用相同名字的變量構(gòu)造函數(shù)8.下列不是構(gòu)造函數(shù)的特征的是A.構(gòu)造函數(shù)的函數(shù)名與類名相同 B,構(gòu)造函數(shù)可以重載c.構(gòu)造函數(shù)可以設(shè)置缺省參數(shù) レイ勾造函數(shù)不能重載4.ー個(gè)類可擁有多少個(gè)構(gòu)造函數(shù)()B.1個(gè)D.以上皆無A.0B.1個(gè)D.以上皆無C.1或多個(gè).關(guān)于構(gòu)造函數(shù)的說法,不正確的是A.沒有定義構(gòu)造函數(shù)時(shí),系統(tǒng)將不會調(diào)用它.其名與類名完全相同C.它在對象被創(chuàng)建時(shí)由系統(tǒng)自動調(diào)用D.沒有返回值30.假設(shè)類F的對象f是類A的成員對象,則“Aa”語句執(zhí)行時(shí),先調(diào)用類構(gòu)造函數(shù)。10.下列關(guān)于構(gòu)造函效的描述中,幡談的是A.構(gòu)造函數(shù)可以設(shè)置歐認(rèn)叁敷 B.構(gòu)造函敷在定義類對象時(shí)自動執(zhí)行C.構(gòu)造函數(shù)可以是內(nèi)聯(lián)函數(shù) 0構(gòu)造函敷不可以重載解釋:D構(gòu)造函數(shù)是類的ー個(gè)特殊成員函數(shù),它與類同名,并且沒有返回值.C++在創(chuàng)建一個(gè)對象時(shí),會自動調(diào)用類的構(gòu)造函數(shù),在構(gòu)造函數(shù)中可以執(zhí)行初始化成員變量的操作.構(gòu)造函數(shù)可以是內(nèi)聯(lián)函數(shù),也可以重載.當(dāng)編譯器發(fā)現(xiàn)某段代碼在調(diào)用一個(gè)內(nèi)聯(lián)函數(shù)時(shí),它不是去調(diào)用該函數(shù),而是將該函數(shù)的代碼,整段插入到當(dāng)前位置。這樣做的好處是省去了調(diào)用的過程,加快程序運(yùn)行速度。這樣做的不好:由于每當(dāng)代碼調(diào)用到內(nèi)聯(lián)函數(shù),就需要在調(diào)用處直接插入一段該函數(shù)的代碼,所以程序的體積將增大。9.下列有關(guān)構(gòu)造函數(shù)的描述中,正確的是BA.構(gòu)造函數(shù)可以帶有返回值 B.構(gòu)造函數(shù)的名字與類名完全相同C,構(gòu)造函數(shù)必須帶有參數(shù) D.構(gòu)造函數(shù)必須定義,不能缺省構(gòu)造函數(shù)自定義之后系統(tǒng)將不再提供無參的默認(rèn)構(gòu)造函數(shù)44.#include<iostream>usingnamespacesld構(gòu)造函數(shù)自定義之后系統(tǒng)將不再提供無參的默認(rèn)構(gòu)造函數(shù)classCMax{private:intxx:intyy:public:CMax(intx?inty){xx=x;yy=y:voidsetValuefintx*inty){xx=x:yy=y:)intmax(){returnxx>yy?xx:yy;voidmain()(CMaxm();m.setValue(20t30):cout?*rMax=w?m.max()?cndl12.如果沒有為一個(gè)關(guān)定義任何構(gòu)造函數(shù)的情況下,下列描述正確的是( )AA.編譯器總是日動創(chuàng)建一個(gè)不帶參數(shù)的構(gòu)造函數(shù)B?這個(gè)類沒有構(gòu)造函數(shù)C.這個(gè)類不需要構(gòu)造函數(shù)D.該類不能通過編譯14.類的構(gòu)造函數(shù)在以下什么情況下會被自動調(diào)用(B)A.定義成員函數(shù)時(shí) B.定義對象時(shí)C.定義數(shù)據(jù)成員時(shí) D.定義友元函數(shù)時(shí)12.一個(gè)類擁有多個(gè)構(gòu)造函數(shù),則這些構(gòu)造函數(shù)冋為(A.重載關(guān)系 B.重復(fù)關(guān)系C.拷貝關(guān)系 D.無關(guān)系

析構(gòu)函數(shù)32.為了在對象生存期結(jié)束時(shí)釋放其指針成員所指向的動態(tài)存儲空間,通常為該類定メ〇 析構(gòu)函數(shù)20.對類的構(gòu)造函數(shù)和析構(gòu)函數(shù)描述正確的是A.構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)不能重載B.構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)可以重載C.構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)也可以重載D.構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)也不能重載34.C++類中構(gòu)造函數(shù)的個(gè)數(shù)最多是無限個(gè),析構(gòu)函數(shù)的個(gè)數(shù)最多是 27.在Ci程序中,對剛創(chuàng)建的対象進(jìn)行初始化的工作由構(gòu)造函數(shù)來完成;而碇前的一些清理工作対是由 曲數(shù)來光成的6析構(gòu)ー個(gè)類可包含析構(gòu)函數(shù)的個(gè)數(shù)是( )BA.0個(gè) B.1個(gè)C.至少ー個(gè) D.0個(gè)或多個(gè)15.下列關(guān)于析構(gòu)函數(shù)描述正確的是(D)A.可以用載 B.函數(shù)體中必須有delete語句C.返回類型必須是voidC.返回類型必須是void類型D.不能指定返回類型32.對于類Point而言,其析構(gòu)函數(shù)的定義原型為_-Point();引用12,下列說明語句中正確的是DB.int&refa[10]D.int*pi,*&pref=piA.inta,&ra二B.int&refa[10]D.int*pi,*&pref=piC.inta,&ra=a,&*refp=&ra8.已知:intm,10;下列我示引用的方法中,正確的是A,int&Z;B.mt&t>1)CintAx=m; D.XAf=Am;解釋:c引用實(shí)際上就是變量的別名,使用引用和直接使用變量一樣,引用與變量名在使用的形式上是完全ー樣的,但引用本身并不是對象,只是作為標(biāo)識對象的手段,聲明方式為數(shù)據(jù)類型&別名=對象名不能直接聲明對數(shù)組的引用,也不能聲明引用的引用int&&x=m就是非法的39.將指向?qū)ο蟮囊米鳛楹瘮?shù)的形參,形參是對象的引用.實(shí)參是對軌名。29.C++語言中如果調(diào)用函數(shù)時(shí),需要改變實(shí)參或者返回多個(gè)值,應(yīng)該采取方式。傳地址或引用方式。41.#include<iostream,h>usingnamespacestd;voidsetzero(int&a)ja=0;Iintmain(){intxl=10;setzero(&xl);cout?xl?endl;return0;r15.關(guān)于引用,下列的說法中錯誤的是ん引用是給被引用的變量取ー個(gè)別名B.引用主要是用來作函數(shù)的形參和函數(shù)的返回值C.在聲明引用時(shí),要給它另開辟內(nèi)存單元D.在聲明引用時(shí),必須同時(shí)使它初始化 C5.設(shè)存在整型變量intx,則下列句與其它三項(xiàng)含義不同的是(A)A.int*p=&x: B.int&p=x;C.int&p=x;D.int&p=x:5.從本質(zhì)上看,引用是被引用變量的いA.拷貝B.別名C.復(fù)制D.克隆20.對引用調(diào)用描述正確的是()A.分配新存儲空間B.修改已存儲空間的名稱為引用名C.引用名與已存在存儲空間無任何關(guān)聯(lián)D.將引用名標(biāo)識符與一塊已存在儲區(qū)域相關(guān)聯(lián),沒有分配キ24.C++函數(shù)中按引用調(diào)用傳遞參數(shù)時(shí)使用ー對象利さ.作為參數(shù)54.給出下面程序的輸出結(jié)果#include<iostream>usingnamespacestd;voidmain()(intnum=300;int&ref=num;cout?ref;ref=ref-IOO;cout?n"?num;num=num-50;couivv”H?ref?endl;}300200150拷貝構(gòu)造函數(shù)5.通??截悩?gòu)造函數(shù)的參數(shù)是A,某個(gè)對象的成員名C,某個(gè)對象的引用名答案:c9,通常的拷貝構(gòu)造函數(shù)的參數(shù)是A.某個(gè)對象名個(gè)對象的引用3.拷貝構(gòu)造函數(shù)應(yīng)該是A.不帶參數(shù)的構(gòu)造函數(shù)C.帶有兩個(gè)參數(shù)的構(gòu)造函數(shù)B.某個(gè)對象的指針名D.某個(gè)對象名B,某個(gè)對象成員名D,某個(gè)對象的指針名B.帶有一個(gè)參數(shù)的構(gòu)アD.缺省構(gòu)造函數(shù)21.通常使川対象的用用來初始化創(chuàng)建中的對象。答案:拷貝構(gòu)造函數(shù)39.拷貝構(gòu)造函數(shù)使用作為參數(shù)初始化創(chuàng)建中的對象??截悩?gòu)造函36.使用對象的引用來初始化創(chuàng)建中的對象的炳畋金拷貝構(gòu)造函數(shù)38.震?構(gòu)造函依使用作為形式參數(shù)。對象的引用14.對類A,復(fù)制構(gòu)造函數(shù)的原型是()A.A::A(constA&):B.A::A(constA*);C.A::A(conslA):D.A::A():は對于拷貝構(gòu)造函數(shù)point::point(point&p),下列說明正確的是(A.該函數(shù)只能訪問P的私有成員 B.該函數(shù)不能訪問P的公平C.該函數(shù)可以訪問P的私有和公有成員 D.該函數(shù)不能訪問P的成ウ友元函數(shù)19.對于友元描述正確的是( )BA,友元是本類的成員函數(shù) B.友元不是本類的成員函數(shù)C.友元不是函數(shù) D.友元不能訪問本類私有成員19.如果類A被聲明成類B的友元,則(D)A.類A的成員即類B的成員B.類B的成員即類A的成員C.類A的成員函數(shù)不得訪問類B的成員D.類B不一定是類A的友元17.下列關(guān)于友元的描述錯誤的是( )A.成員函數(shù)不可作友元 B.類可以作友元C.普通函數(shù)可以作友元 D.靜態(tài)函數(shù)可以作友元??友元函??友元函6,下列不是類的成員函數(shù)的是A一方元函數(shù) B.構(gòu)造函數(shù)C,析構(gòu)函數(shù) D.拷貝構(gòu)造函數(shù)答案:A12.對于友元描述正確的是 ノA.友元是本類的成員函數(shù) 也ノる不是本類的成員函數(shù)C,友元不是函數(shù) 、ク友元不能訪問本類私有成員17.已知類A是類B的友元,類B是類C的友元,則ヽ.類A一定是類C的友元B.類C一定是類A的友元(:.類C的成員函數(shù)可以訪問類B的對象的任何成員D.類A的成員函數(shù)可以訪問類B的對象的任何成員答案:c33.如果要把ヨ謁E類的巡蚓值為void的成員南敢e(),聲明為類TcMhcr的友元版數(shù),則應(yīng)在美Tether的定義中加入謂句.friendvoidA::f()30.如果要把A類成員函數(shù)f()且返回值為voidfriendvoidA::f()定義中加入語句最好加分號加入語句,語句后面加分號;20.下列關(guān)于友元函數(shù)的描述,正確的是A.B.C.A.B.C.D.友元函數(shù)不可以是ー個(gè)類友元函數(shù)的作用之一是實(shí)現(xiàn)數(shù)據(jù)的隱藏性在類中說明的友元函數(shù),函數(shù)的定義不可在類體之外#include<iostream.h>#include<string,h>classBaseIpublic:Base(char?s=H\0w)|strcpy(name,s);|voidshow();protected:?二 它是普通函數(shù)不是成員函數(shù).友元函數(shù),前面加friendcharnameriOl5友元函數(shù),前面加friendI;Baseb;voidshow()Icout?"name:"??endl;|voidmain(){Based2(”hello”);show();I運(yùn)算符重載40.重載的運(yùn)算符保持其原有的操作數(shù) 、優(yōu)先級和結(jié)合性不變。S.如処&達(dá)式++a中的“++”是作為成員函數(shù)朮載的運(yùn)算價(jià),若采用運(yùn)ので網(wǎng)以は用格大,則可表示為B.operator++(a)B.operator++(a)D.a.ojjcrator+?()C.operator++(a,1)答案:D24.重載的運(yùn)算符保持其原有的操作數(shù)和結(jié)合性不變。答案:優(yōu)先級12.下列運(yùn)算符中,在C++語言中不能重載的是A.* B.>= C.:: D./答案:C17.下列運(yùn)算符中,在C++語言中不能重載的是A.* B.>= : D.17.下列關(guān)于運(yùn)算符重教?的表述中,正?的是A.C1已有的任何運(yùn)算符都可以重教B.運(yùn)算符函數(shù)的返回類型不能聲明為基本數(shù)據(jù)類型c.在美璽精換符函收的定義中不需要聲明返回類R0.可以通過運(yùn)算符重教來創(chuàng)建CI中原來沒有的運(yùn)算符C(1)除了類屬關(guān)系運(yùn)算符”.”、成員指針運(yùn)算符".*"、作用域運(yùn)算符"::"、sizeof運(yùn)算符和三目運(yùn)算符"?:"以外,C++中的所有運(yùn)算符都可以重載。(2)重載運(yùn)算符限制在C++語言中已有的運(yùn)算符范圍內(nèi)的允許重載的運(yùn)算符之中,不能創(chuàng)建新的運(yùn)算符。(3)運(yùn)算符重載實(shí)質(zhì)上是函數(shù)重載,因此編譯程序?qū)\(yùn)算符重載的選擇,遵循函數(shù)重載的選擇原則。(4)重載之后的運(yùn)算符不能改變運(yùn)算符的優(yōu)先級和結(jié)合性,也不能改變運(yùn)算符操作數(shù)的個(gè)數(shù)及語法結(jié)構(gòu)。(5)運(yùn)算符重載不能改變該運(yùn)算符用于內(nèi)部類型對象的含義。它只能和用戶自定義類型的對象一起使用,或者用于用戶自定義類型的對象和內(nèi)部類型的對象混合使用時(shí)。(6)運(yùn)算符重載是針對新類型數(shù)據(jù)的實(shí)際需要對原有運(yùn)算符進(jìn)行的適當(dāng)?shù)母脑?重載的功能應(yīng)當(dāng)與原有功能相類似,避免沒有目的地使用重載運(yùn)算符。18.友元運(yùn)為符9両彼Ci埒譯器哪釋為AoptTatortF*(obj) H.oprntortf(obj.0)G6bj.opEiiord() D.obj.oprmlortf(0)解釋C重載的運(yùn)算符函數(shù)不可能有默認(rèn)參數(shù)函數(shù)重載5.采用重載函數(shù)的目的是A.實(shí)現(xiàn)共享 B.減少空間C.提高速度 む使用方便,提高可讀性38.重載函數(shù)在參數(shù)類型或參數(shù)個(gè)數(shù)上不同,但 必須相同。函數(shù)名12.下列不是函數(shù)■裂所要求的條件是A.的數(shù)名相同B..效個(gè)效不同C.弁敗類型不同0.函數(shù)返回值類る不同解釋:D函數(shù)重載使ー個(gè)函數(shù)名具有多種功能,也就是同一個(gè)名字的函數(shù)具有多種形態(tài),叫多態(tài)性。構(gòu)成函數(shù)重載,參數(shù)類型不同、參數(shù)個(gè)數(shù)不同、函數(shù)名相同。返回值不同是沒有辦法區(qū)分重載的。C++多態(tài)性可以直觀的表示,ー個(gè)名字,多個(gè)函數(shù)。源代碼只指明函數(shù)調(diào)用,而不說明具體調(diào)用那個(gè)函數(shù),直到程序運(yùn)行時(shí)才能確定調(diào)用哪個(gè)函數(shù),這叫動態(tài)聯(lián)編或遲后聯(lián)編。舉例:intadd(inta=3Jntb=5){returna+b;}帶默認(rèn)值的函數(shù)要想實(shí)現(xiàn)重載,必須大于兩個(gè)參數(shù),因?yàn)橛心J(rèn)值,編譯器不能確定到底是幾個(gè)參數(shù)的重載。23.塀律時(shí)的多密性通過 函數(shù)實(shí)現(xiàn)。函數(shù)重載多態(tài)從實(shí)現(xiàn)的角度可以劃為兩類:編譯時(shí)多態(tài)(靜態(tài)的)和運(yùn)行時(shí)多態(tài)(動態(tài)的x編譯時(shí)的多態(tài)是通過靜態(tài)連編來實(shí)現(xiàn)的;運(yùn)行時(shí)的多態(tài)是用動態(tài)連編來實(shí)現(xiàn)的。編譯時(shí)的多態(tài)性主要是通過函數(shù)重載和運(yùn)算符重載來實(shí)現(xiàn)的;運(yùn)行時(shí)的多態(tài)性主要是通過虛函數(shù)來實(shí)現(xiàn)的.C++中定義重載函數(shù)時(shí),應(yīng)至少使重載函數(shù)的參數(shù)個(gè)數(shù)或 彳.不同對鎳可以調(diào)用相同名稱的函數(shù),但可導(dǎo)致完全不同的行為的現(xiàn)象稱為_多態(tài)性 ?24.靜態(tài)聯(lián)編所支持的多態(tài)性稱為ー編譯時(shí)的多態(tài)性。36.函數(shù)重載可使ー個(gè)函數(shù)名具有多種功能,稱這種特性為20.不同對象調(diào)用同名函數(shù),但導(dǎo)致完全不同行為的現(xiàn)象稱為()A.抽象B.封裝C.繼承D.多態(tài)性intFunc(int,int):不可與下列哪個(gè)函數(shù)構(gòu)成重載( )BA.intFunc(,int): B.doubleFunc(int?int):C.doubleFiinc(double*double): D.doubleFunc(int*double):33.類A有如下成員函數(shù)intA::fun(doublex)(return(int)x/2:)intA::fun(intx){returnx*2;)設(shè)a為類A的對象’在主函數(shù)中有inls=a.fun(6.0Ha.fun(2),則執(zhí)行該語句后,s的值為_7010.下列函數(shù)不能和函數(shù)voidprint(char)構(gòu)成幣:載的是(C)A.intprint(int): B.voidprint(char,char):C.intprint(char): D.voidprint(int,int):42.#include<iostream.h>classf{private:intxfy;public:f)(){x=0;y=0;}fl(intajntb)(x=a;y=b;Jprint(){cout?x?w?y?endl;})main(){fa;//イ;能円接調(diào)用fl()Ha.print();}42.錯誤:a.fl(1,1)修改意見:增加一個(gè)fl的函數(shù)重載:voidfl(int1,intj){x=l;y=j:}45.#include<iostream.h>classpoint{intx;public:voidinit(inta){x=a;}intgetx(){returnxj}voidsetx(inta){x7a;}トーmain(){pointa;/a.init(20,30);cout?a.getx()?endl;)

43.#include<iostream.h>folalp;|p=newfolat[5];for(inti=0;i<5;i++){cin?*(p+i);cout?*(p+i)?endl;}deletep;函數(shù)模板9.實(shí)現(xiàn)兩個(gè)相同類型數(shù)加法的函數(shù)模板的聲明是A.add(Tx,Ty)C.Tadd(Tx,y)B.Tadd(x,y)A.add(Tx,Ty)C.Tadd(Tx,y)D.Tadd(Tx.Ty)答案:D15.關(guān)于函數(shù)模板,描述錯誤的是A.函數(shù)模板必須由程序員實(shí)例化為可執(zhí)行的函數(shù)模板;B.函數(shù)模板的實(shí)例化由編譯器實(shí)現(xiàn);C.一個(gè)類定義中,只要有一個(gè)函數(shù)模板,則這個(gè)類是類模板;D.類模板的成員函數(shù)都是函數(shù)模板,類模板實(shí)例化后,成員函數(shù)也隨之實(shí)例化;答案:C3.關(guān)于函數(shù)模板,描述錯誤的是A.函數(shù)模板必須由程序員實(shí)例化為可執(zhí)行的函數(shù)模板B.函數(shù)模板的實(shí)例化由編譯器實(shí)現(xiàn)/TV個(gè)類岸義中,只要有一個(gè)函數(shù)模板,則這個(gè)類是類模板D.類模板的成員函數(shù)都是函數(shù)模板,類模板實(shí)例化后,成員函數(shù)也隨之實(shí)例仇13.下列有關(guān)模板的描述中,偉誤的是A模板把セ據(jù)類型作為ー個(gè)設(shè)計(jì)叁數(shù),稱為參數(shù)化程序設(shè)計(jì)B,使用時(shí).模板參數(shù)與函收參數(shù)相同,是按位置而不是名稱對應(yīng)的C模板實(shí)例化參數(shù)類型包牯數(shù)徳類型和值D.類模板與模板類是同一個(gè)被念類模板可以成為另夕ー個(gè)類模板的成員(叫"成員模板"),函數(shù)模板沒有實(shí)參和形參之分,函數(shù)模板可以看成一個(gè)無參函數(shù),它的參數(shù)要根據(jù)調(diào)用對象的參數(shù)而定.函數(shù)模板的ー個(gè)實(shí)例就是ー個(gè)函數(shù)定義7.以下類模板定義正確的為A.template<classT> B.template<classT,classinC.template<classT,typenameT>D.template<classT1,T2>19.有關(guān)函數(shù)模板和模板函數(shù)說法錯誤的是A.函數(shù)模板只是對函數(shù)的描述,編譯器不為其產(chǎn)生任何執(zhí)行代碼,所以它不J實(shí)實(shí)在在的函數(shù)B.模板函數(shù)是實(shí)實(shí)在在的函數(shù),它由編譯系統(tǒng)在遇到具體函數(shù)調(diào)用時(shí)所生成用執(zhí)行C,函數(shù)模板需要實(shí)例化為模板函數(shù)后才能執(zhí)行D.當(dāng)函數(shù)模板和一般函數(shù)同名時(shí),系統(tǒng)先去匹配函數(shù)模板,將其實(shí)例化后進(jìn)行16.設(shè)有函數(shù)TSum(Tx,Ty){retumx+y:)(其中T為模板類型,則下列語句中對該函數(shù)錯誤的使用是(D)A.Sum(1,2):A.Sum(1,2):B.Sum(3.0,2.2);C.Sum(、A',〇:D.Sum(“A”,“C”):12.函數(shù)模板template<typenameT>voidFunc(T.T)可具有卜列哪種實(shí)例化形式()A.voidFunc(floai?int)B.voidFunc(char?char)C.voidFunc(int?double)D.voidFunc(boohfloat)26.C++中規(guī)定模板以關(guān)鍵字和一個(gè)形參表示開頭。11.定義函數(shù)模板中使用的參數(shù)類型標(biāo)識符需使用卜.列哪笄A.o B."“C.Q D.{}52.給出ド面程序的愉出結(jié)果.#include<iostream>usingnamespacestd;template<classT>Tmax(Tml,Tm2)(reium(ml>m2)?ml:m2:)voidmain(){coui?max(1?7)?"V"?max(2.0?5.0)?endl;coui?max(* ;b'v<"\t,r?max(vA","a")?endh7 5.0ya44.template<classT>Tf(Tx){Ty;y=x40returny;}函數(shù)調(diào)用19.考慮兩數(shù)晩嗯void ini*.inlb?7.charrh??1.下面的函數(shù)調(diào)用中?屬于不合法博用的是A.iwlfS)B.<01(5.8> CteM(6.?り D.lesl(O,O,<O解釋:C.非數(shù)組指針或引用型變量做實(shí)參時(shí),它和對應(yīng)虛參之間的數(shù)據(jù)傳遞方式是?BA.地址傳遞 B.單向值傳遞C.雙向值傳遞D.由用戶指定傳遞方ヨ調(diào)用聲明為intresultanta,intb)的函數(shù)時(shí),正確的方法是()A.result(L2)B.result(l)C.result(0.1,0.3)D.result(1,2,3)設(shè)存在函數(shù)intmax(int,in。返回兩參數(shù)中較大值,若求22,59,70三者中最大值,下列A.intm=max(22,max(59,70));B.intm=max(max(22,59),max(59,70));C.intm=max(max(22,70),59);D.以上皆正確7.設(shè)存在搬imMint,im)返酮期中默值,若求22,59,70三者中聯(lián)值,下列表達(dá)式不正確的是( )CA.intm=max(22,max(59,70)); B.intm=max(max(22,59),70);C.intm=max(22,59,70): D.intm=max(59,max(22,70));9.設(shè)存在函數(shù)intmin(int,int)返回兩參數(shù)中較小值,若求15,26.47三者中最小值,下列表達(dá)式中錯誤的是(B)A.intm=min(min(15*26)*min(15?47)):B.intm=min(15*26*47):C.intm=min(15*min(47,26)):D.intm=min(min(47,26),16):44.#include<iostream.h>classf{private:intx,y;public:fl(inta,intb){x=a:y=b;}voidprint(){cout?x?y?endl:}};main(){fa;a.fl(1.5,1.8):〃ヒ小心びmFリリfl函數(shù)的形參類,致,應(yīng)修改為一致?a.print():9.使用引用調(diào)用方式將實(shí)參傳給形參,下列說法正確的是(A.形參是實(shí)參的備份 B.實(shí)參是形C.形參和實(shí)參共享同一對象 D.形參和實(shí)7.設(shè)函數(shù)voidinc(int)將形參加1,如有整型變量inti=10;則執(zhí)行inc(i);ノA.9 B.10C.ll D.未知7.設(shè)函數(shù)voidswap(int&,int&)將交換兩形參的值,如兩整型變量inta=IO:intb=15:則執(zhí)行swap(a,b)后,a、b值分別為(C)A.10,10 B.10915 C.15,10 D.15,1535.將指向?qū)ο蟮闹羔樧鳛楹瘮?shù)參數(shù),形參是對象指針,實(shí)參是對象的一地址值.默認(rèn)參數(shù)27.若有函數(shù)定義為:intadd(intml=0,intm2=2*intm3=4){returnml+m2+m3:}在主函數(shù)中有ints二add(l)+add(0,l)+add(0,1,2);則執(zhí)行此語句后s的值為_15ー〇

8.函數(shù)趺認(rèn)參數(shù)在函數(shù)原型中說明,默認(rèn)參數(shù)必須放在參數(shù)序列的(C)A.前部 B.中部 C.后部 D.兩端8.下列哪種默認(rèn)參數(shù)的聲明是不正確的( )intmax(inta,intb,intc,intd=0);intmax(inta?intb,intc=0,intd=0);intmax(inta=0,intb,intc=0>intd=0);intmax(inta?intb=0>intc=0>intd=0);.使用值傳遞方式將實(shí)參傳給形參,ド列說法正確的是( )AA,形參是實(shí)參的備份 B.實(shí)參是形參的備份C.形參和實(shí)參是同一對象 D.形參和實(shí)參無聯(lián)系.在函數(shù)調(diào)用時(shí),如某ー默認(rèn)參數(shù)要指明一個(gè)特定值,則有(A.其之前所有參數(shù)都必須賦值A(chǔ).其之前所有參數(shù)都必須賦值B.其之后所有參數(shù)都必須賦值C.其前、后所有參數(shù)都必須賦值C.其前、后所有參數(shù)都必須賦值D.其前、后所有參數(shù)都不必賦值抽象類10.以下基類中的成員函數(shù)表示純虛函數(shù)的是A.virtualvoidvf(int) B.voidvf(int)=0C.virtualvoidvf()=0 D.virtualvoidyf(inl)|i答案:C下題表示函數(shù)聲明不是定義注意兩題的區(qū)別15.下面函數(shù)原型聲明中,聲明了fun為虛函數(shù)的是A.voidfun()=0 B.virtualvoidfun()=0IC^rirtualvoidfun() D.virtualvoidfun(){}22.抽象類中至少要イfー個(gè)函數(shù)。答案;純虛16.下列虛基類的聲明中,正確的是16.下列虛基類的聲明中,正確的是A.classvirtualB:publicAC.classB:publicAvirtual^^^lassB:virtualpublicAD.virtualclassB:publicA24.ー個(gè)抽象類的派生類可以實(shí)例化的必要條件是實(shí)現(xiàn)了所有的 純虛函數(shù)〇26.定義虛函數(shù)所用的關(guān)鍵字是ーvirtualO7.類Cat是類Animal的公有派生類,類Anima!和類Cat中都定義了虛函數(shù)func(),p是ー個(gè)指向類Animal對象的指針,則PAnimal::fund)將A.調(diào)用類Animal中的函數(shù)func()B調(diào)用第Cat中的函數(shù)func() 一C.根據(jù)p所指的對象類型而確定調(diào)用類Animal中或類Cat中的函數(shù)func()D.既調(diào)用美、nimal中南數(shù).也調(diào)用類Cat中的函數(shù)答案:的.當(dāng)物訐系統(tǒng)編評含冇中函數(shù)的類時(shí),將為它建立一個(gè)餐威效衣,我中的得一個(gè)無宗韓指肉1e虛函數(shù)的地址

B.classB:virtualpublicD.virtualclassB:publi5.下列虛基類的聲明中,正確的是B.classB:virtualpublicD.virtualclassB:publiA.classvirtualB:publicAC.classB:publicAvirtual8.C++中要實(shí)現(xiàn)動態(tài)聯(lián)編,調(diào)用虛函數(shù)時(shí)必須使用D.對象A.基類指針 B.類名 C,D.對象++—4.設(shè)x=8,執(zhí)行語句Y=x++,則y等于DA.6 B.7 C.9 D.811.假定—ケ類的構(gòu)造函數(shù)為A(intaa,intbb)|a=aa++;b=a*++bb;(,則執(zhí)行A1句后,x.a和x.b的值分別為A.4和5 B.4和20 C.4和24 D.20和5答案:C37.若inta=8;intb=(++0++;則b= '',32.假設(shè)inta=1,b=2;則表達(dá)式(++a/b)*b―的值為 26.假定?=5,尸6.則表達(dá)式ス“??”的値カ35

運(yùn)算2,若有以下類量標(biāo)識符定義:intx=2;charw=a:floaty=23.45f;doublet=45.671哀達(dá)式????*y-?的結(jié)果類型是A.floatHcharD.doubleA.floatHchar解釋:混合運(yùn)算,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算,這種轉(zhuǎn)換是系統(tǒng)自動按照相應(yīng)的規(guī)律進(jìn)行的。轉(zhuǎn)換規(guī)則是:字符數(shù)據(jù)必須先轉(zhuǎn)換未整型數(shù)據(jù),short型轉(zhuǎn)換為int型數(shù)據(jù),float轉(zhuǎn)換成雙精度類型,也就是說范圍小的向范圍大的進(jìn)行轉(zhuǎn)換。5.下列運(yùn)算符中,優(yōu)先級最高的是BA.* B.—> C.&& D.>=1.若有以下類型標(biāo)識符定義:charc=*c*;inta=4;floatf=3.14;doubled=表達(dá)式c+a/(int)d+f的結(jié)果類型是A.floatC.intA.floatC.intD.double3I法!!定義H?=3,則執(zhí)ケ完語句?? ???。は后,?的他為34.I!定ス是ー個(gè)運(yùn)機(jī)席,則溫的位カ11.設(shè)X和y均為bool量,則x&&y為真的條件是ュ』:們均為真

C,ュ』:們均為真

C,它們均為假B.D.其中一個(gè)為真

其中一個(gè)為假18.在C++語言中,能代表邏輯值“假”的是A.小于〇的數(shù) B.大于〇的數(shù) C.非〇整數(shù)6.邏輯運(yùn)算符兩側(cè)運(yùn)算對象的數(shù)據(jù)A.是邏輯型數(shù)據(jù) B,只能是整型數(shù)據(jù) いC.只能是整型或字符型數(shù)據(jù) D.可以是任何類型的數(shù)據(jù)28.假定x=15,則表達(dá)式x<=10?20:30的值為〇.設(shè)"inta=3,b=4,c=5;”,表達(dá)式"(a+b)>c&&b==c"的值是,.描述命題”A小于B或小于C”的表達(dá)式為〇14.在C++語言中,080是A.ハ進(jìn)制數(shù) B,十進(jìn)制數(shù)C.十六進(jìn)制數(shù) 、L非法數(shù)”.在下列成對的表達(dá)式中,運(yùn)算結(jié)果類型相同的對是(D)A.7/2和7.0/2.0 B.7/2.0和7/2C.7.0/2和7/2 D.7.0/2.0和7.0/240.設(shè)有定義inix;floaty;.則10+x+y值的數(shù)據(jù)類型是〇編譯預(yù)處理2L#include<iostream,h>命令中,include的意義是:包含頭文件13.在編譯指令中,宏定義使用哪個(gè)指令C.#defineD.#errorA.#if B.#includeC.#defineD.#error答案:c22.C”提供的據(jù)處理語句有3軸,文件包含,條件編譯和22C++提供的編譯預(yù)處理功能主要有以下三種:①宏定義②文件包含③條件編譯17.下列哪個(gè)編譯指令屬了條件編譯指令(C)A.#includeB.#defineC.#elseD,#pragma38.u指令定義ー個(gè)標(biāo)識符及事,在源程序中每次遇到該標(biāo)識符時(shí),貨TOC\o"1-5"\h\z3.可替換#definePI3.1415926的語句是( )A.floatPI3.1415926: B.constfloatPI=3.1415926:C.constPI(3.1415926); D.const3.1415926;16.在編譯指令中,宏定義使用哪個(gè)指令( )BA.#include B.#defineC.#if D.#else\o"CurrentDocument"15.下列哪個(gè)指令屬于條件編譯指令( )A.#elif B.#errorC.#pragma D.#include29.在源程序中有宏定義:#definePI3.14,則若不想使該宏定義影響到程序的其它地方,可以使用_#undefPl刪除該宏定義。(注:配套教材上沒行)16.ド列哪個(gè)編譯指令不屬「條件編譯指令()A.#ifB.#elseC.*endifD.#eiror19.下面敘述中錯誤的是A.預(yù)處理命令都必須以“#”開始B.在程序中凡是以“#”開始的語句行都是預(yù)處理命令行C++程序在程序執(zhí)行過程中對預(yù)處理命令進(jìn)行處理一行只能寫一條預(yù)處理命令 c50.下面是ー個(gè)輸入半徑,輸出其面積和周長的C++程序,在橫線處填上正確的語句。(圓周率為3.14159)#mcludeNstdafx.#include<iostream>#includewmath,h"usingnamespacestd;〃宏定義 ^definepi3.14159voidmain()Idoublerad;cout?"rad=w;cin?rad;double1=2.0?pi?rad;; doubles=pi?rad?radcout?**\nThelongis:"?l?endl;cout?**Theareais:M?s?endl;|29._#inchide.指令指示編譯器將一個(gè)源文件抿入到帶該指令的源文件之中。.包含自定義頭文件file.h的預(yù)處理指令是(D)A.#define<file.h>B.#includefiie.hC.#definefile.h D.#includeMfile.hM.用于標(biāo)識十六進(jìn)制前綴或后綴是(D)A.無 B.后綴L或e C.前綴零 D.前綴Ox3.用于包含C++標(biāo)準(zhǔn)庫沁stream的預(yù)處理指令是()A.#define<iostream>B.#include<iostream>C.#definc4iostream9D.#include*iostream*數(shù)組10.假定a為ー個(gè)整型數(shù)組名,則元素a[4]的字節(jié)地址為C字節(jié)地址每個(gè)占4個(gè)字節(jié)A.a+4 B.a+8 C.a+16 D,a+3214.以下能正確定義數(shù)組并正確賦初值的語句是A.intN=5,b[N][N]; B.inta[2]={111,|3|,[4j,|5|C.mtc[2][]=Hl,2},{3,4H; D.intd[3][2]=||1,2|,|3,4||;答案:D16.下面關(guān)于C卄字符數(shù)組的敘述中,錯誤的是A,字符數(shù)組可以放字符串B.字符數(shù)組的字符可以整體輸入、輸出C.可以在賦值語句中通過賦值運(yùn)算符“=”對字符數(shù)組整體賦值D.可以用關(guān)系運(yùn)算符對字符數(shù)組比較大小11.若二維數(shù)組y有m列,則位于之前的元素?cái)?shù)量是B.1B.1?m+jD.i?m+j+1C.i?m+j-19.對于im?p?[Sj;的描述中,正確的是んp是ーヰ指向數(shù)組的指針.所指向的數(shù)組是5個(gè)加型元なBpa是ー個(gè)推向某敷組中第5個(gè)元京的指軒,該元素是ini型變量pa[5]表示敷組的第5個(gè)元素的值.是int型的值a是ー個(gè)具有5個(gè)元素的指時(shí)數(shù)組,每個(gè)元素是ー個(gè)對型指針解釋:Dint(*pa)[5]與int*pa[5]的區(qū)別。int(*pa)[5]本質(zhì)上是數(shù)組,是指ー個(gè)指向整形數(shù)組的指針,而int*pa[5]是本質(zhì)是指針數(shù)組,pa[]里面存的是地址。它指向的位置的值就是?pa[0]、?pa[l]....*pa[3] 6.卜.面關(guān)于數(shù)組的初始化正確的是()A.charstr[X'a'/b'/c*);B.charstr[2]={'a\V,ゼトC.chars(rri]r21={{,a\b},{—'d'}}:D.charstr[][]={fa\V?で);14.用new運(yùn)算符創(chuàng)建一壊數(shù)用的正確形式是A.int*psnewa[iO)s B.!kmt?p=new10]jCirt?p■newftooi[10]: DM?p=newint⑸=11,2345,61;解釋:B#include<ioslream>usingnamespacestd;intmain()|constintnum=20;iniscores[num];fbr(inii=1;i<=num;i-h-)「?[?scores[IJ=1;return0;! 卜標(biāo)越界

43.#include<iostream>usingnamespacestd;intmain(){constintnum=20;intscores[num|;for(inti=l;i<=num:i++)(數(shù)組下標(biāo)越界scores[i]=i:數(shù)組下標(biāo)越界}return0:指針16.如果有mtx,? ?q;則下面隆作中,正確的是A.psx B>p=q C.p?dn D.p=時(shí)解釋:cThis14.this指針存在的目的是()BA.保證基類公有成員在子類中可以被訪問B.保證每個(gè)對象圳有自己的數(shù)據(jù)成員,但共享處理這些數(shù)據(jù)成員的代碼C,保證基類保護(hù)成員在子類中可以被訪問D.保證基類私有成員在子類中可以被訪問2.不同對象調(diào)用同一成員函數(shù)時(shí),this指針指向()A.不同對象 B.相同對售C.無對象 D.不確定22.this指針始終指向調(diào)用成員函數(shù)的 ?嚴(yán) 019.關(guān)于this指針的說法錯誤的是A.this指針必須顯式聲明B.當(dāng)創(chuàng)建一個(gè)對象后,this指針就指向該對象C.動態(tài)成員函數(shù)擁有this指針D.靜態(tài)成員函數(shù)不擁有this指針答案:A15.以下關(guān)于!hh指葉的敘述中,正?的是A.任何與類相關(guān)的函數(shù)都斉由指葉B.類的成員函數(shù)都有?指竹Q類的友元函我那有加,指ft D.類的非靜蓑成員函效オ有如?指紂解釋:D類的每一個(gè)成員函數(shù)都有一個(gè)隱含的常量指針,this指針?類的靜態(tài)成員函數(shù)不能含有this指針.因?yàn)閠his指針是ー個(gè)指向本對象的指針.注意:this指針只能用于成員函數(shù),成員變量,對于靜態(tài)函數(shù)和靜態(tài)變量,是不允許使用this(因?yàn)殪o態(tài)函數(shù)或變量,都是屬于對象本身,即所有實(shí)例都可以訪問他們,但是this只是指向自身實(shí)例的地址,是ー個(gè)個(gè)例。)友元函數(shù)也沒有this指針。(友元函數(shù)至少需要一個(gè)參數(shù))this引用成員變量用法有二:this->va!或者(*this).val.這就像指針引用類似。向量vector23.vector類中用于刪除向量:中的所有對象的函數(shù)是答案:clear()35.已知有20個(gè)元素int類型向量V1,若用ッ1初始化為'-向量.語句是 vector<int>V2(V1);38.在C++中,利用向量類模板定義一個(gè)具有!0個(gè)int的向量A,其元素均被置為1,實(shí)習(xí)此操作的語句是vectoro<int>A(10,1)字符串25.執(zhí)行下列代碼stringstr(11NihaoC++**);cout?str.substr(5,3);程序的輸出結(jié)果是。答案:C++.下面不能夠判斷字符串S是空串的是A.if(S[0]=0) B.if(strlen(S)=0)Cif(strcmp(SJ")=0) D.if(S=>\0,)A.下列檢出字符’ア的方法中,錯誤的是A.cout?put('d,) B.cout?*d* AC.cout.put(4d1) D.chara=1d*;cout?a;36.在使用string類的find成員函數(shù)來檢索主審中是否含有指定的子申時(shí),若在主事中不含指定的子串,find函數(shù)的返回值是ー-1.18.使用slring.h庫操縱字符中時(shí),將兩個(gè)字符串連接成一個(gè)字符串的函數(shù)是いA.strlen()B.strcapf)C.strcatOD.strcnapO復(fù)數(shù)26.寫出聲明一個(gè)復(fù)數(shù)對象的語句,并使該對象被初始化為2.2+13,此聲明語句是—complex<double>c(2.2,1.3); .2】.在C++語言的面向?qū)ο笤O(shè)計(jì)框架中,是程序的基本組成單元..執(zhí)行代碼doublepi=3.1415192;cout<<setprecision(3)<<pi;程序的輸出結(jié)果是,.C卄語言提供的的基本控制結(jié)構(gòu)可以分為3種類型:順序結(jié)構(gòu)、和循環(huán)結(jié)構(gòu)..要使用STL庫提供的對數(shù)組進(jìn)行降號作序算法,在源程序中需要包含的頭文件是ー.在C++標(biāo)準(zhǔn)庫中,用 類來表示復(fù)數(shù)..將對象作為函數(shù)參數(shù),是將實(shí)參對象的傳遞給形參對象,這種傳遞是單向的。.C++函數(shù)的返回類型可以是除數(shù)組與以外的任何類型..能提供封裝的C++關(guān)健字是0.在C++的類聲明中,用public關(guān)健字聲明的類成員的訪問權(quán)限是?.開發(fā)一個(gè)C++語言程序的步驟通常包括編輯、,連接'運(yùn)行和調(diào)試。多態(tài)性14.有關(guān)多態(tài)性說法不正確的是 CA.C++語言的多態(tài)性分為編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性B.編譯時(shí)的多態(tài)性可通過函數(shù)重載實(shí)現(xiàn)C,運(yùn)行時(shí)的多態(tài)性可通過模板和虛函數(shù)實(shí)現(xiàn)D.實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的機(jī)制稱為動態(tài)多態(tài)性動態(tài)是通過基類指針或基類引用和虛函數(shù)來實(shí)現(xiàn)的29.不同對象可以調(diào)用相同名稱的函數(shù),但執(zhí)行完全不同行為的現(xiàn)象稱為ー27.C++支持兩種多態(tài)性:時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性。編譯39I不同對我可以謝用相同名稱的兩數(shù).但執(zhí)行完全不附行為的現(xiàn)象稱為.多態(tài)性基礎(chǔ)1.C++語言是從早期的C語言逐漸發(fā)展演變而來的,與C語言相比,C++在求解問法上進(jìn)行的最大改進(jìn)號A,面向過程 Lメ”面向?qū)ο?C.安全性D.復(fù)用性36.C++中一般的程序都要有兩條語句,包含頭文件"#include<iostream>”語命名空間“”語句。4.以下說法中正確的是C++程序總是從第一個(gè)定義的函數(shù)開始執(zhí)行C++程序總是從main函數(shù)開始執(zhí)行C++中函數(shù)必須有返回值C++中函數(shù)名必須唯一29.C++流庫預(yù)定義了4個(gè)流,它們分別是cinxcoutxclog和 〇cerr33.Ch程序的源文件擴(kuò)展名為(pp37.C++程序的編譯是以為單位進(jìn)行的。文件2I面向?qū)澇绦蛟O(shè)計(jì)不僅館選行功能抽象,而只能進(jìn)行抽象°解釋:21數(shù)據(jù) 結(jié)構(gòu)化程序設(shè)計(jì)使用的是功能抽象,面向?qū)ο蟪绦蛟O(shè)計(jì)不僅能進(jìn)行功能抽象,而且能進(jìn)行數(shù)據(jù)抽象?!皩ο蟆睂?shí)際上是功能抽象和數(shù)據(jù)抽象的統(tǒng)ー40.下面程序運(yùn)行的結(jié)果是 〇#inclu<le<iostrcam.h>voidmain()!cout.fill('*0;rout.widlh(6);cxMJt?"hello'*?cndl;r<,ul.rl「;ir,);I *helloC++中定義標(biāo)準(zhǔn)輸入輸出的庫為A.stdio B.math C.iostream D.stdlil31.C++語言的一中^提供了與要操作的元素類型無關(guān)的算法。標(biāo)準(zhǔn)模板庫2.編寫C++程序一般需經(jīng)過的幾個(gè)步驟依次是DA.編輯、調(diào)試、編譯、連接 B.編譯、調(diào)試、編輯、連接C.編譯、編輯、連接、運(yùn)行 D.編輯、編譯、連接、運(yùn)行7.存儲下列數(shù)據(jù),占用存儲字節(jié)最多的是DA.0 B.’〇’ C.'、〇” D.0.0.對C++語言和C語言的兼容性,描述正確的是( )AA.C++兼容C B.C++部分兼容CC.C++不兼容C D.C兼容C++.在C++中,頭文件擴(kuò)展名為( )A..cpp B..hC..lib D..objLC卄源程序文件擴(kuò)展名為(A)A..cppB..hC..libD..obj37.C++語言對C語言做了很多改進(jìn),C++語言相對于C語言的最根本的變イ.對C++語言和C語言的兼容性,描述正確的是(AA.C++兼容CB.C++部分兼容C C.C++不兼容]類8.所謂數(shù)據(jù)封裝就是將一組數(shù)據(jù)和與這組數(shù)據(jù)有關(guān)操作組裝在ー起,形成一個(gè)實(shí)體あ實(shí)體也就是 Aん類 B.對象 C.函數(shù)體 D,數(shù)據(jù)塊35.面向?qū)ο蟮乃膫€(gè)基本特性是多態(tài)性、繼承性、封裝性、一012.下列關(guān)于類的權(quán)限的描述錯誤的是ん類本身的成員函數(shù)只能訪問自身的私有成員B.類的對象只能訪問該類的公有成員C.普通函數(shù)不能直接訪問類的公有成員,必須通過對象訪問D.ー個(gè)類可以將另ー個(gè)類的對象作為成員28.在用class定義一個(gè)類時(shí),數(shù)據(jù)成員和成員函數(shù)的默認(rèn)訪冋權(quán)限是 。private(私有)1S,已知:P是一個(gè)指向類A數(shù)據(jù)成員m的指針,A1是類A的ー個(gè)對象。如果要給m斌值為5,正確的是A.Al.p=5;B.Al->p=5;C.Al.*p=5;D.?Al.p=5;答案:Da対美中聲明的交?,下列描述中正確的是ん屬于全局變量B,屬于詼類,某些情況下也可被該類不同實(shí)例所共享C只屬于該類D.任何情況下那可被讀類所有實(shí)例共享解釋:類中的靜態(tài)成員變量,為所有類對象所共享,但不屬于任何ー個(gè)對象。動態(tài)成員變量不能被該類的實(shí)例共享,每個(gè)實(shí)例的動態(tài)成員變量空間是不同的。B7.在類定義的外部,可以被訪問的成員有A,所有類成員 B.private或protected的類成員C.public的類成員 D,public或private的類成員解釋:Apublic屬性的成員對外可見,對內(nèi)可見private屬性的成員對外不可見,對內(nèi)可見。Protected屬性的成員對外不可見,對內(nèi)可見,對派生類是可見的(比如父母的錢對外不可見,但是對于后代是可用的)成員沒有加修飾符,默認(rèn)是private6.以下關(guān)鍵字不能用來聲明類的訪問權(quán)限吵A.public B.private ^^^stadcD.protected7.有如下類聲明"classA{intx;,則A類的成員x是A,公有數(shù)據(jù)成員 &Z私有數(shù)據(jù)成員C,公有成員函數(shù) D.私有成員函數(shù)8.關(guān)于類和對象不正確的說法是CA,類是一種類型,它封裝了數(shù)據(jù)和操作 B.對象是類的實(shí)例C.ー個(gè)類的對象只有一個(gè) D.ー個(gè)對象必屬于某個(gè)類13.關(guān)于對象概念的描述中,說法錯誤的是A(類オ是)A.對象就是C語言中的結(jié)構(gòu)體B.對象代表著正在創(chuàng)建的系統(tǒng)中的ー個(gè)實(shí)體C.對象是類的ー個(gè)變量D,對象之間的信息傳遞是通過消息進(jìn)行的賀.在用daw定義ー個(gè)類時(shí).收據(jù)成員卻成員函數(shù)的歌ル訪問權(quán)限是私有private42.#include<iostream.h>classtest{private:intx:public:test(inta){x=a:}voidset(inta){x=a;}voidget(){cout?x?endl;}}//error缺少分號;main()(consttesta(3):a.set(5);a.get():)

8.下列對于類的描述錯誤的是()A.類要先聲明后使用B.類是具有唯一標(biāo)識的實(shí)體C.兩個(gè)類可以使用同一個(gè)名稱D.組成類的不僅有數(shù)據(jù),還可以有對數(shù)據(jù)進(jìn)行操作的函數(shù)10.關(guān)于對象的性質(zhì),下列描述錯誤的是()A.同一類對象之間可相互賦值B.不能使用對象數(shù)組C.對象可以用作函數(shù)參數(shù)D.ー個(gè)對象可以用作另ー個(gè)類的成員16.下列關(guān)于類的權(quán)限描述錯誤的是()A.類本身的成員函數(shù)可以訪問自身的任何成員B.類的對象可以訪問該類的所有成員C.普通函數(shù)不能直接訪問類的公有成員,必須通過成員函D.ー個(gè)類可以將另ー個(gè)類的對象作為成員6.在定義類成員時(shí),為產(chǎn)生封裝性,則需使用哪個(gè)關(guān)鍵’*D)A.public B.publishC.protectedD.private20.下列哪個(gè)不是面向?qū)ο蟮年P(guān)鍵要素( )B.結(jié)構(gòu)性D.多態(tài)性A.B.結(jié)構(gòu)性D.多態(tài)性C.封裝性7.下列哪個(gè)要素不是面向?qū)ο蟮年P(guān)鍵要素()B.抽象性D.B.抽象性D.繼承性C.封裝性

4.如沒有使用private關(guān)鍵字定義類的數(shù)據(jù)成員,則默認(rèn)為(B.publicD.friendA.privateB.publicD.friendC.protected13.類的私有成員可在何處被訪問(A)A.本類的成員函數(shù)中 B.本類及子類的成員函數(shù)中C.通過對象名在任何位置 D.不可訪問13.ド列訪問成員的方式哪個(gè)是正確的()A.對象名.對象成員名B.對象指針名.對致成員名C.對象名ー對象成員名D.類名ー對象成員名11.類的私有成員可在何處訪問( )DA,通過子類的對象訪問 B,本類及子類的成員函數(shù)中C,通過該類對象訪問 D.本類的成員函數(shù)中30.類和其它數(shù)據(jù)類型不同的是,組成這種類型的不僅可以有數(shù)據(jù),還可以冇對數(shù)據(jù)進(jìn)行操作的_函數(shù)34.對象傳送的消息一般由3部分組成:接收對象名、調(diào)用操作名和一參數(shù).15.下列關(guān)于類的權(quán)限的描述錯誤的是( )AA.類本身的成員函數(shù)只能訪問自身的私有成員B.類的對象只能訪問該類的公有成員C.普通函數(shù)不能直接訪問類的公有成員,必須通過對象訪問D.一個(gè)類可以將另ー個(gè)類的對象作為成員17.設(shè)類A將其它類對象作為成員,則建立A類對象時(shí),下列描述正確的是(A.A類構(gòu)造函數(shù)先執(zhí)行A.A類構(gòu)造函數(shù)先執(zhí)行B,成員構(gòu)造函數(shù)先執(zhí)行D,不能確定C.D,不能確定.C―類中定義的成員默認(rèn)訪問屬性為()A.public.privateC.protectedD.friend43.#include<iostream.h>classf{private:intx=O,y=0;〃不能用接4類里而給對象賦值public:voidfl(inta?intb){x=a:y=b:|voidget(){cout?x?*?y?endl;}卜main(){fa;a.fl(l,3):a.get();42.#include<iostream>usingnamespacestd;classA(voidshow(){cout?"Hcllo!w;, 改錯默認(rèn)為私有); 不能在主函數(shù)中inimain〇( 訪問show。Aa;a.show();return0;靜態(tài)成員函數(shù)9.下列對靜態(tài)成員的描述中,不正確的是A.靜態(tài)成員不屬于對象,是類的共享成員B.靜態(tài)數(shù)據(jù)成員要在類外定義和初始化C.調(diào)用靜態(tài)成員函數(shù)時(shí)要通過類或?qū)ο蠹せ?所以靜態(tài)成員函數(shù)擁有!D.非靜態(tài)成員函數(shù)也可以操作靜態(tài)數(shù)據(jù)成員35.C++的靜態(tài)數(shù)據(jù)成員需要在 進(jìn)行初始化,可以被該類的所有33.若類的成員函數(shù)用關(guān)鍵字stade進(jìn)行修飾,這樣的成員函數(shù)稱為.18.下列描述錯誤的是( )AA.在創(chuàng)建對象前,靜態(tài)成員不存在 B.靜態(tài)成員是類的成員C.靜態(tài)成員不能是虛函數(shù) D.靜W成員由數(shù)不能兌接訪問非靜態(tài)成員18.關(guān)于類的靜態(tài)成員函數(shù)描述錯誤的是(A)A.在創(chuàng)建對象前不存在 B.不能說明為虛函數(shù)C.不能直接訪問非靜態(tài)函數(shù) D.不是對軟的成員17.類A中存在靜態(tài)數(shù)據(jù)成員X,設(shè)a和b是類A的兩個(gè)對象,在執(zhí)行a.x=10之后,b.x的值為()A.未初始化B.等于a.xC.等于〇D.M機(jī)16.設(shè)類Test中存在成員staticintx,則下列哪種初始化方式是正確的(A.Test::intx=25; B.intx=25;C.intTest::x=25; D.intTestx=25;11.類中能訪問靜態(tài)成員的函數(shù)是BC,構(gòu)造函數(shù)D.析構(gòu)函數(shù)A.C,構(gòu)造函數(shù)D.析構(gòu)函數(shù)41.232345678910111213141516intx,y=20:錯,在類內(nèi)部不能對數(shù)據(jù)成員直接復(fù)制改為intx,y:#includewstdafx.h"#include<iostream>usingnamespacestd;classTestIprivate:intx,y=20;public:Test(j)|x=i,y=j;}intgetx()Ireturnx;1intgety()|returny;)I;voidmain(){Testmt(10,20);cout?mt.getx()?endl;coul?mt.gety()?endl;/include<iostream.h>classAton12Y;一 因?yàn)閄,Y都是私有的,在類外無Pasted: 法直接訪問,修改為publicintzxtzy;public:voidinit(inli,intj)|zx=i;zy=j;|Aton(inti,intj,intn=0,intm=0)JX=i,Y=jtzx=mtzy=n;II;voidmain()IAtonA(25,20,3,5);A.init(5,9);cout?A.X?endl;cout?A.Y?endi;1748.在下面程序的橫線處填上適當(dāng)?shù)淖志?使該程序執(zhí)行結(jié)果為40。#include<iostream.h>classTestIpublic: ?staticintx;Test(inti=0)intGetnum()IreturnTest::x+10;|I;intTest::x=30voidmain(){Testtest;cout?test.Cetnum()?endl;1.從

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論