22秋學(xué)期(高起本1709-1803、全層次1809-2103)《面向?qū)ο蟪绦蛟O(shè)計(jì)》在線(xiàn)作業(yè)-00001
試卷總分:100 得分:100
一、單選題 (共 35 道試題,共 70 分)
1.對(duì)虛函數(shù)的調(diào)用()。
A.一定使用動(dòng)態(tài)聯(lián)編
B.一定使用靜態(tài)聯(lián)編
C.必須使用動(dòng)態(tài)聯(lián)編
D.不一定使用動(dòng)態(tài)聯(lián)編
2.下列虛基類(lèi)的聲明中正確的是( )。
A.class virtual B:public A
B.virtual class B:public
C.class B:public A virtual
D.class B: virtual public A
3.已知類(lèi)X中的一個(gè)成員函數(shù)說(shuō)明如下: Void Set(X &a); 其中,X &a的含義是( )。
A.a是指向X類(lèi)對(duì)象的指針,用來(lái)作為Set()的形參
B.將a的地址傳遞給Set()函數(shù)
C.a是X類(lèi)對(duì)象的引用,用來(lái)做為Set()的形參
D.以上都不對(duì)
4.下面對(duì)靜態(tài)數(shù)據(jù)成員的描述中,正確的是( )。
A.靜態(tài)數(shù)據(jù)成員是類(lèi)的所有對(duì)象共享的數(shù)據(jù)
B.類(lèi)的每個(gè)對(duì)象都有自己的靜態(tài)數(shù)據(jù)成員
C.類(lèi)的不同對(duì)象有不同的靜態(tài)數(shù)據(jù)成員值
D.靜態(tài)數(shù)據(jù)成員不能通過(guò)類(lèi)的對(duì)象訪(fǎng)問(wèn)
5.下列程序中說(shuō)明的公有成員是( ) class Location { int X; public: void init(int initX,int initY); private: int Y; public: int GetX(); int GetY(); };
A.X
B.init(int initX,int initY)
C.GetX(),GetY()
D.B和C都是
6.在C++中,通過(guò)()的機(jī)制可以對(duì)原有的類(lèi)進(jìn)行擴(kuò)充和完善以適應(yīng)新的需要。
A.繼承
B.封裝
C.多態(tài)
D.重載
7.要求打開(kāi)文件 d:\file.dat,可寫(xiě)入數(shù)據(jù),正確的語(yǔ)句是( )。
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);
8.下列程序段中具有相同值的是( ) class Base {int b;}; class Base1:virtual public base{int b1;}; class Base2:virtual public base{int b2;}; class derived:public base 1,public base 2{int b3;}; derived d;
A.b與d.base1::b
B.base1::b與 d.base1::b1
C.b與 d. b3
D.base2::b與 d.base2::b2
9.當(dāng)一個(gè)派生類(lèi)私有繼承一個(gè)基類(lèi)時(shí),基類(lèi)中的所有公有成員和保護(hù)成員成為派生類(lèi)的( )。
A.public成員
B.private成員
C.protected成員
D.友元
10.假定X為一個(gè)類(lèi),執(zhí)行X a[3],*p[2];語(yǔ)句時(shí)會(huì)自動(dòng)調(diào)用該類(lèi)的構(gòu)造函數(shù)( )次。
A.2
B.3
C.4
D.5
11.下列關(guān)于構(gòu)造函數(shù)調(diào)用順序的描述中,正確的是()。
A.創(chuàng)建派生類(lèi)對(duì)象時(shí),先調(diào)用基類(lèi)的構(gòu)造函數(shù),后調(diào)用派生類(lèi)的構(gòu)造函數(shù)
B.創(chuàng)建基類(lèi)對(duì)象時(shí),先調(diào)用基類(lèi)的構(gòu)造函數(shù),后調(diào)用派生類(lèi)的構(gòu)造函數(shù)
C.創(chuàng)建派生類(lèi)對(duì)象時(shí),先調(diào)用派生類(lèi)的構(gòu)造函數(shù),后調(diào)用基類(lèi)的構(gòu)造函數(shù)
D.創(chuàng)建基類(lèi)對(duì)象時(shí),先調(diào)用派生類(lèi)的構(gòu)造函數(shù),后調(diào)用基類(lèi)的構(gòu)造函數(shù)
12.若類(lèi)中有指針成員變量,則應(yīng)編寫(xiě)(),使得在對(duì)象銷(xiāo)毀時(shí)能夠自動(dòng)調(diào)用該函數(shù)釋放指針成員變量所指向的內(nèi)存空間。
A.友元函數(shù)
B.虛函數(shù)
C.構(gòu)造函數(shù)
D.析構(gòu)函數(shù)
13.關(guān)于下面程序段說(shuō)法正確的是( ) class X { private: int n; public: X(X&); }; X::X(X&x) {n=x.n} X obj1,obj2(obj1);
A.語(yǔ)句obj2(obj1);的功能是用對(duì)象obj1初始化具有相同類(lèi)類(lèi)型的對(duì)象obj2
B.語(yǔ)句obj2(obj1);的功能是用對(duì)象obj2初始化具有相同類(lèi)類(lèi)型的對(duì)象obj1
C.X(X&x)中的&符號(hào)可以刪除
D.X(X&x)函數(shù)中不能訪(fǎng)問(wèn)對(duì)象的私有成員
14.關(guān)于虛函數(shù),下列表述正確的是( )。
A.如果在重定義虛函數(shù)時(shí)使用virtual,則該重定義函數(shù)仍然是虛函數(shù)
B.虛函數(shù)不得聲明為靜態(tài)函數(shù)
C.虛函數(shù)不得聲明為另一個(gè)類(lèi)的友元函數(shù)
D.派生類(lèi)必須重新定義基類(lèi)的虛函數(shù)
15.關(guān)于純虛函數(shù)和抽象類(lèi)的描述中,錯(cuò)誤的是()。
A.純虛函數(shù)是一種特殊的虛函數(shù),它沒(méi)有具體的實(shí)現(xiàn)。
B.抽象類(lèi)是指具有純虛函數(shù)的類(lèi)。
C.一個(gè)基類(lèi)中有純虛函數(shù),該類(lèi)的派生類(lèi)一定不再是抽象類(lèi)。
D.抽象類(lèi)作為基類(lèi)來(lái)使用,其純虛函數(shù)的實(shí)現(xiàn)由派生類(lèi)給出。
16.下列關(guān)于構(gòu)造函數(shù)說(shuō)法不正確的是()。
A.構(gòu)造函數(shù)必須與類(lèi)同名
B.構(gòu)造函數(shù)可以省略不寫(xiě)
C.構(gòu)造函數(shù)必須有返回值
D.在構(gòu)造函數(shù)中可以對(duì)類(lèi)中的成員進(jìn)行初始化
17.若析構(gòu)函數(shù)是虛函數(shù),則delete對(duì)析構(gòu)函數(shù)的調(diào)用采用( )。
A.靜態(tài)聯(lián)編
B.動(dòng)態(tài)聯(lián)編
C.重載函數(shù)
D.多重函數(shù)
18.當(dāng)一個(gè)派生類(lèi)公有繼承一個(gè)基類(lèi)時(shí),基類(lèi)中的所有公有成員成為派生類(lèi)的( )。
A.public成員
B.private成員
C.protected成員
D.友元
19.程序在調(diào)用重載函數(shù)時(shí),根據(jù)()區(qū)分到底要調(diào)用哪個(gè)函數(shù)。
A.函數(shù)名
B.返回值類(lèi)型
C.參數(shù)個(gè)數(shù)和類(lèi)型
D.以上都可以
20.下列關(guān)于對(duì)象數(shù)組的描述中,錯(cuò)誤的是( )。
A.對(duì)象數(shù)組的下標(biāo)是從0開(kāi)始的
B.對(duì)象數(shù)組的數(shù)組名是一個(gè)常量指針
C.對(duì)象數(shù)組的每個(gè)元素是同一個(gè)類(lèi)的對(duì)象
D.對(duì)象數(shù)組只能賦初值,而不能在定義后賦值
21.“#include <iostream>”是()預(yù)處理命令。
A.宏定義
B.文件包含
C.條件編譯
D.工程配置
22.下面敘述不正確的是( )。
A.基類(lèi)的保護(hù)成員在派生類(lèi)中仍然是保護(hù)的
B.基類(lèi)的保護(hù)成員在公有派生類(lèi)中仍然是保護(hù)的
C.基類(lèi)的保護(hù)成員在私有派生類(lèi)中是私有的
D.對(duì)基類(lèi)成員的訪(fǎng)問(wèn)必須是無(wú)二義性
23.下面對(duì)友元的錯(cuò)誤描述是( )。
A.關(guān)鍵字friend用于聲明友元
B.一個(gè)類(lèi)的成員函數(shù)可以是另一個(gè)類(lèi)的友元
C.友元函數(shù)訪(fǎng)問(wèn)對(duì)象的成員不受訪(fǎng)問(wèn)特性影響
D.友元函數(shù)通過(guò)this指針訪(fǎng)問(wèn)對(duì)象成員
24.如果類(lèi)A被說(shuō)明成類(lèi)B的友元,則()。
A.類(lèi)A的成員函數(shù)不得訪(fǎng)問(wèn)類(lèi)B的所有成員
B.類(lèi)A的成員函數(shù)可以訪(fǎng)問(wèn)類(lèi)B的所有成員
C.類(lèi)A的成員即類(lèi)B的成員
D.類(lèi)B的成員即類(lèi)A的成員
25.一個(gè)類(lèi)的友元函數(shù)能夠訪(fǎng)問(wèn)該類(lèi)的( )。
A.私有成員
B.保護(hù)成員
C.公有成員
D.所有成員
26.下列關(guān)于拷貝構(gòu)造函數(shù)的描述中,錯(cuò)誤的是()。
A.一個(gè)類(lèi)可以定義多個(gè)拷貝構(gòu)造函數(shù)
B.若未定義拷貝構(gòu)造函數(shù),則系統(tǒng)會(huì)提供一個(gè)默認(rèn)拷貝構(gòu)造函數(shù)
C.當(dāng)類(lèi)中有指針成員變量時(shí),通常要為這個(gè)類(lèi)定義一個(gè)拷貝構(gòu)造函數(shù)來(lái)實(shí)現(xiàn)深拷貝
D.拷貝構(gòu)造函數(shù)中的參數(shù)按引用方式傳遞
27.下列關(guān)于運(yùn)算符重載的描述中,()是正確的。
A.運(yùn)算符重載可以改變操作數(shù)的個(gè)數(shù)
B.運(yùn)算符重載可以改變優(yōu)先級(jí)
C.運(yùn)算符重載可以改變結(jié)合性
D.運(yùn)算符重載不可以改變語(yǔ)法結(jié)構(gòu)
28.下列( )是構(gòu)造函數(shù)的特征。
A.構(gòu)造函數(shù)在創(chuàng)建對(duì)象時(shí)自動(dòng)調(diào)用
B.構(gòu)造函數(shù)不可以重載
C.構(gòu)造函數(shù)不可以設(shè)置默認(rèn)參數(shù)
D.構(gòu)造函數(shù)必須指定函數(shù)類(lèi)型
29.執(zhí)行語(yǔ)句“string str("abc");”時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用string類(lèi)的構(gòu)造函數(shù)()。
A.string()
B.string(const char *s)
C.string(const string &str)
D.string(size_type n, char c)
30.以成員函數(shù)方式重載運(yùn)算符“>”,則obj1>obj2被C++編譯器解釋為()。
A.operator>(obj1,obj2)
B.>(obj1,obj2)
C.obj1.operator>(obj2)
D.obj2.operator>(obj1)
31.已知“float *p; p=new float[2];”,若要釋放p所指向的堆中的這些字節(jié),下列語(yǔ)句正確的是()。
A.delete p;
B.delete p[];
C.delete []p;
D.delete p[2];
32.建立類(lèi)模板對(duì)象的實(shí)例化過(guò)程為( )。
A.基類(lèi)->派生類(lèi)
B.構(gòu)造函數(shù)->對(duì)象
C.模板類(lèi)->對(duì)象
D.模板類(lèi)->模板函數(shù)
33.撤消對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用( )函數(shù)。
A.成員函數(shù)
B.構(gòu)造函數(shù)
C.析構(gòu)函數(shù)
D.普通函數(shù)
34.下列關(guān)于賦值運(yùn)算符重載的說(shuō)法中正確的是()。
A.返回值一般是以引用方式返回的對(duì)象,而函數(shù)體中總是用語(yǔ)句“return *this;”返回this指針?biāo)赶虻膶?duì)象
B.賦值運(yùn)算符只能以非成員函數(shù)的方式重載
C.賦值運(yùn)算符既可以以成員函數(shù)的方式重載,又可以以非成員函數(shù)的方式重載
D.以上均不正確
35.關(guān)于動(dòng)態(tài)關(guān)聯(lián)的下列敘述中,()是錯(cuò)誤的。
A.動(dòng)態(tài)關(guān)聯(lián)是以虛函數(shù)為基礎(chǔ)的
B.動(dòng)態(tài)關(guān)聯(lián)調(diào)用虛函數(shù)操作是指向?qū)ο蟮闹羔樆蛞?/p>
C.動(dòng)態(tài)關(guān)聯(lián)是在運(yùn)行時(shí)確定所調(diào)用的函數(shù)代碼的
D.動(dòng)態(tài)關(guān)聯(lián)是在編譯時(shí)確定操作函數(shù)的
二、判斷題 (共 15 道試題,共 30 分)
36.定義重載函數(shù)時(shí),應(yīng)保證函數(shù)類(lèi)型有所不同。
37.運(yùn)算符[]只能用成員運(yùn)算符來(lái)重載,不能用友元運(yùn)算符來(lái)重載。
38.純虛函數(shù)是一種特殊的成員函數(shù),它是一種沒(méi)有具體實(shí)現(xiàn)的虛函數(shù)。
39.已知Circle類(lèi)對(duì)象c,Circle類(lèi)中有一個(gè)setCenter成員函數(shù),如果c.setCenter(...)返回值仍然是c,則setCenter函數(shù)中的return語(yǔ)句應(yīng)寫(xiě)作return this;。
40.當(dāng)一個(gè)函數(shù)的返回值是類(lèi)對(duì)象時(shí),則該函數(shù)執(zhí)行結(jié)束后會(huì)自動(dòng)調(diào)用拷貝構(gòu)造函數(shù)初始化一個(gè)臨時(shí)對(duì)象。
41.在類(lèi)內(nèi)部定義的public數(shù)據(jù)可以在類(lèi)外進(jìn)行存取。
42.定義虛函數(shù)所用的關(guān)鍵字是virtual。
43.重載函數(shù)可以帶默認(rèn)參數(shù)值,但要注意二義性。
44.某類(lèi)中的友元類(lèi)的所有成員函數(shù)可以存取或修改該類(lèi)中的私有成員。
45.構(gòu)造函數(shù)說(shuō)明為純虛函數(shù)是沒(méi)有意義的。
46.函數(shù)的參數(shù)個(gè)數(shù)和類(lèi)型都相同,只是返回值不同,這不是重載函數(shù)。
47.只有返回引用的函數(shù)可以作為賦值語(yǔ)句的左值。
48.打開(kāi)ASCII碼流文件和二進(jìn)制流文件時(shí),打開(kāi)方式是相同的。
49.運(yùn)算符重載實(shí)際上是對(duì)已有的運(yùn)算符重新定義其功能。
50.類(lèi)的靜態(tài)成員函數(shù)中不能訪(fǎng)問(wèn)非靜態(tài)成員。
奧鵬,國(guó)開(kāi),廣開(kāi),電大在線(xiàn),各省平臺(tái),新疆一體化等平臺(tái)學(xué)習(xí)
詳情請(qǐng)咨詢(xún)QQ : 3230981406或微信:aopopenfd777