2023年 9全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷_第1頁
2023年 9全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷_第2頁
2023年 9全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷_第3頁
2023年 9全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷_第4頁
2023年 9全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷_第5頁
已閱讀5頁,還剩74頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2023年9全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)筆試試卷

一、選擇題(每題2分洪70分)

(11)在函數(shù)中,可以用auto,extem,register,和static這四個(gè)關(guān)鍵字中的一種來闡明變

量的存儲(chǔ)類型,假如不闡明存儲(chǔ)類型,則默認(rèn)的存儲(chǔ)類型是A

AautoBextemCregisterDstatic

(12)對(duì)于一種類定義,下列論述中錯(cuò)誤的是B

A假如沒有定義拷貝構(gòu)造函數(shù),編譯器將生成一種拷貝構(gòu)造函數(shù)

B假如沒有定義缺省的構(gòu)造函數(shù),編譯器將一定生成一種缺省的構(gòu)造函數(shù)

C假如沒有定義構(gòu)造函數(shù),編譯器將生成一種缺省的構(gòu)造函數(shù)和一種拷貝構(gòu)造函

數(shù)

D假如己經(jīng)定義了構(gòu)造函數(shù)和拷貝構(gòu)造函數(shù),編譯器不會(huì)生成任何構(gòu)造函數(shù)

(13)假如派生類以publie方式繼承基類,則原基類的protected組員和publie組員在

派生類中的訪問類型分別是D

Apub1ic和publicBpublic和protected

Cprotected和publicDprotected和protec

ted

(14)下列運(yùn)算符函數(shù)中肯定不屬于類FunNumber的組員函數(shù)的是D

Aintoperator-(FunNumber)

BFunNumberoperator-()

CFunNumberoperator-(int)

Dintoperator-(FunNumber)

(15)C++中的模板包括C

A對(duì)象模板和函數(shù)模板B對(duì)象模板和類模板

C函數(shù)模板和類模板D變量模板和對(duì)象模板

(16)假如調(diào)用C++流進(jìn)行輸入輸出,下面的論述中對(duì)的的是A

A只能借助于流對(duì)象進(jìn)行輸入輸出B只能進(jìn)行格式化輸入輸出

C只能借助于cin和cout進(jìn)行輸入輸出D只能使用運(yùn)算符》和《進(jìn)行輸入輸

(17)下列符號(hào)中不屬于C++關(guān)鍵字的是D

AfriendBnamespaceCcontinueDbyte

(18)下列各組的量申明中,含義相似的一組是B

Aunsignedlongint和IongBsignedsh

ortint和short

Bunsignedshort和shortDshortint和inl

(19)必須用一對(duì)打括號(hào)括起來的程序段是D

Aswitch語句中的Icase標(biāo)號(hào)語句Bif語句的分支

C循環(huán)語句的循環(huán)體D函數(shù)的函數(shù)體

(20)語句的加^^=&!<定義于指針「,于這個(gè)語句等效的語句序列是A

Aint*p;p=&kBint*p;p=k

Cint*p;*p=&kDint*p;*p=k

(21)有關(guān)函數(shù)重載,下列論述中錯(cuò)誤的是C

A重載函數(shù)的函數(shù)名必須相似

B重載函數(shù)必須在函數(shù)個(gè)數(shù)或類型上有所不同樣

C重載函數(shù)的返回值類型必須相似

D重載函數(shù)的函數(shù)體可以有所不同樣

(22)有如下頭文獻(xiàn)

Intf1();

Staticintf2();

ClassMA{

Pub1ic

Intf3();

Staticintf4();(靜態(tài)函數(shù))

);

在所描述的函數(shù)中,具有隱含的this指針的是C

AfiBf2CI3Df4

(23)派生類的組員函數(shù)不能訪問基類的IC

A共有組員和保護(hù)組員B共有組員

C私有組員D保護(hù)組員

(24)下列有關(guān)運(yùn)算符重載的描述中,對(duì)的I的是A

A運(yùn)算符重載為組員函數(shù)時(shí),若參數(shù)表中五參數(shù),重載的是一元運(yùn)算符

B一元運(yùn)算符只能作為組員函數(shù)重載

C二元運(yùn)算符重載為非組員函數(shù)時(shí),參數(shù)表中有一種參數(shù)

DC++中可以重載所有的運(yùn)算符

