|
北理工《面向对象程序设计》在线作业
北理工作业答案请咨询qq515224986
一、单选题:
1. 对虚函数的调用()
A. 一定使用动态联编
B. 必须使用动态联编
C. 一定使用静态联编
D. 不一定使用动态联编
正确答案:——D——
2. 下列关于派生类的描述中,错误的是()。
A. 派生类继承了基类的所有成员
B. 派生类能够作为基类继续派生新类
C. 派生类可以有多个直接基类
D. 派生类的默认继承方式是public
正确答案:——D——
3. 将一些函数体代码不是很大,但被频繁调用的函数定义为(),可以解决程序中函数调用的效率问题。
A. 重载函数
B. 内联函数
C. 递归函数
D. 友元函数
正确答案:——B——
4. 下列描述中,()不是面向对象系统包含的要素。
A. 对象
B. 类
C. 继承
D. 函数
正确答案:————
5. 若有语句int*p=newint[5];int*pi;则以下语句中,执行时会造成delete[]p语句的执行出错的是______。
A. (*p)++;
B. p++;
C. pi=p;;
D. pi=p+3;
正确答案:————
6. 有如下类定义:classMyClass{public:intgetRef()const{return&a;}intgetValue()const{returna;}voidset(intn)const{a=n;}friendvoidshow(MyClassobj)const{cout<<a;}};下列函数中,定义正确的是()。
A. getRef
B. getValue
C. set
D. show
正确答案:————
7. 设Address表示整型变量x的地址,则下列语句执行后的输出结果为()。intx=100,&r=x;cout<<x<<'-'<<&r<<endl;
A. Address-100
B. 100-100
C. Address-Address
D. 100-Address
正确答案:————
8. 下列关于堆运算符的描述中,错误的是()。
A. 使用堆运算符可以动态建立或删除对象
B. 可以在使用new[]创建数组时,为每个数组元素指定初始值 奥鹏答案
C. new运算符创建对象时要调用构造函数
D. delete运算符可以作用于空指针
正确答案:————
9. 下列关于函数重载的描述中,错误的是()。
A. 函数重载就是用相同的函数名定义多个函数
B. 重载函数的参数列表必须不同
C. 重载函数的返回值类型必须不同
D. 重载函数的参数可以带有默认值
正确答案:————
10. 设置虚基类的目的是()。
A. 简化程序
B. 消除二义性
C. 提高运行效率
D. 减少目标代码
正确答案:————
11. 假定k是一个double类型的变量,则关于变量p的正确定义语句为()。
A. doublep=&k
B. int*p=&k
C. double&p=*k
D. char*p=”Thankyou!”
正确答案:————
12. 下列关于友元的描述中,错误的是()。
A. 友元破坏了类的封装性
B. 友元提高了程序的运行效率
C. 友元可以在类外声明和定义
D. 友元能够访问类中的私有成员
正确答案:————
13. 在下列的各类函数中,______不是类的成员函数。
A. 构造函数
B. 析构函数
C. 友元函数
D. 拷贝构造函数
正确答案:————
14. 一个类的构造函数为“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
正确答案:————
15. 在下列函数原型中,可以作为类A构造函数的是()。
A. voidA(int);
B. intA();
C. A(int)const;
D. A(int);
正确答案:————
16. 下列对引用的陈述中不正确的是()。
A. 每一个引用都是其所引用对象的别名,因此必须初始化
B. 形式上针对引用的操作实际上作用于它所引用的对象
C. 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行
D. 不需要单独为引用分配存储空间
正确答案:————
17. 下列语句中,正确的是()。
A. constintbuffer=256;
B. constinttemp;
C. int&ref;
D. constintsize=100;......size=10;
正确答案:————
18. 下列程序的输出结果是()。#include<iostream.h>classMyClass{public:MyClass(){cout<<'A';}MyClass(charc){cout<<c;}~MyClass(){cout<<'B';}};intmain(){MyClassp1,*p2;p2=newMyClass('X');deletep2;return0;
A. ABX
B. ABXB
C. AXB
D. AXBB
正确答案:————
19. 下列关于虚基类的描述中,错误的是()
A. 设置虚基类的目的是消除二义性
B. 虚基类子对象的初始化由最派生类完成
C. 虚基类的构造函数可能调用多次
D. 虚基类的构造函数先于非虚基类的构造函数执行
正确答案:————
20. 派生类对象对它的基类成员中()是可以访问的。
A. 公有继承的私有成员
B. 公有继承的保护成员
C. 公有继承的公有成员
D. 私有继承的公有成员
正确答案:————
21. 若函数原型为voidFun(intx,inty=6,intchar='a'),则下列调用错误的是()。
A. Fun(5)
B. Fun(5,'b')
C. Fun(5,8)
D. Fun(2,4,'b')
正确答案:————
22. 有如下类声明:classFoo{voidfun();};,则Foo类的成员fun是()。
A. 公有数据成员
B. 公有成员函数
C. 私有数据成员
D. 私有成员函数
正确答案:————
23. 在一个派生类对象结束其生命周期时,下列描述中正确的是()。
A. 先调用派生类的析构函数后调用基类的析构函数
B. 先调用基类的析构函数后调用派生类的析构函数
C. 如果基类没有定义析构函数,则只调用派生类的析构函数
D. 如果派生类没有定义析构函数,则只调用基类的析构函数
正确答案:————
24. 下列关于对象概念的描述中,错误的是()。
A. 对象就是C语言中的结构变量
B. 对象代表着正在创建的系统中的一个实体
C. 对象是状态和操作(或方法)的封装体
D. 对象之间的信息传递是通过消息进行的
正确答案:————
25. 在派生类中重新定义虚函数时,除了()方面,其他方面都必须与基类中相应的虚函数保持一致。
A. 参数个数
B. 参数类型
C. 函数名称
D. 函数体
正确答案:————
26. print()函数是某类中无返回值的常成员函数,下列表示中,正确的是()。
A. voidprint()const
B. constvoidprint()
C. voidconstprint()
D. voidprint(const)
正确答案:————
27. 多继承时对象的构造顺序中包含如下4步:①所有非虚基类的构造函数按照它们被继承的顺序构造;②所有虚基类的构造函数按照它们被继承的顺序构造;③所有子对象的构造函数按照它们声明的顺序构造;④派生类自己的构造函数体;这4个步骤的正确顺序是()。
A. ④③①②
B. ②④③①
C. ②①③④
D. ③④①②
正确答案:————
28. 下列语句中,会产生编译错误的是()。
A. intx=5;int&ref=x;
B. constintsize;
C. intx=5;int&ref=x;x++;
D. constintsize=100;
正确答案:————
29. 执行下列程序后的输出结果是()。#include<iostream.h>intfun1(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;}
A. 002
B. 012
C. 102
D. 112
正确答案:————
30. 友元运算符obj1>obj2被C++编译器解释为()。
A. operator>(obj1,obj2)
B. >(obj1,obj2)
C. obj2.operator>(obj1)
D. obj1.operator>(obj2)
正确答案:————
31. 在下面的类定义中,横线处应填入的内容是()。classMyClass{private:staticintcount;};count=0;
A. int
B. staticint
C. intMyClass
D. staticintMyClass:
正确答案:————
32. 整型变量中,八进制数的数字前面需要加数字()
A. 8
B. 0X
C. 不需要
D. 0
正确答案:————
33. ios提供的格式控制标志位中,()是转换为八进制形式的标志位。
A. hex
B. oct
C. dec
D. left
正确答案:————
34. 下列函数参数默认值定义错误的是()。
A. Fun(intx=0,inty=0)
B. Fun(intx,inty)
C. Fun(intx,inty=0)
D. Fun(intx=0,inty)
正确答案:————
35. 下列说法不正确的是_______。
A. 在类中,成员的默认访问特性是私有的
B. 类封装了数据和操作。
C. 类实质上是一种数据类型。
D. 在类的定义中,必须包含private、public、protected三种存取方式对应得部分。
正确答案:————
36. 下列选项中,表示纯虚函数的是()。
A. virtualvoidfun()=0;
B. 2.voidfun(int)=0;
C. virtualintfun(int);
D. virtualvoidfun(int){
正确答案:————
37. 关于封装,下列说法中不正确的是()。
A. 通过封装,对象的全部属性和操作结合在一起,形成一个整体
B. 通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)
C. 通过封装,每个对象都成为相对独立的实体
D. 通过封装,对象的属性都是不可见的
正确答案:————
38. 若有如下函数声明:voidFun(int);,则下列()不能与该函数进行重载。
A. voidFun(int,int);
B. voidFun(double);
C. intFun(int);
D. voidFun(int)const
正确答案:————
二、多选题:
39. 类中属性的可见性主要包括()
A. 公有
B. 私有
C. 其它
D. 受保护
正确答案:————
40. 状态机由()和动作组成
A. 状态
B. 转换
C. 事件
D. 活动
正确答案:————
41. 实际的建模过程中,可以把节点分()
A. 处理器
B. 设备
C. 应用软件
D. 系统软件
正确答案:————
42. 配置图中通常包含两种元素,分别是()
A. 节点
B. 依赖关系
C. 关联关系
D. 接口
正确答案:————
三、判断题:
43. 访问对象成员时要使用运算符.或->。
A. 错误
B. 正确
正确答案:————
44. 重载运算符保持原运算符的优先级和结合性不变。
A. 错误
B. 正确
正确答案:————
45. 动态联编在运行时选定调用的成员函数。
A. 错误
B. 正确
正确答案:————
46. 可以在类的构造函数中对静态数据成员进行初始化。
A. 错误
B. 正确
正确答案:————
47. 构造函数可以被继承
A. 错误
B. 正确
正确答案:————
48. 某类中的友元类的所有成员函数都可以存取或修改该类中的私有成员。
A. 错误
B. 正确
正确答案:————
49. 单继承时,派生类中对基类成员的访问也会出现二义性。
A. 错误
B. 正确
正确答案:————
50. 派生类从基类派生而来,不能再生成新的派生类。
A. 错误
B. 正确
正确答案:————
奥鹏作业答案
|
|