面向对象模拟试题(手机、PDA版)

合集下载

面向对象测试题及答案

面向对象测试题及答案

面向对象测试题及答案一、选择题(每题2分,共20分)1. 面向对象编程(OOP)的核心概念不包括以下哪一项?A. 类B. 继承C. 多态D. 过程2. 在Java中,以下哪个关键字用于定义类?A. classB. typeC. structD. interface3. 下列哪个选项不是Java中访问控制的关键字?A. publicB. privateC. protectedD. global4. 封装是面向对象编程的一个重要特性,它主要指的是:A. 将数据和操作数据的方法组合在一起B. 将所有数据都设为公开访问C. 只允许通过特定的方法访问数据D. 将数据和方法分离5. 在Java中,以下哪个不是构造方法的特点?A. 与类名相同B. 没有返回类型C. 可以重载D. 可以被继承6. 继承在面向对象编程中允许:A. 一个类只能继承一个类B. 一个类可以继承多个类C. 一个类可以继承多个接口D. 一个类可以同时继承多个类和接口7. 接口在Java中的主要作用是:A. 定义类B. 实现多继承C. 定义方法的实现D. 定义方法的签名8. 以下哪个是Java中实现多态的方式?A. 继承B. 接口C. 重载D. 重写9. 抽象类在Java中不能:A. 被实例化B. 包含抽象方法C. 包含具体方法D. 被继承10. 下列哪个不是Java集合框架中接口?A. ListB. SetC. MapD. Array二、简答题(每题5分,共30分)1. 简述面向对象编程的三大特性。

2. 解释什么是多态,并给出一个Java中多态的例子。

3. 什么是封装?封装在Java中是如何实现的?4. 什么是接口?接口和抽象类有什么区别?5. 什么是构造方法?构造方法的作用是什么?6. 什么是继承?继承在Java中是如何实现的?三、编程题(每题25分,共50分)1. 编写一个Java程序,定义一个名为`Car`的类,包含以下属性和方法:- 属性:品牌(String类型),颜色(String类型),速度(int 类型)- 方法:启动汽车(startCar),加速(accelerate),减速(decelerate)2. 在上述`Car`类的基础上,创建一个名为`ElectricCar`的子类,继承`Car`类,并添加一个额外的属性:电池电量(int类型),并重写`startCar`方法以显示电动汽车启动的信息。

面向对象程序设计-模拟测试

面向对象程序设计-模拟测试

《面向对象程序设计》课程模拟测试一、选择题1、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是()A.面向过程B.面向对象C.安全性D.复用性2、关于虚函数的描述中,正确的是()A.虚函数是一个static类型的成员函数B.虚函数是一个非成员函数C.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型3、下列关于构造函数的描述中,错误的是()A.构造函数可以设置默认参数;B.构造函数在定义类对象时自动执行C.构造函数可以是内联函数;D.构造函数不可以重载4、在以下关于C++语言的注释的叙述中,不正确的是()A.C++程序中,注释可用“/*”、“*/”形式表示,也可用“//”形式表示B.C++编译器在编译一个程序时,将跳过注释,不对其进行处理C.C++编译器在编译一个程序时,可发现注释中的单词拼写错误D.程序中注释的多少不会影响所生成的可执行文件的长度5、C++语言的跳转语句中,对于break和continue说法正确的是()A.break语句只应用于循环体中B.continue语句只应用于循环体中C.break是无条件跳转语句,continue不是D.break和continue的跳转范围不够明确,容易产生问题6、下列关于C++函数的说明中,正确的是()A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是return语句C.标准C++要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式7、在下面的一维数组定义中,哪一个有语法错误。

()A.int a[ ]={1,2,3} B.int a[10]={0}C.int a[ ] D.int a[5]8、面向对象系统不具有()特性A. 继承性B. 封装性C. 过程性D. 多态性9、下列静态数据成员的特性中,错误的是()A.说明静态数据成员前边加staticB.静态数据成员要在类体外初始化C.引用静态数据成员时,要在静态数据成员前加<类名>和作用域运算符D.静态数据成员不是一个类所有对象共享的10、若用数组名作为函数调用时的实参,则实际上传递给形参的是()A.数组首地址B.数组的第一个元素值C.数组中全部元素的值D.数组元素的个数二、填空题1、C++语言中的每条基本语句以作为结束符,每条复合语句以作为结束符。

2-面向对象基础测试题和答案

2-面向对象基础测试题和答案

2-面向对象基础测试题和答案共40道选择题,每题2.5分。

多选题有错则全错,全对才满分. 面向对象部分测试题1.下面描述函数重写错误的是CA. 要有子类继承或实现B. 子类方法的权限必须大于等于父类的权限C. 父类中被private权限修饰的方法可以被子类重写D. 子类重写接口中的抽象方法,子类的方法权限必须是public的2.关于封装下面介绍错误的是(D )。

A. 封装将变化隔离B. 封装提高重用性。

C. 封装安全性D. 只有被private修饰才叫做封装3.试图编译运行下面的代码会发生什么情况Dpublic class MyClass{static int i;public static void main(String[] args){System.out.println(i);}}A. 错误,变量i没有被初始化B. 输出nullC. 输出1D. 输出04.在Java中,下面对于构造函数的描述正确的是(D)。

A. 类必须显式定义构造函数B. 构造函数的返回类型是voidC. 构造函数和类有相同的名称,并且不能带任何参数D. 一个类可以定义多个构造函数5.下面Java代码的运行结果是(C )。