(25)下列有關(guān)類模板的模板參數(shù)的論述中,錯(cuò)誤的是D

A模板參數(shù)可以作為數(shù)據(jù)組員的類型

B模板參數(shù)可以作為組員函數(shù)的返回類型

C模板參數(shù)可以作為組員函數(shù)的參數(shù)類型

D模板函數(shù)不能作為組員函數(shù)的局部變量的類型

(26)已知一程序運(yùn)行后執(zhí)行的第一種輸出操作是B

Cout?setw(10)?setfi11(*)?1234

則此操作的輸出構(gòu)造是

A1234B******1234

C**********1234D1234******

(27)有如下程序

#include<iostrcam>

Usingnamespacestd;

Classmyclass{

Pub1ic:

MyC1ass0{++count;}

-MyClass(){--count;}

Staticintgetcount(){returncount;}

Private

Staticintcount;

);

IntMyClass::count=0;

Intmain(){

Myclassobj;

Cout<<obj,getCount();

MyClass*ptr=newMyClass;

Cout?MyClass::getcount();

Deleteptr;

Cout?MyClass::gercount();

Return();

)

程序的輸出成果是A

A121B232C221D122

(28)有如下程序

ttinclude<iostrean>

Usingnamespacestd;

ClassMyclass{

Public;

Myclassconst(x):ual(x)<>

Uoidprint()const<cout<<const:ual=^<<ual<<\t;}

Uoidprint()<cout<<ual=^<<ual<<\t;}

Priuate;

Intual;

};

Intmain(){

Const叫classobj1(10);

Myclassobj2(20);

Obj1.print();

0bj2.print();

Return();

程序肚I輸出成果是C

Aval=10const:val=20Bconst:val=10const:val=20

Cconst:val=10val=20Dval=10val=20

(29)有如下程序

#inelude<iostream>

Usingnamespacestd;

Classpart{

Public;

Part(intx=(\):val(x){cout?val;)

-part(){cout?va1;1

Private;

Intval;

Classwhole{

Publie;

VVhoIe(intx,inty,intz=0):p2(x),pl(y),va1(z){cout<<va1;}

VVhole(){count?val;}

Private;

Partpl,p2;

Intval;

);

Intniaint{

Wholeobj(l,2,3);

Resturn();

}

程序輸出的成果是D

A123321B213312C213

(30)有如下程序:

#inc1ude<iostrcam>

Usingnamespacestd;

Classbase{

Public:

Base(intx=0){cout?x;}

};

Classderived:publicbase{

Public:

Derivedrin(x=y){cout?x;}

Prib1ic:

Baseva1;

h

Intmain(){

Derivedd(!);

Return();

)

程序的輸出成果是C

AOB1C01D001

(31)若有如下類定義:

ClasssB{

Voidfun1(){}

Protected;

Doub1evarl;

Public:

Voidfun2(){}

ClassD:publicB{

Protected;

Voidfun3(){}

};

己知。bj是類D的對(duì)象,下列語句中不違反組員訪問控制的權(quán)限時(shí)是C

Aobj.fun1();Bobj.var1;Cobj.fun2();D

bj.fun3();

(32)有如下程序:

#include<iostreani>

Usingnamespacesid;

Classbase{

Pub1ic;

Voidoutput(){cout?1;)

Virtualvoidprint(){cout?B;}

);

C1assderived:publicbase{

Publie:

Voidoutput(){cout?2;}

Voidprint(){coutvV'D';}

};

Intmain()

Base*passnewderived;

Ptr—>output();

Ptr—>print();

Deleteptr;

Return();

)

程序的輸出成果是D

AIBB1DC2BD2D

33.下列是重載乘法運(yùn)算的函數(shù)原型申明,其中錯(cuò)誤的是A

Amyclassoperator*(double,doub1e);

Bmyclassoperator*(double,myc1ass);

CmycIassoperator*(myclass,doub1e);

Dmyclassoperator*(myclass,myclass);

*是二元運(yùn)算符,并且原則庫里面已經(jīng)有double*doubleH勺運(yùn)算符定義,返回值為double,

因此A的重載是錯(cuò)誤的

34.A

(34)如下函數(shù)的作用是以雙倍行距輸出文件:

Voiddouble_space(iFstrean&f,oFstrean)&t)<

Charc;

While()<

*

If(c=&n')t..put(c),

>

斷或處缺失的部分是

AF.get(c)與t.put(c)Bf.put(c)與t.get(c)

Ct-ger(c)^F.yet(c)Dt?put(c)與f.get(c)

(35)有如下程序:

#inc1ude<iostream>

usingnamespacestd;

classB{

public:

virtualvoidshow(){cout?"b"

};

c1assD:publicB{

public:

voidshow(){cout}

};

voidfunl(B*ptr){ptr->show();)

voidfun2(B&ref){ref.show();}

voidfun3(Bb){b.show();)

voidmain(){

Bb,*p=newD;

Dd;

fun1(p);

fun2(b);

fun3(d);

)

程序時(shí)輸出成果是D

ADBDBBBDCDBBDDbb

二、填空題(每空2分,共三十分)

(6).在有定義語句:inta=3,b=2,c=1;則體現(xiàn)式avb?a:b時(shí)值是

(7).執(zhí)行下列語句后,變量sum的值是.

Intsum=0;

For(intj=I;j<=I;j++)

For(intj=I;j<=Iu++)

Sum++;

(8).已知有函數(shù)f的定義如下:

Intf(){

Staticint-6;

s-2;

returns

則在某程序中第二次執(zhí)行函數(shù)用語句f();時(shí),函數(shù)f的返回值是,

⑼己知如下程序得輸出成果時(shí)23,請(qǐng)將劃線處缺失得部分補(bǔ)充完整。

#inc1ude<iostream>

Usingnamespacestd;

Classmyclass{

Public:

Voidprint()cout{cout?23;}

Intmain(){

Myclass*p=newmyclass();

Print();

Return():

Classsample{

Pub1ic:

Sample(){}

(13)有如下復(fù)數(shù)類的聲明,請(qǐng)補(bǔ)充完整。

Classcomplex(

Doublereal;〃實(shí)部

Doubleinag;〃虛部

Public:

Comple(doublex.doubley){

Real=x;

Imag=y;

Complexoperator?(complexc)〈〃重載力口法運(yùn)算符”

RptiirnrnmplPX(

(14)請(qǐng)將如下程序補(bǔ)充完整,使得輸出成果為bbaa

#include<iostream>

Usingnamespacestd;

ClassA{

Public:

{cout?Maa”;}

);

ClassB:publieA{

Pub1ic:

~B(){coutvv”bb”;}

Intmain(){

B*p=newB;

De1etep;

Return();

)

(15)請(qǐng)將下列棧類stack補(bǔ)充完整

C1assstack{

Private;

Intplist[100];//int數(shù)組,用于寄存棧的元素

Inttop;"棧頂元素(數(shù)組下標(biāo))

Publie:

Stack():top(0){}

Voidpush(sonsint&item);〃新元素item壓入棧

Intpop(void);〃將棧頂元素彈出棧

);

Voidstack::pbsh(constint&item){

If(top==99)〃假如棧滿,程序結(jié)束

Exit(l);

Top++;/底頂指針增1

―(151—;

)

Intstack::pop(){

If(top<0)〃假如???,程序結(jié)束

Exit⑴;

Returnplish[top--];

)

參照答案

6.27.68.49.(*p)10.ABBA11.voidBa

se::fun()

12.virtualdisplay()==0;14.—A()15.pList[top]=item

2023年9月計(jì)算機(jī)等級(jí)考試

一、選擇題(每題2分,共70分)

(11)在下列原型所示的)C++函數(shù)中,按“傳值”方式傳遞參數(shù)的是(A)。

A)voidf1(intx);?B)voidf2(int*x);C)voidf3(constint*x);

D)voidf4(int&x);

(12)在C++中,編譯系統(tǒng)自動(dòng)為一種類生成缺省構(gòu)造函數(shù)的條件是(A)。

A)該類沒有定義任何有參構(gòu)造函數(shù)B)該類沒有定義任何無參構(gòu)造函數(shù)

。該類沒有定義任何構(gòu)造函數(shù)D)該類沒有定義任何組員函數(shù)

(13)在一種派生類的組員函數(shù)中,試圖調(diào)用其基類的組員函數(shù)“voidf()r,但無法通過

編譯。這闡明(C)。

A)f()是基類的私有組員C)派生類的繼承方式為私有

B)f()是基類的保護(hù)組員D)派生類的繼承方式為保護(hù)

(14)下列有關(guān)運(yùn)算符重載的論述中,錯(cuò)誤的是(B)。

A)有的運(yùn)算符可以作為非組員函數(shù)重載

B)所有的運(yùn)算符都可以通過重載而被賦予新的含義

C)不得為重載的運(yùn)算符函數(shù)的參數(shù)設(shè)置默認(rèn)值

