西交《面向?qū)ο蟪绦蛟O(shè)計》在線作業(yè)
試卷總分:100 得分:100
一、單選題 (共 30 道試題,共 60 分)
1.若有語句 int *p = new int[5]; int * pi; 則以下語句中,執(zhí)行時會造成delete[ ] p 語句的執(zhí)行出錯的是( )。
A.(*p)++;
B.p++;
C.pi=p;
D.pi=p+3;
2.面向?qū)ο筌浖_發(fā)中使用的OOA表示( )。
A.面向?qū)ο蠓治?/p>
B.面向?qū)ο笤O(shè)計
C.面向?qū)ο笳Z言
D.面向?qū)ο蠓椒?/p>
3.不可以成為類的數(shù)據(jù)成員的是()。
A.自身類的對象
B.另一個類的對象
C.自身類的指針或引用
D.其他基本數(shù)據(jù)類型
4.有如下的定義語句:int * array_ptr=new int[10]; int * pi;執(zhí)行下面的哪個語句將使程序執(zhí)行delete[ ] array_ptr 時出錯( )
A.(*array_ptr)++;
B.array_ptr++;
C.pi=array_ptr;
D.pi=array_ptr+3;
5.下述靜態(tài)數(shù)據(jù)成員的特性中,( )是錯誤的。
A.聲明靜態(tài)數(shù)據(jù)成員時前面要加修飾符static。
B.靜態(tài)數(shù)據(jù)成員要在類體外進行初始化。
C.在程序中引用靜態(tài)數(shù)據(jù)成員時,要在靜態(tài)數(shù)據(jù)成員名前加和作用域運算符。
D.靜態(tài)數(shù)據(jù)成員是一個類的個別對象所共享的。
6.假定一個類的構(gòu)造函數(shù)為 “A(int aa, int bb) {a=aa; b=aa*bb;}”,則執(zhí)行 “A x(4,5);”語句后,x.a和x.b的值分別為( )
A.4和5
B.5和4
C.4和20
D.20和5
7.若需要使類中的一個指針成員指向一塊動態(tài)存儲空間,則通常在( )函數(shù)中完成。
A.析構(gòu)
B.構(gòu)造
C.任一成員
D.友元
8.若有如下函數(shù)模板定義,則正確使用該函數(shù)模板的語句是______。
template<class type>
void add(type a, type b, type &c)
{ c=a+b ; }
A.float x,y,z; add(x,y,z) ;
B.int x,y,z; add(x,y,&z) ;
C.float x,y ; int z; add(x,y,z) ;
D.float x,y ; int z; add(x,y,&z) ;
9.在成員函數(shù)中進行雙目運算符重載時,其參數(shù)表中應(yīng)帶有( )個參數(shù)。
A.0
B.1
C.2
D.3
10.類的析構(gòu)函數(shù)是一個對象被( )時自動調(diào)用的。
A.建立
B.撤消
C.賦值
D.引用
11.設(shè)x和y均為bool量,則x&&y為真的條件是()。
A.它們均為真
B.其中一個為真
C.它們均為假
D.其中一個為假
12.下列說法不正確的是( )。
A.在類中,成員的默認訪問特性是私有的。
B.類封裝了數(shù)據(jù)和操作。
C.類實質(zhì)上是一種數(shù)據(jù)類型。
D.在類的定義中,必須包含private、publi
E.protected三種存取方式對應(yīng)得部分。
13.下面是四條順序出現(xiàn)的聲明語句,非法的初始化語句是()。
A.int i = –1;
B.const int ic=i;
C.const int *pc=⁣
D.int *const cpi=⁣
14.下列關(guān)于私有繼承的說法中正確的是()。
A.基類成員對派生類新定義的成員函數(shù)是不可見的;
B.基類成員對派生類新定義的成員函數(shù)是可見的;
C.只有基類成員中的公有成員對派生類新定義的成員函數(shù)是可見的;
D.基類成員中的保護成員對派生類新定義的成員函數(shù)是可見的。
15.設(shè)px是指向一個類對象的指針變量,則執(zhí)行 “delete px;”語句時,將自動調(diào)用該類的( )
A.無參構(gòu)造函數(shù)
B.帶參構(gòu)造函數(shù)
C.析構(gòu)函數(shù)
D.復(fù)制構(gòu)造函數(shù)
16.類的析構(gòu)函數(shù)可以帶有( )個參數(shù)。
A.0
B.1
C.2
D.任意
17.類模板的作用是可以將其實例化后得到一個具體的()。
A.類
B.對象
C.模板類
D.模板函數(shù)
18.類中定義的成員默認為(??)訪問屬性。
A.public
B.private
C.protected
D.friend
19.關(guān)于getline()函數(shù)的下列描述中,錯誤的是( )。
A.該函數(shù)中所使用的終止符只能是換行符
B.該函數(shù)讀取字符串時,遇到終止符時便停止
C.該函數(shù)讀取的字符串長度是受限制的
D.該函數(shù)可以用來從鍵盤上讀取字符串
20.函數(shù)重載是指( )。
A.兩個或兩個以上的函數(shù)取相同的函數(shù)名,但形參的個數(shù)或類型不同
B.兩個以上的函數(shù)取相同的名字和具有相同的參數(shù)個數(shù),但形參的類型可以不同
C.兩個以上的函數(shù)名字不同,但形參的個數(shù)或類型相同
D.兩個以上的函數(shù)取相同的函數(shù)名,并且函數(shù)的返回類型相同
21.假定AB為一個類,則執(zhí)行AB x;語句時將自動調(diào)用該類的( )
A.有參構(gòu)造函數(shù)
B.無參構(gòu)造函數(shù)
C.拷貝構(gòu)造函數(shù)
D.賦值構(gòu)造函數(shù)
22.當(dāng)一個類對象離開它的作用域時,系統(tǒng)自動調(diào)用該類的( )。
A.無參構(gòu)造函數(shù)
B.帶參構(gòu)造函數(shù)
C.拷貝構(gòu)造函數(shù)
D.析構(gòu)函數(shù)
23.下面是五條順序出現(xiàn)的聲明語句,非法的初始化語句是( )。
A.int i=–1;
B.const int ic=i;
C.const int *pc={圖}
D.int *const cpi={圖}
E.const int *const cpic={圖}
24.以下敘述中正確的是( )
A.使用#define可以為常量定義一個名字,該名字在程序中可以再賦另外的值
B.使用const定義的常量名有類型之分,其值在程序運行時是不可改變的
C.在程序中使用內(nèi)置函數(shù)使程序的可讀性變差
D.在定義函數(shù)時可以在形參表的任何位置給出缺省形參值
25.在重載一個運算符時,其參數(shù)表中沒有任何參數(shù),這表明該運算符是( )。
A.作為友元函數(shù)重載的1元運算符
B.作為成員函數(shù)重載的1元運算符
C.作為友元函數(shù)重載的2元運算符
D.作為成員函數(shù)重載的2元運算符
26.友元的作用之一是()。
A.提高程序的運行效率。
B.加強類的封裝性。
C.實現(xiàn)數(shù)據(jù)的隱蔽性。
D.增加成員函數(shù)的種類。
27.若一個類中含有純虛函數(shù),則該類稱為( )。
A.基類
B.虛基類
C.抽象類
D.派生類
28.下列關(guān)于成員函數(shù)特征的描述中,( )是錯誤的。
A.成員函數(shù)一定是內(nèi)置函數(shù)
B.成員函數(shù)可以重載
C.成員函數(shù)可以設(shè)置參數(shù)的默認值
D.成員函數(shù)可以是靜態(tài)的
29.下列關(guān)于運算符重載的描述中,( )是正確的。
A.運算符重載可以改變運算數(shù)的個數(shù);
B.運算符重載可以改變優(yōu)先級;
C.運算符重載可以改變結(jié)合性;
D.運算符重載不可以改變語法結(jié)構(gòu)。
30.關(guān)鍵字class和typename用于定義模板類型參數(shù),其含義為( )。
A.任何用戶定義的類類型
B.C++內(nèi)部的類型
C.A與B
D.都不是
二、判斷題 (共 20 道試題,共 40 分)
31.C++只能用于面向?qū)ο蟪绦蛟O(shè)計,不適用于面向過程程序設(shè)計。( )
32.引用和指針都可作函數(shù)參數(shù)。( )
33.程序運行過程出現(xiàn)異常是由于語法錯誤引起的。( )
34.派生類能夠繼承基類的析構(gòu)函數(shù)。( )
35.C++允許用戶可以定義新的運算符。例如,可將“**”定義為冪運算符。( )
36.打開一個二進制文件時可以同時指定它既是輸入文件又是輸出文件。( )
37.若類B是類A的私有派生類,類C是類B的私有派生類,則類C可訪問類A的公用成員。( )
38.運算符重載以后,其優(yōu)先級和結(jié)合性都不能改變。( )
39.若類Y是類X的私有派生類,類Z是類Y的公用派生類,則類Z不能訪問類X 的公用成員和保護成員。( )
40.字符串"sdfgh"的長度是5。( )
41.構(gòu)造函數(shù)可以重載。( )
42.純虛函數(shù)是在基類中說明的虛函數(shù),它在該基類中必須定義具體的操作內(nèi)容。( )
43.使用new運算符創(chuàng)建數(shù)組時,可以為該數(shù)組指定初始值( )。
44.重載單目運算符作為類的成員函數(shù),函數(shù)沒有參數(shù)。( )
45.對使用默認參數(shù)的構(gòu)造函數(shù),如果在類外定義構(gòu)造函數(shù),應(yīng)該在定義構(gòu)造函數(shù)時指定默認值( )。
46.使用虛函數(shù)可以避免多重繼承產(chǎn)生的二義性。( )
47.C++中設(shè)置虛基類的目的是實現(xiàn)運算時的多態(tài)性。()
48.私有繼承的派生類不能訪問基類中的私有成員,但公用繼承的派生類可以訪問基類中的私有成員。( )
49.使用虛函數(shù)無法避免多重繼承產(chǎn)生的二義性。( )
50.引用可以不初始化。( )