class Penguin {private String name=null; // 名字private int health=0; // 健康值private String sex=null; // 性别public void Penguin() { //是一般方法,不是构造方法health = 10;sex = "雄";System.out.println("执行构造方法。

");}public void print() {System.out.println("企鹅的名字是" + name +",健康值是" + health + ",性别是" + sex+ "。

面向对象编程考试

面向对象编程考试

面向对象编程考试(答案见尾页)一、选择题1. 在面向对象编程中,以下哪个是类的组成部分?A. 数据成员B. 成员函数C. 友元函数D. 静态数据成员2. 在面向对象编程中,以下哪个是对象的组成部分?A. 属性B. 方法C. 继承D. 封装3. 在面向对象编程中,以下哪个是封装的含义?A. 将数据成员隐藏起来B. 将成员函数隐藏起来C. 将数据成员和成员函数结合在一起D. 将对象的状态和行为封装在一起4. 在面向对象编程中,以下哪个是继承的定义?A. 创建一个新的类,这个新类是已存在的类的扩展B. 创建一个新的类,这个新类的内容与已存在的类完全相同C. 创建一个新的类,这个新类的内容是已存在的类的部分D. 创建一个新的类,这个新类的所有成员都与已存在的类相同5. 在面向对象编程中,以下哪个是多态的含义?A. 同一个接口可以被不同的对象以不同的方式实现B. 同一个接口可以被不同的对象以相同的方式实现C. 同一个接口不能被不同的对象以不同的方式实现D. 同一个接口不能被不同的对象以相同的方式实现6. 在面向对象编程中,以下哪个是抽象类的定义?A. 一个包含抽象方法的类B. 一个包含抽象成员函数的类C. 一个不包含任何成员函数的类D. 一个不包含抽象成员函数的类7. 在面向对象编程中,以下哪个是接口的定义?A. 一个包含抽象方法的类B. 一个包含抽象成员函数的类C. 一个不包含任何成员函数的类D. 一个不包含抽象成员函数的类8. 在面向对象编程中,以下哪个是类的实例化过程?A. 创建一个新的对象,将对象的属性设置为类的初始化数据B. 创建一个新的对象,将对象的属性设置为类的初始化数据,并调用类的构造函数C. 创建一个新的对象,将对象的属性设置为类的初始化数据,并调用类的析构函数D. 创建一个新的对象,将对象的属性设置为类的初始化数据,并执行类的初始化代码9. 在面向对象编程中,以下哪个是类的继承的好处?A. 提高代码的可重用性B. 提高代码的可维护性C. 提高代码的可扩展性D. 提高代码的执行效率10. 在面向对象编程中,以下哪个是接口的用途?A. 描述对象的属性B. 描述对象的行为C. 描述对象的实现细节D. 描述对象的状态11. 什么是面向对象编程(OOP)?A. OOP是一种编程范式,它使用对象和类的概念来组织和表示程序中的数据和功能。

面向对象考试题(参考)

面向对象考试题(参考)

一、单项选择1。

程序设计中,首先在问题域中识别出假设干个〔〕A。

函数B。

类C。

文件D。

过程2。

定义类模板用关键字〔〕A。

const B.new C.delete D.template3。

运算结果类型一样的〔〕A.9.0/2.09.0/2B.9/2.09/2C.9.0/29/2D.9/29.0/2.04。

f1f2同一类两个成员函数,但f1不能调用f2,说明〔〕a.f1f2都是静态函数b.f1是静态,f2不是c.f1不是,f2是静态d.f1f2都不是静态函数5。

调用一成员函数时,使用动态联编的情况是〔〕A.通过对象调用一虚函数B。

通过指针或引用调用一虚函数C。

通过对象调用静态函数D。

通过指针或引用调用一静态函数6。

假定一个类构造函数为:“A(int aa=1,int bb=0){a=aa;b=bb;}那么执行"A x(4)"后,x.a和x.b值分别是:〔〕A。

1,0 B。

1,4 C。

4,0 D。

4,17。

在派生类中能直接访问基类的〔〕A。

公有成员,私有成员B。

保护成员,私有成员C。

不可访问成员,私有成员D。

公有成员,保护成员8。

不具访问权限属性的是:A。

非类成员B。

类成员C。

数据成员D。

函数成员9。

类定义中private,protected,public出现次数为〔〕A。

任意屡次B。

至多一次C。

public至少一次D。

至少一次10。

C++鼓励程序员将〔〕A。

数据操作分别封装B。

不同类型数据封装C。

数据操作封装在一起D。

不同作用操作封装在一起。

二、填空1。

C++中,最好用〔〕代替malloc。

2。

函数模板中template之后尖括号的类型参数冠以保存字〔〕。

3。

在IOS类中定义的用于格式控制的枚举变量中十、八、十六进制是dec,oct,()。

4。

如果重载了运算符+,那么相应运算函数名是〔〕。

5。

由static修饰的数据成员为该类的所有对象〔〕。

6。

为了实现多态性,派生类需要重新定义基类中的〔〕。

面向对象练习题

面向对象练习题

面向对象练习题一、选择题1. 在面向对象编程中,以下哪个概念不是面向对象的核心概念?A. 封装B. 继承C. 多态D. 函数2. 以下哪个选项是Java语言中实现多态的方式?A. 通过继承B. 通过接口C. 通过重载D. 通过重写3. 在面向对象编程中,一个类可以有多少个父类?A. 0个或1个B. 1个C. 多个D. 无数个4. 以下哪个关键字在Java中用于定义一个类?A. structB. classC. interfaceD. enum5. 以下哪个是Java中创建对象的关键字?A. newB. createC. instanceD. object二、填空题6. 在面向对象编程中,______ 是指将数据和操作这些数据的方法结合在一起。

7. 一个类可以包含______ 和______ 两种成员。

8. 封装的目的是______ 数据,并对外部隐藏内部细节。

9. 继承可以使得子类获得父类的______ 和______。

10. 多态性允许不同类的对象对同一消息做出响应,但具体______ 取决于对象的实际类型。

三、简答题11. 简述面向对象编程的三大特性,并举例说明它们在实际编程中的应用。

12. 解释什么是接口,并说明接口与抽象类的区别。

13. 描述如何使用Java实现一个简单的类,并说明如何创建该类的实例。

四、编程题14. 编写一个Java类`Person`,包含属性`name`和`age`,以及一个方法`introduce()`,该方法输出个人信息。

15. 假设你已经有一个名为`Animal`的抽象类,它包含一个抽象方法`makeSound()`。

编写一个名为`Dog`的类,继承自`Animal`,并实现`makeSound()`方法,使得`Dog`对象调用该方法时输出"Woof!"。

16. 创建一个Java程序,包含一个名为`Vehicle`的类,它有一个属性`speed`和一个方法`increaseSpeed(int increment)`。

面向对象程序设计模拟练习题(含答案)

面向对象程序设计模拟练习题(含答案)

面向对象程序设计模拟练习题(含答案)一、单选题(共50题,每题1分,共50分)1、下列关于JDK和JRE的说法中,错误的是()A、JDK是java开发核心组件,是用来编译解释java程序的核心组件B、JDK包括Java编译器、Java文档生成工具、Java打包工具等C、JRE是个单独的软件,所以安装JDK后,还需要单独安装JRED、JRE是java运行环境,用来支持java程序的运行正确答案:C2、下列File类的构造方法格式,错误的是()A、File(File parent)B、File(String pathname)C、File(String parent,String child)D、File(URI url)正确答案:A答案解析:A选项,正确的应该是File(File parent, String child)3、下列关于静态变量的描述中,错误的是()A、静态变量指的是被static修饰的变量B、静态变量是随着类的加载而加载C、静态变量可以被所有的实例对象共享D、静态变量同成员变量一样,都需要通过实例对象来调用正确答案:D答案解析:静态变量是通过“类名.变量名”“方式调用的。

4、下列对于Runtime的描述中,正确的是()A、每一个Java应用程序运行时都产生一个Runtime类实例B、Runtime实例可以将应用程序和运行环境相结合C、Runtime类有构造函数D、Runtime实例需要被创建后才可以通过getRuntime()方法获取正确答案:A答案解析:Runtime类用于表示虚拟机运行时的状态,它用于封装JVM虚拟机进程。

每次使用java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例,因此该类采用单例模式进行设计,可以通过getRuntime()方法获得一个Runtime实例。

5、下列关于LinkedList类的方法,不是从List接口中继承而来的是()A、toArray()B、pop()C、remove()D、isEmpty()正确答案:B答案解析:pop()方法表示移除并返回此列表的第一个元素,是LinkedList特有的方法。

《面向对象程序设计》模拟试题及答案(2)

《面向对象程序设计》模拟试题及答案(2)

《面向对象程序设计》模拟试题及答案(2)《面向对象程序设计》模拟试题及答案(2)一、单项选择题(每小题2分,共20分)1. 字符串”a+b=12\n”的长度为()。

A. 6B. 7C. 8D. 92. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为()。

A. 0B. 4C. 8D. 63. 以下正确的描述是()。

A. 函数的定义可以嵌套,函数的调用不可以嵌套B. 函数的定义不可以嵌套,函数的调用可以嵌套C. 函数的定义和函数的调用均可以嵌套D. 函数的定义和函数的调用均不可以嵌套4. 设有定义“double array[10];”,则表达式sizeof(array)/sizeof(array[0])的结果为array数组的( )。

A.首地址B.元素个数C.每个元素所占的字节数D.总字节数5. 若使p指向包含30个整型元素的动态数组空间,则使用的定义语句为()。

A. int *p=new int[30];B. int *p=new int(30);C. int *p=new [30];D. *p=new int[30];6. 软件产品与其他软件产品组合成一个整体的难易程度叫做软件的()。

A. 可维护性B. 可复用性C. 兼容性D. 正确性7. 在多文件结构的程序中,通常把类的声明单独存放于()中。

A. 主文件B. 实现文件C. 库文件D. 头文件8. 在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队首的后一个位置为( )。

A. first+1B. (first+1)%MSC. (first-1)%MSD. (first+length)%MS9. 假定一个类的构造函数为“A(int aa=1, int bb=0) {a=aa; b=bb;}”,则执行“A x(4);”语句后,x.a和x.b的值分别为( )。

(完整版)面向对象专题练习

(完整版)面向对象专题练习
4.抽象方法是一种仅有方法声明,没有具体方法体和操作实现的方法,该方法必须在具体类之中定义。
5.在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。
6.一般Java程序的类主体由两部分组成:一部分是属性,另一部分是方法。
7.分别用class关键字来定义类,用new关键字来分配实例存储空间。
public abstract void k();
}
class B extends A{
protected void f(){ }//子类修饰符必须大于父类
void k(){//子类修饰符必须大于父类
System.out.print("I am subclass");
}
public static void main(String[] args) {
A.抽象类中必须有抽象方法,接口中也必须有抽象方法
B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法
C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法
D.抽象类中的变量定义时必须初始化,而接口中不是
29、从下列程序中你发现了几处错误D。
abstract class A{
abstract void f(){};//抽象方法没有方法体。
public void f(){//修饰符必须大于接口的范围,对了
System.out.print(s);
}
}
class ClassB{
void g(InterfaceA a){//g方法传入的a为interfaceA类(接口类型引用)
a.f();
}
}
public class E {
public static void main(String[] args) {

面向对象程序设计考试模拟题含参考答案

面向对象程序设计考试模拟题含参考答案

面向对象程序设计考试模拟题含参考答案一、单选题(共50题,每题1分,共50分)1、下列数据结构中,哪一个是ArrayList类的底层实现()A、数组结构B、链表结构C、哈希表结构D、红黑树结构正确答案:A答案解析:ArrayList的底层是数组实现的。

2、Java属于以下哪种语言()A、机器语言B、汇编语言C、高级语言D、以上都不对正确答案:C答案解析:Java是一门高级编程语言。

3、下面关于path和classpath的说法中,错误的是()A、path用来指定java虚拟机(JVM)所在的目录B、classpath用来指定我们自己所写的或要用到的类文件(.jar文件)所在的目录C、在dos命令行中,classpath和path环境变量的查看与配置的方式不相同D、只要设置了classpath这个环境变量系统就不会再在当前目录下查询某个类正确答案:C答案解析:classpath和path环境变量的查看与配置的方式完全相同,都是通过 set关键字实现的。

4、若double val = Math.ceil(-11.9);,则val的值是()A、11.9B、-11.0C、-11.5D、-12.0正确答案:B答案解析:ceil是天花板的意思,表示向上取值,永远是得到大于参数的最小整数。

5、下列集合中,不属于Collection接口的子类的是()A、ArrayListB、LinkedListC、TreeSetD、Properties正确答案:D答案解析:Properties集合属于Map集合的子类。

6、下列关于类与对象的说法中,错误的是()A、类是对某一类事物的抽象描述,而对象则是该类事物的个体。

B、对象是类的实例化。

C、类用于描述多个对象的共同特征,它是对象的模板。

D、类与对象没有什么实际关系。

正确答案:D答案解析:对象是通过类来创建的。

7、下列关于List接口的描述中,错误的是()A、List接口继承自Collection接口,是单列集合。

面向对象测试题资料

面向对象测试题资料

一、问答题1.值类型和引用类型的区别?值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。

值类型变量直接把变量的值保存在栈中,引用类型的变量把实际数据的地址保存在栈中,而实际数据则保存在堆中。

注意,堆和栈是两个不同的概念,在内存中的存储位置也不相同。

堆(Heap)一般用于存储可变长度的数据,如字符串类型堆中保存值和对象,调用完毕之后依然存在,由垃圾回收器查找栈中有无指向该值或对象的引用,无则从堆中删除;栈(Stack)则用于存储固定长度的数据,如整型类型的数据int(每个int变量占用四个字节),栈由系统管理生存期,存储代码执行和调用路径,执行或调用完毕即从栈中清除。

由数据存储的位置可以得知,当把一个值变量赋给另一个值变量时,会在堆栈中保存两个完全相同的值;而把一个引用变量赋给另一个引用变量,则会在堆栈中保存对同一个堆位置的两个引用,即在堆栈中保存的是同一个堆的地址。

在进行数据操作时,对于值类型,由于每个变量都有自己的值,因此对一个变量的操作不会影响到其它变量;对于引用类型的变量,对一个变量的数据进行操作就是对这个变量在堆中的数据进行操作,如果两个引用类型的变量引用同一个对象,实际含义就是它们在堆栈中保存的堆的地址相同,因此对一个变量的操作就会影响到引用同一个对象的另一个变量。

(1) 值类型包括:简单类型、结构类型、枚举类型。

其中,简单类型又分为:整型、布尔型、字符型、浮点型、小数型。

(2) 引用类型包括:对象类型、类类型、接口、元数据、字符串类型、数组。

//值类型与引用类型的例子static void Main(string[] args){//=====值类型,操作的是值========int i1 = 10;int i2 = i1;i2 = 88;Console.WriteLine(i1 + " " + i2);//10 88 [由于值类型直接操作值,所以不会发生改变]//=====引用类型,操作的是引用,所谓的引用可以看作是指向内存的地址,地址再对应着内容=====int[] intArr1 = new int[] { 1, 2, 3 };int[] intArr2 = intArr1;intArr2[0] = 9;intArr2[2] = 0;foreach (int i in intArr1){Console.Write(i);//结果:920[由于引用类型intArr1的引用赋值给了intArr2,所以他们是持有同一个引用,当intArr2的引用发生改变的时候,intArr1的引用也将发生变化]}foreach (int j in intArr2){Console.Write(j);//结果:9 2 0}Console.Read();下面代码的输出结果是什么?class Program{static void Main(string[] args){string b;b = "old";Func1(ref b);Console.WriteLine(b);int c;c = 3;Func1(ref c);Console.WriteLine( c);}public static void Func1(ref string a){a = "new";}public static void Func1(ref int a){a = 6;}}答案:new6题目2:下面代码的输出结果是什么?class Program{static void Main(string[] args){string b;b = "old";Func1( b);Console.WriteLine(b);int c;c = 3;Func1( c);Console.WriteLine( c);}public static void Func1( string a){a = "new";}public static void Func1( int a){a = 6;}}答案:old32.简述装箱和拆箱的过程。

面向对象试题(标准答案)

面向对象试题(标准答案)

面向对象试题(标准答案)CoreJavaOOP考试题考试时间:90分钟考试总分:100分一、选择题(不定项选择)(22*4=88)1.类A,B的定义如下:class A {private int a = 100;A() {System.out.print("A()");System.out.println(a);}}class B extends A {private int a = 200;B() {System.out.print("B()");System.out.println(a);}}运行下面的代码:new B();输出的结果是:(A )。

A.A() 100B() 200B.A() 200B() 200C.B() 200A() 100D.B() 200A() 2002.下列说法正确的是(D )A.所有类都必须定义构造方法(构造器)B.构造方法必须初始化类的所有数据成员C.子类定义了构造器后,不再调用父类的构造器D.构造方法可以访问类的非静态成员3.在Java中,哪个关键字使类不能派生子类?, (A )A : finalB : publicC : privateD : native4.class Base{static void test(){System.out.println(“Base.test()”);}}public class Child extends Base{static void test(){System.out.println(“Child.test()”);}public static void main(String[] args){Base base = new Child();Child child = new Child();base.test();child.test();}}程序运行的结果是( C )A.Child.test() Child.test()B.Child.test() Base.test()C.Base.test() Child.test()D.Base.test() Base.test()5.下列哪些叙述是正确的(CD )A.在一个类中,方法不能与类名相同B.a bstract 可以修饰属性、方法和类C.实例方法可直接调用本类的static方法和非static方法D.static方法不能调用非static方法6.以下说法正确的是(ABC)A.子类不能继承父类的构造方法B.子类的构造方法可以访问父类的构造方法C.子类不可直接访问父类的私有属性D.子类可以重写父类的所有方法7.分析选项中关于Java中this关键字的说法正确的是( A )A.this关键字是在对象内部指代自身的引用B.this关键字可以在类中的任何位置使用C.this关键字和类关联,而不是和特定的对象关联D.同一个类的不同对象共用一个this8 下列关于继承的说法哪个是正确的?( B )A.子类只继承父类public方法和属性B.子类继承父类的非私有属性和方法C.子类只继承父类的方法,而不继承父类的属性D.子类将继承父类的所有属性和方法9.在Java中,关于final关键字的说法正确的是(AC )A.final修饰的变量,一旦赋值就不能被更改B.final修饰的类只能被一个子类继承C.final修饰的方法,不能在子类中被覆盖D.final修饰的方法,不能被子类继承10. String s=new String(“xyz”)创建了几个对象(C);A. 0B. 1C. 2D. 311.下列语句的序列执行后,k的值是( B )int m=3,n=6,k=0;While((m++)<(--n))++k;A.0B.1C.2D.312.下列哪一项不是面向对象的典型特征(D )A.封装 B.继承C. 多态D.抽象13.(多选)在java中,关于构造方法,下列说法正确的是(ABD )A.构造方法的名称必须与类名相同B.构造方法可以带参数C.构造方法不可以重载D.构造方法绝对不能有返回值14.下面关于变量的说法正确的是(BC )A.实例变量可以通过类名直接调用B.类变量可以通过类名直接调用C. Java中的参数传递都是值传递D. 在不同的作用域不能定义相同的变量15.下列代码有编译错误的是第(C )行1)public class Test{2)public static void main(String[] args){3)int[] arr1 = new int[12];4)char[] arr2 = new char[];5)int[] arr3 = {};6)Object[] obj = new Object[4];7)Object obj1 = new object[9];8)}9)}A.5)B.5) 7)C.4) 7)D.4)16.下列代码的运行结果是(A )public class Test{private int num;private static Test test;public Test(int num){this.num = ++ num;}static{int num = 16;test = new Test(num);++ test.num;}public static void main(String[] args){ test = new Test(13);System.out.println(test.num);}}A.14B.15C.16D.1717.仔细分析下列代码,请指出错误的行(D )。

