自测题_8(面向对象一)(答案)
面向对象试题(标准答案)

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 )。
面向对象考试题目和答案

面向对象考试题目和答案一、单项选择题(每题2分,共20分)1. 面向对象程序设计中,对象的状态由()来表示。
A. 属性B. 方法C. 消息D. 类答案:A2. 在面向对象程序设计中,封装的目的是()。
A. 隐藏对象的属性B. 隐藏对象的方法C. 隐藏对象的实现细节D. 隐藏对象的消息答案:C3. 面向对象程序设计中,继承的主要优点是()。
A. 重用代码B. 减少代码量C. 提高程序的可读性D. 所有以上选项答案:D4. 在面向对象程序设计中,多态性是指()。
A. 一个对象可以有多个类B. 一个类可以有多个对象C. 一个消息可以有多个行为D. 一个类可以有多个属性答案:C5. 在面向对象程序设计中,以下哪个不是类的组成部分()。
A. 属性B. 方法D. 函数答案:D6. 在面向对象程序设计中,以下哪个概念不是面向对象的核心概念()。
A. 封装B. 继承C. 多态D. 过程答案:D7. 在面向对象程序设计中,以下哪个概念是面向对象的核心概念之一()。
A. 函数B. 过程C. 消息D. 抽象8. 在面向对象程序设计中,以下哪个不是类的成员()。
A. 属性B. 方法C. 函数D. 消息答案:C9. 在面向对象程序设计中,以下哪个不是类的属性()。
A. 私有属性B. 保护属性C. 公共属性D. 全局属性答案:D10. 在面向对象程序设计中,以下哪个不是类的访问修饰符()。
B. 保护C. 公共D. 静态答案:D二、多项选择题(每题3分,共15分)1. 面向对象程序设计中,以下哪些是类的属性()。
A. 私有属性B. 保护属性C. 公共属性D. 全局属性答案:ABC2. 面向对象程序设计中,以下哪些是类的成员()。
A. 属性C. 函数D. 消息答案:ABD3. 面向对象程序设计中,以下哪些是类的访问修饰符()。
A. 私有B. 保护C. 公共D. 静态答案:ABC4. 面向对象程序设计中,以下哪些是面向对象的核心概念()。
面向对象测试题及答案

