16秋北理工《面向对象程序设计》在线作业Word格式.docx
《16秋北理工《面向对象程序设计》在线作业Word格式.docx》由会员分享,可在线阅读,更多相关《16秋北理工《面向对象程序设计》在线作业Word格式.docx(53页珍藏版)》请在冰豆网上搜索。
B.string
C.char
D.void
8.下列函数中,不是类的成员函数的是()。
A.构造函数
B.友元函数
C.析构函数
D.复制构造函数
9.下列关于函数重载的描述中,错误的是()。
A.函数重载就是用相同的函数名定义多个函数
B.重载函数的参数列表必须不同
C.重载函数的返回值类型必须不同
D.重载函数的参数可以带有默认值
10.设Address表示整型变量x的地址,则下列语句执行后的输出结果为()。
intx=100,&
r=x;
cout<
<
x<
'
-'
&
r<
endl;
A.Address-100
B.100-100
C.Address-Address
D.100-Address
11.下列语句中,会产生编译错误的是()。
A.intx=5;
int&
ref=x;
B.constintsize;
C.intx=5;
x++;
D.constintsize=100;
12.在C++中,扩充类定义需要借助于()。
A.对象
B.继承
C.重载
D.函数
13.下列关于构造函数和析构函数的描述中,错误的是()。
A.构造函数可以重载
B.析构函数名与类名相同
C.构造函数中可以设置参数的默认值
D.类中只有一个析构函数
14.假定k是一个double类型的变量,则关于变量p的正确定义语句为()。
A.doublep=&
k
B.int*p=&
C.double&
p=*k
D.char*p=”Thankyou!
”
15.若有如下函数声明:
voidFun(int);
,则下列()不能与该函数进行重载。
A.voidFun(int,int);
B.voidFun(double);
C.intFun(int);
D.voidFun(int)const
16.关于封装,下列说法中不正确的是()。
A.通过封装,对象的全部属性和操作结合在一起,形成一个整体
B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)
C.通过封装,每个对象都成为相对独立的实体
D.通过封装,对象的属性都是不可见的
17.下列语句中,会产生编译错误的是()。
inti=0,j=1;
A.int&
r=i;
B.r=j;
C.r=r+5;
D.int*p=&
i;
18.下列关于运算符重载的描述中,______是正确的。
A.运算符重载可以改变运算数的个数;
B.运算符重载可以改变优先级;
C.运算符重载可以改变结合性;
D.运算符重载不可以改变语法结构。
19.下列关于派生类的描述中,错误的是()。
A.派生类继承了基类的所有成员
B.派生类能够作为基类继续派生新类
C.派生类可以有多个直接基类
D.派生类的默认继承方式是public
20.下列关于C++函数的描述中,正确的是()。
A.每个函数至少要有一个参数
B.每个函数都必须返回一个值
C.函数在被调用之前必须先进行声明或定义
D.函数不能自己调用自己
21.下列函数参数默认值定义错误的是()。
A.Fun(intx=0,inty=0)
B.Fun(intx,inty)
C.Fun(intx,inty=0)
D.Fun(intx=0,inty)
22.下列关键字中不能用来声明类成员访问权限的是()。
A.public
B.static
C.protected
D.private
23.对虚函数的调用()
A.一定使用动态联编
B.必须使用动态联编
C.一定使用静态联编
D.不一定使用动态联编
24.下列程序的输出结果是()。
#include<
iostream.h>
classVAC{public:
intf()const{return3;
}intf(){return5;
}};
intmain(){VACv1;
constVACv2;
v1.f()<
v2.f();
return0;
}
A.53
B.35
C.55
D.33
25.下列程序的输出结果是()。
classMyClass{public:
MyClass(){cout<
A'
;
}MyClass(charc){cout<
c;
}~MyClass(){cout<
B'
intmain(){MyClassp1,*p2;
p2=newMyClass('
X'
);
deletep2;
A.ABX
B.ABXB
C.AXB
D.AXBB
26.假定p是具有int**类型的指针变量,则给p赋值的正确语句为()。
A.p=newint
B.p=newint*
C.p=newint**
D.p=newint[10]
27.有如下头文件:
intf1();
staticintf2();
classMy{public:
intf3();
staticintf4();
};
在上述4个函数中,具有隐含的this指针的是()。
A.f1
B.f2
C.f3
D.f4
28.下列关于友元的描述中,错误的是()。
A.友元破坏了类的封装性
B.友元提高了程序的运行效率
C.友元可以在类外声明和定义
D.友元能够访问类中的私有成员
29.下列选项中,表示纯虚函数的是()。
A.virtualvoidfun()=0;
B.2.voidfun(int)=0;
C.virtualintfun(int);
D.virtualvoidfun(int){}
30.在下面的类定义中,横线处应填入的内容是()。
classMyClass{private:
staticintcount;
count=0;
B.staticint
C.intMyClass
D.staticintMyClass:
31.C++中用于实现运行时多态性的是()。
A.内联函数
B.重载函数
C.静态函数
D.虚函数
32.列符号中能够作为C++标识符的是()。
A.const
B.2a
C._shape
D._count
33.派生类对象对它的基类成员中()是可以访问的。
A.公有继承的私有成员
B.公有继承的保护成员
C.公有继承的公有成员
D.私有继承的公有成员
34.关于运行时多态的下列描述中,______是错误的。
A.运行时多态是以虚函数为基础的;
B.运行时多态是在运行时确定所调用的函数代码的;
C.用基类指针或引用所标识的派生类对象来操作虚函数才能实现运行时多态;
D.运行时多态是在编译时确定操作函数的
35.下列描述中,错误的是()。
A.析构函数中调用虚函数采用静态联编
B.对虚析构函数的调用可以采用动态联编
C.当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数
D.构造函数可以声明为虚函数
36.下列关于对象概念的描述中,错误的是()。
A.对象就是C语言中的结构变量
B.对象代表着正在创建的系统中的一个实体
C.对象是状态和操作(或方法)的封装体
D.对象之间的信息传递是通过消息进行的
37.下列函数参数默认值定义错误的是()。
38.下面是派生类声明的开始部分,正确的是()。
A.classvirtualB:
publicA
B.virtualclassB:
C.classB:
publicAvirtual
D.classB:
virtualpublicA
二、多选题(共4道试题,共8分。
1.实际的建模过程中,可以把节点分()
A.处理器
B.设备
C.应用软件
D.系统软件
2.时序图包含的元素分别是()
B.生命线
C.消息
D.激活
3.配置图中通常包含两种元素,分别是()
A.节点
B.依赖关系
C.关联关系
D.接口
4.类中属性的可见性主要包括()
A.公有
B.私有
C.其它
D.受保护
三、判断题(共8道试题,共16分。
1.访问对象成员时要使用运算符.或->
。
A.错误
B.正确
2.可以在类的构造函数中对静态数据成员进行初始化。
3.某类中的友元类的所有成员函数都可以存取或修改该类中的私有成员。
4.构造函数可以被继承
5.重载运算符保持原运算符的优先级和结合性不变。
6.只要是类M继承了类N,那么类M就是类N的子类型。
7.一个类的构造函数中可以不包含对其子对象的初始化
8.派生类从基类派生而来,不能再生成新的派生类。
1.下列选项中,表示纯虚函数的是()。
2.在派生类中重新定义虚函数时,除了()方面,其他方面都必须与基类中相应的虚函数保持一致。
A.参数个数
B.参数类型
C.函数名称
D.函数体
3.若函数原型为voidFun(intx,inty=6,intchar='
4.派生类对象对它的基类成员中()是可以访问的。
5.下列关于继承的描述中,错误的是()。
A.派生类对象不能访问基类的保护成员
B.派生类对基类成员的访问权限随着继承方式而改变
C.派生类成员可以访问基类的私有成员
D.派生类继承了基类的所有成员
6.一个类的构造函数为“B(intax,intbx):
a(ax),b(bx){}”,执行“Bx(1,2),y(3,4);
x=y;
”语句序列后x.a的值为______。
A.1
B.2
C.3
D.4
7.列符号中能够作为C++标识符的是()。
8.有如下类定义:
intgetRef()const{return&
a;
}intgetValue()const{returna;
}voidset(intn)const{a=n;
}friendvoidshow(MyClassobj)const{cout<
下列函数中,定义正确的是()。
A.getRef
B.getValue
C.set
D.show
9.执行下列程序后的输出结果是()。
intfun1(intx){return++x;
}intfun2(int&
x){return++x;
}intmain(){inta=0,b=0,c=0;
c=fun1(a)+fun2(b);
a<
b<
c<
A.002
B.012
C.102
D.112
10.在C++中,扩充类定义需要借助于()。
11.假定p指向的字符串为”string”,若要输出这个字符串的地址值,则使用()。
A.cout<
*p
B.cout<
p
C.cout<
D.cout<
12.下列描述中,正确的是()
A.虚函数是一个static类型的成员函数
B.虚函数是一个非成员函数
C.抽象类是指具有纯虚函数的类
D.抽象类可以说明其对象
13.多继承时对象的构造顺序中包含如下4步:
①所有非虚基类的构造函数按照它们被继承的顺序构造;
②所有虚基类的构造函数按照它们被继承的顺序构造;
③所有子对象的构造函数按照它们声明的顺序构造;
④派生类自己的构造函数体;
这4个步骤的正确顺序是()。
A.④③①②
B.②④③①
C.②①③④
D.③④①②
14.在一个派生类对象结束其生命周期时,下列描述中正确的是()。
A.先调用派生类的析构函数后调用基类的析构函数
B.先调用基类的析构函数后调用派生类的析构函数
C.如果基类没有定义析构函数,则只调用派生类的析构函数
D.如果派生类没有定义析构函数,则只调用基类的析构函数
15.设置虚基类的目的是()。
A.简化程序
B.消除二义性
C.提高运行效率
D.减少目标代码
16.下列函数中,不是类的成员函数的是()。
17.设置虚基类的目的是_____。
A.简化程序;
B.消除二义性;
C.提高运行效率;
D.减少目标代码;
18.设Address表示整型变量x的地址,则下列语句执行后的输出结果为()。
19.下列情况中,不会调用复制构造函数的是()。
A.用一个对象去初始化同一类的另一个新对象时
B.将类的一个对象赋值给该类的另一个对象时
C.函数的形参是类的对象,调用函数用形参初始化实参时
D.函数的返回值是类的对象,函数执行返回调用时
20.下列说法不正确的是_______。
A.在类中,成员的默认访问特性是私有的
B.类封装了数据和操作。
C.类实质上是一种数据类型。
D.在类的定义中,必须包含private、public、protected三种存取方式对应得部分。
21.C++中用于实现运行时多态性的是()。
22.下列关于派生类的描述中,错误的是()。
23.下列语句中,会产生编译错误的是()。
24.有如下类声明:
classFoo{voidfun();
,则Foo类的成员fun是()。
A.公有数据成员
B.公有成员函数
C.私有数据成员
D.私有成员函数
25.print()函数是某类中无返回值的常成员函数,下列表示中,正确的是()。
A.voidprint()const
B.constvoidprint()
C.voidconstprint()
D.voidprint(const)
26.下列关于运算符重载的描述中,______是正确的。
27.下列关于函数重载的描述中,错误的是()。
28.表达式18/4*sqrt(4.0)/5的数据类型是()。
B.float
C.double
D.不确定
29.整型变量中,八进制数的数字前面需要加数字()
A.8
B.0X
C.不需要
D.0
30.下列描述中,错误的是()。
A.公有继承时基类中的public成员在派生类中仍是public的
B.公有继承时基类中的private成员在派生类中仍是private的
C.私有继承时基类中的public成员在派生类中是private的
D.保护继承时基类中的public成员在派生类中是protected的
31.下列对引用的陈述中不正确的是()。
A.每一个引用都是其所引用对象的别名,因此必须初始化
B.形式上针对引用的操作实际上作用于它所引用的对象
C.一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行
D.不需要单独为引用分配存储空间
32.下列描述中,错误的是()。
33.在下面的类定义中,横线处应填入的内容是()。
34.下列程序的输出结果是()。
classPart{public:
Part(intx=0):
val(x){cout<
val;
}~Part(){cout<
}private:
intval;
classWhole{public:
Whole(intx,inty,intz=0):
p2(x),p1(y),val(z){cout<
}~Whole(){cout<
Partp1,p
A.123321
B.213312
C.213
D.123123
35.不可以成为类的数据成员的是______
36.下列关于C++函数的描述中,正确的是()。
37.下列不是C++基本数据类型的是______。
38.下列程序的输出结果是()。
1.时序图包含的元素分别是()
2.配置图中通常包含两种元素,分别是()
3.类中属性的