2023年 9全国计算机等级考试二级笔试试卷_第1页
2023年 9全国计算机等级考试二级笔试试卷_第2页
2023年 9全国计算机等级考试二级笔试试卷_第3页
2023年 9全国计算机等级考试二级笔试试卷_第4页
2023年 9全国计算机等级考试二级笔试试卷_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023年9全国计算机等级考试二级笔试试卷

一、选择题(每题2分洪70分)

(11)在函数中,可以用auto,extem,register,和static这四个关键字中的一种来阐明变

量的存储类型,假如不阐明存储类型,则默认的存储类型是A

AautoBextemCregisterDstatic

(12)对于一种类定义,下列论述中错误的是B

A假如没有定义拷贝构造函数,编译器将生成一种拷贝构造函数

B假如没有定义缺省的构造函数,编译器将一定生成一种缺省的构造函数

C假如没有定义构造函数,编译器将生成一种缺省的构造函数和一种拷贝构造函

D假如己经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数

(13)假如派生类以publie方式继承基类,则原基类的protected组员和publie组员在

派生类中的访问类型分别是D

Apub1ic和publicBpublic和protected

Cprotected和publicDprotected和protec

ted

(14)下列运算符函数中肯定不属于类FunNumber的组员函数的是D

Aintoperator-(FunNumber)

BFunNumberoperator-()

CFunNumberoperator-(int)

Dintoperator-(FunNumber)

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

A对象模板和函数模板B对象模板和类模板

C函数模板和类模板D变量模板和对象模板

(16)假如调用C++流进行输入输出,下面的论述中对的的是A

A只能借助于流对象进行输入输出B只能进行格式化输入输出

C只能借助于cin和cout进行输入输出D只能使用运算符》和《进行输入输

(17)下列符号中不属于C++关键字的是D

AfriendBnamespaceCcontinueDbyte

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

Aunsignedlongint和IongBsignedsh

ortint和short

Bunsignedshort和shortDshortint和inl

(19)必须用一对打括号括起来的程序段是D

Aswitch语句中的Icase标号语句Bif语句的分支

C循环语句的循环体D函数的函数体

(20)语句的加^^=&!<定义于指针「,于这个语句等效的语句序列是A

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

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

(21)有关函数重载,下列论述中错误的是C

A重载函数的函数名必须相似

B重载函数必须在函数个数或类型上有所不同样

C重载函数的返回值类型必须相似

D重载函数的函数体可以有所不同样

(22)有如下头文献

Intf1();

Staticintf2();

ClassMA{

Pub1ic

Intf3();

Staticintf4();(静态函数)

);

在所描述的函数中,具有隐含的this指针的是C

AfiBf2CI3Df4

(23)派生类的组员函数不能访问基类的IC

A共有组员和保护组员B共有组员

C私有组员D保护组员

(24)下列有关运算符重载的描述中,对的I的是A

A运算符重载为组员函数时,若参数表中五参数,重载的是一元运算符

B一元运算符只能作为组员函数重载

C二元运算符重载为非组员函数时,参数表中有一种参数

DC++中可以重载所有的运算符

(25)下列有关类模板的模板参数的论述中,错误的是D

A模板参数可以作为数据组员的类型

B模板参数可以作为组员函数的返回类型

C模板参数可以作为组员函数的参数类型

D模板函数不能作为组员函数的局部变量的类型

(26)已知一程序运行后执行的第一种输出操作是B

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

则此操作的输出构造是

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的对象,下列语句中不违反组员访问控制的权限时是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.下列是重载乘法运算的函数原型申明,其中错误的是A

Amyclassoperator*(double,doub1e);

Bmyclassoperator*(double,myc1ass);

CmycIassoperator*(myclass,doub1e);

Dmyclassoperator*(myclass,myclass);

*是二元运算符,并且原则库里面已经有double*doubleH勺运算符定义,返回值为double,

因此A的重载是错误的

34.A

(34)如下函数的作用是以双倍行距输出文件:

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);

)

程序时输出成果是D

ADBDBBBDCDBBDDbb

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

(6).在有定义语句:inta=3,b=2,c=1;则体现式avb?a:b时值是

(7).执行下列语句后,变量sum的值是.

Intsum=0;

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

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

Sum++;

(8).已知有函数f的定义如下:

Intf(){

Staticint-6;

s-2;

returns

则在某程序中第二次执行函数用语句f();时,函数f的返回值是,

⑼己知如下程序得输出成果时23,请将划线处缺失得部分补充完整。

#inc1ude<iostream>

Usingnamespacestd;

Classmyclass{

Public:

Voidprint()cout{cout«23;}

Intmain(){

Myclass*p=newmyclass();

Print();

Return():

Classsample{

Pub1ic:

Sample(){}

(13)有如下复数类的声明,请补充完整。

Classcomplex(

Doublereal;〃实部

Doubleinag;〃虚部

Public:

Comple(doublex.doubley){

Real=x;

Imag=y;

Complexoperator♦(complexc)〈〃重载力口法运算符”

RptiirnrnmplPX(

(14)请将如下程序补充完整,使得输出成果为bbaa

#include<iostream>

Usingnamespacestd;

ClassA{

Public:

{cout«Maa”;}

);

ClassB:publieA{

Pub1ic:

~B(){coutvv”bb”;}

Intmain(){

B*p=newB;

De1etep;

Return();

)

(15)请将下列栈类stack补充完整

C1assstack{

Private;

Intplist[100];//int数组,用于寄存栈的元素

Inttop;"栈顶元素(数组下标)

Publie:

Stack():top(0){}

Voidpush(sonsint&item);〃新元素item压入栈

Intpop(void);〃将栈顶元素弹出栈

);

Voidstack::pbsh(constint&item){

If(top==99)〃假如栈满,程序结束

Exit(l);

Top++;/底顶指针增1

―(151—;

)

Intstack::pop(){

If(top<0)〃假如栈空,程序结束

Exit⑴;

Returnplish[top--];

)

参照答案

6.27.68.49.(*p)10.ABBA11.voidBa

se::fun()

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

2023年9月计算机等级考试

一、选择题(每题2分,共70分)

(11)在下列原型所示的)C++函数中,按“传值”方式传递参数的是(A)。

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

D)voidf4(int&x);

(12)在C++中,编译系统自动为一种类生成缺省构造函数的条件是(A)。

A)该类没有定义任何有参构造函数B)该类没有定义任何无参构造函数

。该类没有定义任何构造函数D)该类没有定义任何组员函数

(13)在一种派生类的组员函数中,试图调用其基类的组员函数“voidf()r,但无法通过

编译。这阐明(C)。

A)f()是基类的私有组员C)派生类的继承方式为私有

B)f()是基类的保护组员D)派生类的继承方式为保护

(14)下列有关运算符重载的论述中,错误的是(B)。

A)有的运算符可以作为非组员函数重载

B)所有的运算符都可以通过重载而被赋予新的含义

C)不得为重载的运算符函数的参数设置默认值

D)有的运算符只能作为组员函数重载

(15)下列有关模板的论述中,错误的是(D)。

A)调用模版函数时,在一定条件下可以省略模板实参

B)可以用int.double这样的类型修饰符来申明模版参数

C)模板申明中的关键字class都可以用关键字typename替代

D)模板的形参表中可以有多种参数

(16)要运用C++流进行文献操作,必须在程序中包括的头文献是(B)。

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

(17)下列字符串中不能作为C++标识符使用的是(B)。

A)WHILEB)userC)_1varD)9stars

(18)下列语句中错误的是(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;

}

运行时的输出成果是(A)。

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

(20)下列语句中,对的的是(D)。

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

d!\

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

Hello-World!”;

(21)若已经申明了函数原型“voidfun(inta,doubleb=0.0);",则下列重载函数申明

中对的的是(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;

)

执行这个程序输出星号(*)的个数为(B)。

A)1B)29,D)4

(23)下列选项中,与实现运行时多态性无关的是(A)。

A)重载函数虚函数C)指针D)引用

(24)下列运算符函数中,肯定不属于类Value的I组员函数的是(B)。

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

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

(25)下列模板申明中,有语法错误的是(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)对象名C)函数名aD)C++的关键字

(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:

)

运行时的输出成果是(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;

}

其主函数中错误的语句是[C)。

A)语句IggB)语句2C)语句3。®D)语句4

(29)在类申明中,紧跟在“publie:”后申明的组员的访问权限是(A)。

A)私有B)公有,,C)保护默认

(30)对于通过公有继承定义的派生类,若其组员函数可以直接访问基类的某个组员,阐明该

基类组员的访问权限是(D)。

A)公有或私有B)私有C)保护或私有2)公有或保护

(31)定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为(A)。

A)私有继承,B)非私有继承C)保护继承AD)公有继承

(32)建立一种有组员对象的派生类对象时,各构造函数体的执行次序为(C)。

A)派生类、组员对象类、基类B)组员对象类、基类、派生类

C)基类、组员对象类、派生类D)基类、派生类、组员对象类

(33)假如体现式a>=b中欧1">=”是作为非组员函数重载的运算符,则可以等效地体现为

(A)o

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

perator>=(b,a)

(34)当使用ofstream流类定义一种流对象并打开一种磁盘文献时,文献的默认打开方式

为(B)。

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

D)ios_base::out

(35)在一种抽象类中,一定包具有(C)。

A)虚函数。B)纯虚函数C)模板函数g,D)重载函数

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

(6)当使用关键字_void_作为函数返回类型时,该函数不返回任何值。

⑺已知数组a中有n个元素,下列语句将数组a中从下标xl开始的k个元素移

动到从下标x2开始的k个元素中,其中0v=xlvx2<n,x2+kvn,请将下列语句补充完

整。

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;

}

这个程序的输出成果是_lOpumpkin(s)_。

(10)有如下递归函数:

intFun(intn){

if(n<=l)return1:

—elsereturnn*Fun(n-l);_

}

请补充完整,使得函数Fun可以对的J计算形参n的阶乘。

(11)请在下列程序中的空格处填写对的的语句:

classSamp1e{

pub1ic:

Samp1e(){}

〜Sample(){}

voidSetData(intdata)

{〃将Sample类组员变量data设置成形参的值

_Sample::data=data___〃注意形参与组员同名

)

private:intdata;

);

(12)有如下类定义,请将Sample类的拷贝构造函数补充完整。

classSample{

public:

Sample(){)

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

Samp1e(constSamp1e&s){

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

)

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

private:

int*p;

};

(13)重载加法运算符“+”,其函数名是一operator+_。

(14)有如下程序:

#include<iostream>

usingnamespacestd;

classVVages{//n工资”类

doublebase;//基本工资

doublebonus;//奖金

doubletax;//税金

public:

ages(doubleCBase,doub1eCBonus,

doubleCTax)

:base(CBase)>bonus(CBonus)>

tax(CTax){}

doublegetPay()const;〃返回应付工资额

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月二级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月全国计算机二级笔试C++

一、选择题(L10,21-40每题2分,11.20每题1分)

(11)已知函数FA调用若要把这两个函数定义在同一种文献中,则D

A)FA必须定义在FB之前B)FB必须定义在FA之前AC)若FA定义在

FB之后,则FA的原型必须出目前FB的定义之前AD)若FB定义在FA之后,则FB的

原型必须出目前FA的定义之前

(12)有如下两个类定义C

c1assAA{};

classBB{

AAvl,*v2;ABBv3;

int*v4;

};A其中有一种组员变量的定义是错误的,这个变量是AA)vlB)v2

C)v3D)v4

由于AA和BB都是类的定义,在类定义中无法申明一种自己的对象,因此在BB的类定义中,

企图申明一种BB类的对象,是非法的。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类的对象包括的数据组员的个数是

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

(14)下列有关运算符函数的描述中,错误的是€>A)运算符函数的名称总是以operat

or为前缀

B)运算符函数的参数可以是对象AC)运算符函数只能定义为类的组员函数(友元函数2

D)在体现式中使用重载的运算符相称于调用运算符重载函数

(15)下列有关模板形参的描述中,错误时是4A)模板形参表必须在关键字templat

e之后

B)模板形参表必须用括弧()括起来

C)可以用class修饰模板形参AD)可以用typename修饰模板形参

(16)在下列枚举符号中,用来体现“相对于目前位置”文献定位方式的是AAA)ios_ba

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

(17)下列字符串可以用作C++标识符的是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<<'*';

)

执行这个程序段输出字符*的I个数是

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

(20)己知数组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)计算斐波那契数列第n项的函数定义如下:B

Intfib(intn){

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

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

)

若执行函数调用体现式fib(2),函数fib被调用的次数是AA)1B)2C)

3D)4A(22)Sample是一种类,执行下面语句后,调用Sample类的构造函数

的次数是0ASamplea[2],*p=newSamp1e;

A)0B)1C)2D)323S)下列有关虚基类的描述中,错误的

是OA)使用虚基类可以消除由多继承产生的二义性AB)构造派生类对象时,虚基类

的构造函数只被调用一次

C伸明"classB:virtualpublicA”阐明类B为虚基类

D)建立派生类对象时,首先调用虚基类的构造函数

(24)将运算符重载为类蛆员函数时,其参数表中没有参数,阐明该运算是B

A)不合法的运算符B)一元运算符C)无操作数的运算符D)二元运算符M25)

有如下模板申明:I)

temp1ate<typenameT1,typenameT2>classA;

下列申明中,与上述申明不等价的!是

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

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

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

(26)下列有关C++流的描述中,错误时是A

A)cout>>,A,体现式可输出字符AB)eof()函数可以检测与否抵达文献尾AC)

对磁盘文献进行流操作时,必须包括头文献fstrearn

D)以ios_base::out模式打开的文献不存在时,将自动建立一种新文献"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运行时的输出成果是AA)1B)2C)3D)运行时出错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;

)

运行时的)输出成果是

A)运行时出错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运行此程序输出符号?的个数是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}

运行时时输出成果是

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)

运行时时输出成果是

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运行时的输出

成果是

A)未知类型:未著名称B)未知类型:精彩人生AC)书:未著名称D)

书:精彩人生

(33)下列有关运算符重载的I描述中,错误的是C

A)::运算符不能重物B)类型转换运算符只能作为组员函数重载AC)将运算符作为非组员

函数重载时必须定义为友元

D)重载U运算符应完毕“下标访问”操作

(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;

步运行时的输出成果是

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

23A234234***234234***

(35)有如下类定义AAclassA{AChar*a;Apub1ic:

A():a(0){}AA(char*aa){〃把aa所指字符串拷贝到a所指向的存储空间

a=;Astrcpy(a,aa);

strepy(a,aa);

}

~A(){delete[]a;J

};A横线处应填写的体现式是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等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论