计算机类二级C++

2013年9月全国计算机等级《二级C++》上机模考试卷(5)

43 题含答案C++
共 43 题返回本类
1单选题1 / 43
在数据库设计中,将E-R图转换为关系模式的过程属于(  )。
查看答案
B. 逻辑设计阶段
2单选题2 / 43
设有以下类和对象的定义:
ClaSSA
{public:
intm;
};
Ak1,k2,*p1,*p2;
则下面针对成员变量m的引用,错误的是(  )。
查看答案
B. k2→m=2
3单选题3 / 43
下列关于虚基类的描述中,错误的是(  )。
查看答案
C. 声明“classB:virtualpublicA”说明类B为虚基类
4单选题4 / 43
有如下类定义:
classMyClass(
public:
____
private:
intdata;
};
若要为Myclass类重载流输入运算符>>,使得程序中可以“cin>>obj;”形式输入MyClasS类的对象obj,则横线处的声明语句应为(  )。
查看答案
A. friendistream&operator>>(istream&is,MyClass&a);
5单选题5 / 43
有如下函数模板定义:
template
T1FUN(T2n){returnn*5,0;}
若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应表示为(  )。
查看答案
C. FUN(9)
6单选题6 / 43
下列关于虚函数与函数重载区别的叙述中不正确的是(  )。
查看答案
D. 函数重载的本体可以在类外定义,虚函数不可以
8单选题8 / 43
若是对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是(  )。
查看答案
A. operatorlong()const;
9单选题9 / 43
有如下类声明:
classXA(
intX;
public:
XA(intn){x=n;}
};
classXB:publicXA{
inty;
public:
XB(inta,intb);
];
在构造函数XB的下列定义中,正确的是(  )。
查看答案
B. XB::XB(inta,intb):XA(a),y(b){)
10单选题10 / 43
有如下类定义:
classSample{
public:
Sample(intx):ref(x){}//①
private:
Sample():ref(0){}//②
staticintva1=5;//③
constintref;//④
};
上述程序段中,错误的语句是(  )。
查看答案
C. ③
11单选题11 / 43
有如下类定义:
classB{
public:voidfunl(){}
privace:voidfun2(){}
protected:voidfun3(){}
};
classD:publicB{
protected:voidfun4(){}
};
若obj是类D的对象,则下列语句中不违反访问控制权限的是(  )。
查看答案
A. obj.fun1();
12单选题12 / 43
有如下程序:
#include
usingnamespacestd;
classA{
public:
A(inti):rl(i){)
voidprint(  ){cout<<'E'<<r1<<'-';)
voidprint(  )const{cout<<'C'<<r1*r1<<'-';}
private:
intr1:
};
intmain(  ){
Aal(2);constAa2(4);,
al.print(  );a2.print(  );
return0;
}
运行时的输出结果是(  )。
查看答案
B. E2一C16一
13单选题13 / 43
若有定义“inta[2][3];”,下列选项中对a数组元素正确引用的是(  )。
查看答案
D. a[1>2][!1]
14单选题14 / 43
下列关于文件流的描述中,正确的是(  )。
查看答案
C. 若输入流要打开的文件不存在。将建立一个新文件
15单选题15 / 43
有如下语句序列:
intx=100,&r=x;
cout<<x<<'一'<<r<
已知其中变量x的地址为0012FF2C,则执行该语句序列的输出结果为(  )。
查看答案
B. 100—0012FF7C
16单选题16 / 43
下述关于数据库系统的叙述中,正确的是(  )。
查看答案
A. 数据库系统减少了数据冗余
17单选题17 / 43
数据库系统的核心是(  )。
查看答案
B. 数据库管理系统
18单选题18 / 43
下列叙述中错误的是(  )。
查看答案
B. 数据的存储结构与数据的处理效率无关
19单选题19 / 43
有如下语句序列:
intk=0:
do{k+=5;cout<<'$';}whilc(k<19);
while(k->O)cout<<'*';
执行上面的语句序列输出字符“$”和“*”的个数分别是(  )。
查看答案
A. 4和20
20单选题20 / 43
有如下程序:
ClassBase{
public:
intdata;
};
ClassDerived1:publicBase{};
ClassDerived2:protectedBase{};
intmain(){
Derived1d1;
Derived2d2;
d1.data=0;//①
d2.data=0;//②
return0;
}
下列关于程序编译结果的描述中,正确的是(  )。
查看答案
C. ①无编译错误,②有编译错误
21单选题21 / 43
一间宿舍可住多个学生,则实体宿舍和学生之间的联系是(  )。
查看答案
B. 一对多
22单选题22 / 43
下列有关拷贝构造函数的描述中错误的是(  )。
查看答案
B. 拷贝构造函数与一般的构造函数一样,可以设置多个形参
23单选题23 / 43
有下列程序段:
inta,b,c;
a=10.b=50;c=30;
if(a>b)a=b;b=C;c=a;
printf("a=%db=%dc=%d\n",a,b,c);
程序的输出结果是(  )。
查看答案
C. a=10b=30c=10
24单选题24 / 43
判断char型变量c是否为小写字母的正确表达式是(  )。
查看答案
D. (c>='a')&&(c<='z')
25单选题25 / 43
若有下列定义
intx[10],*pt=x;
则对x数组元素的正确引用是(  )。
查看答案
B. *(x+3)
26单选题26 / 43
同一概念在一处为实体而在另一处为属性或联系的冲突在视图集成中称为(  )。
查看答案
B. 概念冲突
27单选题27 / 43
设有定义:
classperson
{inthum;
charname[10];
public:
voidinit(intn,char*m);
};
personstd[30]
则以下叙述不正确的是(  )。
查看答案
D. std数组中的每个元素都有各自的成员函数init
28单选题28 / 43
在软件设计中,不属于过程设计工具的是(  )。
查看答案
D. DVD图
29单选题29 / 43
下列关于数据库设计的叙述中,正确的是(  )。
查看答案
A. 在需求分析阶段建立数据字典
30单选题30 / 43
有3个关系R、S和T如下:
  
