22春學(xué)期(高起本1709-1803、全層次1809-2103)《面向?qū)ο蟪绦蛟O(shè)計(jì)》在線作業(yè)-00001
試卷總分:100 得分:100
一、單選題 (共 35 道試題,共 70 分)
1.友元重載運(yùn)算符obj1>obj2被C++編譯器解釋為()。
A.operator>(obj1,obj2)
B.>(obj1,obj2)
C.obj1.operator>(obj2)
D.obj2.operator>(obj1)
2.對(duì)于類定義 class A{ public: virtual void funcl(){} void func2(){} }; class B:public A{ public: void func1(){cout<<"class B func1"<<endl;} virtual void func2(){cout<<"class B func2"<<endl;} };下面正確的敘述是( )。
A.A::func2()和B::func1()都是虛函數(shù)
B.A::func2()和B::func1()都不是虛函數(shù)
C.B::func1()是虛函數(shù),A::func2()不是虛函數(shù)
D.B::func1()不是虛函數(shù),A::func2()是虛函數(shù)
3.read函數(shù)的功能是從輸入流中讀取( )。
A.一個(gè)字符
B.當(dāng)前字符
C.一行字符
D.指定若干個(gè)字符
4.運(yùn)算符重載的目的是()。
A.提高程序的效率
B.提高代碼復(fù)用能力
C.簡化程序,減少目標(biāo)代碼
D.使程序代碼直觀易讀
5.下列對(duì)重載函數(shù)的描述中,( )是錯(cuò)誤的。
A.重載函數(shù)中不允許使用默認(rèn)參數(shù)
B.重載函數(shù)中編譯時(shí)根據(jù)參數(shù)表進(jìn)行選擇
C.不要使用重載函數(shù)來描述毫無相干的函數(shù)
D.構(gòu)造函數(shù)重載將會(huì)給初始化帶來多種方式
6.關(guān)于下面程序段說法正確的是( ) class X { private: int n; public: X(X&); }; X::X(X&x) {n=x.n} X obj1,obj2(obj1);
A.語句obj2(obj1);的功能是用對(duì)象obj1初始化具有相同類類型的對(duì)象obj2
B.語句obj2(obj1);的功能是用對(duì)象obj2初始化具有相同類類型的對(duì)象obj1
C.X(X&x)中的&符號(hào)可以刪除
D.X(X&x)函數(shù)中不能訪問對(duì)象的私有成員
7.設(shè)置虛基類的目的是()。
A.簡化程序
B.消除二義性
C.提高運(yùn)行效率
D.減少目標(biāo)代碼
8.對(duì)于拷貝構(gòu)造函數(shù),正確的描述是()。
A.在C++語言中,如果不自定義類的拷貝構(gòu)造函數(shù),則每個(gè)類都有默認(rèn)的拷貝構(gòu)造函數(shù)
B.必須為每個(gè)類定義拷貝構(gòu)造函數(shù)
C.如果要使用拷貝構(gòu)造函數(shù),則必須在類中先定義
D.當(dāng)定義了類的構(gòu)造函數(shù)時(shí),如果要使用拷貝構(gòu)造函數(shù),則必須定義拷貝構(gòu)造函數(shù)
9.下面關(guān)于構(gòu)造函數(shù)和析構(gòu)函數(shù)的描述,錯(cuò)誤的是()。
A.析構(gòu)函數(shù)中調(diào)用虛函數(shù)采用靜態(tài)聯(lián)編
B.對(duì)虛析構(gòu)函數(shù)的調(diào)用可以采用動(dòng)態(tài)聯(lián)編
C.當(dāng)基類的析構(gòu)函數(shù)是虛函數(shù)時(shí),其派生類的析構(gòu)函數(shù)也一定是虛函數(shù)
D.構(gòu)造函數(shù)可以聲明為虛函數(shù)
10.多繼承的構(gòu)造函數(shù)順序可分為如下4步: ①所有非虛基類的構(gòu)造函數(shù)按照它們被繼承的順序構(gòu)造。 ②所有虛基類的構(gòu)造函數(shù)按照它們被繼承的順序構(gòu)造。 ③所有子對(duì)象的構(gòu)造函數(shù)按照它們聲明的順序構(gòu)造。 ④派生類自己的構(gòu)造函數(shù)體 這四個(gè)步驟的正確順序是()。
A.④③①②
B.②④③①
C.②①③④
D.③④①②
11.關(guān)于this指針的說法錯(cuò)誤的是( )。
A.this指針必須顯示說明
B.當(dāng)創(chuàng)建一個(gè)對(duì)象后,this指針就指向該對(duì)象
C.成員函數(shù)擁有this指針
D.靜態(tài)成員函數(shù)不擁有this指針
12.有關(guān)析構(gòu)函數(shù)的說法正確的是( )。
A.析構(gòu)函數(shù)可以有多個(gè)
B.析構(gòu)函數(shù)和構(gòu)造函數(shù)一樣可以有形參
C.析構(gòu)函數(shù)的功能是用來釋放一個(gè)對(duì)象
D.析構(gòu)函數(shù)的函數(shù)類型為void
13.一個(gè)( )允許用戶為類定義一種模式,使得類中的某些數(shù)據(jù)成員、某些成員函數(shù)的參數(shù)和返回值可以取任意數(shù)據(jù)類型。
A.函數(shù)模板
B.模板函數(shù)
C.類模板
D.模板類
14.下列關(guān)于成員訪問權(quán)限的描述中,不正確的是( )。
A.公有數(shù)據(jù)成員和公有成員函數(shù)都可以通過類對(duì)象直接訪問
B.類的私有數(shù)據(jù)成員只能被公有成員函數(shù)以及該類的任何友元類或友元函數(shù)訪問
C.保護(hù)成員在派生類中可以被訪問,而私有成員不可以
D.類或派生類的成員函數(shù)可以訪問保護(hù)成員
15.使用string類,必須在程序中包含頭文件()。
A.string.h
B.string
C.cstring.h
D.cstring
16.已知函數(shù)原型:void f(int a, int b=3,char c='*'); 則下面的函數(shù)調(diào)用中,不合法的調(diào)用是()。
A.f(5)
B.f(5,8)
C.f(6, , '#')
D.f(0,0, '#')
17.派生類的構(gòu)造函數(shù)的成員初始化列表中,不能包含()。
A.基類的構(gòu)造函數(shù)
B.派生類中子對(duì)象的初始化
C.基類的子對(duì)象初始化
D.派生類中一般數(shù)據(jù)成員的初始化
18.關(guān)于虛函數(shù),下列表述正確的是( )。
A.如果在重定義虛函數(shù)時(shí)使用virtual,則該重定義函數(shù)仍然是虛函數(shù)
B.虛函數(shù)不得聲明為靜態(tài)函數(shù)
C.虛函數(shù)不得聲明為另一個(gè)類的友元函數(shù)
D.派生類必須重新定義基類的虛函數(shù)
19.在保護(hù)繼承中,基類中的私有成員作為派生類的()。
A.公有成員
B.私有成員
C.保護(hù)成員
D.不可訪問
20.假定已定義浮點(diǎn)型變量data,以二進(jìn)制方式把data的值寫入輸出文件流對(duì)象outfile中去,正確的語句是( )。
A.outfile.write((float *) &data, sizeof(float));
B.outfile.write((float *) &data, data);
C.outfile.write((char *) &data, sizeof(float));
D.outfile.write((char *) &data, data);
21.下列引用的定義中,( )是錯(cuò)誤的。
A.int i; int &j=i;
B.int i; int &j; j=i;
C.float i; float &j=i;
D.char d; char &k=d;
22.C++有( )種聯(lián)編方式。
A.1
B.2
C.3
D.4
23.在C++標(biāo)準(zhǔn)模板庫中,vector容器是一種( )。
A.標(biāo)準(zhǔn)類
B.標(biāo)準(zhǔn)對(duì)象
C.標(biāo)準(zhǔn)函數(shù)
D.標(biāo)準(zhǔn)類模板
24.下列關(guān)于賦值運(yùn)算符重載的說法中正確的是()。
A.返回值一般是以引用方式返回的對(duì)象,而函數(shù)體中總是用語句“return *this;”返回this指針?biāo)赶虻膶?duì)象
B.賦值運(yùn)算符只能以非成員函數(shù)的方式重載
C.賦值運(yùn)算符既可以以成員函數(shù)的方式重載,又可以以非成員函數(shù)的方式重載
D.以上均不正確
25.下列對(duì)派生類的描述中錯(cuò)誤的是()。
A.派生類至少有一個(gè)基類
B.派生類可作為另一個(gè)派生類的基類
C.派生類除了包含它直接定義的成員外,還包含其基類的成員
D.派生類對(duì)其繼承的基類的成員訪問權(quán)限保持不變
26.下列對(duì)派生類的描述中,()是錯(cuò)誤的。
A.一個(gè)派生類可以作另一個(gè)派生類的基類
B.派生類至少有一個(gè)基類
C.派生類的成員除了它自己的成員外,包含了它的基類的成員
D.派生類中繼承的基類成員的訪問權(quán)限到派生類保持不變
27.面向?qū)ο蟪绦蛟O(shè)計(jì)思想的主要特征中不包括( )。
A.封裝性
B.多態(tài)性
C.繼承性
D.功能分解,逐步求精
28.有關(guān)構(gòu)造函數(shù)說法不正確的是( )。
A.構(gòu)造函數(shù)的名字和類的名字一樣
B.在創(chuàng)建對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用構(gòu)造函數(shù)
C.構(gòu)造函數(shù)無任何函數(shù)類型
D.構(gòu)造函數(shù)有且只有一個(gè)
29.如果一個(gè)類至少有一個(gè)純虛函數(shù),那么就稱該類是()。
A.抽象類
B.虛基類
C.派生類
D.以上都不對(duì)
30.進(jìn)行文件操作時(shí)需要包含_ ()頭文件。
A.iostream
B.fstream
C.stdio
D.stdlib
31.已知AA是一個(gè)類,則執(zhí)行語句AA a;后( )。
A.自動(dòng)調(diào)用無參構(gòu)造函數(shù)
B.自動(dòng)調(diào)用有參構(gòu)造函數(shù)
C.自動(dòng)調(diào)用拷貝構(gòu)造函數(shù)
D.產(chǎn)生一個(gè)對(duì)象a,但不調(diào)用任何函數(shù)
32.類模板的使用實(shí)際上是類模板實(shí)例化成一個(gè)具體的( )。
A.類
B.對(duì)象
C.函數(shù)
D.變量
33.下列描述中,()是抽象類的特性。
A.可以說明虛函數(shù)
B.可以定義友元函數(shù)
C.可以進(jìn)行構(gòu)造函數(shù)重載
D.不能說明其對(duì)象
34.C++對(duì)C語言做了很多改進(jìn),下列描述中( )使得C語言發(fā)生了質(zhì)變,即從面向過程變成面向?qū)ο蟆?/p>
A.增加了一些新的運(yùn)算符
B.允許函數(shù)重載,并允許設(shè)置默認(rèn)參數(shù)
C.規(guī)定函數(shù)說明必須用原型
D.引進(jìn)類和對(duì)象的概念
35.有關(guān)帶默認(rèn)參數(shù)的函數(shù)的描述正確的是()。
A.只能在函數(shù)定義時(shí)設(shè)置默認(rèn)參數(shù)值
B.只能在函數(shù)聲明時(shí)設(shè)置默認(rèn)參數(shù)值
C.函數(shù)調(diào)用時(shí),必須使用默認(rèn)的參數(shù)值,不能給出新的實(shí)參值
D.設(shè)置默認(rèn)參數(shù)時(shí),應(yīng)該設(shè)置最右邊的若干個(gè)參數(shù)的默認(rèn)值
二、判斷題 (共 15 道試題,共 30 分)
36.默認(rèn)形參值應(yīng)在函數(shù)定義處指定。
37.類的靜態(tài)成員函數(shù)中不能訪問非靜態(tài)成員。
38.抽象類雖然也是一種數(shù)據(jù)類型,但它不能建立對(duì)象,只能作為基類被其他類繼承。
39.多繼承情況下,派生類的構(gòu)造函數(shù)中基類構(gòu)造函數(shù)的執(zhí)行順序取決于定義派生類時(shí)所指定的各基類的順序。
40.在刪除一個(gè)動(dòng)態(tài)對(duì)象時(shí),將自動(dòng)調(diào)用該動(dòng)態(tài)對(duì)象所屬類的析構(gòu)函數(shù)。
41.構(gòu)造函數(shù)和析構(gòu)函數(shù)都不能重載。
42.定義模板的關(guān)鍵字是template。
43.預(yù)定義的提取符和插入符是可以重載的。
44.派生類對(duì)基類繼承的成員函數(shù)進(jìn)行重定義后,則通過派生類對(duì)象和基類對(duì)象調(diào)用的都是重定義后的成員函數(shù)。
45.引用是某個(gè)變量的別名。對(duì)引用的操作,實(shí)質(zhì)上就是對(duì)被引用的變量的操作。
46.C++語言中模板分為函數(shù)模板和類模板兩種。
47.cin后面的符號(hào)是<<。
48.運(yùn)算符重載是一種特殊的函數(shù)重載,其函數(shù)名為operator。
49.函數(shù)模板可以與普通函數(shù)重載。
50.多重繼承中的二義性問題是由于一個(gè)派生類從不同基類中繼承了同名成員變量或相同函數(shù)原型的成員函數(shù)。
奧鵬,國開,廣開,電大在線,各省平臺(tái),新疆一體化等平臺(tái)學(xué)習(xí)
詳情請(qǐng)咨詢QQ : 3230981406或微信:aopopenfd777