|

已知“int a=10,*p;int *r=p; r=a;*p=20;coutlt;lt;a;”,则输出为()。
A:10
B:20
C:不确定值
D:程序有错误
可以用p.a的形式访问派生类对象p的基类成员a其中a是( )。
A:私有继承的公有成员
B:公有继承的私有成员
C:公有继承的保护成员
D:公有继承的公有成员
下列关于虚函数的说明中,正确的是()。
A:从虚基类继承的函数都是虚函数
B:虚函数不得是静态成员函数
C:只能通过指针或引用调用虚函数
D:抽象类中的成员函数都是虚函数
在一个string类对象表示的字符串中查找子串,应该使用string类的()函数。
A:assign
B:insert
C:swap
D:find
执行语句“string str("abc");”时,系统会自动调用string类的构造函数()。
A:string()
B:string(const char *s)
C:string(const string str)
D:string(size_type n, char c)
下面说法中正确的是( )。
A:一个类只能定义一个构造函数,但可以定义多个析构函数
B:一个类只能定义一个析构函数,但可以定义多个构造函数
C:构造函数与析构函数同名,只要名字前加了一个求反符号(~)
D:构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以
已知函数原型:void f(int a, int b=3,char c='*'); 则下面的函数调用中,不合法的调用是()。
A:f(5)
B:f(5,8)
C:f(6, , '#')
D:f(0,0, '#')
( )是析构函数的特征。
A:析构函数可以有一个或多个参数
B:析构函数定义只能在类体内
C:析构函数名与类名不同
D:一个类中只能定义一个析构函数
已知“int a=10;int r=a; r=r 20;coutlt;lt;a;”,则输出为()。
A:10
B:20
C:30
D:不确定值
关于下面程序段说法正确的是( )
class X
{
private:
int n;
public:
X(X);
};
X::X(Xx) {n=x.n}
X obj1,obj2(obj1);
A:语句obj2(obj1);的功能是用对象obj1初始化具有相同类类型的对象obj2
B:语句obj2(obj1);的功能是用对象obj2初始化具有相同类类型的对象obj1
C:X(Xx)中的符号可以删除
D:X(Xx)函数中不能访问对象的私有成员
类aClass的定义如下:
class aClass
{public:
aClass(){}
aClass(int i){value=new int(i);}
int *value;
}
若要对类中的value赋值,则下面的语句中,正确的是()。
A:aClass my; my.value=10;
B:aClass my; *my.value=10;
C:aClass my; my.*value=10;
D:aClass my(10);
包含类fstream定义的头文件是( )。
A:fstream
B:ofstream
C:ifstream
D:iostream
如果类A被说明成类B的友元,则()。
A:类A的成员函数不得访问类B的所有成员
B:类A的成员函数可以访问类B的所有成员
C:类A的成员即类B的成员
D:类B的成员即类A的成员
进行文件操作时需要包含_
()头文件。
A:iostream
B:fstream
C:stdio
D:stdlib
派生类中的成员不能访问基类中的()。
A:私有成员
B:公有成员
C:保护成员
D:以上都可以
下列关于类的继承描述中,( )是错误的。
A:派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数
B:派生类也是基类,但基类不一定具有派生类的全部属性和方法
C:继承描述类的层次关系,派生类可以具有与基类相同的属性和方法
D:一个基类可以有多个派生类,一个派生类可以有多个基类
要求打开文件 d:\file.dat,可写入数据,正确的语句是( )。
A:ifstream infile("d:\file.dat", ios::in);
B:ifstream infile("d:\\file.dat", ios::in);
C:ofstream infile("d:\file.dat", ios::out);
D:fstream infile("d:\\file.dat", ios::in| ios::out);
空类的声明( )是正确的。
A:class类名;
B:class类名{};
C:class类名{}
D:class类名
对于多重继承,有( )。
A:一个派生类只能有一个基类
B:一个基类只能产生一个派生类
C:一个基类必须产生多个派生类
D:一个派生类可有多个基类
( )的功能是对对象进行初始化。
A:析构函数
B:数据成员
C:构造函数
D:静态数据成员
在C 中,要实现动态联编,可以使用( )调用虚函数。
A:类名
B:派生类指针
C:对象名
D:基类指针
在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是()。
A:派生类的对象可以直接访问基类的所有成员
B:派生类的对象可以初始化基类的引用
C:派生类的对象不可以直接访问基类中的私有成员
D:派生类的对象的地址可以赋给指向基类的指针
下列关于C 类的描述中错误的是( )。
A:类与类之间可以通过一些手段进行通信和联络
B:类用于描述事物的属性和对事物的操作
C:类与类之间必须是平等的关系,而不能组成层次关系
D:类与类之间可以通过封装而具有明确的独立性
已知X类.则当程序执行到语句X *array=new X[2];时,调用了( )次构造函数。
A:0
B:1
C:2
D:3
下列关于构造函数调用顺序的描述中,正确的是()。
A:创建派生类对象时,先调用基类的构造函数,后调用派生类的构造函数
B:创建基类对象时,先调用基类的构造函数,后调用派生类的构造函数
C:创建派生类对象时,先调用派生类的构造函数,后调用基类的构造函数
D:创建基类对象时,先调用派生类的构造函数,后调用基类的构造函数
对基类和派生类的描述中错误的是( )。
A:派生类是基类的具体化
B:基类继承了派生类的属性
C:派生类是基类定义的延续
D:派生类是基类的特殊化
声明一个类的对象时,系统自动调用( )函数。
A:成员函数
B:构造函数
C:析构函数
D:普通函数
在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是()。
A:派生类的对象可以赋给基类对象
B:派生类的对象可以初始化基类的引用
C:派生类的对象可以直接访问基类的成员
D:派生类的对象的地址可以赋给指向基类的指针
在使用类创建对象时,系统会自动调用该对象的()完成对象中数据成员的初始化等操作。
A:友元函数
B:虚函数
C:构造函数
D:析构函数
下列关于构造函数的描述中,错误的是( )。
A:构造函数可以设置默认参数
B:构造函数在说明类变量时自动执行
C:构造函数可以对静态数据成员进行初始化
D:构造函数可以重载
下列引用的定义中,( )是错误的。
A:int i; int j=i;
B:int i; int j; j=i;
C:float i; float j=i;
D:char d; char k=d;
在C 中,类与类之间的继承关系具有( )。
A:自反性
B:对称性
C:传递性
D:反对称性
下面关于类的成员函数描述不正确的是()。
A:静态成员函数内可以直接访问类的非静态成员数据
B:静态成员函数内可以直接访问类的静态成员数据
C:非静态成员函数可以直接访问类的非静态成员数据
D:非静态成员函数可以直接访问类的静态成员数据
在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值( )。
A:不同
B:相同
C:相容
D:部分相同
用于类中虚成员函数说明的关键字( )。
A:virtual
B:public
C:protected
D:private
以app方式打开文件时,当前的读指针和写指针都定位于文件尾。
A:对
B:错
派生类对基类继承的成员函数进行重定义后,则通过派生类对象和基类对象调用的都是重定义后的成员函数。
A:对
B:错
C 的I/O系统通过流的机制实现文件和控制台的输入输出操作。
A:对
B:错
定义重载函数时,应保证函数类型有所不同。
A:对
B:错
在一个类中最多只能定义1个构造函数和1个析构函数。
A:对
B:错
派生类是从基类派生出来,它不能再生成新的派生类。
A:对
B:错
C语言中scanf命令在c 中改用cin。
A:对
B:错
预定义的提取符和插入符是可以重载的。
A:对
B:错
对象数组的元素可以是不同类的对象。
A:对
B:错
在一个类中声明了某个静态数据成员,并在类外给出其定义和初始化后,若未定义该类的对象,该静态数据成员则不存在。
A:错误
B:正确
cin是输出流的一个对象,处理标准输出。
A:对
B:错
说明或定义对象时,类名前面不需要加class关键字。
A:对
B:错
编程是将所设计的算法转换成计算机能够运行的代码的过程。
A:对
B:错
定义模板的关键字是template。
A:对
B:错
程序设计过程是指编写程序的过程。
A:对
B:错
|
|