亚洲中文精品a∨在线,国产在线精品在线精品,国产亚洲欧美一区,欧美肉肉丝视频一区二区

您當前位置: 唯學(xué)網(wǎng) » 計算機等級考試培訓(xùn) » 備考試題專題 »

計算機二級考試C++考前測試題及答案(4)

計算機二級考試C++考前測試題及答案(4)

唯學(xué)網(wǎng) • 教育培訓(xùn)

2016-7-4 13:44

計算機等級

唯學(xué)網(wǎng) • 中國教育電子商務(wù)平臺

加入收藏

31有如下程序:

#inClude using namespaCe std: Class CD{

publiC:

~CD(){Cout<<’C’:} private:

Char name[80]; };

int main(){

CD a,*b,d[2]; return 0;

執(zhí)行這個程序的輸出結(jié)果是( )。

A.CCCCB.CCCC.CCD.C

參考答案:B

參考解析:本題考查類的析構(gòu)函數(shù).題目中定義了類的一個對象a,對象指針*b,對象數(shù)組d[2],當程序執(zhí)行完后,析構(gòu)函數(shù)執(zhí)行了3次,輸出“CCC”,對象指針不會執(zhí)行析構(gòu)函數(shù)。所以本題答案為8。

32類的析構(gòu)函數(shù)是在( )調(diào)用的。

A.類創(chuàng)建時B.創(chuàng)建對象時C.刪除對象時D.不自動調(diào)用

參考答案:C

參考解析:析構(gòu)函數(shù)可以被函數(shù)調(diào)用,也可以被系統(tǒng)調(diào)用:函數(shù)體內(nèi)的對象在函數(shù)結(jié)束時調(diào)用析構(gòu)函數(shù)和使用delete釋放對象所占用的資源。

33下列關(guān)于多態(tài)性的描述,錯誤的是( )。

A.c++語言中的多態(tài)性分為編譯時的多態(tài)性和運行時的多態(tài)性

B.編譯時的多態(tài)性可通過函數(shù)重載實現(xiàn)

C.運行時的多態(tài)性可通過模板和虛函數(shù)實現(xiàn)

D.實現(xiàn)運行時多態(tài)性的機制稱為動態(tài)綁定

參考答案:C

參考解析:編譯時的多態(tài)性是通過函數(shù)重載和模板體實現(xiàn)的,運行時的多態(tài)性是通過虛函數(shù)體實現(xiàn)的。

34下列有關(guān)類成員的敘述中,正確的是( )。

A.友元函數(shù)是類的成員函數(shù)

B.類成員的默認訪問權(quán)限是私有的

C.類成員函數(shù)必須聲明為公有的

D.類的靜態(tài)數(shù)據(jù)成員不能是常成員

參考答案:B

參考解析:友元函數(shù)是指某些雖然不是類成員卻能訪問類的所有成員的函數(shù),故友元函數(shù)不足類的成員函數(shù)。類成員的默認訪問權(quán)限是私有的,類的成員函數(shù)¨r以是3種權(quán)限中的一種,靜態(tài)數(shù)據(jù)成員可以為常成員。故本題答案為8。

35有如下程序:

#inClude

using namespaCe std; ClaSS A{

publiC:

A(int i){x=i;}

void dispa(  ){Cout<

int x; };

Class B:publiC A{ publiC:

B(int i):A(i+10){x=i;}

vold dispb(  ){dispa(  );Cout<

int x; };

int main(  )} B b(2); b.dispb(  );

return 0; }

執(zhí)行這個程序的輸出結(jié)果是(  )。

A.10,2B.12,10C.12,2D.2,2

參考答案:C

參考解析:本題考查派生類的構(gòu)造函數(shù)和基類的構(gòu)造函數(shù)。本題中類B繼承類A,定義了·個類B的對象并初始化b(2),此時會執(zhí)行類B的構(gòu)造函數(shù),執(zhí)行的結(jié)果是繼承類A中的私有成員賦值了12,給類B自身的數(shù)據(jù)成員x賦值了2,執(zhí)行b.dispb()后,輸出類A的私有成員x,輸出類B自身的數(shù)據(jù)成員,所以答案為C。

36執(zhí)行下列語句段后,輸出字符“*”的個數(shù)是( )。

for(int i=50;i>1;i一=2) tout<<’*’:

A.24B.25C.26D.50

參考答案:B

參考解析:本題考查for循環(huán)語句,題目中每執(zhí)行完循環(huán)體后,i都會減2,那么只有50到2之間的偶數(shù)才能輸出“*”,所以總共輸出25次。

37有如下類定義:

Class AA{ int a: PubliC: AA(int n=O):a(n){}

};

Class BB:publiC AA{ publiC:

BB(int n)

};

其中橫線處的缺失部分是(  )。

A.:a(n){}B.:AA(n){}C.{a(n);}D.{a=n;}

參考答案:B

參考解析:本題考查公用繼承對基類成員的訪問屬性。公用繼承中,基類的公用成員和保護成員在派生類中保持原有訪問屬性,其私有成員仍為基類私有,本題中若要給派生類繼承下來基類的私有成員賦值,那么只能調(diào)用基類的成員函數(shù)來對它賦值,成員變量默認的訪問權(quán)限為私有,即a為私有變量。所以本題答案為B。

38判斷char型變量c是否為小寫字母的正確表達式是( )。

A.’a’<=c<=’z’B.(c>=A.&&(c<=z)C.(’a’>=C.||(’z’<=C.D.(c>=’a’)&&(c<=,z,)

參考答案:D

參考解析:字符型數(shù)據(jù)在計算機內(nèi)部是以ASCII碼存儲的,英文大寫字母和小寫字母在ASCII碼表中都是連續(xù)的。大寫字母A~z是從65~90,小寫字母a~z是從97~122。所以只要變量c大于等于a并月小于等于z就能保證其為小寫字母。

39決定c++語言中函數(shù)的返回值類型的是( )。

A.return語句中的表達式類型

B.調(diào)用該函數(shù)時系統(tǒng)隨機產(chǎn)生的類型

C.調(diào)用該函數(shù)時的主調(diào)用函數(shù)類型

D.在定義該函數(shù)時所指定的數(shù)據(jù)類型

參考答案:D

參考解析:c++語言中,在定義該函數(shù)時所指定的數(shù)據(jù)類瓔決定函數(shù)的返回值類型。

40設(shè)int a=1,b=2;,則(a++)+b和a+++b這兩個表達式的值分別為( )。

A.3,3B.3,4C.4,3D.4,4

參考答案:A

參考解析:單目的++運算優(yōu)先級高于雙目的+運算,不過++的結(jié)合性是自右向左的,而+是自左向右的,所以上面的兩個表達式都是先計算a+b的值之后,a再自加1。

41請使用VC6或使用【答題】菜單打開考生文件夾projl下的工程projl。程序中位于每個“//ERROR****found料****之后的一行語句有錯誤,請加以改正。改正后程序的輸出結(jié)果應(yīng)為:

Name:Smith Age:21 ID:99999 CourseNum:12

Record:970

注意:只修改每個“//ERROR****found****”下的那一行,不要改動程序中的其他內(nèi)容。

#include

using namespace std;

class Studentlnfo

{

protected:

//ERROR********************found****************

char Name;

int Age;

int ID:

int CourseNum;

float Record;

public:

Studentlnfo(char*name,int Age,int ID,int coumeNum,float record);

//ERROR ********************found********************

void~Studentlnfo(){}

float AverageRecord(){

return Record/CourseNum;

}

void show()const{

cout<<”Name:”<

<<”CourseNum:”<

}

};

//ERROR ******************found**************

StudentInfo StudentInfo(char*Name,int Age,int ID,int CourseNum,float Record)

{

Name=name;

Age=age;

this一>ID=ID:

CourseNum=courseNum:

Record=record;

}

int main()

{

Studentlnfo st(’’Smith”,21,99999,12,970);

st.show();

return 0;

}

參考解析:

(1)char*Name;

(2)~Studentlnfo(){}

(3)Studentlnf0::Studentlnfo(char*name,int age,,int ID,int eourseNum,float record)

三、簡單應(yīng)用題(24分)

42請使用VC6或使用【答題】菜單打開考生文件夾proj2下的工程proj2,其中定義了vehiele類,并派生出motorcar類和bicycle類。然后以motorcar和bicycle作為基類,再派生出motorcycle類。要求將Vehicle作為虛基類,避免二義性問題。請在程序中的橫線處填寫適當?shù)拇a并刪除橫線,以實現(xiàn)上述類定義。此程序的正確輸出結(jié)果應(yīng)為:

80

150

100

1

注意:只能在橫線處填寫適當?shù)拇a,不要改動程序中的其他內(nèi)容,也不要刪除或移動“//****found****”。

#include

class vehicle

{

private:

int MaxSpeed;

int Weight;

public:

//*************found************

vehicle(int maxspeed,int weight):——

~vehicle(){};

int getMaxSpeed(){return MaxSpeed;}

int getWeight(){retum Weight;}

};

//****************found************

class bicycle:——public vehicle

{

private:

int Height;

public:

bicycle(int maxspeed,int weight,int height):vehicle(maxspeed,weight),Height(height){}

int getHeight(){retum Height;};

};

//*******************found**************

class motorcar:——public vehicle

{

private:

int SeatNum;

public:

motorcar(int maxspeed。int weight,int seatnum):vehicle(maxspeed,weight),SeatNum(seatnum){}

int getSeatNum(){return SeatNum;};

};

//*****************found***************

class motorcycle:——

{

public:

motorcycle(int maxspeed,int weight,int height):vehicle(maxspeed,weight),bicycle(maxspeed,weight,

height),motorcar(maxspeed,weight,1){}

};

void main()

{

motorcycle a(80,150,100);

cout<

cout<

cout<

cout<

}

參考解析:

(1)MaxSpeed(maxspeed),Weight(weight){f;

(2)virtual

(3)virtua1

(4)public bicycle,public motorcar

四、綜合應(yīng)用題(18分)

43請使用VC6或使用【答題】菜單打開考生文件夾proj3下的工程文件proj3。本題創(chuàng)建一個小型字符串類,字符串長度不超過l00。程序文件包括pmj3.h、proj3.cpp、writeToFile.obj。補充完成重載賦值運算符函數(shù),完成深復(fù)制功能。

屏幕上輸出的正確結(jié)果應(yīng)該是:

Hello!

Happy new year!

補充編制的內(nèi)容寫在“//**********333**********”與“//**********666**********”兩行之間。

不得修改程序的其他部分。

注意:

程序最后調(diào)用writeToFil。函數(shù),使用另一組不同的測試數(shù)據(jù),將不同的運行結(jié)果輸出到文件0ut•dat中。

輸出函數(shù)writeToFile已經(jīng)編譯為obj文件。

//proj3.h

#include

#include

using namespace std;

class MiniString

{

pubhc:

friend。8tream&operator<<(oatream&output,const MiniString&s)//重載流插入運算符

{ output<

friend istream&operator>>(istream&input,MiniString&8)//重載流提取運算符

{ char temp[100];//用于輸入的臨時數(shù)組

temp[0]=’\0’://初始為空字符串

input>>setw(100)>>temp;

int inLen=strlen(temp);//輸入字符串長度

if(inLen!=0)

}

s.1ength=inLen;//賦長度

if(s.sPtr!=0)delete[]s.sPtr;//避免內(nèi)存泄漏

s.sPtr=Hew char[s.1ength+1];

strcpy(s.sPtr,temp);//如果8不是空指針,則復(fù)制內(nèi)容

}

else s.sPtr[0]=’\0’;//如果s是空指針,則為空字符串

retum input;

}

void modString(const char}string2)//更改字符串內(nèi)容

{

if(strin92 1=0)//如果strin92不是空指針,則復(fù)制內(nèi)容

{

if(strlen(strin92)!=length)

{

length=strlen(strin92);

delete[]sPtr;

sPtr=new char[1ength+1];//分配內(nèi)存

}

strcpy(sPtr,strin92);

}

else sPtr[0]=’\0’;//如果string2是空指針,則為空字符串

}

MiniString&operator=f const MiniString&otherString);

MiniString(corot char*s=""):lengtll((s!=0)?strlen(s):0)//構(gòu)造函數(shù)

{

sPtT=0:

if(1ength[=0)

setString(S);

}

~MiniString()//析構(gòu)函數(shù)

{delete[]sPtr;}

private:

int length;//字符串長度

char*sPtr;//指向字符串起始位置

void setString(const char*string2)//輔助函數(shù)

{

sPtr=Dew char[str|en(string2)+1];//分配內(nèi)存

if(stnIl92!=0)strcpy(sPtr,string2);//如果string2不是空指針,則復(fù)制內(nèi)容

else slur[0]='\0';//如果string2是空指針,則為空字符串

}

};

//pwj3.cpp

#'include

#include

using namespace std;

#include”proj3.h”

MiniString&MiniStrin9::0perator=(const MiniString&otherString)

{//重載賦值運算符函數(shù)。提示:可以調(diào)用輔助函數(shù)setString

//*************333**********

//*************666**********

}

int main()

{

MiniSu'ing strl(”Heuo!”),str2;

void writeToFile(const char*);

sir2=strl;//使用重載的賦值運算符

str2.modString("Happy new year!");

cout<

cout<

writeToFile("");

return 0;

}

參考解析:

length=otherString.1ength; //把對象字符串0therString的長度賦值給變量length setString(otherString.sPtr); //調(diào)用函數(shù)setstring,實現(xiàn)給類變量sptr分配空間,以及逐個把對象0therstring字符串的值復(fù)制到sptr中 return}this: //返回被賦值的對象

以上內(nèi)容是關(guān)于2016年計算機二級考試C++考前測試題及答案的介紹,由唯學(xué)網(wǎng)計算機等級考試欄目小編提供,因此考生如若獲知更多關(guān)于考試資訊、復(fù)習(xí)指導(dǎo)等內(nèi)容,請隨時關(guān)注唯學(xué)網(wǎng),小編會在第一時間為考生發(fā)布相關(guān)的報道。

0% (0)
0% (10)
已有條評論