第四章类和对象 习题答案
生活随笔
收集整理的這篇文章主要介紹了
第四章类和对象 习题答案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一.選擇題1.能提供封裝的C++的下列關鍵字是(C)A.whileB. unionC. classD. for2.在下面所列項中,不是面向對象的特點的是(C)A. 多面性B. 抽象性和封裝性C. 多線程和多任務D. 繼承性3.下面選項中,對A類的構函數的正確定義是(A)A. A::~A( )B. void ~A::A(參數)C.~A::A(參數)D. void ~A::A( )4.下面有關構造函數的不正確說法是(B)A. 構造函數可以用來實現所有成員變量的初始化B. 構造函數不是類的成員函數C. 當生成類的實例時,自動調用構造函數進行初始化D. 構造函數用來分配對象所需的內存5.有關析構函數的不正確說法是(C)A. 析構函數在對象生存期結束時自動被調用B. 析構函數不得指定參數C. 定義析構函數時,可以指定返回類型為voidD. 析構函數名與類名相同6.下面有關類說法錯誤的是(C)A. 一個類可以有多個析構函數B. 一個類只能有一個析構函數C. 可以給析構函數指定參數D. 一個類中可以說明具有類類型的數據成員7.下面有關構造函數和new運算符關系的正確說法是(D)A. new運算符不調用構造函數B. 構造函數一定調用new運算符C. 當生成類的實例時,先調用new運算符,然后構造函數進行初始化D. 當用new運算符動態產生類的對象時,new運算符也自動調用構造函數8簡單成員函數的聲明一般不含關鍵字(B)A. doubleB. staticC. floatD. int9.已知:print( )函數是一個類的常成員函數,它無返回值,下面表示正確的項是(A)A.void print( )constB. const void print( )C. void const print( )D. void print(const)10.下列各類函數中,不是類的成員函數的是(C)A.構造函數B. 析構函數C. 友元函數D. 復制初始化構造函數11.對友元函數的描述正確的是(A)A.一個類的友元函數是在該類中說明的一個函數B.一個類的友元函數是該類的一個成員C.友元函數只允許訪問該類對象的私有成員D.友元函數不允許訪問該類的私有成員12.保證編譯器正確調用成員函數的規則是(D)A.賦值兼容B. 繼承C. 作用域D. 支配13.下面敘述不正確的是(A)A.基類的保護成員在派生類中仍然是保護的B.基類的保護成員在公有派生類中仍然是保護的C.基類的保護成員在私有派生類中是私有的D.對基類成員的訪問必須是無二義性的
14.下面敘述不正確的是(C)
A.成員的訪問能力在私有派生類中和公有派生類中是不同的B.基類的私有成員在公有派生類中不可訪問C.賦值兼容規則不適用于多重繼承的組合D.公有基類成員在保護派生中是保護的15.下面敘述不正確的是(D)A.派生類可以有自己的構造函數B. 派生類繼承基類的構造函數C. 派生類繼承基類的析構函數D. 派生類只能繼承基類的一個構造函數16.下面有關類模板敘述不正確的選項是(A)A.不可以通過一個類來派生類模板B. 可以從一個類模板派生出一個新的類模板C. 類模板支持單一繼承D. 類模板可以有多個參數17.下面有關類模版敘述不正確的是(B)A.可以使用派生B. 可以使用多個析構函數C. 可以又多個析構函數D. 可以有多個參數18.在構造向量時,不正確的敘述是(D)A.可以使用基本數據類型B. 可以使用類C. 可以使用向量D. 不可以使用容器19.對一個向量來說,不正確的敘述是(D)A.向量的長度可變B.向量有返回無需再次分配內存就能容納對象個數的成員函數capacity( )C.如果數量已滿,當增加一個元素時,向量成員函數capacity( )的長度自動增加D.如果數量已滿,當需要增加一個元素是capacity( )的長度每次自動增加一個20.要是一個類成為抽象類,這個累應具有的條件是(A)A.至少有一個純虛函數B. 至少有一個虛函數C. 只含有一個純虛函數D. 只含有一個虛函數21.下面是基類中的成員函數形式,其中純虛函數的是(B)A.virtual void f (void)B. virtual void f (void )=0C. void f (void)=0D. virtual void f (void){}
二.程序填空AB第1題:#includeUsing namespace std;Class point{int x,y;Publice ;Point( ):x(0),y(0){}Point(int a):x(a){y=0;}Point(int a,int b):x(a),y(b){};Int getx( ) {return x;}Int getx( ) {return y;}
}Void main( ){/*******************SPACE*******************/
/*******************SPACE*******************/ 【?】For(int i=0; i<3;i++)Cout<<"b["<For(int i=0; i<3;i++)Cout<<"c["<}答案1.point a[3];2.point b[3]={1,2,3};3.point c[3]={point(1,2),point(3,4),point(5,6)};B第2題:...Class point{
private;Int x,y;Publice;Point(int a,int b) {x=a; y=b;cout<<”point...”<Void showxy( ){cout<<”x=”<
{Private;Int h, w public;Rect angle(int a,int b,int h, int w):point (a,b)//構造函//數初始化列表{H=h;W=w ; cout<<”rectangle...”<V oid show( ) {cout<<”H=”<};V oid main( ){Rectangle r1(3,4,5,6);//派生對象調用基類的成員函數showxy( )/*******************SPACE*******************/ 【?】//派生對象調用基類的成員函數show( )/*******************SPACE*******************/ 【?】}1.r1.Showxy();2.r1.Show();A第3題:#includeUsing namespace std;Class A{int n;Public;A(int i):n(i){ }Int add(int a){return n+a;}};V oid main( ){/*******************SPACE*******************/ 【?】//指向類A的成員函數指針A x(10);P=A::add;Cout<<(x.*p)(15)<A*q=&;//類A對象x的指針/*******************SPACE*******************/ Cout<<【?】<}答案1.int (A::*p)(int);2.(q->*p)(15)B第3題:#includeUsing namespace std;Class point{Float x,y;Publice;Void display( )Void setxy(float a,float b);Float getx( );Float getx( );};//定義成員函數void display( )/*******************SPACE*******************/ 【?】{
Cout<}Void point::setxy(float a,float b){ x=a;y=b }Float point::getx( ){return x;}Float point::gety( ){return y;}Void main( ){Point a;a.setxy(3.5,5.8);B.display( );Point &ra=a;//用ra調用display輸出x,y的值;/*******************SPACE*******************/【?】Cout<}答案1.void Point::Display()2.ra.Display();三.程序改錯A第1題:Class base{Int number;Sttic int a;Public:Void set(int i,int j);Static int geta( ){return a ;}/************FOUND**********/Static int geta( ){return number;}/************FOUND**********/Void show( ){cout<};1.static int getn(){return number;}錯誤:靜態成員函數只允許訪問靜態成員變量,number不是靜態成員變量2.void show(){cout<<","<B第1題:#includeClass point {Int x;Public:Void init(int a) {setx(a);}Int getx( ) {return x;}/************FOUND**********/Int setx(int a){x=a;}};Void main( ){/************FOUND**********/A.init(56);Cour<<”a.x”<}答案1.Setx應有返回值,int Setx(int a){x=a;return x;}2.A對象應該先定義,Point A=new Point( );AB第2題:#includeUsing namespace std;/************FOUND**********/Void sort (int x,int n){Int i,j,t;For (i=0;i/************FOUND**********/For (j=0;j/************FOUND**********/If(x[i]>[i+1]){T=x[j];X[j]=x[j+1];X[j+1]=t; }}Main( ){Int i,n,a[100];Printf(“please input the length of the array:\n”);Cin>>n;/************FOUND**********/Sort(n,a)Cout<<”output the sorted array:”<For(i=0;iCout<}答案1.void sort(int *x,int n)2.for(j=0;j
3.if(x[j]>x[j+1])4.sort(a,n);A第3題:#includeClass point{Int x;Public:Void init(int a){setx(a);}Int getx( ){return x;}};Void main( ){/************FOUND**********/A.init(56);Cout<<”A.”<}答案1.Setx應有返回值,int Setx(int a){x=a:return x;}2.A對象應該先定義,Point A=new point();B第3題:Class base{Int *p;Public;/************FOUND**********/Base(int a ){p=&a};/************FOUND**********/Int getx( ){return m;}};答案1.base(int a){p=&a;}2.m沒有定義
?
總結
以上是生活随笔為你收集整理的第四章类和对象 习题答案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zcmu-1976
- 下一篇: Elasticsearch查询性能优化