地大《面向?qū)ο蟪绦蛟O(shè)計(新)》在線作業(yè)一
共25道題 總分:100分
一、單選題(共15題,60分)
1.有如下定義:int a[5]={1,3,5,7,9},*p=a;下列表達(dá)式中不能得到數(shù)值5 的是()
A、a[2]
B、a[3]
C、*(p+2)
D、*p+4
2.設(shè)int * p2=&x,* p1=a;p2= *b;則a和b的類型分別是()
A、int * 和int
B、int * 和int **
C、int 和int *
D、int * 和int *
3.下列關(guān)于虛基類的描述,錯誤的是()
A、設(shè)置虛基類的目的是為了消除二義性
B、虛基類的構(gòu)造函數(shù)在非虛基類之后調(diào)用
C、若同一層中包含多個虛基類,這些虛基類的構(gòu)造函數(shù)按它們說明的次序調(diào)用
D、若虛基類由非虛基類派生而來,則仍然先調(diào)用基類構(gòu)造函數(shù),再調(diào)用派生類的構(gòu)造函數(shù)
4.有如下類聲明:class Base{protected;int amount;public;Base(int n=0): amount(n){}int getAmount()const { retum amount; }};class Derived: public Base {protected;int value;public;Derived(int m, int n): value(m). Base(n){}Int getData()const{ return value+amount; }};已知
A、x.value+ x.getAmount()
B、x.getData()-x.gctAmount()
C、x.getData()-x.amount
D、x.value+x.amount
5.下面是一個模板聲明的開始部分:templute<typename T> double __由此可知()
A、這可能是一個函數(shù)模板的聲明
B、這可能是一個類模板的聲明
C、這既可能是一個函數(shù)模板的聲明,也可能是一個類模板的聲明
D、這肯定是一個錯誤的模板聲明
6.在類的定義中,用于為對象分配內(nèi)存空間,對類的數(shù)據(jù)成員進(jìn)行初始化并執(zhí)行其他內(nèi)部管理操作的函數(shù)是()
A、友元函數(shù)
B、虛函數(shù)
C、構(gòu)造函數(shù)
D、析構(gòu)函數(shù)
7.假定要對類AB定義加號操作符重載成員函數(shù),實現(xiàn)兩個AB類對象的加法,并返回相加結(jié)果,則該成員函數(shù)的聲明語句為()
A、AB operator+(AB & a , AB & b)
B、AB operator+(AB & a)
C、operator+(AB a)
D、AB & operator+( )
8.類的析構(gòu)函數(shù)的作用是()
A、一般成員函數(shù)的初始化
B、類的初始化
C、對象的初始化
D、刪除類創(chuàng)建的對象
9.設(shè)int f(int);和int g(int);是函數(shù)f和g的原形,以下將f作為語句調(diào)用的是()
A、g(f(3));
B、f(g(3));
C、g(f(3)+2);
D、p= f(g(3)+1);
10.有如下程序: ?。nclude class BASE{ char c; public: BASE(char n):c(n){} virtual~BASE(){cout<<C;} }; class DERIVED:public BASE{ char c; public: DERIVED(char n):BASE(n+1),c(n){} ~DERIVED(){cout
A、XY
B、YX
C、X
D、Y
11.下面描述中,表達(dá)錯誤的是()
A、公有繼承時基類中的public成員在派生類中仍是public的
B、公有繼承是基類中的private成員在派生類中仍是private的
C、公有繼承時基類中的protected成員在派生類中仍是protected的
D、私有繼承時基類中的public成員在派生類中是private的
12.對于全局函數(shù) int f(void) ,與其完全等價的函數(shù)原型為()
A、int& f( );
B、int f(void ) const;
C、const int f( );
D、A、B、C都不是
13.類TM和類TN是兩個獨立的類,那么類TM中哪種形式的數(shù)據(jù)成員一定是不允許的()
A、TM* a;
B、TN& a;
C、TM a;
D、TN a;
14.在C++語言中,數(shù)據(jù)封裝要解決的問題是()
A、數(shù)據(jù)的規(guī)范化
B、便于數(shù)據(jù)轉(zhuǎn)換
C、避免數(shù)據(jù)丟失
D、防止不同模塊之間數(shù)據(jù)的非法訪問
15.已知Value 是一個類,Value 是Value 的一個對象。下列以非成員函數(shù)形式重載的運(yùn)算符函數(shù)原形中,正確的是()
A、Value operator+(Value v, int i);
B、Value operator+(Value v=value, int i);
C、Value operator+(Value vint i=0);
D、Value operator+(Value v=value, int i=0);
二、多選題(共5題,20分)
1.賦值運(yùn)算符重載函數(shù)與拷貝構(gòu)造函數(shù)的區(qū)別是什么()
A、都是拷貝一個類的對象給另一個同類型的類的對象
B、拷貝構(gòu)造函數(shù)是用已存在的對象的各成員的當(dāng)前值來創(chuàng)建一個相同的新對象
C、賦值運(yùn)算符重載函數(shù)要把一個已存在對象的各成員的當(dāng)前值賦給另一個已存在的同類對象
2.關(guān)于構(gòu)造函數(shù)說法正確的是()
A、函數(shù)名只能是類名
B、返回類型可以是任意的
C、參數(shù)個數(shù)和類型可以是任意的
D、在對象創(chuàng)建時自動調(diào)用
3.下列有關(guān)抽象類和純虛函數(shù)的敘述中,錯誤的是()
A、擁有純虛函數(shù)的類是抽象類,能用來定義對象
B、抽象類的派生類若不實現(xiàn)純虛函數(shù),它也是抽象類
C、純虛函數(shù)的聲明以“=0;”結(jié)束
D、純虛函數(shù)都不能有函數(shù)體
4.以下哪些是面向?qū)ο蟪绦蛟O(shè)計的特征( )
A、抽象
B、封裝
C、繼承
D、多態(tài)
5.關(guān)于公共靜態(tài)數(shù)據(jù)成員,下面說法正確的是()
A、在main函數(shù)之前創(chuàng)建
B、跟某個具體對象無關(guān)
C、可以用類名和成員名直接訪問
D、需要在類體外初始化
三、判斷題(共5題,20分)
1.多態(tài)的實現(xiàn)分為兩類:編譯時的多態(tài)和運(yùn)行時的多態(tài)
A、錯誤
B、正確
2.默認(rèn)的繼承方式是private
A、錯誤
B、正確
3.友元函數(shù)的聲明不受訪問區(qū)域的影響
A、錯誤
B、正確
4.設(shè)int * p;則可以定義表達(dá)式 –++p
A、錯誤
B、正確
5.靜態(tài)成員變量所有的對象擁有一份拷貝
A、錯誤
B、正確
奧鵬,國開,廣開,電大在線,各省平臺,新疆一體化等平臺學(xué)習(xí)
詳情請咨詢QQ : 3230981406或微信:aopopenfd777