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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第一大類C++基礎.要求指針P既不可修改其本身的內容,也不可修改其所指向地址的內容,定義正確的是A.constchar*p="ABCD"; B.char*constp="ABCD"; 2016.C.charconst?p=**ABCDW; D.constchar?constp=**ABCD";答案:D2〇.已知:func()函數是ー個類的常成員函數.它無返回值,下列表示中,是正確的是A.voidfunc()const; B.constvoidfunc();C.voidconstfunc(); D.voidfunc(const);答案:A8.在兩數體之前加 關情字可以防止用或雨鼓改變數屐成員的伍.3.已知:print()函數是ー個類的常成員函數,無返回值,下列表示中正確的是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是普通對象.調用普通的print。函數y是常量對象調用常量成員函數voidmain()Iexamplex;ccmstexampley(2);x.print();y.print();13.用于標識ハ進制常量的前綴或后綴是()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是指向常嚴的常歐指什不能做為表達式的左值.#include<iostream.h>inain(){intx=5.y=6:constint*p=&x;*p=y;〃?p不能作為左伯出現,改:把con、lよ掉cout?*p?endl:}45.#include<iostream.h>main(){intx=6;constint*p=x://error:應改為constint*p=&x:cout?*p?endl:47.下面是ー個輸入半徑,輸出其面積和周長的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.ー個類可以獲得另ー個類的特性的機制稱為()A.抽象 B.封裝C.繼承 D.多態性20.在哪種派生方式中,派生類可以訪問基類中的protected成員( )BA.public和private B.public和protectedC.protected和private D.僅protected20.派生類的對象可以訪問以下那種情況繼承的基類成員(D)A.私有繼承的私有成員 B.公有繼承的私有成員C.私有繼承的保護成員 D.公有繼承的公有成員19.基類中的public成員,通過public派生,其在派生類中的訪問權限為()A.不可訪問B.privateC.protectedD.public.在繼承中,派生類擁有的基類個數為( )A.0個 B.1個C.多個 D.至少1個B.privateD.public.基類中的protected成員,通過public派生,其在派生類中的可見性為B.privateD.publicA.不可訪問C.protected36.派生類的主要用途是可以定義其基類中ユ好ルす員類A繼承了類B,類C繼承了類A,那么類C也相應的繼承了類B,也就是說類B的后代是A,類A的后代是C,那么類C也具有類B的特征,這就叫傳遞性。2.在C++中,類與類之間的繼承關系具有A,自反性 B.對稱性 C.傳遞性 D,反對稱性答案:C5.在04中,類與類之間的編款關系具有A,自反性 &對稱性C傳遞性ユ反對稱性26.C++中有兩種繼承:單ー繼承和〇多重繼承39.舉出C++中兩種代碼復用的方式: 、復用。繼承3.下列關于對靜態數據成員的描述中,正確的是A.靜態數據成員不能用public控制符修飾B.靜態數據成員可以直接用類名或者對象名來調用C.靜態數據成員不可以被類的對象調用D.靜態數據成員不能用private控制符修飾答案:B13.當ー個派生類公有繼承一個基類時,基類中的所有公有成員成為派生類的J^/ublic成員 B.private成員protected成員 D.友元9.下列關于類的繼承描述中,錯誤的是ん基類不一定具有派生類的全部屬性和方法B.派生類可以訪問基類的所有數據成員,也能調用基類的所有成員函數C繼承描述類的層次關系,派生類可以具有與基類相同的屬性和方法 bー個基類可以有多個派生類,ー個派生類可以有多個基類33.在保護派生中,基類權限為pubUc的成員在派生類中為丄ユ_。^include<iostreain.h>classBasedIpublic:Based() 1cout?"Based構造函數、n”;fun();|vixtualvoidfun()Icoul?**Based::fun()函數、2IIclassDerived:publicBasedIpublic?TOC\o"1-5"\h\zDerived() キIcout?"Derived構造函數'n" ;|voidfun()Icout?"Derived::fun()函數'n";| ,I;voidmain(){Derivedd;內聯函數為什么要用內聯函數?舉例:對于ー個簡單的函數intisnumber(charc){Return(c>='0'&&c<=,9,)?1:0;}Voidmain(){Charc;Cout?S'shurucharacter";Cin?c;lf(isnumber(c))cout?"shuzi";Elsecout?"bushishuzi";)

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

析構函數32.為了在對象生存期結束時釋放其指針成員所指向的動態存儲空間,通常為該類定メ〇 析構函數20.對類的構造函數和析構函數描述正確的是A.構造函數可以重載,析構函數不能重載B.構造函數不能重載,析構函數可以重載C.構造函數可以重載,析構函數也可以重載D.構造函數不能重載,析構函數也不能重載34.C++類中構造函數的個數最多是無限個,析構函數的個數最多是 27.在Ci程序中,對剛創建的対象進行初始化的工作由構造函數來完成;而碇前的一些清理工作対是由 曲數來光成的6析構ー個類可包含析構函數的個數是( )BA.0個 B.1個C.至少ー個 D.0個或多個15.下列關于析構函數描述正確的是(D)A.可以用載 B.函數體中必須有delete語句C.返回類型必須是voidC.返回類型必須是void類型D.不能指定返回類型32.對于類Point而言,其析構函數的定義原型為_-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引用實際上就是變量的別名,使用引用和直接使用變量一樣,引用與變量名在使用的形式上是完全ー樣的,但引用本身并不是對象,只是作為標識對象的手段,聲明方式為數據類型&別名=對象名不能直接聲明對數組的引用,也不能聲明引用的引用int&&x=m就是非法的39.將指向對象的引用作為函數的形參,形參是對象的引用.實參是對軌名。29.C++語言中如果調用函數時,需要改變實參或者返回多個值,應該采取方式。傳地址或引用方式。41.#include<iostream,h>usingnamespacestd;voidsetzero(int&a)ja=0;Iintmain(){intxl=10;setzero(&xl);cout?xl?endl;return0;r15.關于引用,下列的說法中錯誤的是ん引用是給被引用的變量取ー個別名B.引用主要是用來作函數的形參和函數的返回值C.在聲明引用時,要給它另開辟內存單元D.在聲明引用時,必須同時使它初始化 C5.設存在整型變量intx,則下列句與其它三項含義不同的是(A)A.int*p=&x: B.int&p=x;C.int&p=x;D.int&p=x:5.從本質上看,引用是被引用變量的いA.拷貝B.別名C.復制D.克隆20.對引用調用描述正確的是()A.分配新存儲空間B.修改已存儲空間的名稱為引用名C.引用名與已存在存儲空間無任何關聯D.將引用名標識符與一塊已存在儲區域相關聯,沒有分配キ24.C++函數中按引用調用傳遞參數時使用ー對象利さ.作為參數54.給出下面程序的輸出結果#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拷貝構造函數5.通常拷貝構造函數的參數是A,某個對象的成員名C,某個對象的引用名答案:c9,通常的拷貝構造函數的參數是A.某個對象名個對象的引用3.拷貝構造函數應該是A.不帶參數的構造函數C.帶有兩個參數的構造函數B.某個對象的指針名D.某個對象名B,某個對象成員名D,某個對象的指針名B.帶有一個參數的構アD.缺省構造函數21.通常使川対象的用用來初始化創建中的對象。答案:拷貝構造函數39.拷貝構造函數使用作為參數初始化創建中的對象。拷貝構造函36.使用對象的引用來初始化創建中的對象的炳畋金拷貝構造函數38.震?構造函依使用作為形式參數。對象的引用14.對類A,復制構造函數的原型是()A.A::A(constA&):B.A::A(constA*);C.A::A(conslA):D.A::A():は對于拷貝構造函數point::point(point&p),下列說明正確的是(A.該函數只能訪問P的私有成員 B.該函數不能訪問P的公平C.該函數可以訪問P的私有和公有成員 D.該函數不能訪問P的成ウ友元函數19.對于友元描述正確的是( )BA,友元是本類的成員函數 B.友元不是本類的成員函數C.友元不是函數 D.友元不能訪問本類私有成員19.如果類A被聲明成類B的友元,則(D)A.類A的成員即類B的成員B.類B的成員即類A的成員C.類A的成員函數不得訪問類B的成員D.類B不一定是類A的友元17.下列關于友元的描述錯誤的是( )A.成員函數不可作友元 B.類可以作友元C.普通函數可以作友元 D.靜態函數可以作友元??友元函??友元函6,下列不是類的成員函數的是A一方元函數 B.構造函數C,析構函數 D.拷貝構造函數答案:A12.對于友元描述正確的是 ノA.友元是本類的成員函數 也ノる不是本類的成員函數C,友元不是函數 、ク友元不能訪問本類私有成員17.已知類A是類B的友元,類B是類C的友元,則ヽ.類A一定是類C的友元B.類C一定是類A的友元(:.類C的成員函數可以訪問類B的對象的任何成員D.類A的成員函數可以訪問類B的對象的任何成員答案:c33.如果要把ヨ謁E類的巡蚓值為void的成員南敢e(),聲明為類TcMhcr的友元版數,則應在美Tether的定義中加入謂句.friendvoidA::f()30.如果要把A類成員函數f()且返回值為voidfriendvoidA::f()定義中加入語句最好加分號加入語句,語句后面加分號;20.下列關于友元函數的描述,正確的是A.B.C.A.B.C.D.友元函數不可以是ー個類友元函數的作用之一是實現數據的隱藏性在類中說明的友元函數,函數的定義不可在類體之外#include<iostream.h>#include<string,h>classBaseIpublic:Base(char?s=H\0w)|strcpy(name,s);|voidshow();protected:?二 它是普通函數不是成員函數.友元函數,前面加friendcharnameriOl5友元函數,前面加friendI;Baseb;voidshow()Icout?"name:"??endl;|voidmain(){Based2(”hello”);show();I運算符重載40.重載的運算符保持其原有的操作數 、優先級和結合性不變。S.如処&達式++a中的“++”是作為成員函數朮載的運算價,若采用運ので網以は用格大,則可表示為B.operator++(a)B.operator++(a)D.a.ojjcrator+?()C.operator++(a,1)答案:D24.重載的運算符保持其原有的操作數和結合性不變。答案:優先級12.下列運算符中,在C++語言中不能重載的是A.* B.>= C.:: D./答案:C17.下列運算符中,在C++語言中不能重載的是A.* B.>= : D.17.下列關于運算符重教?的表述中,正?的是A.C1已有的任何運算符都可以重教B.運算符函數的返回類型不能聲明為基本數據類型c.在美璽精換符函收的定義中不需要聲明返回類R0.可以通過運算符重教來創建CI中原來沒有的運算符C(1)除了類屬關系運算符”.”、成員指針運算符".*"、作用域運算符"::"、sizeof運算符和三目運算符"?:"以外,C++中的所有運算符都可以重載。(2)重載運算符限制在C++語言中已有的運算符范圍內的允許重載的運算符之中,不能創建新的運算符。(3)運算符重載實質上是函數重載,因此編譯程序對運算符重載的選擇,遵循函數重載的選擇原則。(4)重載之后的運算符不能改變運算符的優先級和結合性,也不能改變運算符操作數的個數及語法結構。(5)運算符重載不能改變該運算符用于內部類型對象的含義。它只能和用戶自定義類型的對象一起使用,或者用于用戶自定義類型的對象和內部類型的對象混合使用時。(6)運算符重載是針對新類型數據的實際需要對原有運算符進行的適當的改造,重載的功能應當與原有功能相類似,避免沒有目的地使用重載運算符。18.友元運為符9両彼Ci埒譯器哪釋為AoptTatortF*(obj) H.oprntortf(obj.0)G6bj.opEiiord() D.obj.oprmlortf(0)解釋C重載的運算符函數不可能有默認參數函數重載5.采用重載函數的目的是A.實現共享 B.減少空間C.提高速度 む使用方便,提高可讀性38.重載函數在參數類型或參數個數上不同,但 必須相同。函數名12.下列不是函數■裂所要求的條件是A.的數名相同B..效個效不同C.弁敗類型不同0.函數返回值類る不同解釋:D函數重載使ー個函數名具有多種功能,也就是同一個名字的函數具有多種形態,叫多態性。構成函數重載,參數類型不同、參數個數不同、函數名相同。返回值不同是沒有辦法區分重載的。C++多態性可以直觀的表示,ー個名字,多個函數。源代碼只指明函數調用,而不說明具體調用那個函數,直到程序運行時才能確定調用哪個函數,這叫動態聯編或遲后聯編。舉例:intadd(inta=3Jntb=5){returna+b;}帶默認值的函數要想實現重載,必須大于兩個參數,因為有默認值,編譯器不能確定到底是幾個參數的重載。23.塀律時的多密性通過 函數實現。函數重載多態從實現的角度可以劃為兩類:編譯時多態(靜態的)和運行時多態(動態的x編譯時的多態是通過靜態連編來實現的;運行時的多態是用動態連編來實現的。編譯時的多態性主要是通過函數重載和運算符重載來實現的;運行時的多態性主要是通過虛函數來實現的.C++中定義重載函數時,應至少使重載函數的參數個數或 彳.不同對鎳可以調用相同名稱的函數,但可導致完全不同的行為的現象稱為_多態性 ?24.靜態聯編所支持的多態性稱為ー編譯時的多態性。36.函數重載可使ー個函數名具有多種功能,稱這種特性為20.不同對象調用同名函數,但導致完全不同行為的現象稱為()A.抽象B.封裝C.繼承D.多態性intFunc(int,int):不可與下列哪個函數構成重載( )BA.intFunc(,int): B.doubleFunc(int?int):C.doubleFiinc(double*double): D.doubleFunc(int*double):33.類A有如下成員函數intA::fun(doublex)(return(int)x/2:)intA::fun(intx){returnx*2;)設a為類A的對象’在主函數中有inls=a.fun(6.0Ha.fun(2),則執行該語句后,s的值為_7010.下列函數不能和函數voidprint(char)構成幣:載的是(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;//イ;能円接調用fl()Ha.print();}42.錯誤:a.fl(1,1)修改意見:增加一個fl的函數重載: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;函數模板9.實現兩個相同類型數加法的函數模板的聲明是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.關于函數模板,描述錯誤的是A.函數模板必須由程序員實例化為可執行的函數模板;B.函數模板的實例化由編譯器實現;C.一個類定義中,只要有一個函數模板,則這個類是類模板;D.類模板的成員函數都是函數模板,類模板實例化后,成員函數也隨之實例化;答案:C3.關于函數模板,描述錯誤的是A.函數模板必須由程序員實例化為可執行的函數模板B.函數模板的實例化由編譯器實現/TV個類岸義中,只要有一個函數模板,則這個類是類模板D.類模板的成員函數都是函數模板,類模板實例化后,成員函數也隨之實例仇13.下列有關模板的描述中,偉誤的是A模板把セ據類型作為ー個設計叁數,稱為參數化程序設計B,使用時.模板參數與函收參數相同,是按位置而不是名稱對應的C模板實例化參數類型包牯數徳類型和值D.類模板與模板類是同一個被念類模板可以成為另夕ー個類模板的成員(叫"成員模板"),函數模板沒有實參和形參之分,函數模板可以看成一個無參函數,它的參數要根據調用對象的參數而定.函數模板的ー個實例就是ー個函數定義7.以下類模板定義正確的為A.template<classT> B.template<classT,classinC.template<classT,typenameT>D.template<classT1,T2>19.有關函數模板和模板函數說法錯誤的是A.函數模板只是對函數的描述,編譯器不為其產生任何執行代碼,所以它不J實實在在的函數B.模板函數是實實在在的函數,它由編譯系統在遇到具體函數調用時所生成用執行C,函數模板需要實例化為模板函數后才能執行D.當函數模板和一般函數同名時,系統先去匹配函數模板,將其實例化后進行16.設有函數TSum(Tx,Ty){retumx+y:)(其中T為模板類型,則下列語句中對該函數錯誤的使用是(D)A.Sum(1,2):A.Sum(1,2):B.Sum(3.0,2.2);C.Sum(、A',〇:D.Sum(“A”,“C”):12.函數模板template<typenameT>voidFunc(T.T)可具有卜列哪種實例化形式()A.voidFunc(floai?int)B.voidFunc(char?char)C.voidFunc(int?double)D.voidFunc(boohfloat)26.C++中規定模板以關鍵字和一個形參表示開頭。11.定義函數模板中使用的參數類型標識符需使用卜.列哪笄A.o B."“C.Q D.{}52.給出ド面程序的愉出結果.#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;}函數調用19.考慮兩數晩嗯void ini*.inlb?7.charrh??1.下面的函數調用中?屬于不合法博用的是A.iwlfS)B.<01(5.8> CteM(6.?り D.lesl(O,O,<O解釋:C.非數組指針或引用型變量做實參時,它和對應虛參之間的數據傳遞方式是?BA.地址傳遞 B.單向值傳遞C.雙向值傳遞D.由用戶指定傳遞方ヨ調用聲明為intresultanta,intb)的函數時,正確的方法是()A.result(L2)B.result(l)C.result(0.1,0.3)D.result(1,2,3)設存在函數intmax(int,in。返回兩參數中較大值,若求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.設存在搬imMint,im)返酮期中默值,若求22,59,70三者中聯值,下列表達式不正確的是( )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.設存在函數intmin(int,int)返回兩參數中較小值,若求15,26.47三者中最小值,下列表達式中錯誤的是(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函數的形參類,致,應修改為一致?a.print():9.使用引用調用方式將實參傳給形參,下列說法正確的是(A.形參是實參的備份 B.實參是形C.形參和實參共享同一對象 D.形參和實7.設函數voidinc(int)將形參加1,如有整型變量inti=10;則執行inc(i);ノA.9 B.10C.ll D.未知7.設函數voidswap(int&,int&)將交換兩形參的值,如兩整型變量inta=IO:intb=15:則執行swap(a,b)后,a、b值分別為(C)A.10,10 B.10915 C.15,10 D.15,1535.將指向對象的指針作為函數參數,形參是對象指針,實參是對象的一地址值.默認參數27.若有函數定義為:intadd(intml=0,intm2=2*intm3=4){returnml+m2+m3:}在主函數中有ints二add(l)+add(0,l)+add(0,1,2);則執行此語句后s的值為_15ー〇

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

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

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

C,ュ』:們均為真

C,它們均為假B.D.其中一個為真

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

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

4.如沒有使用private關鍵字定義類的數據成員,則默認為(B.publicD.friendA.privateB.publicD.friendC.protected13.類的私有成員可在何處被訪問(A)A.本類的成員函數中 B.本類及子類的成員函數中C.通過對象名在任何位置 D.不可訪問13.ド列訪問成員的方式哪個是正確的()A.對象名.對象成員名B.對象指針名.對致成員名C.對象名ー對象成員名D.類名ー對象成員名11.類的私有成員可在何處訪問( )DA,通過子類的對象訪問 B,本類及子類的成員函數中C,通過該類對象訪問 D.本類的成員函數中30.類和其它數據類型不同的是,組成這種類型的不僅可以有數據,還可以冇對數據進行操作的_函數34.對象傳送的消息一般由3部分組成:接收對象名、調用操作名和一參數.15.下列關于類的權限的描述錯誤的是( )AA.類本身的成員函數只能訪問自身的私有成員B.類的對象只能訪問該類的公有成員C.普通函數不能直接訪問類的公有成員,必須通過對象訪問D.一個類可以將另ー個類的對象作為成員17.設類A將其它類對象作為成員,則建立A類對象時,下列描述正確的是(A.A類構造函數先執行A.A類構造函數先執行B,成員構造函數先執行D,不能確定C.D,不能確定.C―類中定義的成員默認訪問屬性為()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;, 改錯默認為私有); 不能在主函數中inimain〇( 訪問show。Aa;a.show();return0;靜態成員函數9.下列對靜態成員的描述中,不正確的是A.靜態成員不屬于對象,是類的共享成員B.靜態數據成員要在類外定義和初始化C.調用靜態成員函數時要通過類或對象激活,所以靜態成員函數擁有!D.非靜態成員函數也可以操作靜態數據成員35.C++的靜態數據成員需要在 進行初始化,可以被該類的所有33.若類的成員函數用關鍵字stade進行修飾,這樣的成員函數稱為.18.下列描述錯誤的是( )AA.在創建對象前,靜態成員不存在 B.靜態成員是類的成員C.靜態成員不能是虛函數 D.靜W成員由數不能兌接訪問非靜態成員18.關于類的靜態成員函數描述錯誤的是(A)A.在創建對象前不存在 B.不能說明為虛函數C.不能直接訪問非靜態函數 D.不是對軟的成員17.類A中存在靜態數據成員X,設a和b是類A的兩個對象,在執行a.x=10之后,b.x的值為()A.未初始化B.等于a.xC.等于〇D.M機16.設類Test中存在成員staticintx,則下列哪種初始化方式是正確的(A.Test::intx=25; B.intx=25;C.intTest::x=25; D.intTestx=25;11.類中能訪問靜態成員的函數是BC,構造函數D.析構函數A.C,構造函數D.析構函數41.232345678910111213141516intx,y=20:錯,在類內部不能對數據成員直接復制改為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;一 因為X,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.在下面程序的橫線處填上適當的字句,使該程序執行結果為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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論