《《C++程序設計》期末考試及答案》由會員分享,可在線閱讀,更多相關《《C++程序設計》期末考試及答案(7頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、
《 C++程序設計》期末考試試卷
A. int *p=new int (10); B. int *p=new int[10]; C. int *p=new int; int *p=new int[40](0)
11. 下列關于虛基類的描述,錯誤的是( )
A. 設置虛基類的目的是為了消除二義性 B. 虛基類的構造函數(shù)在非虛基類之后調(diào)用
C. 若同一層中包含多個虛基類,這些虛基類的構造函數(shù)按它們說明的次序調(diào)用
:
號
位
座
考生注意: 1.本試卷共有四道大題,滿分
100 分。
D. 若虛
2、基類由非虛基類派生而來,則仍然先調(diào)用基類構造函數(shù),再調(diào)用派生類的構造函數(shù)
2.考試時間 90 分鐘。
12.
已知: print( ) 函數(shù)是一個類的常成員函數(shù),它無返回值,下列表示中,
(
)是正確的。
3.卷面整潔,字跡工整。
A. void print( ) const;
B. const void print( );
C. void const print( );
D. void print(const);
4.填寫內(nèi)容不得超出密封線。
13.
在下面有關靜態(tài)成員函數(shù)的描
3、述中,正確的是(
)。
A. 在靜態(tài)成員函數(shù)中可以使用
this 指針 B.
在建立對象前,就可以為靜態(tài)數(shù)據(jù)成員賦值
密
總分
題號
一
二
三
四
C. 靜態(tài)成員函數(shù)在類外定義時,要用
static 前綴
D. 靜態(tài)成員函數(shù)只能在類外定義
核分人
題分
30
21
24
25
14.
在下列關鍵字中,用于說明類中公有成員的是(
)。
A. public
B. private
C. protected
D. friend
4、
復查人
得分
15. 以下有關繼承的敘述正確的是(
)。
一、單項選擇題(每小題
2 分,共 30 分)
A. 構造函數(shù)和析構函數(shù)都能被繼承
B. 派生類是基類的組合
1.
C++ 是一種(
)的程序設計語言。
C. 派生類對象除了能訪問自己的成員以外,不能訪問基類中的所有成員
:
A. 面
5、向?qū)ο?
B. 即可面向過程,又可面向?qū)ο?
C. 面向過程
D. 面向系統(tǒng)
D. 基類的公有成員一定能被派生類的對象訪問
號
2.
在下面有關析構函數(shù)特征的描述中,正確的是(
)。
二、判斷題(每題 3 分,共 21 分)
學
A. 一個類中可以定義多個析構函數(shù)
B. 析構函數(shù)名與類名完全相同
1.
this 指針 ,所以它們只能訪問靜態(tài)的數(shù)據(jù)成員。
靜態(tài)的成員函數(shù)沒有隱含的
6、
(
)
C. 析構函數(shù)不能指定返回類型
D. 析構函數(shù)可以有一個或多個參數(shù)
2.
通過類對象可以訪問類中所有的成員。
(
)
3.
下面對于友元函數(shù)描述正確的是(
)。
3.
構造函數(shù)是可以被派生類繼承的。 (
)
封
A. 友元函數(shù)的實現(xiàn)必須在類的內(nèi)部定義
B. 友元函數(shù)是類的成員函數(shù)
4.
構造函數(shù)和析構函數(shù)都可
7、以是虛函數(shù)。
(
)
:
C. 友元函數(shù)破壞了類的封裝性和隱藏性
D. 友元函數(shù)不能訪問類的私有成員
5.
只有類中全部函數(shù)都為純虛函數(shù)時,該類才被稱為抽象類。
(
)
業(yè)
4.
下面描述中,表達錯誤的是(
)。
專
6.
對于同一個運算符來說,重載的運算符的優(yōu)先級比未重載的運算符的優(yōu)先級高。
(
)
A. 公有繼承時基類中的
public 成員在派生類中仍是
public 的
7.
一個類的友元一定是另一個類的成員函數(shù)。
(
)
8、
B. 公有繼承時基類中的
private 成員在派生類中仍是
private 的
:
名
姓
C. 公有繼承時基類中的
protected 成員在派生類中仍是 protected 的
D. 保護繼承時基類中的
public 成員在派生類中是
private 的
5.
所謂多態(tài)性是指(
)
A. 不同的對象調(diào)用不同名稱的函數(shù)
B. 不同的對象調(diào)用相同名稱的函數(shù)
C.
9、 一個對象調(diào)用不同名稱的函數(shù)
D. 一個對象調(diào)用不同名稱的對象
6.
重載賦值操作符時,應聲明為(
)函數(shù)。
線
A. 友元
B. 虛
C. 成員
D. 多態(tài)
7.
下列對模板的聲明錯誤的是(
)。
A. template
B. template
C. template < typename T>
D. template
三、簡答題(每小題
6 分,共 24 分)
1. 什么是封裝
10、性?請舉例說明。
2. 什么是函數(shù)重載和運算符重載?為什么要使用重載?
3. 拷貝構造函數(shù)在哪幾種情況下被調(diào)用?
:
站
授
函
8.
下列類中(
)不是輸入流類
istream 的派生類。
A. ifstream
B.istrstream
C. iostream
D. ofstream
4. 什么是類?什么是對象?對象與類的關系是什么?
9.
(
)不是構造函數(shù)的特征。
11、
A. 構造函數(shù)的函數(shù)名與類名相同
B 構造函數(shù)可以重載
C. 構造函數(shù)可以設置缺省參數(shù)
D 構造函數(shù)必須指定類型說明
10. 下列語句中錯誤的是
()。
第 1 頁
共 3 頁 (C++ 程序設計 )
四、程序分析題(前三小題各 6 分,第五題 7 分,共 25 分)
1. 指出下面程序中的 1 處錯誤,并說明原因。
#include
class Point
{
int X,Y;
publ
12、ic:
Point( ){X=0;Y=0;}
Point(int x=0,int y=0){X=x;Y=y;}
void display( ){cout< class CTest{ public:
CTest(){ x=20; }
private:
int x;
fr
13、iend void friend_f(CTest fri);
};
void friend_f(CTest fri) { fri.x=55; }
void main()
{
CTest c1,c2;
c1.friend_f(c2);
}
答:
3. 寫出下面程序的運行結果 。
#include class Test
{
private:
int num;
public:
Test(int n=0){num=n;num++;}
~Tes
14、t( ){cout<< ” Destructor is active,number= ” <
class Test{
private:
static int val;
int a;
public:
static int func();
s
15、tatic void sfunc(Test &r);
};
int Test::val=20;
int Test::func()
{ val--; return val; }
void Test::sfunc(Test &r)
{ r.a=25; cout<<"Result3="<
16、答:
第 2 頁 共 3 頁 (C++程序設計 )
C++程序設計期末考試答案
3.
Exiting main
Destructor is active,number=1
Destructor is active,number=1
一、 選擇題( 15 2)
4.
1.B
2.C
3.C
4.D
5.B
Resultl=19
6.C
7.B
8.D
9.D
10.D
Result2=18
11.B
12.A
13.B
14.A
15.
17、B
Result3=25
二、 判斷題( 7 2)
1. √
2.
3.
4.
5.
6.
7.
三、 簡答題( 4 4)
1. 解答要點:
所謂數(shù)據(jù)的封裝,就是將數(shù)據(jù)結構和作用于數(shù)據(jù)結構上的操作組成一個實體,數(shù)據(jù)的表示方
式和對數(shù)據(jù)的操作細節(jié)被隱藏起來,用戶通過操作接口對數(shù)據(jù)進行操作。對于用戶來說,只知道
如何通過操作接口對該數(shù)據(jù)進行操作,而并不知道是如何操作的,也不知道數(shù)據(jù)是如何表示的,
這就是數(shù)據(jù)的封裝。例如我們經(jīng)常使用的手機,機殼將零件和線路封裝了起來,我們在接打電話
或收發(fā)短信時是
18、通過手機面板上的按鍵(接口) 。
2. 解答要點:
(1) 函數(shù)重載是指一個標識符可同時用于為多個函數(shù)命名;
(2) 運算符重載是指一個運算符可同時用于多種運算。也就是說,相同名字的函數(shù)或運算符在不同的場合可以表現(xiàn)出不同的行為。
(3) 使用重載的目的是為了更好地表達行為共享,可以使程序員在只知道操作的一般含義而不知道操作的具體細節(jié)的情況下能正確地對某個對象使用一個操作。另外,使用重載的直接益處是減少了程序員記憶操作名字的負擔
3. 解答要點:
(1) 用一個對象初始化另一個對象時;
(2) 當用對象作為函數(shù)參數(shù)傳遞時 ;
(3) 當程序中
19、需要創(chuàng)建臨時對象時(如函數(shù)返回對象時)。
4. 解答要點:
(1) 類是一組具有共同的屬性特征和行為特征的對象的抽象;
(2) 對象就是系統(tǒng)中用來描述客觀事物的一個實體,它是構成系統(tǒng)的一個基本單位,由一組屬性和一組行為構成。
(3) 類和對象之間的關系是抽象和具體的關系,類是對多個對象進行抽象的結果,對象是類的具體實現(xiàn)。
四、 程序分析題( 4 6)
1.
錯誤位置: Point p;
錯誤原因:當生成無參對象時,缺省參數(shù)的構造函數(shù)和默認參數(shù)的構造函數(shù)會產(chǎn)生混淆。
2.
錯誤位置: c1.friend_f(c2);
錯誤原因: friend_f() 是類的友元函數(shù),應直接調(diào)用,而不能用調(diào)用對象成員的方式
第 3 頁 共 3 頁 (C++ 程序設計 )