10~11(2)大基(面向对象部分)复习题
成人教育 《面向对象程序设计》期末考试复习题及参考答案

面向对象程序设计复习题二一、填空1.程序的三种常见结构是、、,其中结构是程序的默认结构。
2.同名方法给出不同的实现,并通过参数类型或个数进行区分,称为。
3.和“继承”匹配的概念是。
4.由类构建对象的过程称为。
5.抽象类是含有的类。
6.实现软件复用有两种方式,分别为、、。
7.有定义const int *p,p称为。
8.通过继承产生的类称为。
9.virtual关键字在C++中有两个用处,分贝是,和。
10.方法重载和实现了多态性。
11.请给出C++外的另外一种支持面向对象设计语言。
12.类的三个要素是、、。
13.对象释放前执行的函数是。
二、名词解释1、构造函数2、对象3、运算符重载4、析构函数5. 面向对象6. 继承三、简答1.比较类和结构体?2.重载的意义?3.抽象类的作用和意义?4.组合与继承的区别?四、辩析1.任何父类对象都可以被子类对象替代。
2.public修饰符号破坏了数据的开放性。
3.private继承方式不能产生子类。
4.不能实例化的类一定是抽象类。
五、综合回答1.简述多态的实现机制。
2.谈谈多态的意义。
3.面向对象程序设计思想的优点和缺点。
面向对象程序设计复习题二答案一、填空(1)顺序(2)选择(3)循环(4)顺序(5)函数重载(6)抽象(7)实例化(8)纯虚函数(9)继承(10) 组合(9)和(10)不区分顺序(11)常量指针(12)派生类(13)虚函数(14)虚拟继承(13)和(14)不区分顺序(15)覆盖(16)Java或者C#(17)类的标识(18)类的状态(19)类的操作(17)(18)(19)不区分顺序(20)析构函数二、名词解释1、当类实例化时自动调用的成员函数,负责实现对象的初始化2、按照数据类型分配的内存空间,可以实现方法的调用3、将系统定义的运算符操作对象的类型扩展的过程,一般针对自定义类型4、对象空间释放之前自动调用的函数5、是程序设计思想,相对面向过程而言更加强调封装性6、两个类之间的一种关系,其中一个类的某个成员类型是另一个类三、简答1、C++中类和结构体具有同等的功能,唯一区别是类缺省成员属性是private,而结构体缺省为public2、重载的意义在于丰富了动作的多样性,但是并不加重程序员的负担。
面向对象测试题及答案

面向对象测试题及答案一、选择题(每题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。
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.标识符、基本数据类型(字节数)、构造数据类型、运算符的种类、运算符的优先级和结合性、控制台输入和输出2.三种基本控制结构、if…else语句、switch语句、for语句、while语句、do…while语句、跳转语句;函数参数传递、函数重载、内联函数;标识符的作用域和生存期。
3.类的定义和使用、this指针、构造函数和析构函数、组合技术、静态成员、友元、运算符重载4.指针与数组、二级指针、动态内存的分配与释放、深复制与浅复制、递归。
5.派生类的构造与析构、派生类与基类的赋值兼容、多重继承与虚基类。
6.虚函数与动态绑定、纯虚函数与抽象类(二) 复习题一、单项选择题。
1.在switch语句中,为了结束分支,一般应在每个分支的结尾处加上语句(C)。
A. continueB. gotoC. breakD. default2.说明友元函数的关键字是(D)。
A. inlineB. virtualC. staticD. friend3.下面对指向常量的指针描述正确的是(C)。
A. 只能指向常量B. 指向的数据可以被修改C. 可以指向普通变量D. 必须进行初始化4.友元函数没有(A)。
A. this指针B. 返回类型C. 函数名D. 参数5.关于重载,(A)不正确。
A. 类名可以重载B. 函数名可以重载C. 运算符可以重载D. 缺省参数是重载的一种方式6.用new分配n维数组空间,首地址赋予指针p,则p应为指向(C)维数组的指针。
A. 0B. 1C. n-1D. n7.为类X重载前缀自增运算,则函数返回类型应为(C)。
A. XB. X*C. X&D. int8.以下(A)未调用构造函数(X为类名)。
A. X*p;B. X obj;C. X obj(1);D. X obj=2;9.若在类外有函数调用X::func();则函数func是类X的(C)函数。
面向对象程序设计复习题(附参考答案)

【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】机器语言中的指令编码为()编码。
[A.]二进制[B.1符号[c.1十进制[D.]数字【答案】A【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】JaVa语言的主要特点不包括()。
[A.]面向对象[B.]自动垃圾回收[CJ处理文件[D.]可移植性【答案】C【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】Java开发工具包简称为()。
[A.]JKD[B.]JRK[C.]JDK[D.]JRE【答案】C【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】具有相同属性和服务的一组对象的模板称为()。
1B.]类[c.1代码[D.]概念【答案】B【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】类是对具有共同属性和行为的对象的抽象描述,每个对象称为该类的一个()。
[A.]产品[B.1元素[c1成分[D.]实例【答案】D【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】Java是一门()语言。
[A.]机器[B.]汇编[C.)面向过程的高级[D.]面向对象的高级【答案】D【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】使用JDK编译JaVa程序时使用的命令是()。
面向对象程序设计复习资料(可编辑修改word版)

面向对象程序设计复习资料(可编辑修改word版)面向对象程序设计期末总复习题一、单项选择题1.下面关于对象概念的描述中,是错误的。
(B)A.对象代表着正在创建的系统中的一个实体B.对象就是C 语言中的结构体变量C.对象是一个状态和操作(或方法)的封装体D.对象之间的信息传递是通过消息进行的2.继承机制的作用是:(C)A.信息隐藏B.数据封装C.定义新类D.数据抽象3.有关析构函数的说法不正确的是(D)A.析构函数有且只有一个B.析构函数无任何函数类型C.析构函数没有形参D.析构函数不能是虚函数4.友元的作用之一是(A)A.提高程序的运行效率B.加强类的封装性C.实现数据的隐藏性D.增加成员函数的种类5.通常拷贝构造函数的参数是。
(C)A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名6.如果在基类中将show 声明为不带返回值的纯虚函数,正确的写法是。
(C)A.irtual show()=0;B.virtual void show();C.virtual void show()=0;D.void show=0 virtual;7.下面关于友元的描述中,错误的是。
(D)A.友元函数可以访问该类的私有数据成员B.一个类的友元类中的成员函数都是这个类的友元函数C.友元可以提高程序的运行效率D.类与类之间的友元关系可以继承8.在C++中,运算符不能重载。
(B)A. +B.?:C.-D.<=9.下列关于运算符重载的描述中,是正确的。
(D)A.运算符重载可以改变操作数的个数B.运算符重载可以改变优先级C.运算符重载可以改变结合性D.运算符重载不可以改变语法结构10.在下列函数原型中,可以作为类AA 构造函数的是(D)A.void AA(int) ; B.int AA( ) ; C.AA(int)const; D.AA(int);11.在声明类时,下面的说法正确的是。
(C)A.可以在类的声明中给数据成员赋初值B.数据成员的数据类型可以是 registerC.private,public,protected 可以按任意顺序出现D.没有用private,public,protected 定义的数据成员是公有成员12.继承具有,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。
(最新整理)c++面向对象复习题答案版

(完整)c++面向对象复习题答案版编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)c++面向对象复习题答案版)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)c++面向对象复习题答案版的全部内容。
一、填空题1。
C++中有两种数据类型:( char )和( int long )可以使用signed修饰符。
在C++中,用数组、指针、和(引用)作为函数参数,能够将参数值带回。
2。
为了降低函数调用的时间开销,建议将小的调用频繁的函数定义为(内联函数),方法是在函数类型前加上(inline)关键字。
3。
面向对象的程序设计有四大特征,它们是抽象、封装、(继承 )、(多态 )。
4.拷贝构造函数是在用一个对象初始化另一个对象时被调用,系统缺省的拷贝构造函数的工作方法是( 把对象的每个数据成员的值都复制到新建立的对象中)。
5。
用new申请某一个类的动态对象数组时,在该类中必须能够匹配到(该类的)构造函数,否则应用程序会产生一个编译错误。
6。
静态数据成员必须在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象( 共享)。
7.在C++中,定义重载函数时,应至少使重载函数的参数个数或参数类型( 不同).8。
在C++中,虽然友元提供了类之间数据进行访问的一种方式,但它破坏了面向对象程序设计的( 封装 )特性。
9.预编译指令由三种,它们是:文件包含、(宏定义 )和(条件编译)。
10。
静态的成员函数没有隐含的(this),所以,它们只能直接访问类的静态的数据成员。
11.在C++中,函数的参数有两种传递方式,它们是值传递和(地址).12。
当非静态成员函数被调用时,该成员函数的(this)指向调用它的对象。
面向对象程序设计复习题

一、选择题(每题1分,共30分)1. 下列关于C++语言的描述,哪个是错误的?()。
A. C++语言支持结构化程序设计方法B. C++语言是解释执行的C. C++语言是编译执行的D. C++语言支持面向对象程序设计方法2. 下列哪种数据类型的存储位数最多?()。
A. charB. intC. floatD. double3.下列哪个名字可以作为变量名?()。
A. No.1B. 123ABCC. longD. Long4. 下列定义变量语句中,错误的是()。
A. int x, y;B. int x = 5, y;C. int x = y = 5;D. int x = 5, y = 5;5. 计算圆形周长的公式是:周长=2πr,其中r为半径。
编写计算圆形周长的程序时需要将什么数据定义成变量?()。
A. πB. 半径C. 周长D. 半径和周长6. C++语言表达式:5 / 2,该表达式结果的数据类型和值分别是()。
A. short,2B. int,2C. float,2.5D. double,2.57. 执行C++语句:int x = 5, y = 6, z; z = x++ / --y; 执行后变量x、y和z的值分别为()。
A. 5, 5, 1B. 6, 5, 1C. 6, 5, 1.2D. 5, 6, 08. 执行下列语句:int x = 5, &y = x; y = x + 10; 执行后变量x的值为()。
A. 5B. 10C. 15D. 209. 下列定义并使用指针变量px的语句中,正确的是()。
A. int x, *px; px = 10;B. int x, *px = &x; px = 10;C. int x, *px; *px = 10;D. int x, *px = &x; *px = 10;10. 执行下列C++语句:int x = 15;if (x%2 == 0) cout << x / 2;else cout << x / 2 + 1;显示器上将显示()。
(完整word版)面向对象技术样题(附答案)

北京大学软件与微电子学院期末试题—面向对象分析与设计一、选择题( 20 分,共 10 题,每题 2 分)1.关于方法论与方法的关系的描述错误的是( B )A .方法论是一种观点,是一个有理论意义的架构。
B.方法包括理论与模型两个重要的方面。
C.面向对象的方法论的重要观点是:封装、数据隐藏、多态、关系等。
D.不同的方法可以属于同一种方法论。
2.关于信息隐藏的描述错误的是(C)A .信息隐藏是指对象在与外界的交互中,尽可能地隐藏对象的内部细节,仅保留有限的对外接口与外部进行联系。
B.信息隐藏既可以隐藏属性,也可以隐藏操作。
C.一个对象信息隐藏的内容对任何对象都是一样的,并不随与之交互的对象的不同而改变。
D.信息隐藏的原则是公开不变的操作,隐藏易变的操作。
3.关于多态的描述正确的是(D)A .多态是指在聚合关系中的各个类中名字相同的属性和操作具有不同的意义。
B.多态的实现机制是编译时静态链接。
C.函数名重载 (overload) 会导致多态现象出现。
D.多态可实现接口复用,节省大量的编码工作量.4.关于重载( overload)与覆盖( override)的说法正确的是( D)。
A .如果子类中的成员函数(f x)具有父类中成员函数f(x) 相同的函数名,那么称子类对父类的f(x) 进行了覆盖。
B.如果子类中的成员函数f(x )具有父类中成员函数f(x) 相同的基调,那么称子类对父类的f(x) 进行了重载。
C.重载导致多态,覆盖与多态无关。
D.覆盖由动态链接实现,重载由静态链接实现。
5.关于用况图与类图的描述正确的是( D)。
A.参与者是用况图中的元素,类是类图中的元素,二者没有关系。
B.用况图中用况应全部识别为类图中的同名类。
C.用况图中参与者应全部识别为类图中的同名类。
D.用况图中参与者有可能识别为类图中的主动类6.关于状态图的陈述正确的是( C)A.一个对象自身的属性值变化不能作为其状态图中的事件。
面向对象程序设计试题及答案

面向对象程序设计试题及答案一、试题1. 请简要解释面向对象(Object-Oriented)程序设计的概念。
2. 列举面向对象程序设计中的四个基本特征,并分别进行简要描述。
3. 请说明封装(Encapsulation)在面向对象程序设计中的作用和优势。
4. 解释继承(Inheritance)在面向对象程序设计中的概念和用途。
5. 什么是多态(Polymorphism)?请解释多态的概念以及其在面向对象程序设计中的重要性。
6. 简要介绍抽象类(Abstract Class)和接口(Interface)的概念,并说明它们之间的区别。
7. 请解释类(Class)与对象(Object)之间的关系。
8. 在面向对象程序设计中,什么是构造函数(Constructor)?请说明构造函数的作用和使用方法。
9. 请示范一个使用面向对象程序设计的简单实例,并说明你所设计的类的结构和功能。
二、答案1. 面向对象程序设计是一种以对象为中心的编程方法,通过定义表示对象属性和行为的类来组织程序结构,以实现代码的重用性、灵活性和可维护性。
2. (1)封装:将数据和对数据的操作封装在一个类中,通过访问权限控制,保护数据的安全性和完整性。
(2)继承:通过建立类之间的继承关系,实现代码的重用,具有层次性和扩展性。
(3)多态:允许不同类的对象对同一消息作出不同的响应,实现代码的灵活性和扩展性。
(4)抽象:通过抽象类和接口的定义,隐藏对象的具体实现细节,提供统一的接口和规范。
3. 封装的作用是将数据和对数据的操作封装在一个类中,外部无法直接访问类的内部实现细节,只能通过类提供的接口访问和操作数据。
封装的优势包括:(1)提高代码的可维护性和可读性,减少代码的重复。
(2)保护数据的安全性和完整性,防止外部直接对数据进行非法操作。
(3)降低模块之间的耦合度,提高代码的灵活性。
4. 继承是面向对象程序设计中的一个重要概念,它通过建立类与类之间的继承关系,实现代码的重用和扩展。
面向对象复习题

第一部分面向对象方法概述、填空题I•对象的抽象是______________ ,类的实例是_______________ 。
2.动态模型描述了系统的_________________ 结构。
3.软件系统中存在两种控制流,外部控制流是系统中对象之间外部事件的事件流,有 _______ 、_________ 和_________ 三种外部事件控制流。
_____________ 控制流是一个处理内部的控制,均可结构化。
4.在C++和C中有一个 ______________ 函数,可以使用这个过程来说明构成系统主要对象的那些类的实例。
5.继承性是__________ 自动共享父类属性和________________ 的机制。
6.对象具有封装性,实现了_______________ 的组合。
7.在面向对象方法中,信息隐藏通过对象的_____________ 来实现。
类结构分离了和 _______ ,从而支持了信息隐藏。
8.抽象是指强调实体的_____________ 、________ ,忽略一些无矢紧要的属性。
类实现了对象的 _____ 和_______ 的抽象,它是对象的共性的抽象。
9.子类只继承的属性和操作,称为单重继承。
10.对象的抽象是_________________ ,类的具体化就是__________________ ,也可以说类的实例II _______________ •类具有 _______ ,它是的行动的抽象。
12.对象具有状态,对象用______________ 来描述它的状态。
13.概念模型描述了系统的。
功能模型指出,动态模型确定____________ ,而对象模型确定 ______________ 。
功能模型由________________ 组成。
14.面向对象有三个基本要素,它们是____________________ 、___________ 、_____________ 。
java面向对象试题及答案

java面向对象试题及答案一、单选题(每题2分,共10分)1. 在Java中,下列哪个关键字用于定义一个类?A. classB. interfaceC. structD. enum答案:A2. Java中,哪个关键字用于定义一个私有方法?A. privateB. publicC. protectedD. default答案:A3. 下列哪个选项不是Java中的访问修饰符?A. privateB. publicC. protectedD. static答案:D4. 在Java中,哪个关键字用于实现多态?A. abstractB. finalC. staticD. interface答案:A5. 在Java中,下列哪个关键字用于定义一个接口?A. classB. interfaceC. structD. enum答案:B二、多选题(每题3分,共15分)1. 在Java中,下列哪些关键字用于定义一个类的方法?A. publicB. privateC. protectedD. static答案:A, B, C, D2. 下列哪些关键字用于实现类的继承?A. extendsB. implementsC. abstractD. final答案:A3. 在Java中,下列哪些关键字用于定义类的成员变量?A. privateB. publicC. protectedD. static答案:A, B, C, D4. 下列哪些关键字用于定义类的构造方法?A. constructorB. thisC. newD. super答案:B, D5. 在Java中,下列哪些关键字用于定义接口的常量?A. privateB. publicC. staticD. final答案:B, C, D三、判断题(每题2分,共10分)1. Java中,一个类可以继承多个类。
(错误)2. Java中,接口可以继承接口。
(正确)3. Java中,一个类可以继承多个接口。
java面向对象期末试题及答案

java面向对象期末试题及答案一、选择题(共10题,每题2分,共20分)1. 下列选项中,不属于Java的基本数据类型的是:A) intB) doubleC) booleanD) String答案:D2. 下列选项中,哪个关键字表示一个类不能被继承:A) finalB) staticC) privateD) abstract答案:A3. 在Java中,抽象类的特点是:A) 可以直接实例化B) 可以包含具体方法C) 可以被继承D) 可以实现多重继承答案:C4. 下列选项中,哪个关键字表示一个方法可以被子类重写:A) staticB) finalC) privateD) abstract答案:D5. 在Java中,接口的特点是:A) 可以包含成员变量B) 可以被实例化C) 可以包含具体方法D) 可以被类直接继承答案:B6. 下列选项中,哪个关键字表示一个方法或类只能被同一个包内的其他类访问:A) protectedB) publicC) privateD) default答案:D7. 在Java中,多态的实现方式是通过:A) 继承B) 接口C) 抽象类D) 重载答案:A8. 下列选项中,哪个关键字表示一个方法可以在同一个类中多次定义,但参数列表必须不同:A) staticB) finalC) privateD) overloading答案:D9. 在Java中,使用关键字“this”表示的是:A) 调用当前对象的方法B) 调用父类的方法C) 调用子类的方法D) 调用类的静态方法答案:A10. 下列选项中,哪个关键字表示一个方法不能被子类重写:A) finalB) abstractC) privateD) protected答案:A二、填空题(共5题,每题4分,共20分)1. 在Java中,创建对象的关键字是________。
答案:new2. 在Java中,使用关键字________定义了一个类的成员变量只能被本类的方法访问。
面向对象复习资料

