计算机等级考试二级C++真题Word格式.docx
《计算机等级考试二级C++真题Word格式.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级C++真题Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
x);
(12)在C+中,编译系统自动为一个类生成缺省构造函数的条件是()。
A)该类没有定义任何有参构造函数B)该类没有定义任何无参构造函数C)该类没有定义任何构造函数D)该类没有定义任何成员函数(13)在一个派生类的成员函数中,试图调用其基类的成员函数“voidf();
”,但无法通过编译。
这说明()。
A)f()是基类的私有成员B)f()是基类的保护成员C)派生类的继承方式为私有D)派生类的继承方式为保护(14)下列关于运算符重载的叙述中,错误的是()。
A)有的运算符可以作为非成员函数重载B)所有的运算符都可以通过重载而被赋予新的含义C)不得为重载的运算符函数的参数设置默认值D)有的运算符只能作为成员函数重载(15)下列关于模板的叙述中,错误的是()。
A)调用模版函数时,在一定条件下可以省略模板实参B)可以用int、double这样的类型修饰符来声明模版参数C)模板声明中的关键字class都可以用关键字typename替代D)模板的形参表中可以有多个参数(16)要利用C+流进行文件操作,必须在程序中包含的头文件是()。
A)iostreamB)fstreamC)strstreamD)iomanip(17)下列字符串中不能作为C+标识符使用的是()。
A)WHILEB)userC)_lvarD)9stars(18)下列语句中错误的是()。
A)constinta;
B)constinta=10;
C)constint*point=0;
D)constint*point=newint(10);
(19)有如下程序:
#includeusingnamespacestd;
intmain()intsum;
for(inti=0;
i6;
i+=3)sum=i;
for(intj=i;
j6;
j+)sum+=j;
coutsumend1;
return0;
运行时的输出结果是()。
A)3B)10C)12D)15(20)下列语句中,正确的是()。
A)char*myString=Hello-World!
;
B)charmyString=Hello-World!
C)charmyString11=Hello-World!
D)charmyString12=Hello-World!
(21)若已经声明了函数原型“voidfun(inta,doubleb=0.0);
”,则下列重载函数声明中正确的是()。
A)voidfun(inta=90,doubleb=0.0);
B)intfun(inta,doubleB);
C)voidfun(doublea,intB);
D)boolfun(inta,doubleb=0.0);
(22)有如下程序:
classSamplepublic:
Sample()Sample()cout*;
intmain()Sampletemp2,*pTemp2;
执行这个程序输出星号(*)的个数为()。
A)1B)2C)3D)4(23)下列选项中,与实现运行时多态性无关的是()。
A)重载函数B)虚函数C)指针D)引用(24)下列运算符函数中,肯定不属于类Value的成员函数的是()。
A)Valueoperator+(Value);
B)Valueoperator-(Value,Value);
C)Valueoperator*(int);
D)Valueoperator/(Value);
(25)下列模板声明中,有语法错误的是()。
A)templateTfun(Tx)returnx;
B)templateTfun(Tx,intn)returnx*n;
C)templateTfun(T*p)return*p;
D)templateTclassATn;
(26)在语句“coutA;
”中,cout是()。
A)类名B)对象名C)函数名D)C+的关键字(27)有如下程序:
#includeusingnamespacestd;
classMyClasspublic:
MyClass(inti=0)cout1;
MyClass(constMyClass&
x)cout2;
MyClass&
operator=(constMyClass&
x)cout3;
return*this;
MyClass()cout4;
intmain()MyClassobj1
(1),obj2
(2),obj3(obj1);
return0:
A)112444B)11114444C)121444D)11314444(28)有如下程序:
MyClass(intx):
val(x)voidSet(intx)val=x;
voidPrint()constcoutval=val=b中的“=”是作为非成员函数重载的运算符,则可以等效地表示为()。
A)a.operator=(b)B)b.operatotr=(a)C)operator=(a,b)D)operator=(b,a)(34)当使用ofstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为()。
A)iosbase:
inB)ios_base:
binaryC)ios_base:
in|ios_base:
outD)ios_base:
out(35)在一个抽象类中,一定包含有()。
A)虚函数B)纯虚函数C)模板函数D)重载函数二、填空题(每空2分,共30分)
(1)对下列二叉树进行中序遍历的结果_。
ABCDEFXYZ
(2)按照软件测试的一般步骤,集成测试应在_测试之后进行。
(3)软件工程三要素包括方法、工具和过程,其中,_支持软件开发的各个环节的控制和管理。
(4)数据库设计包括概念设计、_和物理设计。
(5)在二维表中,元组的_不能再分成更小的数据项。
(6)当使用关键字_作为函数返回类型时,该函数不返回任何值。
(7)已知数组a中有n个元素,下列语句将数组a中从下标xl开始的k个元素移动到从下标x2开始的k个元素中,其中0=xlx2n,x2+k=xl;
i-)a_=ai;
(8)有如下程序:
intfun1(intx)return+x;
intfun2(int&
x)return+x;
intmain()intx=1,y=2;
y=fun1(fun2(x);
coutx,y;
程序的输出结果是_。
(9)有如下程序:
classpumpkinpublic:
pumpkin()+count;
pumpkin()-count;
staticvoidtotal_count()coutcountpumpkin(s)end1;
private:
staticintcount;
intpumpkin:
count=0;
intmain()pumpkinpl10;
pumpkin:
total_count();
这个程序的输出结果是_。
(10)有如下递归函数:
intFun(intn)if(n=1)return1;
请补充完整,使得函数Fun能够正确计算形参n的阶乘。
(11)请在下列程序中的空格处填写正确的语句:
Sample()Sample()voidSetData(intdata)/将Sample类成员变量data设置成形参的值private:
intdata;
(12)有如下类定义,请将Sample类的拷贝构造函数补充完整。
Sample()Sample()if(p)deletep;
)Sample(constSample&
s)voidSetData(intdata)p=newint(data);
int*p;
(13)重载加法运算符“+”,其函数名是_。
(14)有如下程序:
classWages/“工资”类doublebase;
/基本工资doublebonus;
/奖金doubletax;
/税金public:
Wages(doubleCBase,doubleCBonus,doubleCTax):
base(CBase),bonus(CBonus),tax(CTax)doublegetPay()const;
/返回应付工资额Wagesoperator+(Wagesw)const;
/重载加法;
doubleWages:
getPay()constreturnbase+bonus-tax;
WagesWages:
operator+(Wagesw)constreturnWages(base+w.base,bonus+w.bonus,tax+w.tax);
intmain()Wageswl(2000,500,100),w2(5000,1000,300);
cout(wl+w2).getPay0end1;
retun0;
程序的输出结果是_(15)有如下程序:
classPetcharname10;
public:
Pet(char*name)strcpy(this-name,name);
constchar*getName()constreturnname;
virtualvoidcall()const=0;
classDog:
publicPetpublic:
Dog(char*name):
Pet(name)voidcall()constcout汪汪叫;
classCat:
Cat(char*name):
Pet(name)voidcall()constcout喵喵叫;
intmain()Pet*pet1=newDog(哈克),*pet2=newCat(吉米);
coutgetName();
pet1-call();
coutend1;
pet2-call();