|
北理工《面向对象程序设计》在线作业
一、单选题:【38道,总分:76分】北京理工大学
1.整型变量中,八进制数的数字前面需要加数字( ) (满分:2)
A. 8
B. 0X
C. 不需要
D. 0
2.下列关于this指针的描述中,正确的是( )。 (满分:2)
A. 任何与类相关的函数都有this指针
B. 类的成员函数都有this指针
C. 类的友元函数都有this指针
D. 类的非静态成员函数都有this指针
3.下列描述中,错误的是( )。 (满分:2)
A. 内联函数主要解决程序的运行效率问题
B. 内联函数的定义必须出现在内联函数第一次被调用之前
C. 内联函数中可以包括各种语句
D. 对内联函数不可以进行异常接口声明
4.下列程序的输出结果是( )。#includeclassPart{public:Part(intx=0):val(x){cout<<val;}~Part( ){cout<<val;}private:intval;};classWhole{public:Whole(intx,inty,intz=0):p2(x),p1(y),val(z){cout<<val;}~Whole( ){cout<<val;}private:Partp1,p (满分:2)
A. 123321
B. 213312
C. 213
D. 123123
5.一个类的构造函数为“B(intax,intbx):a(ax),b(bx){}”,执行“Bx(1,2),y(3,4);x=y;”语句序列后x.a的值为( )。 (满分:2)
A. 1
B. 2
C. 3
D. 4
6.列符号中能够作为C++标识符的是( )。 (满分:2)
A. const
B. 2a
C. shape
D. count
7.下列描述中,错误的是( )。 (满分:2)
A. 析构函数中调用虚函数采用静态联编
B. 对虚析构函数的调用可以采用动态联编
C. 当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数
D. 构造函数可以声明为虚函数
8.有如下类声明:classFoo{voidfun( );};,则Foo类的成员fun是( )。 (满分:2)
A. 公有数据成员
B. 公有成员函数
C. 私有数据成员
D. 私有成员函数
9.有如下头文件:intf1( );staticintf2( );classMy{public:intf3( );staticintf4( );};在上述4个函数中,具有隐含的this指针的是( )。 (满分:2)
A. f1
B. f2
C. f3
D. f4
10.设置虚基类的目的是( )。 (满分:2)
A. 简化程序
B. 消除二义性
C. 提高运行效率
D. 减少目标代码
11.下列程序的输出结果是( )。#includeclassMyClass{public:MyClass( ){cout<<'A';}MyClass(charc){cout<<c;}~MyClass( ){cout<<'B';}};intmain( ){MyClassp1,*p2;p2=newMyClass('X');deletep2;return0; (满分:2)
A. ABX
B. ABXB
C. AXB
D. AXBB
12.ios提供的格式控制标志位中,( )是转换为八进制形式的标志位。 (满分:2)
A. hex
B. oct
C. dec
D. left
13.假定p指向的字符串为”string”,若要输出这个字符串的地址值,则使用( )。 (满分:2)
A. cout<<*p
B. cout<<p
C. cout<<p
D. cout<<p
14.下列程序的输出结果是( )。#includeclassVAC{public:intf( )const{return3;}intf( ){return5;}};intmain( ){VACv1;constVACv2;cout<<v1.f( )<<v2.f( );return0;} (满分:2)
A. 53
B. 35
C. 55
D. 33
15.释放一个类的对象时,系统自动调用( )。 (满分:2)
A. 构造函数
B. 析构函数
C. 成员函数
D. 友元函数
16.下列运算符中,在C++中不能重载的是( )。 (满分:2)
A.
B.( )
C. ::
D.( )
17.在横线处填入语句( )后,下列语句序列能够正确执行。。int*ptr;delete[]ptr; (满分:2)
A. ptr=new int(5);
B. ptr=new int[5];
C. ptr=new int;
D. ptr=malloc(5);
18.友元运算符obj1>obj2被C++编译器解释为( )。 (满分:2)
A. operator >(obj1,obj2)
B. >(obj1,obj2)
C. obj2.operator >(obj1)
D. obj1.operator >(obj2)
19.将一些函数体代码不是很大,但被频繁调用的函数定义为( ),可以解决程序中函数调用的效率问题。 (满分:2)
A. 重载函数
B. 内联函数
C. 递归函数
D. 友元函数
20.下面是派生类声明的开始部分,正确的是( )。 (满分:2)
A. class virtual B : public A
B. virtual class B : public A
C. class B : public A virtual
D. class B : virtual public A
21.下列关于C++函数的描述中,正确的是( )。 (满分:2)
A. 每个函数至少要有一个参数
B. 每个函数都必须返回一个值
C. 函数在被调用之前必须先进行声明或定义
D. 函数不能自己调用自己
22.如果派生类以protected方式继承基类,则基类的protected成员和public成员在派生中的访问权限分别为( )。 (满分:2)
A. public和public
B. public和protected
C. protected和public
D. protected和public
E. protected和protected
23.下列关键字中不能用来声明类成员访问权限的是( )。 (满分:2)
A. public
B. static
C. protected
D. private
24.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为( )。 (满分:2)
A. int*p=newint[30]
B. int*p=newint(30)
C. int*p=new[30]int*p=new[30]
D. *p=newint[30]
25.若有如下函数声明:voidFun(int);,则下列( )不能与该函数进行重载。 (满分:2)
A. void Fun(int,int);
B. void Fun(double);
C. int Fun(int);
D. void Fun(int) const
26.下列关于类型转换的描述中,正确的是( )。 (满分:2)
A. 由不同类型操作数组成的表达式的类型一定是最高类型double类型
B. 强制类型转换都是非保值映射
C. 赋值表达式的类型是左值的类型
D. 类型转换是永久性的
27.下列说法不正确的是( )。 (满分:2)
A. 在类中,成员的默认访问特性是私有的
B. 类封装了数据和操作。
C. 类实质上是一种数据类型。
D. 在类的定义中,必须包含private、public、protected三种存取方式对应得部分。
28.表达式18/4*sqrt(4.0)/5的数据类型是( )。 (满分:2)
A. int
B. float
C. double
D. 不确定
29.下列关于运算符重载的描述中,( )是正确的。 (满分:2)
A. 运算符重载可以改变运算数的个数;
B. 运算符重载可以改变优先级;
C. 运算符重载可以改变结合性;
D. 运算符重载不可以改变语法结构。
30.关于运行时多态的下列描述中,( )是错误的。 (满分:2)
A. 运行时多态是以虚函数为基础的;
B. 运行时多态是在运行时确定所调用的函数代码的;
C. 用基类指针或引用所标识的派生类对象来操作虚函数才能实现运行时多态;
D. 运行时多态是在编译时确定操作函数的
31.在派生类中重新定义虚函数时,除了( )方面,其他方面都必须与基类中相应的虚函数保持一致。 (满分:2)
A. 参数个数
B. 参数类型
C. 函数名称
D. 函数体
32.在下列的各类函数中,( )不是类的成员函数。 (满分:2)
A. 构造函数
B. 析构函数
C. 友元函数
D. 拷贝构造函数
33.下列关于堆运算符的描述中,错误的是( )。 (满分:2)
A. 使用堆运算符可以动态建立或删除对象
B. 可以在使用new[]创建数组时,为每个数组元素指定初始值
C. new运算符创建对象时要调用构造函数
D. delete运算符可以作用于空指针
34.下列语句中,会产生编译错误的是( )。 (满分:2)
A. int x=5; int &ref=x;
B. const int size;
C. int x=5; int &ref=x; x++;
D. const int size=100;
35.多继承时对象的构造顺序中包含如下4步:①所有非虚基类的构造函数按照它们被继承的顺序构造;②所有虚基类的构造函数按照它们被继承的顺序构造;③所有子对象的构造函数按照它们声明的顺序构造;④派生类自己的构造函数体;这4个步骤的正确顺序是( )。 (满分:2)
A. ④③①②
B. ②④③①
C. ②①③④
D. ③④①②
36.下列关于构造函数和析构函数的描述中,错误的是( )。 (满分:2)
A. 构造函数可以重载
B. 析构函数名与类名相同
C. 构造函数中可以设置参数的默认值
D. 类中只有一个析构函数
37.下列语句中,正确的是( )。 (满分:2)
A. const int buffer=256;
B. const int temp;
C. int &ref;
D. const int size=100 ;......size=10 ;
38.下列描述中,错误的是( )。 (满分:2)
A. 公有继承时基类中的public成员在派生类中仍是public的
B. 公有继承时基类中的private成员在派生类中仍是private的
C. 私有继承时基类中的public成员在派生类中是private的
D. 保护继承时基类中的public成员在派生类中是protected的
二、多选题:【4道,总分:8分】
1.类中属性的可见性主要包括( ) (满分:2)
A. 公有
B. 私有
C. 其它
D. 受保护
2.配置图中通常包含两种元素,分别是( ) (满分:2)
A. 节点
B. 依赖关系
C. 关联关系
D. 接口
3.实际的建模过程中,可以把节点分( ) (满分:2)
A. 处理器
B. 设备
C. 应用软件
D. 系统软件
4.状态机由( )和动作组成 (满分:2)
A. 状态
B. 转换
C. 事件
D. 活动
三、判断题:【8道,总分:16分】
1.重载运算符保持原运算符的优先级和结合性不变。 (满分:2)
A. 错误
B. 正确
2.一个类的构造函数中可以不包含对其子对象的初始化 (满分:2)
A. 错误
B. 正确
3.访问对象成员时要使用运算符.或->。 (满分:2)
A. 错误
B. 正确
4.派生类从基类派生而来,不能再生成新的派生类。 (满分:2)
A. 错误
B. 正确
5.构造函数可以被继承 (满分:2)
A. 错误
B. 正确
6.可以在类的构造函数中对静态数据成员进行初始化。 (满分:2)
A. 错误
B. 正确
7.只要是类M继承了类N,那么类M就是类N的子类型。 (满分:2)
A. 错误
B. 正确
8.单继承时,派生类中对基类成员的访问也会出现二义性。 (满分:2)
A. 错误
B. 正确
更多学习资料请登录www.openhelp100.com
|
|