面向对象复习资料复习资料模拟题一一、单项选择题1.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是( )A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念2.下列符号不能组成标识符的是( )A.连接符B.下划线C.大小写字母D.数字字符3.类型修饰符unsigned不能修饰( )A. charB. intC. long intD. float4.在int a=3,int *p=&a;中,*p的值是( )A.变量a的地址值B.无意义C.变量p的地址值D.35.下列关于指针的操作中,错误的是( )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.继承机制的作用是( )A.信息隐藏B.数据封装C.定义新类D.数据抽象12.类的析构函数的作用是( )A.一般成员函数B.类的初始化C.对象的初始化D.撤消对象时所做的清理工作13.类的析构函数是在( )调用的。
A.类创建时B.创建对象时C.删除对象时D.不自动调用14.在( )情况下适宜采用inline定义内联函数。
A.函数体含有循环语句B.函数体含有递归语句C.函数代码少、频繁调用D.函数代码多、不常调用15.如果类A被说明成类B的友元,则( )A.类A的成员即类B的成员B.类B的成员即类A的成员C.类A的成员函数不得访问类B的成员D.类B不一定是类A的友元二、填空题1.对象的三大基本特性是多态性、___ ____、封装性。
面向对象技术期末复习资料

面向对象技术期末复习资料(总2页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--《面向对象技术》期末复习资料试卷题型说明:填空题(10分)、选择题(20道题40分)、判断题(10分)、简答题(2道)、写出程序运行结果(4道)、程序填空题(2道)、编程题(1道)。
一~三、基础题(各章的编程实例不考)1、第一章主要重点在节,节,其中节最为重要。
2、第二章主要重点为:(1)指针的定义与使用(特殊指针类型不做为重点)(2)引用的定义与使用注意事项(3)类型转换有所涉及,但分值不是很大(4)重点中的重点是节函数部分,尤其是函数重载。
(5)内联函数与预处理器了解一下。
(6)作用域和生命期理解掌握,特点是变量类型与初始化。
3、第三章:(1)静态成员、this指针、友元涉及的内容不太多,分值在4分左右(2)其他节都很重要,尤其是构造函数与析构函数,以及节~节。
4、第四章:都作为重点5、第五章:除节节以外都很重要。
6、还有一些C++小知识点:(1)a++与++a的用法及区别;(2)字符与字符串长度计算(3)数组的定义及数值表示范围(4)结构化程序设计三种基本结构为顺序结构、选择结构、循环结构。
它们用到的主要语句的用法。
四、简答题:1、什么是函数重载函数重载有何作用书中P522、类定义中的公有成员、保护成员和私有成员各有何差别?答:public为类的外部接口,它定义了类的公有成员,可以被程序中任何代码访问;在类外,对类的任何访问都需要通过该接口进行。
private声明了类的私有成员,凡需要实现信息隐藏的成员可设置为private访问属性,这种类型的成员只能被本类成员函数及友元访问,其他函数无法访问,成为一个外部无法访问的黑盒子。
设置为protected的成员称为保护成员,只能被本类成员函数、派生类成员函数和友元访问,其他函数无法访问。
保护成员与私有成员的访问属性类似,惟一差别在于该类在派生新类时,保护成员可以继续继承,而私有成员则不可以。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大学计算机应用基础(面向对象部分)复习题一、选择题4.关于成员函数,以下叙述中不正确的是______ 。A. 成员函数一定是内联函数B. 成员函数可以重载C. 成员函数的参数可以设置默认值D. 成员函数可以是另一个类的友元函数5.下列关于析构函数说法正确的是________。
A. 析构函数可以有参数。
B. 析构函数可以重载。
C. 析构函数一定被继承。
D. 析构函数无返回值。
6.下列对友元的描述中,正确的是_____。
A. 友元可以在类外声明和定义B. 友元降低了程序的运行效率C. 友元不能访问类中的保护成员D. 友元破坏了类的封装性7.下面对静态成员的描述中,错误的是_____。
A. 静态成员的提出是为了解决数据共享问题B. 静态数据成员的初始化在类体外进行C. 类的不同对象有不同的静态数据成员值D. 静态成员函数可以直接访问类中的静态数据成员8.下列对常量的定义中,错误的是_____。
A. int const size=10;B. char * const p="Good Luck";C. void const print();D. const MyClass obj(10,10);9.若有如下函数声明:void Fun(int x);,则下列_____能与该函数进行重载。
A. void Fun(int y);B. void Fun(int x,int y='1');C. int Fun(int x);D. void Fun(int) const;10.为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择_____。
A. 内联函数B. 重载函数C. 递归函数D. 函数模板11.派生类的对象对它的基类成员中什么是可访问的()。
A. 公有继承的公有成员B. 公有继承的私有成员C. 公有继承的保护成员D. 私有继承的公有成员12、______不是构造函数的特征。
A. 构造函数的函数名与本类类名相同B. 构造函数可以重载C. 构造函数可以设置缺省形参值D. 构造函数必须指明返回类型13、下列函数中,______不是类的成员函数。
A. 友元函数B. 拷贝构造函数C. 析构函数D. 构造函数14、若有如下函数声明:void Fun(int x);,则下列_____能与该函数进行重载。
A. void Fun(int y);B. void Fun(int x,int y='1');C. int Fun(int x);D. void Fun(int) const;15、若派生类的继承方式为私有,则派生类自有的成员函数不能对基类的________直接访问。
A. 公有成员B、私有成员C、保护成员D、全部成员;16、下列对常量的定义中,错误的是_____。
A. int const size=10;B. char * const p="Good Luck";C. void const print();D. const MyClass obj(10,10);17、设置虚基类的目的是________。
A. 简化程序B. 消除二义性C. 实现多态D. 减少目标代码18、已知类A,并static int a 为其公有成员,下面初始化方法正确的是________。
A. int a=0;B. a=0;C. A(…):a(0);D. int A::a=0;19、下列运算符中,不能重载的运算符是________。
A. ::B. [ ]C. &&D. >>20、在建立派生类对象时,构造函数的执行方式为:A. 先执行派生类构造函数后执行基类构造函数B. 只执行派生类构造函数C. 先执行基类构造函数后执行派生类构造函数D. 仅执行基类构造函数21、为了提高程序的运行速度,可将不太复杂的功能用_____函数实现。
A. 内联函数B. 重载函数C. 递归函数D. 函数模板22、派生类中,重新定义基类的虚函数时,虚函数的_______必须保持一致。
A. 参数个数B. 参数类型C. 返回值D. 参数个数、参数类型和返回值23. 当派生类中有和基类一样名字的成员时,一般来说_____。
A. 将产生二义性B. 派生类的同名成员将覆盖基类的成员C. 是不能允许的D. 基类的同名成员将覆盖派生类的成员24. 如果是类B在类A的基础上构造,那么称_____。
A. 类A为基类或派生类,类B为子类或父类B. 类A为基类、父类,类B为派生类或子类C. 类A为派生类,类B为基类D. 类A为派生类或子类,类B为基类、父类25. 多继承派生类构造函数构造对象时,_____最先被调用。
A. 虚函数的构造函数B. 派生类自己的构造函数C. 非虚基类的构造函数D. 派生类中子对象类的构造函数二、程序填空1、把一串字符中的小写字母转换为对应的大写字母。
#include <stdio.h>char fun(char c){if(c>='a'&&c<='z')_______________;return c;}main(){char c;c=getchar();while(c!='\n'){c=_______________;putchar(c);c=_______________;}}2、友元应用#include "iostream.h"class student{public:int No;char *Name;__________________;~student();__________________ void f_age(int ag, student &p);private:int age;};student::student(int n,char *str){No=n;Name=str;age=18;}student::~student (){cout<<"学号"<<No<<endl;cout<<"姓名"<<Name<<endl;cout<<"年龄"<<age<<endl;}void f_age(int ag, student &p){p.age =ag;cout<<"友元年龄"<<p.age <<endl;}void main(){student wang(5074401,"wang");f_age(30,wang);}3、输出一个点#include "iostream.h"class point{public:point(int x,int y);~point(){cout<<X<<","<<Y<<endl;}private:int X;int Y;};point::point(int x,int y){__________________;__________________;}void main(){ point p1(10,10); }4、求出圆的面积:#include <iostream.h>class Point{public:Point(double m,double n );virtual void Area();private:double x,y;};Point::Point(double m,double n ){ ______________________________}void Point:: Area(){ cout<<"The area is 0"<<endl;}class Circle :public Point{public:______________________________;void Area();private:double r;};Circle ::Circle (double m,double n, double i): _______________{ r=i;}void Circle :: Area(){double a=_______________;cout<<"The area of the circle is:"<<a<<endl;}void main(){Point *pt;Circle c(1,2,3);_______________;pt-> Area ();}5、下列程序执行后的输出结果是B0 D00 B1 D23 ~D ~B ~D ~B,请将下列程序补充完整。
class Base {public:Base(int i=0) {x = i; cout<<'B'<<x<<' ';}~Base() { cout<<"~B"<<x<<' '; }private:int x;};class Derived : public Base {int y, z;public:_______________ // Constructor_______________ // Destructor};void main() {Derived obj1;Derived obj2(1,2,3);}5、函数重载#include <iostream.h>int f_add(_______________){ return i+j; }double f_add(_______________){ return i+j; }int f_add(int i,int j,int k){ return i+f_add(_______________); }void main(){int a=1,b=2,c=3;double x=3.5,y=4.5;int e,f;double z;e=f_add(a,b);f=f_add(a,b,c);z=f_add(x,y);cout<<a<<"+"<<b<<"="<<e<<endl;cout<<a<<"+"<<b<<"+"<<c<<"="<<f<<endl;cout<<x<<"+"<<y<<"="<<z<<endl;}三、写出下列程序的运行结果1.阅读程序,输入如下数据:10052,写出运行结果。