D)有的運(yùn)算符只能作為組員函數(shù)重載

(15)下列有關(guān)模板的論述中,錯(cuò)誤的是(D)。

A)調(diào)用模版函數(shù)時(shí),在一定條件下可以省略模板實(shí)參

B)可以用int.double這樣的類型修飾符來申明模版參數(shù)

C)模板申明中的關(guān)鍵字class都可以用關(guān)鍵字typename替代

D)模板的形參表中可以有多種參數(shù)

(16)要運(yùn)用C++流進(jìn)行文獻(xiàn)操作,必須在程序中包括的頭文獻(xiàn)是(B)。

A)iostreamg,B)fstreamC)strstream?,D)iomanip

(17)下列字符串中不能作為C++標(biāo)識(shí)符使用的是(B)。

A)WHILEB)userC)_1varD)9stars

(18)下列語句中錯(cuò)誤的是(D)e

A)constinta;B)constinta=l0;C)constint*point=O;D)

constint*point=newint(10);

(19)有如下程序:

#inc1ude<iostream>

usingnamespacestd;

intmain(){

intsum;

for(inti=0;i<6;i+=3){

sum=i;

for(intj=i;j<6;j++)sum+=j;

)

cout<<sum?endl;

return0;

}

運(yùn)行時(shí)的輸出成果是(A)。

A)3B)10C)12,D)15

(20)下列語句中,對(duì)的的是(D)。

A)char*myString='*He1Io-World!”;B)charmyString="Hello-Worl

d!\

C)charmyString[l1]='*He11o-WorId!M;D)charmyString[12]=H

Hello-World!”;

(21)若已經(jīng)申明了函數(shù)原型“voidfun(inta,doubleb=0.0);",則下列重載函數(shù)申明

中對(duì)的的是(C)。

A)voidfun(inta=90,doub1eb=0.0);B)intfun(inta,doub1eB);

C)voidfun(doublea,intB);D)boolfun(inta,doubleb=0.Oh

(22)有如下程序:

#inc1ude<iostream>

usingnamespacestd;

classSample(

public:

Sample(){}

-Samp1e(){cout?'**;}

);

intmain(){

Samp1etemp[2],*pTenip[2];

return0;

)

執(zhí)行這個(gè)程序輸出星號(hào)(*)的個(gè)數(shù)為(B)。

A)1B)29,D)4

(23)下列選項(xiàng)中,與實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性無關(guān)的是(A)。

A)重載函數(shù)虛函數(shù)C)指針D)引用

(24)下列運(yùn)算符函數(shù)中,肯定不屬于類Value的I組員函數(shù)的是(B)。

A)Valueoperator+(Va1ue);B)Va1ueoperator-(Va1ue,Value);

C)Va1ueoperator*(int);D)Valueoperator/(Value);

(25)下列模板申明中,有語法錯(cuò)誤的是(D)。

A)template<typenameT>Tfun(Tx){returnx;)

B)template<typenameT>Tfun(Tx,intn){returnx*n;}

C)template<classT>Tfun(T*p){return*p;}

D)temp1ate<c1assT>TcIassA{Tn;};

(26)在語句“coutVVA,;”中,cout是(B)。

A)類名,,B)對(duì)象名C)函數(shù)名aD)C++的關(guān)鍵字

(27)有如下程序:

#inc1ude<iostream>

usingnamespacestd;

classMyClass{

publie:

MyClass(inti=0){cout?l;}

MyCIass(constMyClass&x){cout<<2;}

MyCIass&operator=(constMyClass&x)

{cout<<3;return*this;}

-MyClassO{cout<<4;}

intmain(){

MyC1assobjl(1),obj2(2),obj3(objl);

return0:

)

運(yùn)行時(shí)的輸出成果是(A)。

A)112444?B)11114444C)121444?2)11314444

(28)有如下程序:

#include<iostrcam>

usingnamespacestd;

