




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《面向對象程序設計》習題一、單項選擇題1、下面關于引用的說法錯誤的是()。A、引用是被引用對象的別名B、對引用的修改就是對被引用對象的修改,反之亦然C、引用不一定立即初始化D、引用不能建立數組2、用new運算符創建一個具有10個元素的一維整型數組的對的語句是()。A、intp=newint(10);B、intp=newint[10];C、int*p=newint[10];D、int*p=newint(10);3、下面是五條順序出現的聲明語句,非法的初始化語句是()。A、inti=–1;B、constintic=i;C、constint*pc=⁣D、int*constcpi=⁣E、constint*constcpic=⁣4、下列說法不對的的是()。A、在類中,成員的默認訪問特性是私有的。B、類封裝了數據和操作。C、類實質上是一種數據類型。D、在類的定義中,必須包含private、public、protected三種存取方式相應得部分。5、下列說法不對的的是()。A、在類中不能對所定義的數據成員進行初始化。B、類的公有成員函數是類與外界的接口。C、同一個類的兩個對象占用相同的內存空間。D、類實現數據隱藏。6、下列程序段不會發生二義性的是()。A、intfun(doublep){...;}B、intfun(floatp){...;}floatfun(floatp){...;}floatfun(unsignedp){...;}intx;intx;x=fun(0);x=fun(0);C、intfun(inti,intj=2){...;}D、intfun(inti=2,intj=2){...;}floatfun(inti){...;}intfun(int*p){...;}cout<<fun(5);cout<<fun(5);7、關于以下程序段中語法錯誤的對的描述是()。#include<iostream.h>voidmain(){constchar*p1=”string1”;char*constp2=”string”;char*p3=”string3”;p1[2]=’a’;//①p2[2]=’b’;//②p1=p3;//③p2=p3;//④}A、①②③④均錯誤B、①和④錯誤C、②和③錯誤D、③和④錯誤8、由C++目的文獻連接而成的可執行文獻的缺省擴展名為()。A、cpp B、exeC、obj D、lik9、下述靜態數據成員的特性中,()是錯誤的。A、聲明靜態數據成員時前面要加修飾符static。B、靜態數據成員要在類體外進行初始化。C、在程序中引用靜態數據成員時,要在靜態數據成員名前加<類名>和作用域運算符。D、靜態數據成員是本類中個別對象所共享的。10、在下列的各類函數中,()不是類的成員函數。A、構造函數B、析構函數C、友元函數D、拷貝構造函數11、友元的作用之一是()。A、提高程序的運營效率。B、加強類的封裝性。C、實現數據的隱蔽性。D、增長成員函數的種類。12、關于靜態成員,對的的說法是()。A、靜態成員函數可以直接訪問該類中的非靜態成員B、非靜態成員函數不能直接訪問該類中的靜態成員C、靜態數據成員同其它數據成員同樣通過構造函數進行初始化D、靜態成員在任何對象創建之前就已經創建13、下面對友元的錯誤描述是()。A、友元函數不可訪問對象的private成員B、一個類的成員函數可以是另一個類的友元C、友元類和友元函數均用關鍵字friend聲明D、友元函數可以訪問對象的protected成員14、關于C++中的繼承機制,錯誤的說法是()。A、虛擬繼承限定基類只能通過一條途徑派生出派生類;B、解決多繼承帶來的二義性的方法之一是對成員名加以限定;C、派生類的構造函數的成員初始化列表中,可包含基類中的子對象;D、繼承是一種組織類的基本手段。15、下列對派生類的描述中,()是錯的。A、一個派生類可以作為另一個派生類的基類;B、派生類至少有一個基類;C、派生類的成員除了它自己的成員外,還包含了它的基類的成員;D、派生類中繼承的基類成員的訪問權限到派生類保持不變;16、派生類的構造函數的成員初始化列表中,不能包含()。A、基類的構造函數;B、派生類中子對象的初始化;C、基類的子對象初始化;D、派生類中一般數據成員的初始化;17、下列對繼承關系的描述中,()是對的的。A、在公有繼承中,基類中的公有成員和私有成員在派生類中都是可見的;B、在公有繼承中,基類中只有公有成員對派生類的對象是可見的;C、在私有繼承中,基類中只有公有成員對派生類是可見的;D、在私有繼承中,基類中的保護成員對派生類的對象是可見的;18、關于繼承中出現的二義性的描述中,()是錯誤的。A、一個派生類的兩個基類中都有某個同名成員,在派生類中對這個成員的訪問也許出現二義性;B、解決二義性的最常用的方法是對成員名的限定法;C、在單繼承情況下,派生類中對基類成員的訪問也會出現二義性;D、一個派生類是從兩個基類派生出來的,而這兩個基類又有一個共同的基類,對該基類成員進行訪問時,也也許出現二義性;19、設立虛基類的目的是()。A、簡化程序;B、消除二義性;C、提高運營效率;D、減少目的代碼;20、帶有虛基類的多層派生類構造函數的成員初始化列表中都要列出虛基類的構造函數,這樣將對虛基類的子對象初始化()。A、與虛基類下面的派生類個數有關;B、多次;C、二次;D、一次;21、在創建派生類對象時,構造函數的執行順序是()。A、對象成員構造函數、基類構造函數、派生類自身的構造函數;B、派生類自身的構造函數、基類構造函數、對象成員構造函數;C、基類構造函數、派生類自身的構造函數、對象成員構造函數;D、基類構造函數、對象成員構造函數、派生類自身的構造函數。22、對于如下類的定義,下面語句組中出現語法錯誤的是()。classX{inta;public:X(intx=0){a=x;}};classY:classX{intb;public:Y(intx=0,inty=0):X(x){b=x;}};A、X*pa=newY(1,2);B、Xa1=Y(1,3);C、Yb1(2,3);X&a3=b1;D、Xa4(10);Yb2=a4;23、下面是重載雙目運算符+的普通函數原形,其中最符合+本來含義的是()。A、Valueoperator+(Value,Value);B、Valueoperator+(Value,int);C、Value&operator+(Value,Value*);D、Value&operator+(Value&,Value&);24、下列關于運算符重載的描述中,()是對的的。A、運算符重載可以改變運算數的個數;B、運算符重載可以改變優先級;C、運算符重載可以改變結合性;D、運算符重載不可以改變語法結構。25、下列函數中,()不能重載。A、一般的成員函數;B、一般的非成員函數;C、析構函數;D、構造函數。26、關于運營時多態的下列描述中,()是錯誤的。A、運營時多態是以虛函數為基礎的;B、運營時多態是在運營時擬定所調用的函數代碼的;C、用基類指針或引用所標記的派生類對象來操作虛函數才干實現運營時多態;D、運營時多態是在編譯時擬定操作函數的。27、關于基類和派生類的關系,()是錯誤的。A、派生類對象屬于基類;B、可以用派生類指針指向派生類對象;C、可以將基類對象賦值給派生類對象;D、派生類對象指針可轉換為基類指針。28、基類A中有成員函數fn1()、fn2(),在派生類B中重載了成員函數fn1()(即重新定義了fn1()),但沒有重載其成員函數fn2()。假如在派生類B中調用基類A的成員函數fn1()(不是B中重載的數fn1())和fn2(),則對的的方式是()。A、A::fn1()和fn2(); B、fn1()和A::fn2();C、A::fn1()和A::fn2(); D、fn1()和fn2();29、下面對模板的聲明,對的的是()。A、template<T>B、template<classT1,T2>C、template<classT1,classT2>D、template<T1,T2>30、若有如下函數模板定義,則對的使用該函數模板的語句是()。template<classtype>voidadd(typea,typeb,type&c){c=a+b
;}A、floatx,y,z;add(x,y,z)
; B、intx,y,z;add(x,y,&z)
;C、floatx,y
;intz;add(x,y,z)
; D、floatx,y
;intz;add(x,y,&z)
;31、類模板的作用是可以將其實例化后得到一個具體的()。A、類B、對象C、模板類D、模板函數32、以下關于函數模板的論述中,對的的是()。A、一旦定義了函數模板,就不能再定義同名的重載函數;B、從同一個函數模板實例化后得到的多個模板函數屬于函數重載;C、函數模板中只有一種參數;D、在定義函數模板時,template語句與函數模板定義語句之間可以有別的語句。33、對于類模板,其類型形參可以作為()。A、成員函數的形參類型B、成員函數的返回類型C、數據成員的類型D、以上三種均可34、已知:p是一個指向類A數據成員m的指針,A1是類A的一個對象。假如要給A1的m賦值為5,()是對的的。A、A1.p=5;B、A1->p=5;C、A1.*p=5;D、*A1.p=5;35、一個類的構造函數為“B(intax,intbx):a(ax),b(bx){}”,執行“Bx(1,2),y(3,4);x=y;”語句序列后x.a的值為()。A、1B、2C、3D、436、下列關于類的訪問控制機制說法錯誤的是()。A、靜態數據成員通常都定義為公有類型。B、一個對象的私有成員對于同類的另一個對象是可見的。C、友元機制破壞了類的封裝性。D、基類的保護成員對派生類新定義的成員函數是可見的。37、下面是四條順序出現的聲明語句,非法的初始化語句是()。A、inti=–1;B、constintic=i;C、constint*pc=⁣D、int*constcpi=⁣38、下述靜態數據成員的特性中,()是錯誤的。 A、聲明靜態數據成員時前面要加修飾符static。 B、靜態數據成員要在類體外進行初始化。 C、在程序中引用靜態數據成員時,要在靜態數據成員名前加<類名>和作用域運算符。 D、靜態數據成員是一個類的個別對象所共享的。39、若有語句int*p=newint[5];int*pi;則以下語句中,執行時會導致delete[]p語句的執行犯錯的是()。A、(*p)++;B、p++;C、pi=p;D、pi=p+3;40、對于下面的兩條語句,對的的描述是()。MyObjecta(2),b(a),c;c=b=a;A、拷貝構造函數執行了1次; B、賦值運算符重載函數執行了3次; C、拷貝構造函數函數執行了3次; D、賦值運算符重載函數執行了1次;41、下列不是C++基本數據類型的是()。 A、int B、stringC、char D、void42、不可以成為類的數據成員的是()。A、自身類的對象 B、另一個類的對象C、自身類的指針或引用 D、其他基本數據類型43、下列對繼承關系的描述中,對的的是()。 A、在公有繼承中,基類中的公有成員和私有成員在派生類中都是可見的; B、在公有繼承中,基類中只有公有成員對派生類的對象是可見的; C、在私有繼承中,基類中只有公有成員對派生類是可見的; D、在私有繼承中,基類中的保護成員對派生類的對象是可見的;44、下列說法錯誤的是()。A、在類中,成員的默認訪問特性是私有的;B、類封裝了數據和操作;C、類實質上是一種數據類型;D、在類的定義中,必須包含private、public、protected三種存取方式相應得部分。45、下列說法錯誤的是()。A、在類中不能對所定義的數據成員進行初始化;B、類的公有成員函數是類與外界的接口;C、同一個類的兩個對象占用相同的內存空間;D、類實現數據隱藏。46、下列關于私有繼承的說法中對的的是()。A、基類成員對派生類新定義的成員函數是不可見的;B、基類成員對派生類新定義的成員函數是可見的;C、只有基類成員中的公有成員對派生類新定義的成員函數是可見的;D、基類成員中的保護成員對派生類新定義的成員函數是可見的。47、下列程序段不會發生二義性的是()。A、intfun(doublep){...;}B、intfun(floatp){...;}floatfun(floatp){...;}floatfun(unsignedp){...;}intx;intx;x=fun(0);x=fun(0);C、intfun(inti,intj=2){...;}D、intfun(inti=2,intj=2){...;}floatfun(inti){...;}intfun(int*p){...;}cout<<fun(5);cout<<fun(5);48、下列關于虛基類的說法錯誤的是()。A、有引入虛基類的目的是解決二義性的問題;B、由于虛基類可被多個派生類繼承,因此可以有多個副本以適應不同的派生類;C、若某個類被說明為虛基類,則被反復繼承的該類成員在派生類對象中只有一個副本;D、在派生類對象創建時,要保證虛基類的構造函數只被調用一次。49、函數重載與函數模板的說法錯誤的是()。A、當函數的函數體不同時,可以把函數設計為重載函數;B、當函數體相同,僅僅操作的數據類型不同時,可把函數設計為模板;C、重載函數和函數模板都是抽象的,都需實例化;D、函數模板有待于實例化為模板函數,重載函數可以直接引用。50、下列對引用的陳述中錯誤的是()。A、每一個引用都是其所引用對象的別名,因此必須初始化;B、形式上針對引用的操作事實上作用于它所引用的對象;C、一旦定義了引用,一切針對其所引用對象的操作只能通過該引用間接進行;D、不需要單獨為引用分派存儲空間。51、以下對的的函數原型語句是()。
A、doublefun(intx,inty)
B、doublefun(intx;inty)
C、doublefun(int,int);
D、doublefun(intx,y);52、下面有關重載函數的說法中對的的是()。A、重載函數必須具有不同的返回值類型B、重載函數形參個數必須不同C、重載函數必須有不同的形參列表D、重載函數名可以不同53、函數重載是指()。A、兩個或兩個以上的函數取相同的函數名,但形參的個數或類型不同
B、兩個以上的函數取相同的名字和具有相同的參數個數,但形參的類型可以不同C、兩個以上的函數名字不同,但形參的個數或類型相同
D、兩個以上的函數取相同的函數名,并且函數的返回類型相同54、采用重載函數的目的是()。A、實現共享B、減少空間C、提高速度
D、使用方便,提高可讀性55、以下關于函數模板敘述對的的是()。
A、函數模板也是一個具體類型的函數B、函數模板的類型參數與函數的參數是同一個概念C、通過使用不同的類型參數,函數模板可以生成不同類型的函數定義D、用函數模板定義的函數沒有類型56、以下對的的描述是(
)。A、不允許設立參數的默認值B、設立參數的默認值只能在定義函數時設立C、設立參數的默認值時,應當設立右邊的參數D、設立參數的默認值時,應當所有參數都設立57、()是給變量取一個別名,它引入了變量的同義詞。A、指針B、引用C、枚舉D、結構58、假定變量x定義為“intx=5;”,要使rx成為x的引用(別名),rx應定義為(
)。
A、intrx=x;
B、intrx=&x;
C、int*rx=&x;
D、int&rx=x;59、下列對引用的陳述中不對的的是(
)。A、每一個引用都是其所引用對象的別名,因此必須初始化B、形式上針對引用的操作事實上作用于它所引用的對象C、一旦定義了引用,一切針對其所引用對象的操作只能通過該引用間接進行D、不需要單獨為引用分派存儲空間60、下列()的調用方式是引用調用。
A、形參和實參都是變量
B、形參是指針,實參是地址值
C、形參是引用,實參是變量
D、形參是變量,實參是地址值61、假定AA為一個類,a為該類公有的數據成員,x為該類的一個對象,則訪問x對象中數據成員a的格式為(
)。
A、x(a)
B、x[a]
C、x->a
D、x.a62、假定AA為一個類,a()為該類公有的函數成員,x為該類的一個對象,則訪問x對象中函數成員a()的格式為(
)。
A、x.a
B、x.a()
C、x->a
D、x->a()63、假定AA為一個類,a為該類公有的數據成員,px為指向該類對象的一個指針,則訪問px所指對象中數據成員a的格式為(
)。
A、px(a)
B、px[a]
C、px->a
D、px.a64、假定AA為一個類,a為該類私有的數據成員,GetValue()為該類公有函數成員,它返回a的值,x為該類的一個對象,則訪問x對象中數據成員a的格式為(
)。
A、x.a
B、x.a()
C、x->GetValue()
D、x.GetValue()65、若需要把一個類外定義的成員函數指明為內聯函數,則必須把關鍵字(
)放在函數原型或函數頭的前面。
A、in
B、inline
C、inLine
D、InLiner66、類的析構函數是一個對象被(
)時自動調用的。A、建立
B、撤消
C、賦值
D、引用67、可以釋放對象所占資源的是()。A、析構函數
B、數據成員
C、構造函數
D、靜態成員函數68、類的析構函數的作用是().。A、一般成員函數B、類的初始化C、對象的初始化D、對象釋放后的操作69、對于一個類的析構函數,其函數名與類名(
)。A、完全相同
B、完全不同
C、只相差一個字符
D、無關系70、一個類的析構函數通常被定義為該類的(
)成員。A、私有
B、保護
C、公用
D、友元71、定義析構函數時,應當注意()。A、其名與類名完全相同B、返回類型是void類型C、無形參,也不可重載D、函數體中必須有delete語句77、類的析構函數可以帶有(
)個參數。A、0
B、1
C、2
D、任意73、類的析構函數是在()調用的。A、類創建時B、創建對象時C、對象生命期結束時D、不自動調用74、當一個類對象離開它的作用域時,系統自動調用該類的(
)。A、無參構造函數
B、帶參構造函數
C、拷貝構造函數
D、析構函數75、假定一個類對象數組為A[n],當離開它定義的作用域時,系統自動調用該類析構函數的次數為(
)。A、0
B、1
C、n
D、n-176、假定AB為一個類,則執行“ABa[10];”語句時調用該類無參構造函數的次數為(
)。A、0
B、1
C、9
D、1077、假定AA是一個類,abc是該類的一個成員函數,則參數表中隱含的第一個參數的類型為(
)。
A、int
B、char
C、AA
D、AA*78、假定AA是一個類,abc是該類的一個成員函數,則參數表中隱含的第一個參數為(
)。
A、abc
B、*this
C、this
D、this&79、假定AB為一個類,則執行“AB*px=newAB[n];”語句時將(
)。A、動態分派一個數組
B、動態分派一個對象C、靜態分派一個數組
D、靜態分派一個對象80、設px是指向一個類對象的指針變量,則執行“deletepx;”語句時,將自動調用該類的(
)A、無參構造函數
B、帶參構造函數
C、析構函數
D、復制構造函數81、虛函數的定義是在基類中進行的,定義時需要冠以關鍵字()。A、static
B、friend
C、virtual
D、public82、C++編譯系統擬定調用是具體對象的過程稱為關聯。C++有()關聯。A、1種B、2種C、3種D、4種83、調用一個成員函數時,使用動態關聯的情況是()。A、通過對象調用一虛函數B、通過指針或引用調用一虛函數C、通過對象調用一靜態函數D、通過指針或引用調用一靜態函數84、C++類體系中,不能被派生繼承的有()。A、轉換函數B、構造函數C、虛函數D、靜態成員函數85、C++語言建立類族是通過()。A、類的嵌套B、類的繼承C、虛函數D、抽象類86、在下面的4個關鍵字中,()是用來說明虛函數的。A、virtualB、publicC、protectedD、private87、實現運營時的多態性要使用()。A、重載函數B、析構函數C、構造函數D、虛函數88、關于純虛函數,下列說法不對的的是()。A、純虛函數是在聲明虛函數時被初始化為0的函數B、純虛函數沒有函數體C、純虛函數可以被調用D、假如在一個類中聲明了純虛函數,該虛函數中在派生類中仍有也許為虛函數89、假如一個類至少有一個純虛函數,那么該類稱為().。A、抽象類B、虛基類C、派生類D、以上都不對90、C++的輸入輸出不涉及()。A、標準的輸入輸出B、文獻的輸入輸出C、字符串輸入輸出D、顯示屏和打印機的輸入輸出91、下面的類中,()不是由抽象基類ios直接派生出來的。A、istreamB、ostreamC、iostreamD、fstreambase92、在C++中,抽象基類ios直接派生出()。A、istrean,ostream,ifstream,ofstreamB、istrean,ostream,istrstream,ostrstreamC、istrean,ostream,iostreamD、istrean,ostream,fstreambase,strstreambase93、cin是某個類的標準對象,該類是()。A、ostreamB、istreamC、stdoutD、stdin94、cout是某個類的標準對象,該類是()。A、ostreamB、istreamC、stdoutD、stdin95、對于一個類的析構函數,其函數名與類名()。A、完全相同B、完全不同C、只相差一個字符D、無關系96、類的構造函數是在定義該類的一個()時被自動調用執行的。A、成員函數B、數據成員C、對象D、友元函數97、類的析構函數是一個對象被()時自動調用的。A、建立B、撤消C、賦值D、引用98、一個類的構造函數通常被定義為該類的()成員。A、公用B、保護C、私有D、友元99、一個類的析構函數通常被定義為該類的()成員。A、私有B、保護C、公用D、友元100、假定AB為一個類,則執行“ABx;”語句時將自動調用該類的()。A、帶參構造函數B、無參構造函數C、拷貝構造函數D、賦值重載函數101、C++語言是從初期的C語言逐步發展演變而來的,與C語言相比,它在求解問題方法上進行的最大改善是()。A、面向過程B、面向對象C、安全性D、復用性102、C++源程序文獻的缺省擴展名為()。A、cpp
B、exe
C、obj
D、lik103、由C++源程序文獻編譯而成的目的文獻的缺省擴展名為()。A、cpp
B、exe
C、obj
D、lik104、由C++目的文獻連接而成的可執行文獻的缺省擴展名為()。A、cpp
B、exe
C、obj
D、lik105、編寫C++程序一般需通過的幾個環節依次是()。A、編譯、編輯、連接、調試B、編輯、編譯、連接、調試C、編譯、調試、編輯、連接D、編輯、調試、編輯、連接106、C++對C語言作了很多改善,即從面向過程變成為面向對象的重要因素是()。A、增長了一些新的運算符B、允許函數重載,并允許設立缺省參數C、規定函數說明符必須用原型D、引進了類和對象的概念107、面向對象軟件開發中使用的OOA表達(
)。A、面向對象分析
B、面向對象設計
C、面向對象語言
D、面向對象方法108、面向對象軟件開發中使用的OOD表達(
)。A、面向對象分析
B、面向對象設計
C、面向對象語言
D、面向對象方法109、關于面向對象系統分析,下列說法中不對的的是(
)。A、術語“面向對象分析”可以用縮寫OOA表達B、面向對象分析階段對問題域的描述比設計階段更具體C、面向對象分析涉及問題域分析和應用分析兩個環節D、面向對象分析需要辨認對象的內部和外部特性110、下列關于成員函數特性的描述中,()是錯誤的。A、成員函數一定是內置函數B、成員函數可以重載C、成員函數可以設立參數的默認值D、成員函數可以是靜態的111、關于構造函數,下列說法不對的的是()。A、構造函數名字和類名相同B、構造函數在創建對象時自動執行C、構造函數無任何函數返回類型D、構造函數有且只有一個112、類的構造函數是在定義該類的一個(
)時被自動調用執行的。A、成員函數
B、數據成員
C、對象
D、友元函數113、一個類的構造函數通常被定義為該類的(
)成員。A、公用
B、保護
C、私有
D、友元114、關于構造函數特點描述中,錯誤的是()。A、定義構造函數必須指出類型B、構造函數的名字與該類的類名相同C、一個類中可以定義0個至多個構造函數D、構造函數是一個成員函數115、對于一個類的構造函數,其函數名與類名()。A、完全相同B、基本相同C、不相同
D、無關系116、關于運算符重載,下列說法對的的是(
)。A、重載時,運算符的優先級可以改變。B、重載時,運算符的結合性可以改變。C、重載時,運算符的功能可以改變。D、重載時,運算符的操作數個數可以改變。117、下列關于運算符重載的描述中,錯誤的是()。A、運算符重載不可以改變操作數的個數B、運算符重載不可以改變運算符的功能C、運算符重載不可以改變結合方向D、運算符重載不可以改變運算優先級118、關于運算符重載,下列說法對的的是()。A、所有運算符都可以重載B、通過重載,可以使運算符應用于自定義的數據類型C、通過重載,可以創建本來沒有的運算符號D、通過重載,可以改變運算符的優先級119、在一個類中可以對一個運算符進行()重載。A、1種B、2種以下C、3種以上D、多種120、不能參與重載的運算符是()。A、類B、函數C、函數模板D、運算符121、繼承機制的作用是()。A、信息隱藏B、數據封裝C、定義新類D、數據抽象122、C++的繼承性允許派生類繼承基類的(
)。A、部分特性,并允許增長新的特性或重定義基類的特性B、部分特性,但不允許增長新的特性或重定義基類的特性C、所有特性,并允許增長新的特性或重定義基類的特性D、所有特性,但不允許增長新的特性或重定義基類的特性123、下列對派生類的描述中,()是錯誤的。A、一個派生類可以作為另一個類的基類B、派生類至少有一個基類C、派生類的成員除了它自己的成員外,還包含它的基類的成員D、派生類中繼承的基類成員的訪問權限到派生類中保持不變124、派生類的對象對其基類中(
)可直接訪問。A、公有繼承的公有成員B、公有繼承的私有成員C、公有繼承的保護成員D、私有繼承的公有成員125、基類和派生類可以分別稱為()。A、“大類”和“小類”B、“父類”和“子類”C、“小類”和“大類”D、“子類”和“父類”126、面向對象方法的多態性是指(
)。
A、一個類可以派生出多個特殊類
B、一個對象在不同的運營環境中可以有不同的變體
C、針對一消息,不同的對象可以以適合自身的方式加以響應
D、一個對象可以是由多個其他對象組合而成的127、從系統實現的角度看,多態性分為靜態多態性和動態多態性。以下說法錯誤的是()。A、靜態多態性是編譯時的多態性B、函數重載實現的多態性是靜態多態性C、通過虛函數實現的多態性是靜態多態性D、動態多態性是運營時的多態性128、關于消息,下列說法中不對的的是(
)。A、發送消息的對象請求服務,接受消息的對象提供服務B、消息的發送者必須了解消息的接受者如何響應消息C、在C++中,消息的發送具體體現為對接受消息的對象的某個函數的調用D、每個對象只能接受某些特定格式的消息129、編譯時的多態性使用什么獲得?()A、重載函數B、繼承C、虛函數D、B和C130、運營時的多態性使用什么獲得?()A、重載函數B、繼承C、虛函數D、B和C131、在()情況下適宜采用inline定義內置函數。A、函數體具有循環語句B、函數體具有遞歸語句C、函數代碼少、且頻繁調用D、函數代碼多、不常調用132、為了提高程序的運營速度,可將不太復雜的功能用函數實現,此函數應選擇()。A、內置函數B、重載函數C、遞歸函數D、函數模板133、一個函數功能不太復雜,但規定被頻繁調用,選用()A、內置函數B、重載函數C、遞歸函數D、嵌套函數134、說明內置函數的關鍵字是()。A、inlineB、virtualC、defineD、static135、對于動態分派內存空間描述對的的是()。A、使用new運算符分派的內存空間的長度必須是常量B、delete運算符可以釋放動態的存儲空間和靜態的存儲空間C、用new分派的內存空間是不連續的D、delete運算符只能以釋放由new分派的動態存儲空間136、定義p并使p指向動態空間中的包含30個整數的數組所使用的定義語句為(
)。A、int*p=newint[30];
B、int*p=newint(30);C、int*p=new[30];
D、*p=newint[30];137、下列特性不是面向對象程序設計語言所特有的是()。A、數據封裝B、繼承C、多態性D、模板138、假定AB為一個類,則執行“ABr1=r2;”語句時將自動調用該類的()。A、無參構造函數B、帶參構造函數C、賦值重載函數D、拷貝構造函數139、若需要使類中的一個指針成員指向一塊動態存儲空間,則通常在()函數中完畢。A、析構B、構造C、任一成員D、友元140、當類中的一個整型指針成員指向一塊具有n*sizeof(int)大小的存儲空間時,它最多可以存儲()個整數。A、nB、n+1C、n-1D、1141、構造函數不具有的特性是()。A、構造函數的函數名與類名相同B、構造函數可以重載C、構造函數可以設立默認參數D、構造函數必須指定類型說明142、假定一個類的構造函數為“B(intax,intbx):a(ax),b(bx){}”,執行“Bx(1,2),y(3,4);x=y;”語句序列后x.a的值為()。A、1B、2C、3
D、4143、假定一個類的構造函數為“A(intaa,intbb){a=aa;b=aa*bb;}”,則執行“A
x(4,5);”語句后,x.a和x.b的值分別為(
)A、4和5
B、5和4
C、4和20
D、20和5144、假定一個類的構造函數為“A(intaa=1,intbb=0){a=aa;b=bb;}”,則執行“Ax(4);”語句后,x.a和x.b的值分別為(
)。A、1和0
B、1和4
C、4和1
D、4和0145、假定一個類AB只具有一個整型數據成員a,用戶為該類定義的帶參構造函數可認為(
)。A、AB(){}
B、AB():a(0){}C、AB(intaa=0){a=aa;}
D、AB(intaa){}146、靜態數據成員的初始化是在(
)中進行的。A、構造函數
B、任何成員函數C、所屬類
D、全局區147、由于數據隱藏的需要,靜態數據成員通常被說明為()。A、私有的B、公用的C、保護的D、不可訪問的148、復制構造函數的參數通常是()。A、無特殊規定B、指向對象的指針C、自己類對象的常引用D、對象149、通常,復制構造函數的參數是()。A、某個對象名B、某個對象的成員C、某個對象的引用名D、某個對象的引用名150、關于常成員的描述中,錯誤的是()。A、常成員涉及常數據成員和常成員函數兩種B、常數據成員必須是公用的C、常數據成員要使用構造函數成員初始化列表進行初始化D、常對象只能調用它的常成員函數,不能調用其它的成員函數151、對于在類中定義的靜態數據成員,下面對的的說法是()。A、該類的每一個對象中都有一個靜態數據成員B、對象創建時產生C、在類外進行初始化D、既可以在類外初始化,也可以在類內初始化152、一個類的靜態數據成員所表達屬性(
)。A、是類的或對象的屬性
B、只是對象的屬性C、只是類的屬性
D、類和友元的屬性153、類的靜態成員的訪問控制(
)。A、只允許被定義為privateB、只允許被定義為private或protectedC、只允許被定義為publicD、可允許被定義為private、protected或public154、靜態成員函數對類的數據成員訪問(
)。A、是不允許的
B、只允許是靜態數據成員
C、只允許是非靜態數據成員
D、可允許是靜態數據成員或非靜態數據成員155、被非靜態成員函數訪問的類的數據成員(
)。A、可以是非靜態數據成員或靜態數據成員
B、不也許是類的靜態數據成員
C、只能是類的非靜態數據成員
D、只能是類的靜態數據成員156、引入友元的重要目的是為了(
)。A、增強數據安全性
B、提高程序的可靠性C、提高程序的效率和靈活性
D、保證類的封裝性157、一個類的成員函數也可以成為另一個類的友元函數,這時的友元說明(
)。A、需加上類域的限定
B、不需加上類域的限定C、類域的限定可加可不加
D、不需要任何限定158、類成員的訪問權限中,()只能被本類的成員函數和其友元函數訪問。A、shareB、publicC、privateD、protected159、當將一個類A或函數f()說明為另一個類B的友元后,類A或函數f()可以直接訪問類B的(
)。A、只能是公有成員
B、只能是保護成員C、只能是除私有成員之外的任何成員
D、具有任何權限的成員160、下面不是描述類的成員函數的是()。A、構造函數B、析構函數C、友元函數D、復制構造函數161、下列函數中,()不是類的成員函數。A、構造函數B、析構函數C、友元函數D、復制構造函數162、假如類A被說明成類B的友元,則()。A、類A的成員即類B的成員B、類B的成員即類A的成員C、類A的成員函數不得訪問類B的成員D、類B不一定是類A的友元163、假如表達式++a中的“++”是作為成員函數重載的運算符,若采用運算符函數調用格式,則可表達為(
)。A、a.operator++(1)
B、operator++(a)C、operator++(a,1)
D、a.operator++()164、在重載一運算符時,若運算符函數的形參表中沒有參數,則不也許的情況是(
)A、該運算符是一個單目運算符。B、該運算符函數有一個隱含的參數this。C、該運算符函數是類的成員函數。D、該運算符函數是類的友元函數。165、關于插入運算符<<的重載,下列說法不對的的是(
)。A、運算符函數的返回值類型是ostream&。B、重載的運算符必須定義為類的成員函數。C、運算符函數的第一個參數的類型是ostream&D、運算符函數有兩個參數。166、C++提供了幾種方法以實現不同類型間的轉換。以下()不能用來進行不同類型數據間的轉換的。A、用隱式類型轉換或顯式類型轉換B、用轉換構造函數C、用復制構造函數D、用類型轉換函數167、用類型轉換函數進行類型轉換,在定義類型轉換函數時,以下()是對的的。A、要指定函數類型,要給定函數參數B、要指定函數類型,不用給定函數參數C、不用指定函數類型,要給定函數參數D、不用指定函數類型,不用給定函數參數168、將運算符“+”重載,規定在進行兩個負數相加時可以使用互換律,必須()。A、將運算符“+”重載為友元函數B、將運算符“+”重載為成員函數C、將運算符“+”重載為構造函數D、將運算符“+”重載為析構函數169、對于公用繼承,基類的公有和保護成員在派生類中將(
)成員。A、所有變成公有
B、所有變成保護C、所有變成私有
D、仍然相應保持為公有和保護170、在公用繼承的情況下,基類非私有成員在派生類中的訪問權限()。A、受限制B、保持不變C、受保護D、不受保護171、對于公有繼承,基類中的私有成員在派生類中將(
)。A、可以直接使用成員名訪問
B、可以通過成員運算符訪問C、仍然是基類的私有成員
D、變為派生類的私有成員172、當保護繼承時,基類的(
)在派生類中成為保護成員,在類作用域外不可以通過派生類的對象來直接訪問該成員。A、任何成員
B、公有成員和保護成員C、保護成員和私有成員
D、私有成員173、下面描述中,表達錯誤的是()。A、公用繼承時基類中的public成員在派生類中仍是public的B、公用繼承時基類中的private成員在派生類中仍是private的C、公用繼承時基類中的protected成員在派生類中仍是protected的D、私有繼承時基類中的public成員在派生類中是private的174、從一個基類派生出的各個類的對象之間()。A、共享所有數據成員,每個對象還包含基類的所有屬性B、共享部分數據成員,每個對象還包含基類的所有屬性C、不共享任何數據成員,但每個對象還包含基類的所有屬性D、共享部分數據成員和函數成員175、建立包具有類對象成員的派生類對象時,自動調用構造函數的執行順序依次為(
)的構造函數。A、自己所屬類、對象成員所屬類、基類B、對象成員所屬類、基類、自己所屬類C、基類、對象成員所屬類、自己所屬類D、基類、自己所屬類、對象成員所屬類176、關于cout流對象,以下說法不對的的是()。A、cout是ostream流類對象B、用“cout<<”輸出數據時,不須考慮數據是什么類型C、當向cout流插入一個endl時,輸出換行D、用“cout<<”可以直接輸出用戶聲明的類型的數據。177、在iostream文獻中定義了4種流對象,它們是()。A、cin,cout,cerr,clogB、cin,cout,cerr,putC、cin,cout,put,getD、cin,cout,cerr,get178、在C++中串流類是在頭文獻strstream.h中定義的,下列不屬于串流類的是()。A、strstream
B、ostrstream
C、ofstream
D、istrstream179、在C++程序中使用的cin標記符是系統類庫中定義的(
)類中的一個對象。
A、istream
B、ostream
C、iostream
D、fstream180、在C++程序中使用的cout標記符是系統類庫中定義的(
)類中的一個對象。A、istream
B、ostream
C、iostream
D、fstream181、用“>>”運算符從鍵盤輸入多于一個數據時,各數據之間應使用()符號作為分隔符。A、空格或逗號B、逗號或回車C、逗號或分號D、空格或回車182、C++中聲明常量的關鍵字是()。A、constB、externC、publicD、enum183、以下敘述中對的的是()A、使用#define可認為常量定義一個名字,該名字在程序中可以再賦此外的值
B、使用const定義的常量名有類型之分,其值在程序運營時是不可改變的
C、在程序中使用內置函數使程序的可讀性變差
D、在定義函數時可以在形參表的任何位置給出缺省形參值184、下列的符號常變量定義中,錯誤的定義是()。A、constM=10;
B、constintM=20;
C、constcharch;
D、constboolmark=true;185、函數原型語句對的的是()。A、intFunction(voida)B、voidFunction(int);C、intFunction(a);
D、voidint(doublea);186、在關鍵字private后面定義的成員為類的(
)成員。A、私有
B、公用
C、保護
D、任何187、在一個類的定義中,包具有(
)成員的定義。
A、數據
B、函數
C、數據和函數
D、數據或函數188、在類作用域中可以通過直接使用該類的(
)成員名進行訪問。
A、私有
B、公用
C、保護
D、任何189、在關鍵字public后面定義的成員為類的(
)成員。A、私有
B、公用
C、保護
D、任何190、類中定義的成員默認為(
)訪問屬性。A、public
B、private
C、protected
D、friend191、每個類()構造函數。A、只能有一個B、可以有公用的C、可以有多個D、只可有缺省的192、對類對象成員的初始化是通過構造函數中給出的()實現的。A、函數體B、參數初始化表C、參數表
D、參數初始化表或函數體193、假定AB為一個類,則執行“ABx;”語句時將自動調用該類的().。A、有參構造函數B、無參構造函數C、復制構造函數D、賦值重載函數194、假定AB為一個類,則執行“ABx(a,5);”語句時將自動調用該類的(
)。A、帶參構造函數
B、無參構造函數
C、復制構造函數
D、賦值重載函數195、假定CTest為一個類,并且有一無默認值的的有參構造函數和一無參構造函數,則執行“CTestobjTest;”語句時將自動調用該類的()。A、有參構造函數B、無參構造函數C、復制構造函數D、賦值構造函數196、在重載一個運算符時,其參數表中沒有任何參數,這表白該運算符是(
)。A、作為友元函數重載的1元運算符
B、作為成員函數重載的1元運算符C、作為友元函數重載的2元運算符
D、作為成員函數重載的2元運算符197、在成員函數中進行雙目運算符重載時,其參數表中應帶有(
)個參數。A、0
B、1
C、2
D、3198、雙目運算符重載為普通函數時,其參數表中應帶有(
)個參數。A、0
B、1
C、2
D、3199、假如表達式a+b中的“+”是作為成員函數
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年微生物檢驗技師考試資格評估試題及答案
- 玻璃行業國際標準與認證流程考核試卷
- 畜牧業品牌推廣與市場渠道建設考核試卷
- 潛水裝備材料科學考核試卷
- 2024年項目管理考試復習建議試題及答案
- 老舊溫室復耕方案范本
- 2025年金屬非金屬礦山提升機操作證考試題及答案
- 石膏在隔音材料中的應用考核試卷
- 疾病預防控制與醫療廢棄物處理規范考核試卷
- 云母制品在農業領域的創新應用考核試卷
- 小學四年級地方課程安全教育教案泰山出版社
- 化學性及藥物性頜骨骨髓炎
- 神奇的植物王國課件
- 員工崗位技能考核評定表
- 人工氣道的護理劉亞課件
- 項目部安全生產事故應急預案
- 垂體瘤-PPT課件
- 鉆井井控裝置
- 贛美版(江西)小學四年級美術下全冊教案
- 12隊淘汰賽_對陣表
- 我國城市馬拉松賽事發展現狀分析
評論
0/150
提交評論