《面向对象程序设计》模拟试卷

《面向对象程序设计》模拟试卷

浙江警官职业学院2013—2014学年第一学期期末考试《面向对象程序设计》模拟试卷一、判断题。

(共10分,每题1分,对的打“√”,错的打“メ”)1、C#程序必须包含一个Main方法作为程序的入口点。

(√)2、String类型是引用类型。

(√)3、只有Get访问器的属性称为只写属性。

(メ)4、构造函数可以被重载。

(√)5、属性占用存储空间。

(メ)6、类中的静态构造函数不能带参数,不能具有可访问性修饰符。

(√)7、一个类可以有多个不同名的构造函数。

(メ)8、子类将继承父类所有的成员。

(√)9、变量在可以作为ref引用参数传递之前,可以不赋值。

(メ)10、一个类可以实现多个接口。

(√)二、选择题。

(共20分,每题1分)1、以下C#注释代码,不正确的是( D )。

A、 //C#注释代码B、 //C#注释代码1//C#注释代码2C、 ////C#注释代码D、 /*C#注释代码*/2、下面属于合法的字符串常量的是( B )。

A、@XYZB、 "XYZ"C、’XYZ’D、XYZ3、在窗体中,改变label标签的显示结果,需修改的属性是(A )。

A、TextB、 NameC、TitleD、Index4、当没有定义访问修饰符时,类的成员的默认访问修饰符为( D )。