classMyClass{

pub!ic:

MyClass(intx):val(x){}

voidSet(intx){va1=x;}

voidPrintOconst{cout?Hva1=M<<va1<<*\t*;}

private:

intval;

};

intmain(){

constMyC1assobjl(10);

MyClassobj2(20);

objl.Print();//語句1

obj2.Print();〃語句2

obj1.Set(20);//語句3

obj2.Set(30);〃語句4

return0;

}

其主函數(shù)中錯(cuò)誤的語句是[C)。

A)語句IggB)語句2C)語句3。?D)語句4

(29)在類申明中,緊跟在“publie:”后申明的組員的訪問權(quán)限是(A)。

A)私有B)公有,,C)保護(hù)默認(rèn)

(30)對(duì)于通過公有繼承定義的派生類,若其組員函數(shù)可以直接訪問基類的某個(gè)組員,闡明該

基類組員的訪問權(quán)限是(D)。

A)公有或私有B)私有C)保護(hù)或私有2)公有或保護(hù)

(31)定義派生類時(shí),若不使用關(guān)鍵字顯式地規(guī)定采用何種繼承方式,則默認(rèn)方式為(A)。

A)私有繼承,B)非私有繼承C)保護(hù)繼承AD)公有繼承

(32)建立一種有組員對(duì)象的派生類對(duì)象時(shí),各構(gòu)造函數(shù)體的執(zhí)行次序?yàn)?C)。

A)派生類、組員對(duì)象類、基類B)組員對(duì)象類、基類、派生類

C)基類、組員對(duì)象類、派生類D)基類、派生類、組員對(duì)象類

(33)假如體現(xiàn)式a>=b中歐1">=”是作為非組員函數(shù)重載的運(yùn)算符,則可以等效地體現(xiàn)為

(A)o

A)a.operator>=(b)B)b.operatotr>=(a)C)operator>=(a,b)?)o

perator>=(b,a)

(34)當(dāng)使用ofstream流類定義一種流對(duì)象并打開一種磁盤文獻(xiàn)時(shí),文獻(xiàn)的默認(rèn)打開方式

為(B)。

A)iosbase::inB)ios_base::binaryC)ios_base::in|ios_base::out

D)ios_base::out

(35)在一種抽象類中,一定包具有(C)。

A)虛函數(shù)。B)純虛函數(shù)C)模板函數(shù)g,D)重載函數(shù)

二、填空題(每空2分,共30分)

(6)當(dāng)使用關(guān)鍵字_void_作為函數(shù)返回類型時(shí),該函數(shù)不返回任何值。

⑺已知數(shù)組a中有n個(gè)元素,下列語句將數(shù)組a中從下標(biāo)xl開始的k個(gè)元素移

動(dòng)到從下標(biāo)x2開始的k個(gè)元素中,其中0v=xlvx2<n,x2+kvn,請(qǐng)將下列語句補(bǔ)充完

整。

for(inti=x1+k—1;i>=xl;i—)

a[_x24-k-1_]=a[i];

(8)有如下程序:

#include<iostream>

usingnamespacestd;

intfunl(intx){return++x;}

intfun2(int&x){return4-+x;}

intmain(){

intx=l,y=2;

y=funl(fun2(x));

cout<<x<<\'?y;

return0:

}

程序的輸出成果是_2,3-

(9)有如下程序:

#include<iostream>

usingnamespacestd;

classpumpkin{

public:

punipkin(){++count;}

-pumpkin(){-count;}

staticvoidtotal_count(){

cout<<count?"pumpkin(s)'*<<end1;

)

private:

staticintcount;

);

intpumpkin::count=O;

intmain(){

pumpkinpl[10];

pumpkin::tota1_count();

return0;

}

這個(gè)程序的輸出成果是_lOpumpkin(s)_。

(10)有如下遞歸函數(shù):

intFun(intn){

if(n<=l)return1:

—elsereturnn*Fun(n-l);_

}

請(qǐng)補(bǔ)充完整,使得函數(shù)Fun可以對(duì)的J計(jì)算形參n的階乘。

(11)請(qǐng)?jiān)谙铝谐绦蛑械目崭裉幪顚憣?duì)的的語句:

classSamp1e{

pub1ic:

Samp1e(){}

?Sample(){}

voidSetData(intdata)

{〃將Sample類組員變量data設(shè)置成形參的值

_Sample::data=data___〃注意形參與組員同名

)

private:intdata;

);

