2012面向对象程序设计试题集(3)

2019-04-02 13:27

下列运算符中,不能重载的是 ( ) A. && B. != C. .(成员访问运算符) D. ->

已知有数组定义 char a[3][4];

下列表达式中错误的是( )

A. a[2]=”WIN” B. strcpy(a[2],”WIN”) C. a[2][3]=?W? D. a[0][1]=a[0][1]

有如下程序:

#include using namespace std; class Toy{ public:

Toy(char* _n) { strcpy (name,_n); count++;} ~Toy(){ count--; }

char* GetName(){ return name; } static int getCount(){ return count; } private:

char name[10]; static int count; }; int Toy::count=0; int main(){

Toy t1(“Snoopy”),t2(“Mickey”),t3(“Barbie”); cout<

运行时的输出结果是( )

A.1 B.2 C.3 D.运行时出错

将运算符重载为类成员函数时,其参数表中没有参数,说明该运算是( )

A.不合法的运算符 B.一元运算符 C.无操作数的运算符 D.二元运算符 有如下程序:

#include using namespace std; class Toy{ public:

Toy(char* _n) { strcpy (name,_n); count++;} ~Toy(){ count--; }

char* GetName(){ return name; } static int getCount(){ return count; } private:

char name[10];

static int count; }; int Toy::count=0; int main(){

Toy t1(“Snoopy”),t2(“Mickey”),t3(“Barbie”); cout<

运行时的输出结果是( )

A.1 B.2 C.3 D.运行时出错 有如下两个类定义 class AA{};

class BB{ AA v1,*v2; BB v3; int *v4; };

其中有一个成员变量的定义是错误的,这个变量是( ) A.v1 B.v2 C.v3 D.v4 有如下类定义: class XX{ int xdata;

public: XX(int n=0) : xdata (n) { } }; class YY : public XX{ int ydata;

public: YY(int m=0, int n=0) : XX(m), ydata(n) { } }; YY类的对象包含的数据成员的个数是( ) A.1 B.2 C.3 D.4

字符串常量\在内存中需要占用( )字节 A.6 B.7 C. 8 D. 9 下列表达方式正确的是( )。

A.class P{ B. class P{ public: public: int x=15; int x;

void show(){cout<

f=25; void Seta (int x) {a=x;} 关于友元的描述中,( )是错误的。

A.友元函数是成员函数,它被说明在类体内 B.友元函数可直接访问类中的私有成员 C.友元函数破坏封装性,使用时尽量少用 D.友元类中的所有成员函数都是友元函数 有如下程序段: int i=4; int j=1; int main() { int i=8,j=i;

cout<

运行时的输出结果是( )

A.44 B.41 C.88 D.81 已知表达式++a中的“++”是作为成员函数重载的运算符,则与++a等效的运算符函数调用形式为( A.a.operator++(1) B.operator++(a) C.operator++(a,1) D.a.operator++() #include using namespace std; class Test{ public: Test(){}

~Test(){cout<<'#';} };

) int main(){

Test temp[2], *pTemp[2]; return 0; }

执行这个程序输出星号(#)的个数为( )。 A.1 B.2 C.3 D.4 关于多继承二义性的描述,( )是错误的。

A.派生类的多个基类中存在同名成员时,派生类对这个成员访问可能出现二义性

B.一个派生类是从具有共同的间接基类的两个基类派生来的,派生类对该公共基类的访问可能出现二义性

C.解决二义性最常用的方法是作用域运算符对成员进行限定 D.派生类和它的基类中出现同名函数时,将可能出现二义性

将运算符重载为类成员函数时,其参数表中没有参数,说明该运算是( A.不合法的运算符 B.一元运算符 C.无操作数的运算符 D.二元运算符 有如下程序

#include using namespace std; class A { public:

A(int i):r1(i) {}

void print() {cout<

void print() const {cout<

A al(2); const A a2(4); al.print();a2.print(); return 0; }

运行时的输出结果是( )

A.运行时出错 B.E2-C16- C.C4-C16- D.E2-E4- 下列有关运算符函数的描述中,错误的是( ) A.运算符函数的名称总是以operator为前缀 B.运算符函数的参数可以是对象

C.运算符函数只能定义为类的成员函数

D.在表达式中使用重载的运算符相当于调用运算符重载函数 下列关于this指针的说法正确的是( ) A. this指针存在于每个函数之中

B. 在类的非静态函数中this指针指向调用该函数的对象 C. this指针是指向虚函数表的指针

D. this指针是指向类的函数成员的指针 有如下程序段: int i=5;

while (int i=0) { cout<<\

运行时输出“*”的个数是 ( )

) A. 0 B.1 C. 5 D. 无穷

下列有关内联函数的叙述中,正确的是( )。 A.内联函数在调用时发生控制转移

B.内联函数必须通过关键字inline 来定义 C.内联函数是通过编译器来实现的

D.内联函数体的最后一条语句必须是return 语句 一个类可包含析构函数的个数是( )

A.0个 B.1个 C.至少一个 D.0个或多个 关于虚函数的描述中,正确的是( )。 A.虚函数是一个static类型的成员函数 B.虚函数是一个非成员函数

C.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数 D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型 下面对于友元函数描述正确的是( )

A.友元函数的实现必须在类的内部定义 B.友元函数是类的成员函数

C.友元函数破坏了类的封装性和隐藏性 D.友元函数不能访问类的私有成员

在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是( ) A.派生类的对象可以赋给基类的对象 B.派生类的对象可以初始化基类的引用

C.派生类的对象可以直接访问基类中的成员 D.派生类的对象的地址可以赋给指向基类的指针 下列关于虚基类的描述,错误的是( ) A.设置虚基类的目的是为了消除二义性 B.虚基类的构造函数在非虚基类之后调用

C.只有最远派生类的构造函数调用虚基类的构造函数

D.若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数 下面描述中,表达错误的是( )

A.公有继承时基类中的public成员在派生类中仍是public的 B.公有继承是基类中的private成员在派生类中仍是private的 C.公有继承时基类中的protected成员在派生类中仍是protected的 D.私有继承时基类中的public成员在派生类中是private的 10. 关于new运算符的下列描述中,错误的是( )。 A.它可以用来动态创建对象和对象数组

B.使用它创建的对象和对象数组可以使用运算符delete删除 C.使用它创建对象时要调用构造函数

D.使用它创建对象数组时必须指定初始值 if 语句的语法格式可描述为 格式1:if(<条件>)<语句> 或

格式2:if(<条件>)<语句1>else<语句2>

关于上面的语法格式,下列表述中错误的是( )

A.<条件>部分可以是一个if 语句,例如if(if(a =0)?)? B.<语句>部分可以是一个if 语句,例如if(?)if(?)?

C.如果在<条件>前加上逻辑非运算符!并交换<语句1>和<语句2>的位置,语句功能不变

D.<语句>部分可以是一个循环语句,例如if(?)while(?)?

有如下类定义和变量定义:下列情况中,不会调用拷贝构造函数的是( )。 A.用一个对象去初始化同一类的另一个新对象时 B.将类的一个对象赋予该类的另一个对象时

C.函数的形参是类的对象,调用函数进行形参和实参结合时 D.函数的返回值是类的对象,函数执行返回调用时 有如下类定义:

class XX{ int xx; public:

XX():xx(0) {cout<

XX( int n):xx(n) { cout<

YY():yy(0) {cout<

YY(int n): XX(n+1), yy(n) {cout<

A.YY y1(0,0); B.YY y2(1); C.YY y3(0); D.YY y4; 下面对静态数据成员的描述中,正确的是( )。

A.静态数据成员可以在类体内进行初始化B.不能用参数初始化表对静态数据成员初始化 C.静态数据成员只能用类名调用 D.静态数据成员在定义对象时被分配空间 对C++编译器区分重载函数无任何意义的信息是( )

A.参数类型 B.参数个数 C.返回值类型 D.常成员函数关键字const 下面( )项是对构造函数和析构函数的正确定义。 A.void X::X(), void X::~X() B.X::X(参数), X::~X() C.X::X(参数), X::~X(参数)

D.void X::X(参数), void X::~X(参数) 有如下程序段: int i=4; int j=1;

int main() { int i=8,j=i; cout<

C++中的类有两种用法:一种是类的实例化,即生成类对象,并参与系统的运行;另一种是通过()派生了新的类。

A.复用 B.继承 C.封装 D.引用 下列对继承的描述中,错误的是( )。

A. 析构函数不能被继承 B. 派生类也是基类的组合

C. 派生类的成员除了它自己的成员外,还包含了它的基类的成员

D. 派生类中继承的基类成员的访问权限到派生类保持不变 派生类的对象对它的基类成员中( )是可以访问的。

A.公有继承的公有成员 B.公有继承的私有成员 C.公有继承的保护成员 D.私有继承的公有成员 下列说法错误的是( )。

A. 公有继承的基类中的public成员在派生类中仍是public的


2012面向对象程序设计试题集(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:导案22《狼牙山五壮士》

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: