面向对象程序设计14春学期《面向对象程序设计》在线作业
一,单选题
1.友元重载运算符obj1obj2被C++编译器解释为()。
A.operator(obj1,obj2)
B.(obj1,obj2)
C.obj1.operator(obj2)
D.obj2.operator(obj1)
?
正确答案:A
2.结构化程序设计方法以()为中心进行分析和设计。
A.结构
B.模块
C.对象
D.类
?
正确答案:B
3.变量的引用,其含义是指该变量的()。
A.值
B.类型
C.别名
D.地址
?
正确答案:C
4.多继承的构造函数顺序可分为如下4步:①所有非虚基类的构造函数按照它们被继承的
顺序构造。②所有虚基类的构造函数按照它们被继承的顺序构造。③所有子对象的构造函
数按照它们声明的顺序构造。④派生类自己的构造函数体这四个步骤的正确顺序是()。
A.④③①②
B.②④③①
C.②①③④
D.③④①②
?
正确答案:C
5.在使用类创建对象时,系统会自动调用该对象的()完成对象中数据成员的初始化等操作。
A.友元函数
B.虚函数
C.构造函数
D.析构函数
?
正确答案:C
6.在一个string类对象表示的字符串中查找子串,应该使用string类的()函数。
A.assign
B.insert
C.swap
D.find
?
正确答案:D
7.类aClass的定义如下:classaClass{public:aClass(){}aClass(inti){value=new
int(i);}int*value;}若要对类中的value赋值,则下面的语句中,正确的是()。
A.aClassmy;my.value=10;
B.aClassmy;*my.value=10;
C.aClassmy;my.*value=10;
D.aClassmy(10);
?
正确答案:D
8.已知“inta=10,*p;int*r=p;r=a;*p=20;couta;”,则输出为()。
A.10
B.20
C.不确定值
D.程序有错误
?
正确答案:B
9.已知“float*p;p=newfloat[2];”,若分配成功,则指针p在堆中获得的字节数为()。
A.2
B.4
C.8
D.不确定
?
正确答案:C
10.关于纯虚函数和抽象类的描述中,错误的是()。
A.纯虚函数是一种特殊的虚函数,它没有具体的实现。
B.抽象类是指具有纯虚函数的类。
C.一个基类中有纯虚函数,该类的派生类一定不再是抽象类。
D.抽象类作为基类来使用,其纯虚函数的实现由派生类给出。
?
正确答案:C
11.假设堆内存分配均成功,则下面程序段完全正确的是()。
A.int*p=newint(3);cout*p;deletep;
B.int*p=newint[5]={1,2,3,4,5};for(inti=0;i5;i++)coutp[i];delete[]p;
C.int*p=newint[5];for(inti=0;i5;i++,p++){*p=i;cout*p;}delete[]p;
D.以上程序段均正确
?
正确答案:A
12.要在类对象上使用运算符,以下不用必须被重载的运算符是()。
A.[]
B.=
C.++
D.--
?
正确答案:B
13.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是()。
A.派生类的对象可以直接访问基类的所有成员
B.派生类的对象可以初始化基类的引用
C.派生类的对象不可以直接访问基类中的私有成员
D.派生类的对象的地址可以赋给指向基类的指针
?
正确答案:A
14.下列运算符中,()在C++中不能重载。
A.?:
B.+
C.-
D.=
?
正确答案:A
15.假定MyClass为一类,执行MyClassa,b(2),*p[2];语句时会自动调用该类构造函数()
次。
A.2
B.3
C.4
D.5
?
正确答案:A
16.类的默认的无参构