(12)有如下類定義,請(qǐng)將Sample類的拷貝構(gòu)造函數(shù)補(bǔ)充完整。

classSample{

public:

Sample(){)

-Sample(){if(p)deletep;)

Samp1e(constSamp1e&s){

—p=newint;*p=s.*p—

)

voidSetData(intdata){p=newint(data);}

private:

int*p;

};

(13)重載加法運(yùn)算符“+”,其函數(shù)名是一operator+_。

(14)有如下程序:

#include<iostream>

usingnamespacestd;

classVVages{//n工資”類

doublebase;//基本工資

doublebonus;//獎(jiǎng)金

doubletax;//稅金

public:

ages(doubleCBase,doub1eCBonus,

doubleCTax)

:base(CBase)>bonus(CBonus)>

tax(CTax){}

doublegetPay()const;〃返回應(yīng)付工資額

Wagesoperator+(Wagesw)const;〃重載加法

};

doubleWages::getPay()const

{returnbase+bonus-tax;}

WagesWages::operator+(Wagesw)const

{returnWages(base+w.base,bonus4-w.bonus,

tax+w.tax);

}

intmain(){

Wageswl(2023,500,100),w2(5000,1000,300);

cout?(w1+w2).getPay()<<end1;

return0;

)(15)有如下程序:

#include<iostream>

usingnamespacestd;

classPet{

charname[10];

public:

Pet(char*name){strcpy(this->name,name);)

constchar*getName()const{returnname;}

virtua1voidcall()const=0;

};

c1assDog:publicPet{

pubiic:

Dog(char*name):Pet(nanie){}

voidca11()const{cout<<"汪汪叫";}

);

c1assCat:publicPet{

public:

Cat(char*name):Pet(name){}

voidca11()const{coutVv”唯唯叫”;}

);

intmain(){

Pet*petl=newDog(“哈克”),

*pet2=newCat(“吉米”);

cout<<petl->getName();

pctl—>cal1();

cout?end1;

cout<<pet2->getName();

pet2->cal1();

cout<<endl;

return0;

)

程序的輸出成果是—哈克汪汪叫

_吉米唯嘀叫一

2023年9月二級(jí)C++筆試試卷參照答案

二、填空題

(6)void(7)X2+k—1(8)2,3(9)10pumpkin(s)(10)elsereturn

n*Fun(n-1);

(11)Sample::data(12)p=newint;&p=s.*p;(13)opera!or

+(14)8100

2023年9月全國(guó)計(jì)算機(jī)二級(jí)筆試C++

一、選擇題(L10,21-40每題2分,11.20每題1分)

(11)已知函數(shù)FA調(diào)用若要把這兩個(gè)函數(shù)定義在同一種文獻(xiàn)中,則D

A)FA必須定義在FB之前B)FB必須定義在FA之前AC)若FA定義在

FB之后,則FA的原型必須出目前FB的定義之前AD)若FB定義在FA之后,則FB的

原型必須出目前FA的定義之前

(12)有如下兩個(gè)類定義C

c1assAA{};

classBB{

AAvl,*v2;ABBv3;

int*v4;

};A其中有一種組員變量的定義是錯(cuò)誤的,這個(gè)變量是AA)vlB)v2

C)v3D)v4

由于AA和BB都是類的定義,在類定義中無法申明一種自己的對(duì)象,因此在BB的類定義中,

企圖申明一種BB類的對(duì)象,是非法的。A(13)有如下類定義:BAc1assXX{

intxdata;

public:▲XX(intn=0):xdata(n){2};AC1assYY:publi

cXX{Aintydata;

pub1iC:AYY(intm=0,intn=0):XX(m),ydata(n){)

};禽YY類的對(duì)象包括的數(shù)據(jù)組員的個(gè)數(shù)是

A)1B)2C)3D)4

(14)下列有關(guān)運(yùn)算符函數(shù)的描述中,錯(cuò)誤的是€>A)運(yùn)算符函數(shù)的名稱總是以operat

or為前綴

B)運(yùn)算符函數(shù)的參數(shù)可以是對(duì)象AC)運(yùn)算符函數(shù)只能定義為類的組員函數(shù)(友元函數(shù)2

D)在體現(xiàn)式中使用重載的運(yùn)算符相稱于調(diào)用運(yùn)算符重載函數(shù)

