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