南開23秋學期(僅限-高起專1909、專升本1909)《面向對象程序設計》在線作業(yè)【答案】

可做奧鵬全部院校在線離線作業(yè)畢業(yè)論文QQ:3230981406 微信:aopopenfd777

發(fā)布時間:2023-11-11 20:26:06來源:admin瀏覽: 0 次

23秋學期(僅限-高起專1909、專升本1909)《面向對象程序設計》在線作業(yè)-00003

試卷總分:100  得分:100

一、單選題 (共 35 道試題,共 70 分)

1.類B是類A的公有派生類,類A和類B中都定義了虛函數func(),p是一個指向類A對象的指針,則p->A::func()將( )。

A.調用類A中是函數func()

B.調用類B中是函數func()

C.根據P所指的對象類型而確定調用A中或類B中的函數func()

D.既調用類A中函數,也調用類B中的函數

 

2.假設A為抽象類,下列語句( )是正確的。

A.A fun(int);

B.A *p;

C.int fun(A);

D.A Obj;

 

3.在C++中,關于下列設置參數默認值的描述中,正確的是( )。

A.不允許設置參數的默認值

B.設置參數默認值只能在定義函數時設置

C.設置參數默認值時,應該是先設置右邊的再設置左邊的

D.設置參數默認值時,應該全部參數都設置

 

4.若類A和類B的定義如下: class A { int i,j; public: void get(); }; class B:A//默認為私有派生 { int k; public; void make(); }; void B:: make() { k=i*j; } 則上述定義中,()是非法的表達式。

A.void get();

B.int k;

C.void make();

D.k=i*j;

 

5.下面敘述中錯誤的是()。

A.派生類可以使用private派生

B.對基類成員的訪問必須是無二義性的

C.基類成員的訪問能力在派生類中維持不變

D.賦值兼容規(guī)則也適用于多繼承的組合

 

6.關于this指針的說法錯誤的是( )。

A.this指針必須顯示說明

B.當創(chuàng)建一個對象后,this指針就指向該對象

C.成員函數擁有this指針

D.靜態(tài)成員函數不擁有this指針

 

7.將一個函數聲明為某類的友元函數后,則在函數中不可以直接訪問該類的()。

A.公有成員

B.私有成員

C.保護成員

D.都可訪問

 

8.有關析構函數的說法正確的是( )。

A.析構函數可以有多個

B.析構函數和構造函數一樣可以有形參

C.析構函數的功能是用來釋放一個對象

D.析構函數的函數類型為void

 

9.結構化程序設計方法以()為中心進行分析和設計。

A.結構

B.模塊

C.對象

D.類

 

10.對于下面定義的類A在函數f()中將對象成員n的值修改為60的語句應該是( ) class A { public: A(int x){n=x;} void SetNum(int n1){n=n1;} private: int n; } int f() { A*ptr=new A(6); }

A.A(60)

B.SetNum(60)

C.ptr->SetNum(60)

D.ptr->n=60

 

11.在公有派生情況下,有關派生類對象和基類對象的關系,不正確的敘述是()。

A.派生類的對象可以賦給基類對象

B.派生類的對象可以初始化基類的引用

C.派生類的對象可以直接訪問基類的成員

D.派生類的對象的地址可以賦給指向基類的指針

 

12.多繼承的構造函數順序可分為如下4步: ①所有非虛基類的構造函數按照它們被繼承的順序構造。 ②所有虛基類的構造函數按照它們被繼承的順序構造。 ③所有子對象的構造函數按照它們聲明的順序構造。 ④派生類自己的構造函數體 這四個步驟的正確順序是()。

A.④③①②

B.②④③①

C.②①③④

D.③④①②

 

13.有關構造函數說法不正確的是( )。

A.構造函數的名字和類的名字一樣

B.在創(chuàng)建對象時,系統(tǒng)自動調用構造函數

C.構造函數無任何函數類型

D.構造函數有且只有一個

 

14.下列關于構造函數說法不正確的是()。

A.構造函數必須與類同名

B.構造函數可以省略不寫

C.構造函數必須有返回值

D.在構造函數中可以對類中的成員進行初始化

 

15.關于下面程序段說法正確的是( ) class X { private: int n; public: X(X&); }; X::X(X&x) {n=x.n} X obj1,obj2(obj1);

A.語句obj2(obj1);的功能是用對象obj1初始化具有相同類類型的對象obj2

B.語句obj2(obj1);的功能是用對象obj2初始化具有相同類類型的對象obj1

C.X(X&x)中的&符號可以刪除

D.X(X&x)函數中不能訪問對象的私有成員

 

16.下列關于類的繼承描述中,( )是錯誤的。

A.派生類可以訪問基類的所有數據成員,也能調用基類的所有成員函數

B.派生類也是基類,但基類不一定具有派生類的全部屬性和方法

C.繼承描述類的層次關系,派生類可以具有與基類相同的屬性和方法

D.一個基類可以有多個派生類,一個派生類可以有多個基類

 

17.抽象類的作用主要是()。

A.直接用作基類

B.直接用作指針

C.引用的基類型

D.包括以上各項

 

18.已知X類,則當程序執(zhí)行到語句 X array[3]; 時,調用了( )次構造函數。

