点击查看:2018年9月计算机二级C++考前基础练习题及答案汇总
1.有如下程序:
#included
usingnamespacestd;
voidfl(int&X,int&y){intz=x;x=y;y=z;)voidf2(intX,inty){intz=x;x=y;y=z;}intmain( ){
intx=10,y=26;
f1(X,y);
f2(x,y);
cout
}
运行时的输出结果是( )。
A.10
B.16
C.26
D.36
2.有如下程序:
#include
usingnamespacestd;
classXA{
inta;
public:
staticintb;
XA(intaa):a(aa){b++;}
~XA( ){}
intget( ){returna;}
};
intXA::b=0
intmain( ){
XAd1(1),d2(3);
cout
}
运行时的输出结果是( )。
A.5
B.6
C.7
D.8
3.有如下程序:
#include
usingnamespacestd:
classPoint{
intx,y;
public:
Point(intx1=0,inty1=0)):X(X1),y(y1){}
intget( ){returnx+y;)
};
classCircle{
Pointcenter}
intradius;
public:
Circle(intCX,intcy,intr):center(cx,cy),radius(r)
{}
intget( ){returncenter.get( )+radius;}
};
intmain( ){
Circlec(3,4,5);
cout
}
运行时的输出结果是( )。
A.5
B.7
C.9
D.12
4.若是对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是( )。
A.operatorlong( )const;
B.operatorlong(BigNumber);
C.longoperatorlong( )const;
D.longoperatorlong(BigNumber);
5.有如下函数模板定义:
template
T1FUN(T2n){returnn*5,0;}
若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应表示为( )。
A.FUN(9)
B.FUN<9>
C.FUN(9)
D.FUN<9>(double)
6.下列语句都是程序运行时的第1条输出语句,其中一条语句的输出效果与其他3条语句不同,该语句是( )。
A.cout
A.析构函数可以重载
B.析构函数由系统自动调用
C.每个对象的析构函数只被调用一次
D.每个类都有析构函数
8.下列关于构造函数的描述中,错误的是( )。
A.构造函数名与类名相同
B.构造函数可以有返回值
C.构造函数可以重载
D.每个类都有构造函数
9.若PAT是一个类,则程序运行时,语句“PAT(*ad){3};”调用PAT的构造函数的次数是( )。
A.0
B.1
C.2
D.3
10.下列描述中,错误的是( )。
A.公有继承时基类中的公有成员在派生类中仍是公有成员
B.公有继承时基类中的保护成员在派生类中仍是保护成员
C.保护继承时基类中的公有成员在派生类中仍是公有成员
D.保护继承时基类中的保护成员在派生类中仍是保护成员
参考答案:
1.A。【解析】该题考查了函数参数传递的两种方式:引用传递和值传递,引用传递时x和y会交换,而值传递时二者不交换,因此选10。
2.C。【解析】每调用一次get函数时,对新的类A对象进行一次实例化,调用一次构造函数,类A的静态成员变量b便加1。
3.D。【解析】简单类之间继承关系的调用,按照通常做法便可以得到答案。center.get()函数调用后,3和4的和被返回,接着再调用Circle类的radius成员变量5相加后得到12。
4.A。【解析】C++不仅可以对运算符进行重载,还可以重载类型转换符,函数声明的形式为:0perator类型符()const。
5.C。【解析】函数返回类型是double型,则T1为double型,T2为int型才符合函数模板的定义。
6.D。【解析】setw(6)将输出宽度设为6,如果位数不够,则在最左边补齐,因此该项输出一定不会与其他3项一致。
7.A。【解析】析构函数不能被重载,因为它的函数中不带有任何参数,也没任何返回值,函数只有一个版本即“~类名(){}”。
8.B。【解析】构造函数没有返回值,虽然叫函数,但是它没有任何返回值,包括void型都不是,官方叫法应该叫“构造器”。
9.A。【解析】PAT(*ad){3}该表达式表示一个指向类PAT的数组的指针,只是声明了该指针,而并没有进行实例化对象,因此该语句运行时并不会调用构造函数。
10.C。【解析】保护继承时,类成员的访问级别只能是降低为保护模式,因此即使基类的公有成员,也被缩小为保护模式。
微信搜索"考试吧"了解更多考试资讯、下载备考资料
相关推荐: