};
voidmain()
{
Cc1,c2(5,6);
}
模拟试题二
一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将其代码填在题后的括号内。
错选或未选均无分。
1.在C++中,函数原型不能标识()
A.函数的返回类型B.函数参数的个数
C.函数参数类型D.函数的功能
2.在C++程序中,对象之间的相互通信通过()
A.继承实现B.调用成员函数实现
C.封装实现D.函数重载实现
3.对于任意一个类,析构函数的个数最多为()
A.0B.1C.2D.3
4.下面函数模板定义中不正确的是()
A.templateB.template
QF(Qx){QF(Qx){
returnQ+x;returnx+x;
}}
C.templateD.template
TF(Tx){TF(Tx){
returnx*x;returnx>1;
}}
5.友元关系不能()
A.继承
B.是类与类的关系
C.是一个类的成员函数与另一个类的关系
D.提高程序的运行效率
6.语句ofstreamf(″SALARY.DAT″,ios:
:
app|ios:
:
binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且()
A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件
B.若文件存在,将其置为空文件;若文件不存在,打开失败
C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件
D.若文件存在,打开失败;若文件不存在,建立一个新文件
7.下面说法正确的是()
A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C.类的内联函数必须在类体内定义
D.类的内联函数必须在类体外通过加关键字inline定义
8.可以用p.a的形式访问派生类对象p的基类成员a,其中a是()
A.私有继承的公有成员B.公有继承的私有成员
C.公有继承的保护成员D.公有继承的公有成员
9.在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是()
A.派生类的对象可以赋给基类的对象
B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类中的成员
D.派生类的对象的地址可以赋给指向基类的指针
10.对于类定义
classA{
public:
virtualvoidfunc1(){}
voidfunc2(){}
};
classB:
publicA{
public:
voidfunc1(){cout<<″classBfunc1″<virtualvoidfunc2(){cout<<″classBfunc2″<};
下面正确的叙述是()
A.A:
:
func2()和B:
:
func1()都是虚函数
B.A:
:
func2()和B:
:
func1()都不是虚函数
C.B:
:
func1()是虚函数,而A:
:
func2()不是虚函数
D.B:
:
func1()不是虚函数,而A:
:
func2()是虚函数
第二部分非选择题(共80分)
二、填空题(本大题共10小题,每小题2分,共20分)不写解答过程,将正确的答案写在每小题的横线处。
错填或不填均无分。
11.定义类的动态对象数组时,系统只能够自动调用该类的_________构造函数对其进行初始化。
12.在C++程序设计中,建立继承关系倒挂的树应使用_________继承。
13.表达式cout<14.基类的公有成员在派生类中的访问权限由_________决定。
15.C++支持的两种多态性分别是_________多态性和_________多态性。
16.C++中语句constchar*constp=″hello″;所定义的指针p和它所指的内容都不能被_________。
17.假定AB为一个类,则语句AB(AB&x);为该类_________构造函数的原型说明。
18.将关键字const写在成员函数的_________和_________之间时,所修饰的是this指针。
19.在C++中,访问一个对象的成员所用的运算符是_________,访问一个指针所指向的对象的成员所用的运算符是_________。
20.派生类从一个或多个以前定义的该类的_________继承数据和函数。
三、改错题(本大题共5小题,每小题2分,共10分)
21.指出下面程序段中的错误,并说明出错原因。
classA{
inta,b;
public:
A(intaa,intbb){a=aa;b=bb;}
};
Ax(2,3),y(4);
22.指出并改正下面利用类模板的对象定义中的错误。
template
classTany{
Tx,y;
public:
Tany(Ta,Tb){x=a,y=b;}
Tsum(){returnx+y;}
};
Tany(int)obj(10,100);
23.指出下面程序段中的错误,并说明出错原因。
classone{
private:
inta;
public:
voidfunc(two&);
};
classtwo{
private:
intb;
friendvoidone:
:
func(two&);
};
voidone:
:
func(two&r)
{
a=r.b;
}
24.指出下面程序段中的错误,并说明出错原因。
#include
classA{
public:
voidfun(){cout<<″a.fun″<};
classB{
public:
voidfun(){cout<<″b.fun″<voidgun(){cout<<″b.gun″<};
classC:
publicA