可做奧鵬院校所有作業(yè),畢業(yè)論文,咨詢(xún)請(qǐng)?zhí)砑観Q:3230981406 微信:aopopenfd777
20秋學(xué)期(1709、1803、1809、1903、1909、2003、2009 )《面向?qū)ο蟪绦蛟O(shè)計(jì)》在線(xiàn)作業(yè)
試卷總分:100 得分:100
一、單選題 (共 35 道試題,共 70 分)
1.已知“int a=10,*p;int *&r=p; r=&a;*p=20;cout<<a;”,則輸出為()。
A.10
B.20
C.不確定值
D.程序有錯(cuò)誤
2.可以用p.a的形式訪(fǎng)問(wèn)派生類(lèi)對(duì)象p的基類(lèi)成員a其中a是( )。
A.私有繼承的公有成員
B.公有繼承的私有成員
C.公有繼承的保護(hù)成員
D.公有繼承的公有成員
3.下列關(guān)于虛函數(shù)的說(shuō)明中,正確的是()。
A.從虛基類(lèi)繼承的函數(shù)都是虛函數(shù)
B.虛函數(shù)不得是靜態(tài)成員函數(shù)
C.只能通過(guò)指針或引用調(diào)用虛函數(shù)
D.抽象類(lèi)中的成員函數(shù)都是虛函數(shù)
4.在一個(gè)string類(lèi)對(duì)象表示的字符串中查找子串,應(yīng)該使用string類(lèi)的()函數(shù)。
A.assign
B.insert
C.swap
D.find
5.執(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)
6.下面說(shuō)法中正確的是( )。
A.一個(gè)類(lèi)只能定義一個(gè)構(gòu)造函數(shù),但可以定義多個(gè)析構(gòu)函數(shù)
B.一個(gè)類(lèi)只能定義一個(gè)析構(gòu)函數(shù),但可以定義多個(gè)構(gòu)造函數(shù)
C.構(gòu)造函數(shù)與析構(gòu)函數(shù)同名,只要名字前加了一個(gè)求反符號(hào)(~)
D.構(gòu)造函數(shù)可以指定返回類(lèi)型,而析構(gòu)函數(shù)不能指定任何返回類(lèi)型,即使是void類(lèi)型也不可以
7.已知函數(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, '#')
8.( )是析構(gòu)函數(shù)的特征。
A.析構(gòu)函數(shù)可以有一個(gè)或多個(gè)參數(shù)
B.析構(gòu)函數(shù)定義只能在類(lèi)體內(nèi)
C.析構(gòu)函數(shù)名與類(lèi)名不同
D.一個(gè)類(lèi)中只能定義一個(gè)析構(gòu)函數(shù)
9.已知“int a=10;int &r=a; r=r+20;cout<<a;”,則輸出為()。
A.10
B.20
C.30
D.不確定值
10.關(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ì)象的私有成員
11.類(lèi)aClass的定義如下: class aClass {public: aClass(){} aClass(int i){value=new int(i);} int *value; } 若要對(duì)類(lèi)中的value賦值,則下面的語(yǔ)句中,正確的是()。
A.aClass my; my.value=10;
B.aClass my; *my.value=10;
C.aClass my; my.*value=10;
D.aClass my(10);
12.包含類(lèi)fstream定義的頭文件是( )。
A.fstream
B.ofstream
C.ifstream
D.iostream
13.如果類(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的成員
14.進(jìn)行文件操作時(shí)需要包含_ ()頭文件。
A.iostream
B.fstream
C.stdio
D.stdlib
15.派生類(lèi)中的成員不能訪(fǎng)問(wèn)基類(lèi)中的()。
A.私有成員
B.公有成員
C.保護(hù)成員
D.以上都可以
16.下列關(guān)于類(lèi)的繼承描述中,( )是錯(cuò)誤的。
A.派生類(lèi)可以訪(fǎng)問(wèn)基類(lèi)的所有數(shù)據(jù)成員,也能調(diào)用基類(lèi)的所有成員函數(shù)
B.派生類(lèi)也是基類(lèi),但基類(lèi)不一定具有派生類(lèi)的全部屬性和方法
C.繼承描述類(lèi)的層次關(guān)系,派生類(lèi)可以具有與基類(lèi)相同的屬性和方法
D.一個(gè)基類(lèi)可以有多個(gè)派生類(lèi),一個(gè)派生類(lèi)可以有多個(gè)基類(lèi)
17.要求打開(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);
18.空類(lèi)的聲明( )是正確的。
A.class類(lèi)名;
B.class類(lèi)名{};
C.class類(lèi)名{}
D.class類(lèi)名
19.對(duì)于多重繼承,有( )。
A.一個(gè)派生類(lèi)只能有一個(gè)基類(lèi)
B.一個(gè)基類(lèi)只能產(chǎn)生一個(gè)派生類(lèi)
C.一個(gè)基類(lèi)必須產(chǎn)生多個(gè)派生類(lèi)
D.一個(gè)派生類(lèi)可有多個(gè)基類(lèi)
20.( )的功能是對(duì)對(duì)象進(jìn)行初始化。
A.析構(gòu)函數(shù)
B.數(shù)據(jù)成員
C.構(gòu)造函數(shù)
D.靜態(tài)數(shù)據(jù)成員
21.在C++中,要實(shí)現(xiàn)動(dòng)態(tài)聯(lián)編,可以使用( )調(diào)用虛函數(shù)。
A.類(lèi)名
B.派生類(lèi)指針
C.對(duì)象名
D.基類(lèi)指針
22.在公有派生情況下,有關(guān)派生類(lèi)對(duì)象和基類(lèi)對(duì)象的關(guān)系,下列敘述不正確的是()。
A.派生類(lèi)的對(duì)象可以直接訪(fǎng)問(wèn)基類(lèi)的所有成員
B.派生類(lèi)的對(duì)象可以初始化基類(lèi)的引用
C.派生類(lèi)的對(duì)象不可以直接訪(fǎng)問(wèn)基類(lèi)中的私有成員
D.派生類(lèi)的對(duì)象的地址可以賦給指向基類(lèi)的指針
23.下列關(guān)于C++類(lèi)的描述中錯(cuò)誤的是( )。
A.類(lèi)與類(lèi)之間可以通過(guò)一些手段進(jìn)行通信和聯(lián)絡(luò)
B.類(lèi)用于描述事物的屬性和對(duì)事物的操作
C.類(lèi)與類(lèi)之間必須是平等的關(guān)系,而不能組成層次關(guān)系
D.類(lèi)與類(lèi)之間可以通過(guò)封裝而具有明確的獨(dú)立性
24.已知X類(lèi).則當(dāng)程序執(zhí)行到語(yǔ)句X *array=new X[2];時(shí),調(diào)用了( )次構(gòu)造函數(shù)。
A.0
B.1
C.2
D.3
25.下列關(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ù)
26.對(duì)基類(lèi)和派生類(lèi)的描述中錯(cuò)誤的是( )。
A.派生類(lèi)是基類(lèi)的具體化
B.基類(lèi)繼承了派生類(lèi)的屬性
C.派生類(lèi)是基類(lèi)定義的延續(xù)
D.派生類(lèi)是基類(lèi)的特殊化
27.聲明一個(gè)類(lèi)的對(duì)象時(shí),系統(tǒng)自動(dòng)調(diào)用( )函數(shù)。
A.成員函數(shù)
B.構(gòu)造函數(shù)
C.析構(gòu)函數(shù)
D.普通函數(shù)
28.在公有派生情況下,有關(guān)派生類(lèi)對(duì)象和基類(lèi)對(duì)象的關(guān)系,不正確的敘述是()。
A.派生類(lèi)的對(duì)象可以賦給基類(lèi)對(duì)象
B.派生類(lèi)的對(duì)象可以初始化基類(lèi)的引用
C.派生類(lèi)的對(duì)象可以直接訪(fǎng)問(wèn)基類(lèi)的成員
D.派生類(lèi)的對(duì)象的地址可以賦給指向基類(lèi)的指針
29.在使用類(lèi)創(chuàng)建對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用該對(duì)象的()完成對(duì)象中數(shù)據(jù)成員的初始化等操作。
A.友元函數(shù)
B.虛函數(shù)
C.構(gòu)造函數(shù)
D.析構(gòu)函數(shù)
30.下列關(guān)于構(gòu)造函數(shù)的描述中,錯(cuò)誤的是( )。
A.構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù)
B.構(gòu)造函數(shù)在說(shuō)明類(lèi)變量時(shí)自動(dòng)執(zhí)行
C.構(gòu)造函數(shù)可以對(duì)靜態(tài)數(shù)據(jù)成員進(jìn)行初始化
D.構(gòu)造函數(shù)可以重載
31.下列引用的定義中,( )是錯(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;
32.在C++中,類(lèi)與類(lèi)之間的繼承關(guān)系具有( )。
A.自反性
B.對(duì)稱(chēng)性
C.傳遞性
D.反對(duì)稱(chēng)性
33.下面關(guān)于類(lèi)的成員函數(shù)描述不正確的是()。
A.靜態(tài)成員函數(shù)內(nèi)可以直接訪(fǎng)問(wèn)類(lèi)的非靜態(tài)成員數(shù)據(jù)
B.靜態(tài)成員函數(shù)內(nèi)可以直接訪(fǎng)問(wèn)類(lèi)的靜態(tài)成員數(shù)據(jù)
C.非靜態(tài)成員函數(shù)可以直接訪(fǎng)問(wèn)類(lèi)的非靜態(tài)成員數(shù)據(jù)
D.非靜態(tài)成員函數(shù)可以直接訪(fǎng)問(wèn)類(lèi)的靜態(tài)成員數(shù)據(jù)
34.在派生類(lèi)中,重載一個(gè)虛函數(shù)時(shí),要求函數(shù)名、參數(shù)的個(gè)數(shù)、參數(shù)的類(lèi)型、參數(shù)的順序和函數(shù)的返回值( )。
A.不同
B.相同
C.相容
D.部分相同
35.用于類(lèi)中虛成員函數(shù)說(shuō)明的關(guān)鍵字( )。
A.virtual
B.public
C.protected
D.private
二、判斷題 (共 15 道試題,共 30 分)
36.以app方式打開(kāi)文件時(shí),當(dāng)前的讀指針和寫(xiě)指針都定位于文件尾。
37.派生類(lèi)對(duì)基類(lèi)繼承的成員函數(shù)進(jìn)行重定義后,則通過(guò)派生類(lèi)對(duì)象和基類(lèi)對(duì)象調(diào)用的都是重定義后的成員函數(shù)。
38.C++的I/O系統(tǒng)通過(guò)流的機(jī)制實(shí)現(xiàn)文件和控制臺(tái)的輸入輸出操作。
39.定義重載函數(shù)時(shí),應(yīng)保證函數(shù)類(lèi)型有所不同。
40.在一個(gè)類(lèi)中最多只能定義1個(gè)構(gòu)造函數(shù)和1個(gè)析構(gòu)函數(shù)。
41.派生類(lèi)是從基類(lèi)派生出來(lái),它不能再生成新的派生類(lèi)。
42.C語(yǔ)言中scanf命令在c++中改用cin。
43.預(yù)定義的提取符和插入符是可以重載的。
44.對(duì)象數(shù)組的元素可以是不同類(lèi)的對(duì)象。
45.在一個(gè)類(lèi)中聲明了某個(gè)靜態(tài)數(shù)據(jù)成員,并在類(lèi)外給出其定義和初始化后,若未定義該類(lèi)的對(duì)象,該靜態(tài)數(shù)據(jù)成員則不存在。
46.cin是輸出流的一個(gè)對(duì)象,處理標(biāo)準(zhǔn)輸出。
47.說(shuō)明或定義對(duì)象時(shí),類(lèi)名前面不需要加class關(guān)鍵字。
48.編程是將所設(shè)計(jì)的算法轉(zhuǎn)換成計(jì)算機(jī)能夠運(yùn)行的代碼的過(guò)程。
49.定義模板的關(guān)鍵字是template。
50.程序設(shè)計(jì)過(guò)程是指編寫(xiě)程序的過(guò)程。