由关系R和S通过运算得到关系T,则所使用的运算为(  )。
查看答案
D. 自然连接
31单选题31 / 43
以下函数值的返回值类型是(  )。
fun(floatx)
{floaty;
y=3*x-4;
returny;
}
查看答案
A. int
32单选题32 / 43
下面不正确的描述为(  )。
查看答案
B. 调用函数时,实参与形参可以共用内存单元
33单选题33 / 43
下列关于派生类和基类的描述中,正确的是(  )。
查看答案
B. 派生类成员函数只能访问基类的公有和保护成员
34单选题34 / 43
假定MyClass为一个类,则执行MyClassa,b(2),*p;语句时,自动调用该类构造函数(  )次。
查看答案
A. 2
35单选题35 / 43
软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是(  )。
查看答案
B. C语言编译程序
36单选题36 / 43
关于纯虚函数,下列表述中正确的是(  )。
查看答案
B. 纯虚函数的声明总是以“=0”结束
37单选题37 / 43
有如下程序段:
inti=1:
while(1){
i++:
if(i==10)break:
if(i%2==0)cout<<'*':
}
执行这个程序段输出字符*的个数是(  )。
查看答案
C. 4
38单选题38 / 43
Windows环境下,由C++源程序文件编译而成的目标文件的扩展名是(  )。
查看答案
C. obj
39单选题39 / 43
下列叙述中正确的是(  )。
查看答案
D. 线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的
40单选题40 / 43
有如下两个类定义:
classXX{
private:
doublex1;
protected:
doublex2;
public:
doublex3;
};
claseYY:protectedXX{
private:
doubley1;
protected;
doubley2;
public:
doubley3;
};
在类YY中保护成员变量的个数是(  )。
查看答案
C. 3
41主观题41 / 43
使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正错误,使得程序正确执行,并且输出以下语句:
TC1:0
TC2
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。
试题程序:
#include
structTC1
{
TCl(inti=0)
{
m_i=i;
}
voidprint()
{
cout<<"TCl:"<<m_i<
}
intm_i;
};
classTC2
{
public:
TC2()
{
}
voidprint()
{
cout<<"TC2"<
}
//********error********
private:
~TC2()
{
}
};
intmain()
{
//********error********
TC1obj1();
//********error********
TC20bj2();
obj1.print();
obj2.print();
return0;
}
查看答案
(1)应改为“puBliC:”。
(2)应改为“TCloBj1(0);”或“TCloBjl;”。
(3)应改为“TC20Bj2;”。
42主观题42 / 43
使用VC++6.0打开考生文件夹下的源程序文件2.cpp。完成fun函数,使其功能为将两个按小到大排序的数组a和b,复制合并成一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。
注意:不能修改程序的其他部分,只能修改fun函数。
试题程序:
#include
voidfun(inta[],intn,intb[],intm,int*c)
{
}
voidmain()
{
intA[]={3,5,7,9,11,18,21);
intB[]={6,15,19,21,39};
intC[25],i;
for(i=0;i<25;i++)C[i]=0;
cout<<"A[]=";
for(i=0;i<7;i++)
cout<<a[i]<<',';
eout<
cout<<"B[]=";
for(i=0;i<5;i++)
coul<<b[i]<<',';
cout<
fun(A,7,B,5,C);
cout<<"C[]=";
for(i=0;i<12;i++)
cout<
cout<
return:
}
查看答案
inti,j;
For(i=j=0;i(n&&j<m;)
{
*C++=A[i]<B[j]?A[i++];B[j++].//比较两个数组中元素大小
}
whilE(i<n)*C++=A[i++];
whilE(j(m)*C++=B[j++];
43主观题43 / 43
(1)应添加“intseta(intx)”。
(2)应添加“classTC3:publicTC1,privateTC2”。
(3)应添加“intC;”。
(4)应添加“seta(x);”。
查看答案
使用VC++6.0打开考生文件夹下的源程序文件3.Cpp。其中定义的类不完整,按要求完成下列操作,将类的定义补充完整。
(1)完成类TCl的成员函数sEtA的定义,定义sEtA对象,x为int类型,请在注释1后添加适当的语句。 (2)完成类TC3多继承类TCl和TC2的定义,请在注释2后添加适当的语句。
(3)定义类TC3中的私有成员C为int型,请在注释3后添加适当的语句。
(4)完成sEtC中对基类的变量A的赋值,请在注释4后添加适当的语句。
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。
试题程序:
#inCluDE(iostrEAm.h>
ClAsSTC1{intA; puBliC:
//********1********
{
rEturnA=x:
}
voiDshowA()
{
Cout<<A<<EnDl;
}
};
ClAssTC2
{
intB;
puBliC:
voiDsEtB(intx)
{
B=x:
}
voiDshowB()
{
Cout<<B<<EnDl;
}
};
//********2********
{
privAtE:
//********3********
puBliC:
voiDsEtC(intX,inty,intz)
{
C=Z:
//********4********
sEtB(y);
}
voiDshowC()
{
Cout<<E<<EnDl;
}
};
voiDmAin()
{
TC3C;
C.sEtA(5);
C.showA();
C.sEtE(5,7,4);
C.showC();
}
← 上一卷下一卷 →