《C++期末考試試題》由會(huì)員分享,可在線閱讀,更多相關(guān)《C++期末考試試題(3頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、.、寫出下面程序的運(yùn)行結(jié)果(2題,每題10分)
1.已定義了一個(gè)類 A并有語(yǔ)句 A*pa=newA(5); 那么以下說法正確的是: D
A.該語(yǔ)句會(huì)創(chuàng)建A類的一個(gè)對(duì)象,并將此對(duì)象的地址賦給指針 pa;
B.該語(yǔ)句會(huì)創(chuàng)建A類的5個(gè)對(duì)象,且它們的地址是連續(xù)的;
C.當(dāng)指針變量pa超出其作用域時(shí),pa和為對(duì)象分配的空間都將被自動(dòng)釋放;
D.類A中一定有一個(gè)顯式定義的構(gòu)造函數(shù)和一個(gè)顯式定義的虛析構(gòu)函數(shù);
2 .定義類A的非靜態(tài)成員函數(shù) A&f(A&one)時(shí),需有語(yǔ)句return exp;則exp不能是: D
A.類A中類型為A的靜態(tài)數(shù)據(jù)成員
B.f中用語(yǔ)句 Aa = one;定義
2、的量a
C. one
D.*this
D
B.析構(gòu)函數(shù)
D.靜態(tài)成員函數(shù)
3 .在一個(gè)類中,下列哪些成員可以是多個(gè)?
A.無(wú)參構(gòu)造函數(shù)
C.原型相同的非靜態(tài)成員函數(shù)
4 .對(duì)于通過公有繼承定義的派生類, 若其成員函數(shù)可以直接訪問基類的某個(gè)成員, 說
明該基類成員的訪問權(quán)限是: D
A.公有或私有 B.私有 C.保護(hù)或私有 D.公有或保護(hù)
5 .在下列關(guān)鍵字中,不能用來表示繼承方式的是: B
A. private B. static C. public D. protected
6 .下列有關(guān)運(yùn)算符重載的敘述中,正確的是: A
A.運(yùn)算符重載是多態(tài)的一種表現(xiàn)
3、B. C++中可以通過運(yùn)算符重載創(chuàng)造新的運(yùn)算符
C. C++中所有運(yùn)算符都可以作為非成員函數(shù)重載
D.重載運(yùn)算符時(shí)可以改變其結(jié)合性 A
7 .下列關(guān)于類定義的說法中,正確的是:
A.類定義中包括數(shù)據(jù)成員與函數(shù)成員的聲明
8 .類成員的缺省訪問權(quán)限是保護(hù)的
C.數(shù)據(jù)成員必須被聲明為私有的
D.成員函數(shù)只能在類體外進(jìn)行定義
8 .建立一個(gè)有成員對(duì)象的派生類對(duì)象時(shí),各構(gòu)造函數(shù)體的執(zhí)行順序?yàn)椋?C
A.派生類成員對(duì)象類基類 B.成員對(duì)象類基類派生類
C.基類成員對(duì)象類派生類 D.基類派生類成員對(duì)象類
9 . C++中解決命名沖突的機(jī)制是: A
A.虛基類 B.虛函數(shù) C.函數(shù)重
4、載 D.名字空間
10 .任意一個(gè)類,析構(gòu)函數(shù)的個(gè)數(shù)最多是: B
A.不限個(gè)數(shù) B. 1 C.2 D. 3
11 .在類定義中,為說明成員的訪問權(quán)限,private,protected,public可以出現(xiàn)次數(shù)為:A
A.次數(shù)沒有具體限定 B.每種至多一次
C. public至少一次 D.每種至少一次
12 .下面關(guān)于訪問類 A的私有數(shù)據(jù)成員的說法, 錯(cuò)誤的是:C
A.類A的友元函數(shù)可以訪問類 A的私有成員。
B.類A的友元類中的非靜態(tài)成員函數(shù)可以訪問類 A的私有成員。
C.類A的嵌套類中的非靜態(tài)成員函數(shù)可以訪問類 A的私有成員。
D.類A中的非靜態(tài)成員函數(shù)可以訪問類 A的
5、私有成員。
1. #include
class A
{
public:
A( ) { cout<<”<1> A::A( ) "< A::~A( )"< A::g( )"< A::h( )"<
6、t<<"<5> B::B( ) "< B::~B( )"< B::g( )"< B::h( )"<
class A
{
public:
A( ) {cout<<1<<
7、endl;}
virtual ~A( ) {cout<<2<
8、dl;}
virtual ~C( ) { cout<<4<
9、lo ");
MyString s2("World!");
cout << s1.getString() << s2.getString( ) << endl;
MyString s3(s1);
cout << s3.getString( ) << endl;
s3 = si + s2;
cout << s3.getString( ) << endl;
}
程序執(zhí)行時(shí),輸出結(jié)果如下:
Hello World!
Hello
Hello World!
根據(jù)以下已知條件,完成對(duì) MyString類的定義和實(shí)現(xiàn)。
(1) 可以使用iostream.h中定義的類及相關(guān)內(nèi)容。
10、(2) 可以使用string.h中定義的如下函數(shù):
int strlen(const char* );用于計(jì)算標(biāo)準(zhǔn)表示的字符串長(zhǎng)度;
char* strcpy( char *strDestination, const char *strSource );用于將 strSource 串拷貝給 strDestination。返回的是 strDestination 串,一般不用。
char* strcat( char *strDestination, const char *strSource );用于將 strScource 串接于
strDestination 串后。返回的是 strDestination 串,一般不用。
本題目要求:根據(jù)上述已知條件,不借用其它標(biāo)準(zhǔn)函數(shù)庫(kù)或類庫(kù), 遵循上面程序輸出結(jié) 果,完成MyString類的定義和實(shí)現(xiàn)。