面向对象测试题及答案一、选择题(每题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`方法以显示电动汽车启动的信息。
面向对象期末考试题及答案

面向对象期末考试题及答案一、选择题(每题2分,共20分)1. 面向对象编程中的三大特性是?A. 封装、继承、多态B. 抽象、继承、封装C. 继承、封装、多态D. 封装、抽象、多态答案:A2. 在Java中,哪个关键字用于定义类?A. classB. structC. typeD. interface答案:A3. 以下哪个不是面向对象设计原则?A. 单一职责原则B. 开闭原则C. 里氏替换原则D. 模块化原则答案:D4. 在面向对象编程中,构造函数的作用是什么?A. 用于创建对象B. 用于销毁对象C. 用于实现继承D. 用于实现多态答案:A5. 以下哪个是Java中的访问修饰符?A. privateB. publicC. protectedD. 全部都是答案:D...(此处省略剩余选择题)二、简答题(每题10分,共30分)1. 简述面向对象编程的基本思想。
答案:面向对象编程是一种编程范式,它将现实世界中的实体抽象成对象,这些对象具有属性和行为。
面向对象编程的基本思想是将数据和处理数据的方法结合在一起,形成对象。
通过对象之间的交互来实现程序的功能。
2. 解释什么是多态性,并给出一个简单的例子。
答案:多态性是指允许不同类的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。
例如,在Java中,可以通过重载和重写来实现多态。
假设有一个动物类Animal,它有一个方法makeSound()。
然后有一个子类Dog,它重写了makeSound()方法。
当我们创建一个Dog对象并调用makeSound()时,会执行Dog类中的makeSound()方法,而不是Animal类中的。
3. 什么是封装?封装的好处是什么?答案:封装是将对象的数据(属性)和行为(方法)组合在一起,并隐藏对象的内部细节,只暴露出一个可以被外界访问的接口。
封装的好处包括:保护数据、减少错误、提高代码的重用性、增强模块化。
三、编程题(每题25分,共50分)1. 编写一个Java程序,实现一个简单的银行账户类Account,包含以下特性:- 私有属性:账户余额balance- 公共方法:存款deposit(double amount)、取款withdraw(double amount)、获取余额getBalance()答案:```javapublic class Account {private double balance;public Account() {this.balance = 0;}public void deposit(double amount) {if (amount > 0) {balance += amount;}}public void withdraw(double amount) {if (amount > 0 && balance >= amount) {balance -= amount;}}public double getBalance() {return balance;}}```2. 假设有一个名为Car的类,它有两个属性:品牌brand和颜色color。
C++面向对象程序设计(试题与答案)

模拟试题(1)一、判断对错题(10%)(对√,错×)()1.自动变量用堆方式创建,它与块共存亡。
()2.运算符+=是右结合的。
()3.表达式cout<<99的类型为int。
()4.++i是左值,但i++不是左值。
()5.Y[I][J]与*(*Y+I)+J不等价。
()6.从外部看类的private 成员和protected成员有区别。
()7.运算符&不可以重载。
()8.基类的protected成员经过protected派生,在派生类中它变成了private成员。
()9.2.0/-3.0是一个正确的表达式。
()10.字符'\12'的ASCII为12。
二、填空题(20%)#include <iostream.h>typedef struct node{long data;node * next;};class stack{private:node * head;①__________stack();~stack();void push (②__________);③__________ pop();④__________ print();};stack::stack(){ head = new ⑤__________head->next = ⑥__________ }stack::~stack(){node * p;p = head;while (p){head = head->next;⑦__________p = head;}}void stack::push(long x){node * p = new node;p->data = x;p->next = head->next;⑧__________ = p;cout<<"Push" <<x<<" ok !"<<endl;}long stack::pop(){node *p = head->next;if(p!=NULL){long x = p->data;head->next = p->next;⑨__________cout<<"pop "<<x<<" ok !"<<endl;return x;}elsecout<<"Stack is empty !"<<endl;return 0;}void stack::print(){node * p = head->next;cout<<"Stack_Top"<<endl;while (p){cout<<p->data<<endl;⑩__________;}cout<<"Stack_bottom"<<endl;}三、简答题(20%)(按条列出论点)1.注解。
自测题-8(面向对象一)(答案)

自测题-8(面向对象一)(答案)C/C++测试题面向对象选择题:C++概述1、以下C++新增的关键字为。
A break B continue C stuctD inline //答案:D2、面向对象程序设计将数据与______放在一起,作为相互依存、不可分割的整体来处理。
A对数据的操作B信息C数据隐藏D数据抽象//答案:A3、面向对象程序设计优于传统的结构化程序设计,其优越性主要表现在,它有希望解决软件工程的两个主要问题:软件复杂性和______。
A 软件生产率的提高B 精化已有的代码C 共享代码D 编写可重用代码//答案:A4、面向对象系统的______是一种信息隐藏技术,目的在与将对象的使用者与设计者分开,使用者不必知道对象行为实现的细节,只需用设计者提供的协议命令对象去做即可。
A多态性B 封装性C继承性D复用性//答案:B5、______不是面向对象系统所包含的要素A重载B对象C 类D继承//答案:A6、关于C++与C语言的关系的描述中,______是错误的。
A C语言是C++的一个子集B C++与C语言是兼容的C C++对C语言进行了一些改进D C++与C语言都是面向对象的//答案:D7、下面关于对象概念的表述中,______是错误的。
A 对象就是C语言中的结构变量B 对象代表着正在创建的系统中的一个实体C 对象是一个状态和操作(或方法)的封装体D 对象之间的信息传递是通过信息进行的//答案:A8、下面关于类概念的表述中,______是错误的。
A 类是抽象数据类型的实现B 类是具有共同行为的若干对象的统一描述体C 类是创建对象的样板D 类就是C语言中的结构类型//答案:D9、下列关于C++类的描述中错误的是______。
A 类与类之间可以通过一些手段进行通信和联络 B 类用于描述事物的属性和对事物的操作C 类与类之间必须是平等关系,而不能组成层次关系D 类与类之间可以通过封装而具有明确的独立性//答案:C10、下列关键字中,_______既在C语言中使用,又在C++语言中使用 A inline B break C private D public //答案:B11、C++对C语言做了很多改进。
《面向对象程序设计基础》自测题参考答案

《面向对象程序设计基础》自测题一、单项选择题1.在以下代码段中,正确的选项是【1】。
DA. ClassTestPrivate xAsIntegerEndClassPublicClassFrom1⋯⋯DimtAsNewTestt.x=10⋯⋯EndClassB.ClassTest PublicxAsIntegerEndClassPublicClassFrom1DimtAsTest( 缺Newt.x=5⋯⋯EndClassC.ClassTest Protected xAsIntegerEndClassPublicClassFrom1⋯⋯DimtAsNewTestt.x=10⋯⋯EndClassD.ClassTestPublicxAsIntegerEndClassPublicClassForm1⋯⋯DimtAsNewTestt.x=5⋯⋯EndClass2.在以下对于结构函数的说法中,错误的选项是2。
【】D A.结构函数本质上是名称为New的Sub过程B.一个类中能够有多个结构函数C.结构函数在对象实例化时由系统自动调用,程序不可以直接调用D.用户在定义类时一定在此中定义结构函数3.在下边的程序代码中,正确的选项是【3】。
C A.ClassTestPrivatexAsDoublePublicPropertyxx(AsDoubleGetReturnxEndGetSet(ByValValue 需加‘AsDoublex=ValueEndSetEndPropertyEndClassB.ClassTestPrivatexAsDoublePublicPropertyxx(‘不带ReadOnly或WriteOnly说明符的属性一定同时供给“Get”和“Set”Set(ByValValueAsDoublex=ValueEndSetEndPropertyEndClassC.ClassTestPrivatexAsDoublePublicReadOnlyPropertyxx(AsDouble GetReturnxEndGetEndPropertyEndClassD.ClassTestPrivatexAsDoublePublicPropertyxx(AsDouble ‘不带ReadOnly或WriteOnly说明符的属性一定同时提供“Get”和“Set”Set(ByValValueAsDoublex=ValueEndSetEndPropertyEndClass4.在以下对于继承的说法中,错误的选项是【4】。
java面向对象考试题及答案

java面向对象考试题及答案一、选择题(每题2分,共10分)1. 在Java中,以下哪个关键字用于定义一个类?A. classB. structC. interfaceD. enum答案:A2. 以下哪个选项是Java中类的成员变量?A. 方法B. 构造函数C. 属性D. 包答案:C3. 在Java中,哪个关键字用于实现类的继承?A. extendsB. implementsC. importD. package答案:A4. 在Java中,以下哪个关键字用于定义一个接口?A. classB. structC. interfaceD. enum答案:C5. 在Java中,以下哪个关键字用于定义一个枚举类型?A. classB. structC. enumD. interface答案:C二、填空题(每题2分,共10分)1. 在Java中,一个类可以继承另一个类的______方法。
答案:public2. 当一个类实现了一个接口,它必须提供接口中所有方法的______实现。
答案:具体3. Java中的______关键字用于定义一个包。
答案:package4. 在Java中,______关键字用于声明一个方法,该方法没有返回值。
答案:void5. 在Java中,______关键字用于声明一个方法,该方法返回一个布尔值。
答案:boolean三、简答题(每题5分,共20分)1. 简述Java中构造函数的作用。
答案:构造函数是类的特殊方法,用于在创建对象时初始化对象的状态。
它具有与类同名的名称,并且没有返回类型。
2. 描述Java中接口和抽象类的区别。
答案:接口是完全抽象的,不能包含任何实现细节,而抽象类可以包含实现细节。
接口中的方法默认是public和abstract的,而抽象类可以有非抽象方法。
一个类可以实现多个接口,但只能继承一个抽象类。
3. 什么是Java中的多态性?请举例说明。
答案:多态性是指允许不同类的对象对同一消息做出响应的能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C/C++测试题
面向对象
选择题:
C++概述
1、以下C++新增的关键字为。
A break
B continue
C stuct
D inline
//答案:D
2、面向对象程序设计将数据与______放在一起,作为相互依存、不可分割的整体来处理。
A对数据的操作B信息C数据隐藏D数据抽象
//答案:A
3、面向对象程序设计优于传统的结构化程序设计,其优越性主要表现在,它有希望解决软件工程的两个主要问题:软件复杂性和______。
A 软件生产率的提高
B 精化已有的代码
C 共享代码
D 编写可重用代码
//答案:A
4、面向对象系统的______是一种信息隐藏技术,目的在与将对象的使用者与设计者分开,使用者不必知道对象行为实现的细节,只需用设计者提供的协议命令对象去做即可。
A多态性B封装性C继承性D复用性
//答案:B
5、______不是面向对象系统所包含的要素
A重载B对象C类D继承
//答案:A
6、关于C++与C语言的关系的描述中,______是错误的。
A C语言是C++的一个子集
B C++与C语言是兼容的
C C++对C语言进行了一些改进
D C++与C语言都是面向对象的
//答案:D
7、下面关于对象概念的表述中,______是错误的。
A 对象就是C语言中的结构变量
B 对象代表着正在创建的系统中的一个实体
C 对象是一个状态和操作(或方法)的封装体
D 对象之间的信息传递是通过信息进行的
//答案:A
8、下面关于类概念的表述中,______是错误的。
A 类是抽象数据类型的实现
B 类是具有共同行为的若干对象的统一描述体
C 类是创建对象的样板
D 类就是C语言中的结构类型
9、下列关于C++类的描述中错误的是______。
A 类与类之间可以通过一些手段进行通信和联络
B 类用于描述事物的属性和对事物的操作
C 类与类之间必须是平等关系,而不能组成层次关系
D 类与类之间可以通过封装而具有明确的独立性
//答案:C
10、下列关键字中,_______既在C语言中使用,又在C++语言中使用
A inline
B break
C private
D public
//答案:B
11、C++对C语言做了很多改进。
下列描述中______使得C语言发生了质变,即从面向过程变成了面向对象
A增加了一些新的运算符B允许函数重载,并允许设置默认参数
C规定函数说明必须用原型D引进了类和对象的概念
//答案:D
12、下列C++标点符号中表示行注释开始的是______。
A #
B ;
C //
D }
//答案:C
13、下列关于C++与C语言关系的描述中错误的是______。
A C++是C语言的超集
B C++对C语言进行了扩充
C C++|与C语言都是面向对象的程序设计语言
D C++包含C语言的全部语法
//答案:C
14、下列正确的选项是______________。
A 继承是创建一个具有另一个类的属性和行为的新类的能力
B C语言支持面向对象的程序设计
C 空白符是一种可以被编译的符号
D 标识符不宜太长,一般设定为16个字符
//答案:A
15、下列关于多态说法错误的是_________。
A 不同的对象调用相同名称的函数,并可导致完全不同的行为的现象称为多态性
B C++语言中多态性通过使用封装技术来支持
C 多态是面向对象程序设计的一个重要机制
D 多态是人类思维方式的一种模拟
//答案:B
16、以下类的说明,请指出错误的地方________。
Class CSample
{
int a = 2; (A)
CSample(); (B)
Public:
CSample(int val); (C)
~CSample(); (D)
}
//答案:A
17、有关类的说法不正确的是________。
A 类是一种用户自定义的数据类型
B 只有类中的成员函数才能存取类中的私有数据
C 在类中,如果不做特别说明,所有的数据类型均为私有类型
D 在类中,如果不做特别说明,所有的成员函数均为公有类型
//答案:D
18、有关类和对象的说法下列不正确的有________。
A 对象是类的一个实例
B 任何一个对象只能属于一个具体的类
C 一个类只能有一个对象
D 类与对象的关系和数据类型和变量的关系//答案:C
19、关于类和对象,以下叙述正确的是______
A 一个类的成员函数可以任意调用
B 通常,只有通过具体的对象,才能访问类的成员函数
C 对象是模板,类是实例
D 类和对象间没有任何关系
//答案:B
20、有关构造函数的说法不正确的是________。
A 构造函数名字和类的名字一样
B 构造函数在说明类变量时自动执行
C 构造函数无任何函数类型
D 构造函数有且只有一个
//答案:D
21、有关析构函数的说法不正确的是________。
A 析构函数有且只有一个
B 析构函数无任何函数类型
C 析构函数和构造函数一样可以有形参
D 析构函数的作用是在对象被撤销时收回先前分配的内存空间
//答案:C
22、在类的定义体外定义成员函数时,需要在函数名前加上________。
A 类标记
B 类域标记
C 类对象
D 域运算符
//答案:B
23、在类的定义形式中,数据成员、成员函数和_______组成了类定义体。
A 成员的访问控制消息
B 公有消息
C 私有消息
D 保护消息
//答案:A
24、________的功能使对对象进行初始化。
A 析构函数
B 数据成员
C 构造函数
D 静态成员函数
//答案:C
25、若Q是类,a是它的一个对象,p1是类对象a的一个指针,那么类对象a可以通过
①_______来访问类的成员,类对象a的指针p1可以通过②_______来访问类的成员。
A ::
B .
C ;
D ->
//答案:①B ②D
26、下列的各类函数中,_________不是类的成员函数
A 构造函数
B 析构函数
C 友元函数
D 拷贝初始化构造函数
//答案:C
27、通常拷贝初始化构造函数的参数是__________。
A 某个对象名
B 某个对象的成员名
C 某个对象的引用名
D 某个对象的指针名//答案:C
28、类模板的使用实际上是将类模板实例化成一个具体的_______。
A 类
B 对象
C 函数
D 模板类
//答案:A
29、模板是实现类属机制的一种工具,其功能非常强大,它既允许用户构造类属函数,既①_______;也允许用户构造类属类,即② ________。
A 函数模板B模板函数 C 类模板 D 模板类
//答案:①B ②D
30、关于对象的this指针,以下叙述正确的是______
A 必须显式地在类定义中声明this数据成员,才能使用this指针
B 一旦生成一个对象,该对象的this指针就指向该对象本身
C 一个类的所有对象的this指针的值都是相同的
D 不能通过对象的this指针访问对象的数据成员和成员函数
//答案:B
31、关于new运算符的下列描述中,是错误的。
A 它可以用来动态创建对象和对象数组
B 使用它创建的对象或对象数组,可以使用运算符delete删除
C 使用它创建对象时要调用构造函数
D 使用它创建对象数组时必须指定初始值
//答案:D
32、关于delete运算符的下列描述中,是错误的。
A 它必须用于new返回的指针
B 它也适用于空指针
C 对一个指针可以使用多次该运算符
D 指针名前只用一对方括号,不管所删除数组的维数
//答案:C。