计算机等级考试二级C++真题文档格式.docx
《计算机等级考试二级C++真题文档格式.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级C++真题文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
A)并B)交
C)投影D)笛卡儿乘积
(9)在
E-R图中,用来表示实体之间联系的图形是()
A)矩形B)椭圆形
C)菱形D)平行四边形
(10)下列叙述中错误的是()
A)在数据库系统中,数据的物理结构必须与逻辑结构一致
B)数据库技术的根本目标是要解决数据的共享问题
C)数据库设计是指在已有数据库管理系统的基础上建立数据库
D)数据库系统需要操作系统的支持
(11)为了取代
C中带参数的宏,在
C++中使用
A)重载函数B)内联函数
C)递归函数D)友元函数
(12)下列关于类定义的说法中,正确的是
A)类定义中包括数据成员和函数成员的声明B)类成员的缺省访问权限是保护的
C)数据成员必须被声明为私有的D)成员函数只能在类体外进行定义
(13)下列关于派生类构造函数和析构函数的说法中,错误的是
A)派生类的构造函数会隐含调用基类的构造函数
B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数
C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数
D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数
(14)通过运算符重载,可以改变运算符原有的
A)操作数类型
C)优先级
(15)有如下函数模板:
template<
classT>
Tsquare(Tx){returnx*x;
}
其中
T是
A)函数形参
C)模板形参
(16)使用输入输出操作符
setw,可以控制
A)输出精度
C)对齐方式
(17)下列字符串中,不可以用作
C一标识符的是
A)y_2006
C)Return
(18)字面常量
42、4.2、42L的数据类型分别是
A)long,double,int
C)
int,double,long
(19)执行下列语句段后,输出字符“
*”的个数是
for(inti=50;
i>
1:
--i)cout<
<
'
*'
;
A)48
C)50
(20)有如下程序段:
inti=0,j=1;
int&
r=i;
//①
r=j;
//②
int*p=&
i;
//③
*p=&
r;
//④
其中会产生编译错误的语句是
A)④
C)②
(21)有如下函数定义:
voidfunc(inta,int&
b){a++;
b++;
若执行代码段:
intx=0,y=1;
func(x,y);
则变量
x和
y的值分别是
A)0和
1
C)0和
(22)有如下程序:
#include<
iostream>
usingnamespacestd;
classA{
public:
staticinta;
voidinit(){a=1;
A(inta=2){int();
a++;
};
intA:
:
a=0;
Aobj;
intmain()
{
cout<
obj.a;
return0;
B)操作数个数
D)结合性
B)函数实参
D)模板实参
B)输出宽度
D)填充字符
B)___TEST_H
D)switch
B)long,float,int
D)
int,float,long
B)49
D)51
B)③
D)①
B)1和
D)1和
j
运行时输出的结果是
A)0B)1
C)2D)3
(23)下列有关继承和派生的叙述中,正确的是
A)派生类不能访问基类的保护成员
B)作为虚基类的类不能被实例化
C)派生类应当向基类的构造函数传递参数
D)虚函数必须在派生类中重新实现
(24)下列运算符中,不能被重载的是
A)&
&
B)!
=
C).D)++
(25)下列函数模版中的定义中,合法的是
A)template<
typenameT>
Tabs(Tx){returnx<
0?
–x:
x;
B)templateclass<
T>
C)templateT<
abs(Tx){returnx<
D)tempIateTabs(Tx){returnx<
-x:
〕
(26)在语句
cin>
>
data;
中,cin是
A)C++的关键字B)类名
C)对象名D)函数名
(27)有如下程序:
#include<
classtest{
private:
inta;
test0{cout+"
constructor"
+endl;
test(inta){cout+a+endl;
test(consttest&
test)
a=test.a;
cout+,,copyconstructor"
test(){Cout+"
destructor"
intmain()
testA(3);
A)3
B)constructor
destructor
C)copyconstructor
D)3
(28)若有如下类声明
classMyClass{
MyClass(){cout<
1;
执行下列语句
MyClassa,b[2],*p[2]:
以后,程序的输出结果是
A)11B)111
C)1111D)11111
(29)有如下程序:
classPoint{
staticintnumber;
Pointo{number++;
~Point(){number--;
intPoint:
number--0;
voidmainO{
Point*ptr;
PointA,B;
Point*ptr_point=newPoint[3];
ptx=ptr_point;
PointC;
Gout+Point:
number+endl;
delete[]ptr;
A)3B)4
C)6D)7
(30)如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。
有如
下程序,没有使用多态机制。
classBase{
inta,b;
Base(intx,inty){a=x;
b=y;
voidshow(){cout<
a<
'
b<
endl;
classDerived:
publicBase{
intc,d;
Derived(intx,inty,intz,intm):
Base(x,y){c=z;
d=m;
c<
d<
BaseB1(50,50),*pb;
DerivedD1(10,20,30,40);
pb=&
D1;
return();
A)10,20
C)20,30
(31)有如下程序:
classA
A(inti){x=i;
voiddispa(){cout<
x<
’,’;
intx;
classB:
publicA
B(inti):
A(i+10){x=i;
voiddispb(){dispa();
cout<
endl;
B)30,40
D)50,50
private
Bb
(2);
b.dispb();
A)10,2B)12,10
C)12,2D)2,2
(32)虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用虚函数时,被调用的
是指针所指的实际对象的虚函数。
而非虚函数不支持多态调用。
有如下程序:
classBase
virtualvoidf(){cout<
”f0+”;
voidg(){cout<
”g0+”;
publicBase
voidf(){cout<
”f+”;
voidgo{cout<
”g+”;
intmain
Derivedd;
Base*p=&
d;
p->
f();
P->
g();
A)f+g+
C)f+g0+
(33)下面程序中对一维坐标点类
Point进行运算符重载
classPoint{
Point(intval){x=val;
Point&
operator++(){x++;
return*this;
B)f0+g+
D)f0+g0+
Pointoperator++(int){Pointold=*this;
++(*this);
returnold;
IntGetX()const{returnx;
Pointa(10);
(++a).GetX();
a++.GetX();
编译和运行情况是
A)运行时输出
1011B)运行时输出
1111
C)运行时输出
1112D)编译有错
(34)有如下程序:
charstr[100],*p;
"
Pleaseinputastring:
”;
cin;
str;
p=str;
for(inti=0;
*p!
=’\0’;
p++,i++);
“I”<
运行这个程序时,若输入字符串为
abcdefgabcd
则输出结果是
A)7B)12
C)13D)100
(35)有如下程序:
classSample
friendlongfun(Samples);
Sample(longa){x=a;
longx;
longfun(Samples)
if(s.x<
2)return1:
returns.x*fun(Sample(s.x-1)):
intsum=0;
i<
6;
i++){sum+=fun(Sample(i));
sum;
A)120B)16
C)154D)34
二、填空题(每空
2分,共30分)
(1)在深度为7的满二叉树中,度为2的结点个数为___________。
(2)软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于___________测试。
(3)在数据库系统中,实现各种数据管理功能的核心软件称为___________。
(4)软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。
编码和测试属于___________阶段。
(5)在结构化分析使用的数据流图(DFD)中,利用___________对其中的图形元素进行确切解释。
(6)C++中只有两个逻辑常量:
true和___________。
(7)若要访问指针变量p所指向的数据,应使用表达式___________。
(8)已知一个函数的原型是:
intfn(doublea);
若要以5.27为实参调用该函数,应使用表达式___________。
(9)有如下定义:
classMA{
intvalue;
MA(intn=0):
value(n){}
MA*ta,tb;
其中MA类的对象名标识符是___________。
(10)如下类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函
明完整。
classmyClass{
intdata;
myClass(intvalue);
//构造函数
myClass(const___________anotherObject);
//拷贝构造函数
(11)用来派生新类的类称为___________,而派生出的新类称为它的子类或派生类。
(12)有如下程序:
classCA{
CA(){cout+'
A'
;
classCB:
privateCA{
CB(){cout<
’B’;
intmain(){
CAa;
CBb;
这个程序的输出结果是___________。
(13)若将一个二元运算符重载为类的成员函数,其形参个数应该是___________个。
(14)有如下程序:
classDA{
intk;
DA(intx=1):
k(x){}
~DA(){cout<
k;
intmain(){
DAd[]={DA(3),DA(3),DA(3)};
DA*p=newDA[2];
delete[]p;
return();
(15)C++语言中的多态性分为编译时的多态性和___________时的多态性。