国家开放大学面向对象程序设计真题精选.docx
《国家开放大学面向对象程序设计真题精选.docx》由会员分享,可在线阅读,更多相关《国家开放大学面向对象程序设计真题精选.docx(12页珍藏版)》请在冰豆网上搜索。
![国家开放大学面向对象程序设计真题精选.docx](https://file1.bdocx.com/fileroot1/2023-1/31/ad1a97a4-cf85-4890-953f-60f76a98fdbe/ad1a97a4-cf85-4890-953f-60f76a98fdbe1.gif)
国家开放大学面向对象程序设计真题精选
国家开放大学(面向对象程序设计)真题精选
[单项选择题]
1、Decorator(装饰)模式的意图是:
()。
A.定义一系列的算法,把它们一个个的封装起来,并且使它们可相互替换
B.为一个对象动态连接附加的职责
C.你希望只拥有一个对象,但不用全局对象来控制对象的实例化
D.在对象之间定义一种一对多的依赖关系,这样当一个对象的状态改变时,所有依赖于它的对象都将得到通知并自动更新
参考答案:
B
[单项选择题]
2、下面选项说法错误的是()
A.当某个字段被指定为主关键字字段时,不对这个字段赋值将违反实现完整性规则,是错误的。
B.当某个字段被指定为主关键字时,多个记录在这个字段使用相同的值是错误的。
C.在不区分大小写的系统上,SQL关键字按惯例全部使用大写字母。
D.使用选择标准减少从数据库返回的记录数不能提高性能
参考答案:
D
[单项选择题]
3、下面属于创建型模式的有()。
A.抽象工厂( Abstract Factory )模式
B.外观(Facade)模式
C.适配器(Adapter)模式
D.桥接(Bridge)模式
参考答案:
A
[单项选择题]
4、一个()对象用于向数据库提交查询。
A.ResultSet
B.Connection
C.Statement
D.Applet
参考答案:
C
[单项选择题]
5、可以在本类及派生类的成员函数中进行访问的访问控制修饰符是()。
A.private
B.protected
C.public
参考答案:
B
[单项选择题]
6、以下哪一条不属于设计模式的基本原则()。
A.开放-封闭原则
B.根据场景进行设计的原则
C.优先使用继承的原则
D.包容变化的原则
参考答案:
C
[单项选择题]
7、SQL关键字()用于合并两个或多个表。
A.WHERE
B.ORDERBY
C.INNERJOIN
D.ON
参考答案:
C
[单项选择题]
8、下列属于设计模式基本原则的是()。
A.继承
B.封装
C.放-封闭
D.都不是
参考答案:
C
[单项选择题]
9、SQL关键字()指定记录的排序顺序。
A.WHERE
B.ORDERBY
C.INNERJOIN
D.ON
参考答案:
B
[单项选择题]
10、下面不属于创建型模式的有()。
A.抽象工厂模式( Abstract Factory )
B.工厂方法模式(Factory Method)
C.适配器模式 ( Adapter )
D.单例模式(Singleton)
参考答案:
C
[填空题]
11试述值类型和引用类型的区别?
参考答案:
值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。
值类型变量直接把变量的值保存在栈中,引用类型的变量把实际数据的地址保存在栈中,而实际数据则保存在堆中。
[多项选择题]
12、数据库的表由()组成。
A.行
B.数据
C.列
D.方法
参考答案:
A,C
[单项选择题]
13、设计模式的两大主题是()。
A.系统的维护与开发
B.对象组合与类的继承
C.系统架构与系统开发
D.系统复用与系统扩展
参考答案:
D
[填空题]
14试述下面代码的输出结果是什么?
参考答案:
old
3
[单项选择题]
15、Applet类的()方法将图像装入applet。
A.drawing
B.drawImage
C.getImage
D.getPicture
参考答案:
C
[单项选择题]
16、下列关于面向对象的分析与设计的描述,正确的是()。
A. 面向对象分析软件做什么,设计描述软件要怎么做。
B. 面向对象分析描述问题域与系统责任,面向对象的设计考虑与软件实现有关的问题。
C. 面向对象分析与面向对象的设计遵循不同的范型。
D. 面向对象分析类图与面向对象的设计类图具有相同的类与关系
参考答案:
B
[填空题]
17简述装箱和拆箱的过程。
参考答案:
装箱(boxing)是将值类型隐式地转换为引用类型。
如inti=3;objecto=i;便是装箱过程,装箱一个数值会为其分配一个对象实例,并把该数值拷贝到新对象中。
拆箱(unboxing)是显式地把引用类型转换成值类型,如intj=(int)ocharj=(char)。
[多项选择题]
18、applet中播放声音的方法是()
A.Applet类的play方法
B.MediaTracker类的play方法
C.AudioClip接口的play方法
D.Sound接口的play方法
参考答案:
A,C
[单项选择题]
19、关于状态图的陈述正确的是()
A.一个对象自身的属性值变化不能作为其状态图中的事件
B.历史状态是指一个对象以前曾经所处的状态集合
C.动作是在状态内或在转化时所做的操作,是原子的和即时的
D.一个状态的内部转换与自转换的意义是相同的。
参考答案:
C
[填空题]
20什么是静态变量?
参考答案:
类的数据成员可以分静态变量、非静态变量两种.
静态成员:
静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员.
非成静态员:
所有没有加Static的成员都是非静态成员,当类被实例化之后,可以通过实例化的类名进行访问非静态成员的生存期决定于该类的生存期..而静态成员则不存在生存期的概念,因为静态成员始终驻留在内容中。
一个类中可以同时包含静态成员和非静态成员,类中也包括静态构造函数和非静态构造函数。
[单项选择题]
21、下列方法中,()方法通常是一个applet中定义的第一个方法。
A.start
B.init
C.paint
D.stop
参考答案:
B
更多内容请访问《睦霖题库》微信公众号
[单项选择题]
22、关于多态的描述正确的是()
A. 多态是指在聚合关系中的各个类中名字相同的属性和操作具有不同的意义
B. 多态的实现机制是编译时静态链接
C. 函数名重载(overload) 会导致多态现象出现
D. 多态可实现接口复用,节省大量的编码工作量
参考答案:
D
[填空题]
23试述abstractclass和interface有什么区别?
参考答案:
[单项选择题]
24、下面程序的正确输出结果是()
A.上方显示一条横线,下方显示JavaProgramming!
B.下方显示一条横线,上方显示JavaProgramming!
C.上下方各显示一条横线,中间显示JavaProgramming!
D.上方显示Java,下方显示Programming!
参考答案:
C
[填空题]
25软件复用可采用类的继承方式和类的聚合方式,比较两者的优缺点。
参考答案:
聚合:
一个对象拥有另一个对象或对另一个对象负责(即一个对象包含另一个对象或是另一个对象的一部分)并且聚合对象和其所有具有相同的生命周期(即所谓的“同生共死”关系)。
聚合复用优点:
①容器类仅能通过被包含对象的接口来对其进行访问。
②“黑盒”复用,因为被包含对象的内部细节对外是不可见。
③包装性好。
④实现上的相互依赖性比较小。
⑤每一个类只专注于一项任务。
⑥通过获取指定其他的具有相同类型的对象的使用,可以在运行期间动态地定义(对象的)组合。
聚合的缺点:
①导致系统中的对象过多
②为了能将多个不同的对象作为组合块来使用,必须仔细地对接口进行定义。
类继承:
是一种通过扩展(一个已有对象的)实现,从而获得新功能的复用方法。
继承的优点:
①容易进行新的实现,因为其大多数可继承而来
②易于修改或扩展那些被复用的实现。
继承的缺点:
①破坏了封装性,因为这会将父类的实现细节暴露给子类
②“白盒”复用,因为父类的内部细节对于子类而言通常是可见的
③当父类的实现更改时,子类也不得不随之更改
④从父类继承来的实现将不能在运行期间进行改变。
[填空题]
26进程和线程分别怎么理解?
参考答案:
1)定义解释
进程是具有一定独立功能程序在关于某个数据集上的一次运行活动。
进程是系统进行资源分配和调度的一个独立单位。
线程是进程的一个实体,是Cup调度的基本*单位。
它是比进程更小的能独立运行的基本*单位,线程只拥有一点在运行中必不可少的资源,可与同一个进程中其他线程共享进程中所拥有的所有资源。
一个线程可以创建和销毁另一个线程,同一进程中的多个线程可以同时并发执行;
2)区别解释
一个程序至少有一个进程,一个进程至少有一个线程。
线程的划分尺度小于进程,使得多线程程序并发行高,另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存从而极大的提高程序的运行效率。
进程有独立的地址空间一个进程崩溃后在保护模式下不会对其他进程产生影响,而线程只是一个进程中的不同执行路径;线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉。
所以多进程的程序要比多线程的程序健壮,但在进程切换时耗费资源较大,效率要差一些。
但对一些要同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。
[单项选择题]
27、每当浏览器的用户再次访问applet所在的HTML页时都调用()方法。
A.main
B.restart
C.start
D.update
参考答案:
C
[填空题]
28简述依赖倒置原则的基本思想。
请举出一个使用了软件依赖原则的软件设计模式,其中何处体现了依赖原则。
参考答案:
依赖倒置原则的基本思想是:
①高层模块不应该依赖于低层模块,二者都应该依赖于抽象。
②抽象不应该依赖于细节,细节应该依赖于抽象。
Template method就体现了这个原则,它定义了一个操作中的算法骨架,而将一些步骤延迟到子类中,template method使得子类不改变一个算法的结构,即可重定义该算法的某些特定步骤。
[填空题]
29简述“开-闭”原则的基本思想。
请举出一个使用了软件“开-闭”原则的软件设计模式,其中何处体现了“开-闭”原则。
参考答案:
“开—闭”原则:
软件实体应当对扩展开放,而对修改关闭,“开-闭”原则要求软件系统能够在不需要修改原有类的基础上,通过增加类达到扩展功能的目的。
A.bstract factory体现了这个原则,如果想增加一类新的products,只需在product类体系中增加各个products,然后在factory类体系结构中增加一个concrete factory就可以了,而不需要对现有类做任何修改,The Open-closed principle[ocp]在不改动过模块源代码的情况下扩展模块的行为。
[单项选择题]
30、任何一个Applet开始执行时必然会自动调用三个方法,它们被调用的顺序是()
A.init、paint、start
B.init、start、paint
C.paint、start、init
D.start、paint、init
参考答案:
B
[填空题]
31接口是否可继承接口?
抽象类是否可实现(implements)接口?
抽象类是否可继承实体类(concreteclass)?
参考答案:
接口可以继承接口。
抽象类可以实现(implements)接口,
抽象类是可继承实体类,
但前提是实体类必须有明确的构造函数。
[填空题]
32什么是单一职责原则?
请举出一个使用了单一职责原则的软件设计模式,其中何处体现了单一职责原则。
参考答案:
基本思想:
SRP使得一个类或一个模块承担的责任尽可能的少,使尽可能少的因素或动机影响该类或该模块,即增大类或模块的内聚性,减少其耦合度,SRP是所有原则中最简单的之一,也是最难正确运用的之一。
COMMAND模式体现了SRP原则,大多数类都是一组方法和相应的一组变量的结合,而该模式只是封装了一个没有任何变量的函数,它对函数的关注超过了类,将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化。
[单项选择题]
33、在FilterOutputStream类中,下面哪个类是合法()
A.File
B.InputStream
C.OutputStream
D.FileOutputStream
参考答案:
C
[填空题]
34结构和类的区别是什么?
参考答案:
1) 结构是一个值类型,保存在栈上,而类是一个引用类型,保存在受管制的堆上。
2) 对结构中的数据进行操作比对类或对象中的数据进行操作速度要快。
3) 一般用结构存储多种类型的数据,当创建一个很多类或对象共用的小型对象时,使用结构效率更高。
[填空题]
35比较Adapter和Proxy模式使用上的异同之处。
参考答案:
适配器模式(Adapter):
将一个类的接口转换成客户希望的另外一个接口。
Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
代理模式有两个英文名字:
Proxy Pattern 和 Surrogate Pattern。
代理模式:
为其他对象提供一种代理以控制对这个对象的访问。
说白了就是,在一些情况下客户不想或者不能直接引用一个对象,而代理对象可以在客户和目标对象之间起到中介作用,去掉客户不能看到的内容和服务或者增添客户需要的额外服务。
两者的主要区别在于代理模式应用的情况是不改变接口命名的,而且是对已有接口功能的一种控制;而适配器模式则强调接口转换。
[单项选择题]
36、RandomAccessFile类的()方法可用于从指定流上读取字符串。
A.readInt
B.readLIne
C.seek
D.close
参考答案:
B
[填空题]
37下面代码的输出结果是什么?
参考答案: