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

