17春北理工《面向对象程序设计》在线作业正确答案
北理工17春《面向对象程序设计》在线作业答案一、单选题:
1.下列关于虚基类的描述中,错误的是( ) (满分:2)
A. 设置虚基类的目的是消除二义性
B. 虚基类子对象的初始化由最派生类完成
C. 虚基类的构造函数可能调用多次
D. 虚基类的构造函数先于非虚基类的构造函数执行
2.下列关于静态数据成员特性的描述中,错误的是( )。 (满分:2)
A. 说明静态数据成员时前边要加修饰符static
B. 静态数据成员要在类体外进行初始化
C. 静态数据成员不是所有对象所共有的
D. 引用静态数据成员时,要在其名称前加<类名>和作用域运算符
3.下列程序的输出结果是( )。#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
4.设置虚基类的目的是( )。 (满分:2)
A. 简化程序
B. 消除二义性
C. 提高运行效率
D. 减少目标代码
5.在下列函数原型中,可以作为类A构造函数的是( )。 (满分:2)
A. void A(int);
B. int A( );
C. A(int) const;
D. A(int);
6.下列关于派生类的描述中,错误的是( )。 (满分:2)
A. 派生类继承了基类的所有成员
B. 派生类能够作为基类继续派生新类
C. 派生类可以有多个直接基类
D. 派生类的默认继承方式是public
7.设Address表示整型变量x的地址,则下列语句执行后的输出结果为( )。intx=100,&r=x;cout<<x<<'-'<<&r<<endl; (满分:2)
A. Address-100
B. 100-100
C. Address-Address
D. 100-Address
8.在下面的类定义中,横线处应填入的内容是( )。classMyClass{private:staticintcount;};count=0; (满分:2)
A. int
B. static int
C. int MyClass
D. static int MyClass:
9.有如下类声明:classFoo{voidfun( );};,则Foo类的成员fun是( )。 (满分:2)
A. 公有数据成员
B. 公有成员函数
C. 私有数据成员
D. 私有成员函数
10.下列程序的输出结果是( )。#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
11.友元运算符obj1>obj2被C++编译器解释为( )。 (满分:2)
A. operator >(obj1,obj2)
B. >(obj1,obj2)
C. obj2.operator >(obj1)
D. obj1.operator >(obj2)
12.下列描述中,( )不是面向对象系统包含的要素。 (满分:2)
A. 对象
B. 类
C. 继承
D. 函数
13.下列关于友元的描述中,错误的是( )。 (满分:2)
A. 友元破坏了类的封装性
B. 友元提高了程序的运行效率
C. 友元可以在类外声明和定义
D. 友元能够访问类中的私有成员
14.假定p指向的字符串为”string”,若要输出这个字符串的地址值,则使用( )。 (满分:2)
A. cout<<*p
B. cout<<p
C. cout<<p
D. cout<<p
15.下列关于类型转换的描述中,正确的是( )。 (满分:2)
A. 由不同类型操作数组成的表达式的类型一定是最高类型double类型
B. 强制类型转换都是非保值映射
C. 赋值表达式的类型是左值的类型
D. 类型转换是永久性的
16.在派生类中重新定义虚函数时,除了( )方面,其他方面都必须与基类中相应的虚函数保持一致。 (满分:2)
A. 参数个数
B. 参数类型
C. 函数名称
D. 函数体
17.下列语句中,会产生编译错误的是( )。 (满分: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;
18.下列关于堆运算符的描述中,错误的是( )。 (满分:2)
A. 使用堆运算符可以动态建立或删除对象
B. 可以在使用new[]创建数组时,为每个数组元素指定初始值
C. new运算符创建对象时要调用构造函数
D. delete运算符可以作用于空指针
19.在横线处填入语句( )后,下列语句序列能够正确执行。。int*ptr;delete[]ptr; (满分:2)
A. ptr=new int(5);
B. ptr=new int;
C. ptr=new int;
D. ptr=malloc(5);
20.在一个派生类对象结束其生命周期时,下列描述中正确的是( )。 (满分:2)
A. 先调用派生类的析构函数后调用基类的析构函数
B. 先调用基类的析构函数后调用派生类的析构函数
C. 如果基类没有定义析构函数,则只调用派生类的析构函数
D. 如果派生类没有定义析构函数,则只调用基类的析构函数
21.将一些函数体代码不是很大,但被频繁调用的函数定义为( ),可以解决程序中函数调用的效率问题。 (满分:2)
A. 重载函数
B. 内联函数
C. 递归函数
D. 友元函数
22.设置虚基类的目的是( )。 (满分:2)
A. 简化程序;
B. 消除二义性;
C. 提高运行效率;
D. 减少目标代码;
23.下列关于运算符重载的描述中,( )是正确的。 (满分:2)
A. 运算符重载可以改变运算数的个数;
B. 运算符重载可以改变优先级;
C. 运算符重载可以改变结合性;
D. 运算符重载不可以改变语法结构。
24.假定p是具有int**类型的指针变量,则给p赋值的正确语句为( )。 (满分:2)
A. p=newint
B. p=newint*
C. p=newint**
D. p=newint
25.多继承时对象的构造顺序中包含如下4步:①所有非虚基类的构造函数按照它们被继承的顺序构造;②所有虚基类的构造函数按照它们被继承的顺序构造;③所有子对象的构造函数按照它们声明的顺序构造;④派生类自己的构造函数体;这4个步骤的正确顺序是( )。 (满分:2)
A. ④③①②
B. ②④③①
C. ②①③④
D. ③④①②
26.关于运行时多态的下列描述中,( )是错误的。 (满分:2)
A. 运行时多态是以虚函数为基础的;
B. 运行时多态是在运行时确定所调用的函数代码的;
C. 用基类指针或引用所标识的派生类对象来操作虚函数才能实现运行时多态;
D. 运行时多态是在编译时确定操作函数的
27.有如下头文件:intf1( );staticintf2( );classMy{public:intf3( );staticintf4( );};在上述4个函数中,具有隐含的this指针的是( )。 (满分:2)
A. f1
B. f2
C. f3
D. f4
28.下列关于对象概念的描述中,错误的是( )。 (满分:2)
A. 对象就是C语言中的结构变量
B. 对象代表着正在创建的系统中的一个实体
C. 对象是状态和操作(或方法)的封装体
D. 对象之间的信息传递是通过消息进行的
29.释放一个类的对象时,系统自动调用( )。 (满分:2)
A. 构造函数
B. 析构函数
C. 成员函数
D. 友元函数
30.print( )函数是某类中无返回值的常成员函数,下列表示中,正确的是( )。 (满分:2)
A. void print( ) const
B. const void print( )
C. void const print( )
D. void print(const)
31.下列关于构造函数和析构函数的描述中,错误的是( )。 (满分:2)
A. 构造函数可以重载
B. 析构函数名与类名相同
C. 构造函数中可以设置参数的默认值
D. 类中只有一个析构函数
32.已知函数f的原型是voidf(int*x,doubley);,变量i1、d2的定义为:inti1;doubled2;,则下列函数调用语句中,正确的是( )。 (满分:2)
A. f(i1,d2);
B. f(&i1,d2);
C. f(i1,&d2);
D. f(&i1,&d2);
33.在下列的各类函数中,( )不是类的成员函数。 (满分:2)
A. 构造函数
B. 析构函数
C. 友元函数
D. 拷贝构造函数
34.下列类说明中,错误的是( )。classSample{public:Sample(intval);//A~Sample( );//Bprivate:inta=2.5;//CSample( );//D}; (满分:2)
A. //A
B. //B
C. //C
D. //D
35.下列关于继承的描述中,错误的是( )。 (满分:2)
A. 派生类对象不能访问基类的保护成员
B. 派生类对基类成员的访问权限随着继承方式而改变
C. 派生类成员可以访问基类的私有成员
D. 派生类继承了基类的所有成员
36.下列函数中,不是类的成员函数的是( )。 (满分:2)
A. 构造函数
B. 友元函数
C. 析构函数
D. 复制构造函数
37.执行下列程序后的输出结果是( )。#includeintfun1(intx){return++x;}intfun2(int&x){return++x;}intmain( ){inta=0,b=0,c=0;c=fun1(a)+fun2(b);cout<<a<<b<<c<<endl;return0;} (满分:2)
A. 002
B. 012
C. 102
D. 112
38.假定k是一个double类型的变量,则关于变量p的正确定义语句为( )。 (满分:2)
A. doublep=&k
B. int*p=&k
C. double&p=*k
D. char*p=”Thankyou!”
二、多选题:
1.时序图包含的元素分别是( ) (满分:2)
A. 对象
B. 生命线
C. 消息
D. 激活
2.实际的建模过程中,可以把节点分( ) (满分:2)
A. 处理器
B. 设备
C. 应用软件
D. 系统软件
3.状态机由( )和动作组成 (满分:2)
A. 状态
B. 转换
C. 事件
D. 活动
4.类中属性的可见性主要包括( ) (满分:2)
A. 公有
B. 私有
C. 其它
D. 受保护
三、判断题:
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.派生类从基类派生而来,不能再生成新的派生类。 (满分:2)
A. 错误
B. 正确
8.动态联编在运行时选定调用的成员函数。 (满分:2)
A. 错误
B. 正确
更多免费学习资料请登录www.openhelp100.com
页:
[1]