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