23秋學期(僅限-高起專1909、專升本1909)《面向?qū)ο蟪绦蛟O計》在線作業(yè)-00003
試卷總分:100 得分:100
一、單選題 (共 35 道試題,共 70 分)
1.類B是類A的公有派生類,類A和類B中都定義了虛函數(shù)func(),p是一個指向類A對象的指針,則p->A::func()將( )。
A.調(diào)用類A中是函數(shù)func()
B.調(diào)用類B中是函數(shù)func()
C.根據(jù)P所指的對象類型而確定調(diào)用A中或類B中的函數(shù)func()
D.既調(diào)用類A中函數(shù),也調(diào)用類B中的函數(shù)
2.假設A為抽象類,下列語句( )是正確的。
A.A fun(int);
B.A *p;
C.int fun(A);
D.A Obj;
3.在C++中,關于下列設置參數(shù)默認值的描述中,正確的是( )。
A.不允許設置參數(shù)的默認值
B.設置參數(shù)默認值只能在定義函數(shù)時設置
C.設置參數(shù)默認值時,應該是先設置右邊的再設置左邊的
D.設置參數(shù)默認值時,應該全部參數(shù)都設置
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.成員函數(shù)擁有this指針
D.靜態(tài)成員函數(shù)不擁有this指針
7.將一個函數(shù)聲明為某類的友元函數(shù)后,則在函數(shù)中不可以直接訪問該類的()。
A.公有成員
B.私有成員
C.保護成員
D.都可訪問
8.有關析構(gòu)函數(shù)的說法正確的是( )。
A.析構(gòu)函數(shù)可以有多個
B.析構(gòu)函數(shù)和構(gòu)造函數(shù)一樣可以有形參
C.析構(gòu)函數(shù)的功能是用來釋放一個對象
D.析構(gòu)函數(shù)的函數(shù)類型為void
9.結(jié)構(gòu)化程序設計方法以()為中心進行分析和設計。
A.結(jié)構(gòu)
B.模塊
C.對象
D.類
10.對于下面定義的類A在函數(shù)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.多繼承的構(gòu)造函數(shù)順序可分為如下4步: ①所有非虛基類的構(gòu)造函數(shù)按照它們被繼承的順序構(gòu)造。 ②所有虛基類的構(gòu)造函數(shù)按照它們被繼承的順序構(gòu)造。 ③所有子對象的構(gòu)造函數(shù)按照它們聲明的順序構(gòu)造。 ④派生類自己的構(gòu)造函數(shù)體 這四個步驟的正確順序是()。
A.④③①②
B.②④③①
C.②①③④
D.③④①②
13.有關構(gòu)造函數(shù)說法不正確的是( )。
A.構(gòu)造函數(shù)的名字和類的名字一樣
B.在創(chuàng)建對象時,系統(tǒng)自動調(diào)用構(gòu)造函數(shù)
C.構(gòu)造函數(shù)無任何函數(shù)類型
D.構(gòu)造函數(shù)有且只有一個
14.下列關于構(gòu)造函數(shù)說法不正確的是()。
A.構(gòu)造函數(shù)必須與類同名
B.構(gòu)造函數(shù)可以省略不寫
C.構(gòu)造函數(shù)必須有返回值
D.在構(gòu)造函數(shù)中可以對類中的成員進行初始化
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)函數(shù)中不能訪問對象的私有成員
16.下列關于類的繼承描述中,( )是錯誤的。
A.派生類可以訪問基類的所有數(shù)據(jù)成員,也能調(diào)用基類的所有成員函數(shù)
B.派生類也是基類,但基類不一定具有派生類的全部屬性和方法
C.繼承描述類的層次關系,派生類可以具有與基類相同的屬性和方法
D.一個基類可以有多個派生類,一個派生類可以有多個基類
17.抽象類的作用主要是()。
A.直接用作基類
B.直接用作指針
C.引用的基類型
D.包括以上各項
18.已知X類,則當程序執(zhí)行到語句 X array[3]; 時,調(diào)用了( )次構(gòu)造函數(shù)。
A.0
B.1
C.2
D.3
19.下面對友元的錯誤描述是( )。
A.關鍵字friend用于聲明友元
B.一個類的成員函數(shù)可以是另一個類的友元
C.友元函數(shù)訪問對象的成員不受訪問特性影響
D.友元函數(shù)通過this指針訪問對象成員
20.對基類和派生類的描述中錯誤的是( )。
A.派生類是基類的具體化
B.基類繼承了派生類的屬性
C.派生類是基類定義的延續(xù)
D.派生類是基類的特殊化
21.下列關于成員訪問權(quán)限的描述中,不正確的是( )。
A.公有數(shù)據(jù)成員和公有成員函數(shù)都可以通過類對象直接訪問
B.類的私有數(shù)據(jù)成員只能被公有成員函數(shù)以及該類的任何友元類或友元函數(shù)訪問
C.保護成員在派生類中可以被訪問,而私有成員不可以
D.類或派生類的成員函數(shù)可以訪問保護成員
22.( )的功能是對對象進行初始化。
A.析構(gòu)函數(shù)
B.數(shù)據(jù)成員
C.構(gòu)造函數(shù)
D.靜態(tài)數(shù)據(jù)成員
23.關于多繼承二義性的描述中,錯誤的是()。
A.一個派生類的基類中都有某個同名成員,在派生類中對這個成員的訪問可能出現(xiàn)二義性
B.解決二義性的最常用的方法是對成員名的限定法
C.基類和派生類同時出現(xiàn)的同名函數(shù),也存在二義性問題
D.一個派生類是從兩個基類派生出來的,而這兩個基類又有一個共同的基類, 對該基類成員進行訪問時,可能出現(xiàn)二義性
24.動態(tài)聯(lián)編所支持的多態(tài)性是( )。
A.虛函數(shù)
B.繼承
C.編譯時的多態(tài)性
D.運行時的多態(tài)性
25.下列( )不是構(gòu)造函數(shù)的特征。
A.構(gòu)造函數(shù)的函數(shù)名與類名相同
B.構(gòu)造函數(shù)可以重載
C.構(gòu)造函數(shù)可以設置默認參數(shù)
D.構(gòu)造函數(shù)必須指定類型說明
26.不論派生類以何種方法繼承基類,都不能使用基類的( )。
A.public成員
B.private成員
C.protected成員
D.private成員和protected成員
27.要求打開文件 d:\file.dat,可寫入數(shù)據(jù),正確的語句是( )。
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.下列函數(shù)中,可以作為虛函數(shù)的是( )。
A.普通函數(shù)
B.構(gòu)造函數(shù)
C.靜態(tài)成員函數(shù)
D.析構(gòu)函數(shù)
29.一個類的友元函數(shù)或友元類能夠通過成員操作符訪問該類的()。
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.在類的定義形式中,數(shù)據(jù)成員、成員函數(shù)和( )組成了類定義體。
A.成員的訪問控制信息
B.公有消息
C.私有消息
D.保護消息
32.關于純虛函數(shù),下列表述正確的是( )。
A.純虛函數(shù)是未給出實現(xiàn)版本(即無函數(shù)體定義)的虛函數(shù)
B.純虛函數(shù)的聲明總是以“=0”結(jié)束
C.派生類必須實現(xiàn)基類的純虛函數(shù)
D.含有純虛函數(shù)的類一定是派生類
33.下列運算符中,()運算符在C++中不能重載。
A.?:
B.+
C.-
D.=
34.基類和派生類可以分別叫做( )。
A.“大類”和“小類”
B.“父類”和“子類”
C.“小類”和“大類”
D.“子類”和“父類”
35.this指針是C++實現(xiàn)( )的一種機制。
A.抽象
B.封裝
C.繼承
D.重載
二、判斷題 (共 15 道試題,共 30 分)
36.可以在類的構(gòu)造函數(shù)中對靜態(tài)數(shù)據(jù)成員進行初始化。
37.定義模板的關鍵字是template。
38.類的常量數(shù)據(jù)成員的值只能在創(chuàng)建對象時初始化,初始化后不得再修改。
39.析構(gòu)函數(shù)不能被繼承。
40.一個類的構(gòu)造函數(shù)中可以不包含對其子對象的初始化。
41.在C++中,虛函數(shù)幫助實現(xiàn)了類的封裝性。
42.cout后面的符號是<<。
43.函數(shù)模板可以與普通函數(shù)重載。
44.在類體中可以在聲明成員變量的同時為其賦初值。
45.在保護繼承中,對于派生類的訪問同于公有繼承,而對于派生類的對象的訪問同于私有繼承。
46.通過C++語言中類的繼承機制,可以擴充和完善已有類以適應新的需求。
47.通過指針或引用可以調(diào)用不同對象相同名稱的函數(shù),但可導致完全不同的行為的現(xiàn)象稱為二義性。
48.定義一個虛基類后,則該虛基類后繼類層次中的類都需要調(diào)用虛基類的構(gòu)造函數(shù)對虛基類中定義的成員變量進行初始化。
49.定義虛函數(shù)所用的關鍵字是virtual。
50.拷貝構(gòu)造函數(shù)通常使用已有對象的引用來初始化創(chuàng)建中的對象。
奧鵬,國開,廣開,電大在線,各省平臺,新疆一體化等平臺學習
詳情請咨詢QQ : 3230981406或微信:aopopenfd777