(15)下列有關(guān)模板形參的描述中,錯(cuò)誤時(shí)是4A)模板形參表必須在關(guān)鍵字templat

e之后

B)模板形參表必須用括弧()括起來

C)可以用class修飾模板形參AD)可以用typename修飾模板形參

(16)在下列枚舉符號(hào)中,用來體現(xiàn)“相對(duì)于目前位置”文獻(xiàn)定位方式的是AAA)ios_ba

se::curB)ios_base::begC)ios_base::outD)ios_base::end

(17)下列字符串可以用作C++標(biāo)識(shí)符的是D

A)2023varB)gotoC)test-2023D)_123A(18)下列

枚舉類型的定義中,包括枚舉值3的是AAA)enumtest{RED,YELLOW,

BLUE,BLACK};AB)enumtest{RED,YELLOW:4,BLUE,BLACK};

Oenumtest{RED=-1,YELLOW,BLUE,BLACK};AD)enumtest{RED,

YELLOW=6,BLUE,BLACK};

(19)有如下程序段:C

inti=l;Awhile(1){Ai++;

if(i==10)break;Aif(i%2==0)cout<<'*';

)

執(zhí)行這個(gè)程序段輸出字符*的I個(gè)數(shù)是

A)10B)3C)4D)5

(20)己知數(shù)組arr的定義如下:D

intarr[5]={1,23,4,5};A下列語句中輸出成果不是2的是

A)cout<<*arr+1<<end1;B)cout?*(arr+1)<<endl;C)cout

?arr[1]<<end1;

D)cout<<*arr<<end1;

(21)計(jì)算斐波那契數(shù)列第n項(xiàng)的函數(shù)定義如下:B

Intfib(intn){

if(n==0)return1;AeIseif(n==1)return2;

elsereturnfib(n-l)+fib(n-2);

)

若執(zhí)行函數(shù)調(diào)用體現(xiàn)式fib(2),函數(shù)fib被調(diào)用的次數(shù)是AA)1B)2C)

3D)4A(22)Sample是一種類,執(zhí)行下面語句后,調(diào)用Sample類的構(gòu)造函數(shù)

的次數(shù)是0ASamplea[2],*p=newSamp1e;

A)0B)1C)2D)323S)下列有關(guān)虛基類的描述中,錯(cuò)誤的

是OA)使用虛基類可以消除由多繼承產(chǎn)生的二義性AB)構(gòu)造派生類對(duì)象時(shí),虛基類

的構(gòu)造函數(shù)只被調(diào)用一次

C伸明"classB:virtualpublicA”闡明類B為虛基類

D)建立派生類對(duì)象時(shí),首先調(diào)用虛基類的構(gòu)造函數(shù)

(24)將運(yùn)算符重載為類蛆員函數(shù)時(shí),其參數(shù)表中沒有參數(shù),闡明該運(yùn)算是B

A)不合法的運(yùn)算符B)一元運(yùn)算符C)無操作數(shù)的運(yùn)算符D)二元運(yùn)算符M25)

有如下模板申明:I)

temp1ate<typenameT1,typenameT2>classA;

下列申明中,與上述申明不等價(jià)的!是

A)template<c1assT1,c1assT2>classA;B)template<classT1,

typenameT2>classA;AC)tempIate<typenameT1,c1assT2>cIass

A;D)template<typenameT1,T2>classA;

(26)下列有關(guān)C++流的描述中,錯(cuò)誤時(shí)是A

A)cout>>,A,體現(xiàn)式可輸出字符AB)eof()函數(shù)可以檢測(cè)與否抵達(dá)文獻(xiàn)尾AC)

對(duì)磁盤文獻(xiàn)進(jìn)行流操作時(shí),必須包括頭文獻(xiàn)fstrearn

D)以ios_base::out模式打開的文獻(xiàn)不存在時(shí),將自動(dòng)建立一種新文獻(xiàn)"7)有如下程序:

C

#include<iostream>

usingnamespacestd;classToy{

public:

Toy(char*_n){strcpy(name,_n);count++;}

-Toy(){count";}Achar*GetName(){returnname;psta

ticintgetCount(){returncount;步private:

charnanieflO];AStatiCintcount;A}?

intToy::count=O;Aintmail(){AToytl("Snoopy''),t2("Mickey"),

t3("Barbie");Acout<<tl.getCount()?endl;Areturn0;

}A運(yùn)行時(shí)的輸出成果是AA)1B)2C)3D)運(yùn)行時(shí)出錯(cuò)A