A、 privateB、 publicC、 protectedD、 internal5、执行下列语句将产生的结果是( B )。

int i=1。

if ( i ) Console.WriteLine(true)。

else Console.WriteLine(false)。

A、输出1B、输出trueC、输出falseD、编译错误6、以下关于静态方法的说法,不正确的是( D )。

A、静态方法不对特定实例进行操作B、静态方法只能直接访问静态成员C、在静态方法中引用this会导致编译时错误D、静态方法通过类的实例来访问7、定义一个数组string[] role={“赵灵儿”,“李逍遥”,“林月如”,“杨过”,“小龙女”},数据中的role[5]指的是(D)。

面向对象技术练习试卷2(题后含答案及解析)

面向对象技术练习试卷2(题后含答案及解析)

面向对象技术练习试卷2(题后含答案及解析) 题型有:1. 选择题选择题(每小题1分,共75分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。

1.根据如图1-7所示的UML类图可知,类Car和类Boat中的move( )方法______。

A.引用了类Transport的move( )方法B.重置了类Transport的move( )方法C.是类Transport的move( )方法的聚集D.是类Transport的move( )方法的泛化正确答案:B解析:在UML类图中,“”表示其相联的两个类之间存在泛化关系,即在图1-7中显示了一个继承结构:类Transport为基类,其子类分别为类Car和类Boat。

同是注意到,在图1-7中的类Transport的名字之下有一个标识&lt;&gt;。

该标识用于说明该类是一个抽象类,类中的方法move( )必须在子类中重新定义的纯虚拟函数。

由图1-7中可以看出,在两个子类中都定义了函数原型完全相同的move( )方法。

在面向对象程序设计中,使用动态多态一一重置(overriding)时需满足3个条件:①类之间具有继承关系、②基类中至少定义一个纯虚拟函数、③在子类中重新定义这个纯虚拟函数。

因此,图1-7给出的UML 类图结构满足了重置的3个条件,说明子类Car和子类Boat中的move( )方法重置了基类Transport的move( )方法。

知识模块:面向对象技术2.用UML建立业务模型是理解企业业务过程的第一步。

业务人员扮演业务中的角色及其交互方式,例如长途汽车站的售票员是业务人员,大型商场的销售员也是业务人员,他们之间的关系是______。

A.AggregationB.CompositionC.GeneralizationD.Association正确答案:C解析:选项A的“聚集关系(Aggregation)”是关联关系(Association)的一种特例,它代表两个类之间的整体和局部关系。

面向对象模拟试题(手机、PDA版)

面向对象模拟试题(手机、PDA版)

2010-2011学年第1学期面向对象建模技术模拟试题(A卷)考试时间:2010年12月30日班级学号✧请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰;✧请在答题纸和试题纸上都写上你的班级,学号和,交卷时请将试题纸、答题纸和草纸一并交上来。

一、选择题,每题1分,共计20分。

每个括号里的数字为该空的题号,从该题号对应的备选答案中选择最佳的一项,每空限填一个选项。

请按如下表格在答题纸上答此题。

1~5题 C D B C C6~10题 A B C B D11~15题 A C A C C16~20题 B D A B A在UML语言中,下图中的a、b、c三种图形符号按照顺序分别表示(1)。

a b c1.供选择的答案:CA. 边界对象、实体对象、控制对象B. 实体对象、边界对象、控制对象C. 控制对象、实体对象、边界对象D. 边界对象、控制对象、实体对象(2)设计模式定义了对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。

2.供选择的答案:DA. Adapter(适配器)B. Iterator(迭代器)C. Prototype(原型)D. Observer(观察者)Round-Trip Engineering能够帮助维持软件架构的完整性。

但(3) 不是Round-trip Engineering 的好处之一。

3.供选择的答案:BA. 发现和评估软件架构上的改动B. 为相同的接口提供不同的实现C. 在每次迭代中保持模型和代码的同步D. 传达被接受的架构改动下面4种符号在Rose中表示的模型元素分别为(4)4.供选择的答案:CA. 接口(Interface) 类操作(Operation) 时序图(Sequence Diagram) 类属性(Attribute)B. 类操作(Operation) 接口(Interface) 类属性(Attribute) 时序图(Sequence Diagram)C. 接口(Interface) 类属性(Attribute) 类操作(Operation) 时序图(Sequence Diagram)D. 时序图(Sequence Diagram) 类属性(Attribute) 接口(Interface) 类操作(Operation)在建立系统的用例模型时,首先应该确定系统的参与者。

《面向对象程序设计》模拟试题及答案0

《面向对象程序设计》模拟试题及答案0

《面向对象程序设计》模拟试题及答案0《面向对象程序设计》模拟试题及答案一、单项选择题(每小题2分,共20分)1. C++程序的基本功能模块为()。

A. 表达式B. 标识符C. 语句D. 函数2. 当处理特定问题的循环次数已知时,通常采用()来解决。

A. for循环B. while循环C. do循环D. switch语句3. 下面函数原型语句正确的是()。

A. int Function(void a);B. void Function (int);C. int Function(a);D. int(double a);4. 假定变量m定义为“int m=7;”,则定义变量p的正确语句为()。

A. int p=&mB. int *p=&mC. int &p=*m;D. int *p=m;5. 假定变量a和pa定义为“double a[10], *pa=a;”,要将12.35赋值给数组a中的下标为5的元素,不正确的语句是()。

A. pa[5]=12.35;B. a[5]=12.35;C. *(pa+5)=12.35;D. *(a[0]+5)=12.35;6. 假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为()。

A. x.aB. x.a()C. x->GetValue()D. x.GetValue()7. 类的构造函数是在定义该类的一个( )时被自动调用执行的。

A. 成员函数B. 数据成员C. 对象D. 友元函数8. 假定AB为一个类,则执行“AB x;”语句时将自动调用该类的( )。

A. 带参构造函数B. 无参构造函数C. 拷贝构造函数D. 赋值重载函数9. 假定一个类AB只含有一个整型数据成员a,当用户不定义任何构造函数时,系统为该类定义的无参构造函数为( )。

A. AB() {a=0;}B. AB(int aa=0): a(aa) {}C. AB(int aa): a(aa) {}D. AB() {}10. 如果表达式a++中的“++”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为()。

Android应用开发面向对象编程考试

Android应用开发面向对象编程考试

Android应用开发面向对象编程考试(答案见尾页)一、选择题1. 在Android应用开发中,以下哪个选项是面向对象编程(OOP)的基本概念?A. 封装B. 多态C. 继承D. 抽象2. 在Android应用开发中,什么是封装?A. 将数据隐藏在对象内部B. 提高代码的可维护性C. 提高代码的可重用性D. 以上都是3. 在Android应用开发中,什么是继承?A. 创建一个新的类,这个新类是已存在的类的扩展B. 创建一个新的类,这个新类与已存在的类完全相同C. 创建一个新的类,这个新类包含已存在的类的所有成员D. 以上都不是4. 在Android应用开发中,什么是多态?A. 同一个接口可以被不同的对象以不同的方式实现B. 一个类的多个实例可以拥有相同的数据C. 一个类的不同实例可以拥有相同的方法D. 以上都不是5. 在Android应用开发中,什么是抽象?A. 不能被实例化的类B. 包含常量的类C. 用于描述具有共同特征的事物的类D. 以上都不是6. 在Android应用开发中,如何定义一个自定义的Android组件?A. 使用IntentB. 使用XML布局文件C. 使用Java或Kotlin代码D. 使用Android Studio的模板7. 在Android应用开发中,什么是Android生命周期?A. 应用程序从启动到结束的过程B. 应用程序在后台执行的状态C. 应用程序在前台执行的状态D. 应用程序在暂停状态8. 在Android应用开发中,什么是监听器?A. 用于接收用户输入的界面元素B. 用于处理网络请求的类C. 用于监听Android系统事件的类D. 以上都不是9. 在Android应用开发中,什么是Content Provider?A. 用于存储和共享数据的类B. 用于管理应用程序的配置信息的类C. 用于提供访问数据库服务的类D. 以上都不是10. 在Android应用开发中,什么是View Group?A. 用于组织和显示视图的一个容器B. 用于创建自定义视图的类C. 用于处理用户触摸事件的类D. 以上都不是11. Android应用开发中,以下哪个是继承自Activity类?A. ActivityB. ServiceC. BroadcastReceiverD. ContentProvider12. 在Android中,什么是抽象类?A. 不能包含构造函数的类B. 包含抽象方法的类C. 不能包含抽象方法的类D. 可以包含抽象方法和具体方法的类13. Android中的AsyncTask是什么?A. 一个用于执行后台任务的类B. 一个用于处理网络请求的类C. 一个用于显示通知的类D. 一个用于管理应用的生命周期的类14. 在Android中,什么是Content Provider?A. 用于存储和检索数据的一个类B. 用于提供数据给其他应用的一个类C. 用于处理用户界面的一个类D. 用于管理应用的设置的一个类15. 以下哪个是Android中使用LiveData的主要原因是?A. 它们可以轻松地与其他LiveData实例进行组合B. 它们允许对内存中的数据进行延迟加载C. 它们提供了一种高效的方式来观察和响应数据变化D. 它们可以轻松地在不同的线程之间同步数据16. 在Android中,什么是监听器模式?A. 一种设计模式,用于在两个或多个对象之间传递消息B. 一种设计模式,用于在客户端和服务器之间建立通信C. 一种设计模式,用于处理用户界面上的事件D. 一种设计模式,用于管理应用的配置信息17. Android中的Handler是什么?A. 用于在主线程和子线程之间进行通信的类B. 用于处理网络请求的类C. 用于显示通知的类D. 用于管理应用的生命周期的类18. 什么是Android中的ContentObserver?A. 用于观察和响应数据变化的一个类B. 用于存储和检索数据的一个类C. 用于处理用户界面的一个类D. 用于管理应用的设置的一个类19. 在Android中,什么是BroadcastReceiver?A. 用于接收并处理来自外部源的通知的类B. 用于存储和检索数据的一个类C. 用于处理用户界面的一个类D. 用于管理应用的配置信息20. 什么是Android中的Object类?A. 所有Java对象的基类B. 用于表示应用程序中的单个实体C. 用于定义线程模型D. 用于管理应用的配置信息二、问答题1. 请解释面向对象编程(OOP)的基本概念及其在Android应用开发中的应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2010-2011学年第1学期面向对象建模技术模拟试题(A卷)考试时间:2010年12月30日班级学号姓名请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰;请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸一并交上来。

一、选择题,每题1分,共计20分。

每个括号里的数字为该空的题号,从该题号对应的备选答案中选择最佳的一项,每空限填一个选项。

请按如下表格在答题纸上答此题。

1~5题C D B C C6~10题A B C B D11~15题A C A C C16~20题B D A B A在UML语言中,下图中的a、b、c三种图形符号按照顺序分别表示(1)。

a b c1.供选择的答案:CA. 边界对象、实体对象、控制对象B. 实体对象、边界对象、控制对象C. 控制对象、实体对象、边界对象D. 边界对象、控制对象、实体对象(2)设计模式定义了对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。

2.供选择的答案:DA. Adapter(适配器)B. Iterator(迭代器)C. Prototype(原型)D. Observer(观察者)Round-Trip Engineering能够帮助维持软件架构的完整性。

但 (3) 不是Round-trip Engineering的好处之一。

3.供选择的答案:BA. 发现和评估软件架构上的改动B. 为相同的接口提供不同的实现C. 在每次迭代中保持模型和代码的同步D. 传达被接受的架构改动下面4种符号在Rose中表示的模型元素分别为(4)4.供选择的答案:CA. 接口(Interface) 类操作(Operation) 时序图(Sequence Diagram) 类属性(Attribute)B. 类操作 (Operation) 接口 (Interface) 类属性 (Attribute) 时序图 (Sequence Diagram)C. 接口 (Interface) 类属性 (Attribute) 类操作 (Operation) 时序图 (Sequence Diagram)D. 时序图(Sequence Diagram) 类属性(Attribute) 接口(Interface) 类操作(Operation)在建立系统的用例模型时,首先应该确定系统的参与者。

以下问题中,对于确定参与者没有用处的是(5)。

5.供选择的答案:CA. 谁是系统的主要用户,即谁使用系统的主要功能B. 谁来管理、维护系统,以保证系统的正常运行C. 系统的功能应该如何实现D. 系统需要与哪些其他的系统交互(6)技术是将一个活动图中的活动状态进行分组,每一组表示一个特定的类、人或部门,他们负责完成组内的活动。

6.供选择的答案:AA. 泳道B. 分叉汇合C. 分支D. 转移UML 中的构件是遵从一组接口并提供一组接口的实现,下列说法错误的是(7)。

7.供选择的答案:BA. 构件应是可替换的B. 构件表示的是逻辑模块而不是物理模块C. 构件应是组成系统的一部分D. 构件与类处于不同的抽象层次下列对状态图描述不正确的是(8)8.供选择的答案:CA. 状态图通过建立类对象的生命周期模型来描述对象随时间变化的动态行为B. 状态图适用于描述状态和动作的顺序,不仅可以展现一个对象拥有的状态,还可与说明事件如何随着时间的推移来影响这些状态C. 状态图的主要目的是描述对象创建和撤销的过程中资源的不同状态,有利于开发人员提高开发效率D. 状态图描述了一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处状态对不同的事件作出反应在用ROSE创建的类图中,“ #”表示的可见性是(9)9.供选择的答案:B(A)Public (B)Protected (C)Private (D)Package在ATM自动取款机的工作模型中(用户通过输入正确的用户资料,从银行取钱的过程),下面哪个不是“Actor”(10 )10.供选择的答案:DA. 用户B. ATM取款机C. ATM取款机管理员D. 取款已知3个类A、B和C,其中类A由类B的一个实例和类C的一个或多个实例构成。

能够正确表示类A、B和C之间关系的UML类图是( 11 )。

11.供选择的答案:A构件图的组成不包括(12)12.供选择的答案:C(A)接口(B)构件(C)发送者(D)依赖关系(13)是用于把元素组织成组的通用机制13.供选择的答案:AA. 包B. 类C. 接口D. 组件类A的一个操作调用类B的一个操作,且这两个类之间不存在其他关系,那么类A和类B之间是( 14) 关系。

14.供选择的答案:CA. 实现B. 继承C. 依赖D. 关联UML中的事物包括:结构事物,分组事物,注释事物和(15)15.供选择的答案:CA. 实体事物B. 边界事物C. 行为事物D. 动作事物在ROSE中,时序图和协作图(或通信图)通常建立在(16)下的use case realization 包中。

16.供选择的答案:BA. use case viewB. Logical ViewC. Component ViewD. Deployment view在 RSA中包含很多模型模板,供开发者在系统建模时选用。

(17)不是RSA提供的模型模板。

17.供选择的答案:DA. Analysis ModelB. Service Design ModelC. XSD ModelD. Eclipse plug-in Model(18) 反映类、接口或构件的内部协作,用于表达运行时的体系结构、使用模式及关系。

18.供选择的答案:AA. composite structure diagramB. deployment diagramC. use case diagramD. sequence diagram如下的短语(19)能最好地表示“泛化”关系。

19.供选择的答案:BA. Is a part ofB. Is a kind ofC. Is a replica ofD. Is an inheritance of下面的(20)模式将对象组合成树形结构以表示“部分-整体”的层次结构,并使得用户对单个对象和组合对象的使用具有一致性。

20.供选择的答案:AA. 组合(Composite)B. 桥接(Bridge)C. 修饰(Decorator)D. 外观(Facade)二、判断正误,每题1分,共计15分。

请按如下表格在答题纸上答此题。

1、在用例图中,Actor仅代表与目标系统进行交互的人。

2、 Controlled Unit是可以进行版本控制的模型元素,在ROSE中,模型文件本身被打包存储为.cat文件从而成为受控单元,Logical View和Use CaseView被打包成.mdl文件而成为受控单元。

3、RSA支持模型驱动(Model-Driven Development)的开发。

4、在状态图中,内部转换可导致进入转换和离开转换的执行。

5、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。

6、在两个用例中,如果一个用例拥有另一个用例的所有结构、行为和关系,并在此基础上增加了新的特性,则此两个用例之间可以用泛化关系表示。

7、UML适用于以体系结构为中心的开发过程,但不适合在具有迭代特征的开发过程中使用。

8、在UML状态图中,历史状态用于存储以前的状态。

9、请求接口(Required Interface)用于定义一个构件所提供的服务。

10、每个模型都是由一种图来刻画的。

11、Use Case Realization 和相应的Use Case之间是一种泛化关系。

12、分析机制(Analysis mechanisms)通常用于分析阶段,通过提供对系统复杂行为(如安全性、持久存储等)的简短描述来减少分析的复杂性并改善软件在各开发阶段一致性。

13、在RUP中,识别设计元素(Identify Design Elements)是精化体系结构(Refine theArchitecture)活动中的一个步骤。

14、在ROSE中,从Browser窗口删除图形元素和从Diagram窗口中删除模型元素的效果相同。

15、RSA中的浏览图(Browse Diagram)和主题图(Topic Diagram)同属于查询图(Query Diagram)。

三、完成下列各题,在答题纸上写出答案。

每题5分,共计40分。

1. 说明Sequence Diagram 和Collaboration Diagram (或中的Communication Diagram)的异同点。

(5分)相同:Sequence Diagram 和Collaboration Diagram 都是用于描述模型动态特性的交互图。

Sequence Diagram 和Collaboration Diagram从语意上讲是相同的,他们只是从不同的方面来描述一次交互。

不同:Sequence Diagram重点强调消息的时间顺序;Collaboration Diagram强调一次交互中各个对象之间的关系2. RUP中将软件生命周期划分为哪些阶段,每个阶段所完成的工作有哪些用活动图画出RUP中的分析和设计两个核心工作流所包含的活动和流程。

(5分)1.初始阶段Inception:不是需求分析,而是可行性分析2.细化阶段Elaboration:不是需求分析或设计过程,而是迭代式实现核心体系结构,缓解高风险问题3.构造阶段Construction:实现遗留下来的风险较低和比较容易的元素,准备部署4.移交阶段Transition:测试,部署3. 列出体系结构建模中“4+1”Views中都有哪5个View,并简单说明每个View所关注的内容。

(5分)4. 比较活动图和状态图,从描述重点和使用场合两个方面说明它们的不同之处。

(5分)Activity diagram和State diagram描述的重点不同:Activity diagram描述的是从activity到activity的控制流,而State diagram描述的是对象的状态及状态之间的转移。

Activity diagram和State diagram使用的场合不同:对于以下几种情况可以使用Activity diagram:分析用例、理解涉及多个用例的工作流、处理多线程应用。

对于下面的情况要使用State diagram:显示一个对象在其生命周期内的行为。

5. Stereotypes(版型)有什么作用给出两Stereotypes的例子。

(5分)答案:Stereotypes可以用来扩展UML元素的语意。

例子:6. 说明UML中的关联、泛化、实现、依赖四种关系各自的含义,并区分聚合(Aggregation)和组合(Composition)两种关系的不同。

相关文档
最新文档