计算机等级考试二级C++真题Word文档下载推荐.docx
《计算机等级考试二级C++真题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级C++真题Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。
A)一对一B)一对多
C)多对一D)多对多
(9)在数据管理技术发展的三个阶段中,数据共享最好的是()。
A)人工管理阶段B)文件系统阶段
C)数据库系统阶段D)三个阶段相同
(10)有三个关系
R、S和
T如下:
RST
AB
m1
n2
BC
13
35
ABC
m13
由关系
R和
S通过运算得到关系
T,则所使用的运算为()。
A)笛卡尔积B)交C)并D)自然连接
(11)在下列原型所示的
C++函数中,按“传值”方式传递参数的是()。
A)voidf1(intx);
B)voidf2(int*x);
C)voidf3(constint*x);
D)voidf4(int&
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)有如下程序:
#include<
iostream>
usingnamespacestd;
intmain(){
intsum;
for(inti=0;
i<
6;
i+=3){
sum=i;
for(intj=i;
j<
j++)sum+=j;
}
cout<
<
sum<
end1;
return0;
运行时的输出结果是()。
A)3B)10C)12D)15
(20)下列语句中,正确的是()。
A)char*myString="
Hello-World!
"
;
B)charmyString="
C)charmyString[11]="
D)charmyString[12]="
(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)有如下程序:
classSample{
public:
Sample(){}
~Sample(){cout<
'
*'
};
Sampletemp[2],*pTemp[2];
执行这个程序输出星号(*)的个数为()。
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)template<
typenameT>
Tfun(Tx){returnx;
B)template<
Tfun(Tx,intn){returnx*n;
C)template<
classT>
Tfun(T*p){return*p;
D)template<
TclassA{Tn;
(26)在语句“
A'
”中,cout是()。
A)类名B)对象名
C)函数名D)C++的关键字
(27)有如下程序:
usingnamespacestd;
classMyClass{
MyClass(inti=0){cout<
1;
MyClass(constMyClass&
x){cout<
2;
MyClass&
operator=(constMyClass&
3;
return*this;
~MyClass(){cout<
4;
MyClassobj1
(1),obj2
(2),obj3(obj1);
return0:
A)112444B)11114444C)121444D)11314444
(28)有如下程序:
MyClass(intx):
val(x){}
voidSet(intx){val=x;
voidPrint()const{cout<
val="
val<
\t'
private:
intval;
constMyClassobj1(10);
MyClassobj2(20);
obj1.Print();
//语句
1
obj2.Print();
2
obj1.Set(20);
3
obj2.Set(30);
4
其主函数中错误的语句是()。
A)语句
1B)语句
2C)语句
3D)语句
(29)在类声明中,紧跟在“
”后声明的成员的访问权限是()。
A)私有B)公有C)保护D)默认
(30)对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明
该基类成员的访问权限是()。
A)公有或私有B)私有C)保护或私有D)公有或保护
(31)定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为()。
A)私有继承B)非私有继承C)保护继承D)公有继承
(32)建立一个有成员对象的派生类对象时,各构造函数体的执行次序为()。
A)派生类、成员对象类、基类
B)成员对象类、基类、派生类
C)基类、成员对象类、派生类
D)基类、派生类、成员对象类
(33)如果表达式
a>
=b中的“
>
=”是作为非成员函数重载的运算符,则可以等效地表示为
()。
A)a.operator>
=(b)B)b.operatotr>
=(a)
C)operator>
=(a,b)D)operator>
=(b,a)
(34)当使用
ofstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为
A)iosbase:
:
inB)ios_base:
binary
C)ios_base:
in|ios_base:
outD)ios_base:
out
(35)在一个抽象类中,一定包含有()。
A)虚函数B)纯虚函数C)模板函数D)重载函数
二、填空题(每空2分,共
30分)
(1)对下列二叉树进行中序遍历的结果
___________。
A
DEF
XYZ
(2)按照软件测试的一般步骤,集成测试应在
___________测试之后进行。
(3)软件工程三要素包括方法、工具和过程,其中,
___________支持软件开发的各个环节
的控制和管理。
(4)数据库设计包括概念设计、
___________和物理设计。
(5)在二维表中,元组的
___________不能再分成更小的数据项。
(6)当使用关键字
___________作为函数返回类型时,该函数不返回任何值。
(7)已知数组
a中有
n个元素,下列语句将数组
a中从下标
xl开始的
k个元素移动到从下
标
x2开始的
k个元素中,其中
0<
=xl<
x2<
n,x2+k<
n,请将下列语句补充完整。
For(inti=xl+k-1;
i>
=xl;
i--)
a[___________]=a[i];
(8)有如下程序:
intfun1(intx){return++x;
intfun2(int&
x){return++x;
intx=1,y=2;
y=fun1(fun2(x));
x<
'
y;
程序的输出结果是___________。
(9)有如下程序:
classpumpkin{
pumpkin(){++count;
~pumpkin(){--count;
staticvoidtotal_count(){
count<
pumpkin(s)"
staticintcount;
intpumpkin:
count=0;
pumpkinpl[10];
pumpkin:
total_count();
这个程序的输出结果是___________。
(10)有如下递归函数:
intFun(intn){
if(n<
=1)return1;
请补充完整,使得函数
Fun能够正确计算形参
n的阶乘。
(11)请在下列程序中的空格处填写正确的语句:
~Sample(){}
voidSetData(intdata){//将
Sample类成员变量
data设置成形参的值
intdata;
(12)有如下类定义,请将
Sample类的拷贝构造函数补充完整。
Sample(){)
~Sample(){if(p)deletep;
)
Sample(constSample&
s){
voidSetData(intdata){p=newint(data);
int*p;
(13)重载加法运算符“
+”,其函数名是___________。
(14)有如下程序:
classWages{//“工资”类
doublebase;
//基本工资
doublebonus;
//奖金
doubletax;
//税金
Wages(doubleCBase,doubleCBonus,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,bonus+w.bonus,tax+w.tax);
Wageswl(2000,500,100),w2(5000,1000,300);
(wl+w2).getPay0<
retun0;
程序的输出结果是___________
(15)有如下程序:
classPet{
charname[10];
Pet(char*name){strcpy(this->
name,name);
constchar*getName()const{returnname;
virtualvoidcall()const=0;
classDog:
publicPet{
Dog(char*name):
Pet(name){}
voidcall()const{cout<
汪汪叫"
classCat:
publicPet{
Cat(char*name):
喵喵叫"
Pet*pet1=newDog("
哈克"
),*pet2=newCat("
吉米"
);
pet1->
getName();
call();
cout<
pet2->