(28)有如下程序B

#inc1ude<iostrcam>

usingnamespacestd;AdassA{Apublic^A(inti):r1(i)(}

voidprint(){cout?,e,?rl<<'>1;}

voidprint()const{cout<<,C'<<rl<srl?,-*;)

private:

intrl;A};Aintmain(){

Aal(2);constAa2(4);

a1.print();a2.print();

return0;

)

運(yùn)行時(shí)的)輸出成果是

A)運(yùn)行時(shí)出錯(cuò)B)E2-C16-C)C4-C16-D)E2-E4-

29)有如下程序:D

#indude<iostreani>

usingnamespacestd;

className{Acharnanie[20];Apublic:

Name(){

strcpy(name,"");cout<<z?';A}AName(char*fname))

{Astrcpy(name,fname);cout<'?';A}

);

intmain(){aNamenames[3]={Name(“張三”),Name(“李四”)};▲R

eturn0;A}A運(yùn)行此程序輸出符號(hào)?的個(gè)數(shù)是AA)0B)1C)2

D)3

(30)有如下程序:A

#include<iostream>Ausingnaniespacestd;

public:AAA(){cout<<*l*;}A};

classBB:publicAA{

intk;

public:ABB():k(0){cout?*2,;}ABB(intn):k(n){cout?'3*;}

)

intmain(){ABBb(4),c;

return0;A}

運(yùn)行時(shí)時(shí)輸出成果是

A)1312D)132C)32D)141

(31)有如下程序:B

#inc1ude<iostreani>

usingnamespacestd;

classCl{Apublic:A*C1(){COut<<l;}

);

ClassC2:publicc1{Apublic:A~c2(){cout?2;}4};

intmain(){AC2cb2;

Cl*cbl;

return0;A)

運(yùn)行時(shí)時(shí)輸出成果是

A)121B)21C)211D)12

(32)有如下程序D

#include<iostream>*usingnaniespacestd;Ac1assPublication{〃出版物如c

harnan)e[30]Public:

Publication(char*name="未著名稱"){AStrcpy(this->name,name);

}Aconstchar*getName()const{returnname;}Avirtualconstchar*get

Type()const{return”未知類型”;2};

c1assBook:publicPublication{//書類

pub1ic:

Book(char*name):Publication(name){}

virtualconstchar*getType()const{return"書";}

);

voidshowPub1ication(Publication&p)(Acout?p.getType()?n:M?p.get

Name()<<end1;

}Aintmain(){

Bookbook("精彩人生");AshowPub1ication(I)ook);areturn0;A}A運(yùn)行時(shí)的輸出

成果是

A)未知類型:未著名稱B)未知類型:精彩人生AC)書:未著名稱D)

書:精彩人生

(33)下列有關(guān)運(yùn)算符重載的I描述中,錯(cuò)誤的是C

A)::運(yùn)算符不能重物B)類型轉(zhuǎn)換運(yùn)算符只能作為組員函數(shù)重載AC)將運(yùn)算符作為非組員

函數(shù)重載時(shí)必須定義為友元

D)重載U運(yùn)算符應(yīng)完畢“下標(biāo)訪問”操作

(34)有如下程序:BA#includeviostream>舄#includeViomanip>

Usingnamespacestd;*intmain(){Aints[]={123,234};ACOUt?right<

<setfillC*')<<setw(6);

for(inti=0;i<2;i++){cout?s[i]<<end1;}

return0;

步運(yùn)行時(shí)的輸出成果是

A)123B)***123C)***123D)**?1

23A234234***234234***

(35)有如下類定義AAclassA{AChar*a;Apub1ic:

A():a(0){}AA(char*aa){〃把a(bǔ)a所指字符串拷貝到a所指向的存儲(chǔ)空間

a=;Astrcpy(a,aa);

strepy(a,aa);

}

~A(){delete[]a;J

};A橫線處應(yīng)填寫的體現(xiàn)式是AA)ncschar[strlen(aa)+1]B)char[strlen(aa)

+12C)char[strlen(aa)]D)newchar[sizeof(aa)—1]

二、填空題(每空

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論