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