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