A.0

B.1

C.2

D.3

 

19.下面對友元的錯誤描述是( )。

A.關鍵字friend用于聲明友元

B.一個類的成員函數可以是另一個類的友元

C.友元函數訪問對象的成員不受訪問特性影響

D.友元函數通過this指針訪問對象成員

 

20.對基類和派生類的描述中錯誤的是( )。

A.派生類是基類的具體化

B.基類繼承了派生類的屬性

C.派生類是基類定義的延續(xù)

D.派生類是基類的特殊化

 

21.下列關于成員訪問權限的描述中,不正確的是( )。

A.公有數據成員和公有成員函數都可以通過類對象直接訪問

B.類的私有數據成員只能被公有成員函數以及該類的任何友元類或友元函數訪問

C.保護成員在派生類中可以被訪問,而私有成員不可以

D.類或派生類的成員函數可以訪問保護成員

 

22.( )的功能是對對象進行初始化。

A.析構函數

B.數據成員

C.構造函數

D.靜態(tài)數據成員

 

23.關于多繼承二義性的描述中,錯誤的是()。

A.一個派生類的基類中都有某個同名成員,在派生類中對這個成員的訪問可能出現二義性

B.解決二義性的最常用的方法是對成員名的限定法

C.基類和派生類同時出現的同名函數,也存在二義性問題

D.一個派生類是從兩個基類派生出來的,而這兩個基類又有一個共同的基類, 對該基類成員進行訪問時,可能出現二義性

 

24.動態(tài)聯編所支持的多態(tài)性是( )。

A.虛函數

B.繼承

C.編譯時的多態(tài)性

D.運行時的多態(tài)性

 

25.下列( )不是構造函數的特征。

A.構造函數的函數名與類名相同

B.構造函數可以重載

C.構造函數可以設置默認參數

D.構造函數必須指定類型說明

 

26.不論派生類以何種方法繼承基類,都不能使用基類的( )。

A.public成員

B.private成員

C.protected成員

D.private成員和protected成員

 

27.要求打開文件 d:\file.dat,可寫入數據,正確的語句是( )。

A.ifstream infile("d:\file.dat", ios::in);

B.ifstream infile("d:\\file.dat", ios::in);

C.ofstream infile("d:\file.dat", ios::out);

D.fstream infile("d:\\file.dat", ios::in| ios::out);

 

28.下列函數中,可以作為虛函數的是( )。

A.普通函數

B.構造函數

C.靜態(tài)成員函數

D.析構函數

 

29.一個類的友元函數或友元類能夠通過成員操作符訪問該類的()。

A.私有成員

B.保護成員

C.公有成員

D.所有成員

 

30.下列虛基類的聲明中,正確的是()。

A.class virtual B:public A

B.virtual class B:public A

C.class B: public A virtual

D.class B: virtual public A

 

31.在類的定義形式中,數據成員、成員函數和( )組成了類定義體。

A.成員的訪問控制信息

B.公有消息

C.私有消息

D.保護消息

 

32.關于純虛函數,下列表述正確的是( )。

A.純虛函數是未給出實現版本(即無函數體定義)的虛函數

B.純虛函數的聲明總是以“=0”結束

C.派生類必須實現基類的純虛函數

D.含有純虛函數的類一定是派生類

 

33.下列運算符中,()運算符在C++中不能重載。

A.?:

B.+

C.-

D.=

 

34.基類和派生類可以分別叫做( )。

A.“大類”和“小類”

B.“父類”和“子類”

C.“小類”和“大類”

D.“子類”和“父類”

 

35.this指針是C++實現( )的一種機制。

A.抽象

B.封裝

C.繼承

D.重載

 

二、判斷題 (共 15 道試題,共 30 分)

36.可以在類的構造函數中對靜態(tài)數據成員進行初始化。

 

37.定義模板的關鍵字是template。

 

38.類的常量數據成員的值只能在創(chuàng)建對象時初始化,初始化后不得再修改。

 

39.析構函數不能被繼承。

 

40.一個類的構造函數中可以不包含對其子對象的初始化。

 

41.在C++中,虛函數幫助實現了類的封裝性。

 

42.cout后面的符號是<<。

 

43.函數模板可以與普通函數重載。

 

44.在類體中可以在聲明成員變量的同時為其賦初值。

 

45.在保護繼承中,對于派生類的訪問同于公有繼承,而對于派生類的對象的訪問同于私有繼承。

 

46.通過C++語言中類的繼承機制,可以擴充和完善已有類以適應新的需求。

 

47.通過指針或引用可以調用不同對象相同名稱的函數,但可導致完全不同的行為的現象稱為二義性。

 

48.定義一個虛基類后,則該虛基類后繼類層次中的類都需要調用虛基類的構造函數對虛基類中定義的成員變量進行初始化。

 

49.定義虛函數所用的關鍵字是virtual。

 

50.拷貝構造函數通常使用已有對象的引用來初始化創(chuàng)建中的對象。




奧鵬,國開,廣開,電大在線,各省平臺,新疆一體化等平臺學習
詳情請咨詢QQ : 3230981406或微信:aopopenfd777

作業(yè)咨詢 論文咨詢
微信客服掃一掃

回到頂部