面向对象期末考试答案
《面向对象高级设计》期末考试试卷(B卷)及答案

《面向对象高级设计》期末考试试卷(B 卷) 适用专业:1. 按要求编写Java 应用程序。
(20分) (1)建立一个名叫Cat 的类: 属性:姓名、毛色、年龄 行为:显示姓名、喊叫 (2)编写主类: 创建一个对象猫,姓名为“妮妮”,毛色为“灰色”,年龄为2岁,在屏幕上输出该对象的毛色和年龄,让该对象调用显示姓名和喊叫两个方法。
ChongZai ,该类中有3个重载的方法void print();其次, 再编写一个主类来测试ChongZai 类的功能。
(20分)3. 编写一个Java应用程序,该程序包括3个类:Monkey类、People类和主类E。
(30分)(1) Monkey类中有个构造方法:Monkey (String s),并且有个public void speak() 方法,在speak方法中输出“咿咿呀呀......”的信息。
(2)People类是Monkey类的子类,在People类中重写方法speak(),在speak方法中输出“小样的,不错嘛!会说话了!”的信息。
(3)在People类中新增方法void think(),在think方法中输出“别说话!认真思考!”的信息。
(4)在主类E的main方法中创建Monkey与People类的对象类测试这2个类的功能。
Vehicle,包含的属性有车轮个数wheels和车重weight。
小车类Car是Vehicle的子类,其中包含的属性有载人数loader。
卡车类Truck是Car类的子类,其中包含的属性有载重量payload。
每个类都有构造方法和输出相关数据的方法。
最后,写一个测试类来测试这些类的功能。
(30分)《面向对象高级设计》期末试卷答案(B)1///////////////catpublic class Cat {String name;String color;String age;public Cat(String name,String color,String age){ = name;this.color = color;this.age = age;}void SayName(){System.out.println(name);}void Call(){System.out.println(" 咪咪");}}//////////////TestCarpublic class TestCar {public static void main(String[] args) {Cat cat = new Cat("妮妮","灰色","2");System.out.println();System.out.println(cat.color);cat.SayName();cat.Call();}}2//////////////// ChongZaipublic class ChongZai {void print(){System.out.println("重载1");}void print(String a){System.out.println("重载方法2");}void print(String a,String b){System.out.println("重载方法3");}}////////////// TestChongZaipublic class TestChongZai {public static void main(String[] args) { ChongZai cz = new ChongZai();cz.print();cz.print("a");cz.print("a", "b");}}3////////// Monkeypublic class Monkey {public Monkey(String s){}public void speak(){System.out.println("咿咿呀呀......");}}//////////////Peoplepublic class People extends Monkey {public People(String s) {super(s);}public void speak() {System.out.println("小样的,不错嘛!会说话了!");}void think(){System.out.println("别说话!认真思考!");}}/////////////////Epublic class E {public static void main(String[] args) {Monkey monkey = new Monkey("a");monkey.speak();People people = new People("a");people.speak();people.think();}}4///////////Vehiclepublic class Vehicle {String wheels;String weight;public Vehicle(String wheels,String weight){this.weight = weight;this.wheels = wheels;}@Overridepublic String toString() {return wheels+weight;}}/////////Carpublic class Car extends Vehicle{String loader;public Car(String wheels, String weight,String loader) { super(wheels, weight);this.loader = loader;}public String toString() {return super.toString()+loader;}}//////////////Truckpublic class Truck extends Car{String payload;public Truck(String wheels, String weight, String loader,String payload) {super(wheels, weight, loader);this.payload = payload;}public String toString() {return super.toString()+payload;}。
c面向对象程序设计期末考试题及答案

c面向对象程序设计期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪个是面向对象程序设计的特点?A. 封装B. 继承C. 多态D. 所有选项都是2. 在Java中,以下哪个关键字用于定义类?A. classB. structC. typeD. classdef3. 以下哪个是Java中不允许的类成员访问修饰符?A. publicB. protectedC. privateD. global4. 以下哪个是Java中实现多态的方式?A. 函数重载B. 函数重写C. 接口D. 抽象类5. 在Java中,哪个关键字用于声明一个方法,该方法没有返回值?A. voidB. returnC. noneD. null6. 以下哪个是Java中创建对象的语法?A. new ClassName();B. create ClassName;C. make ClassName;D. ClassName();7. 在Java中,以下哪个是正确的构造方法声明?A. public ClassName();B. public ClassName new();C. public new ClassName();D. public ClassName create();8. 以下哪个是Java中实现继承的方式?A. 使用extends关键字B. 使用implements关键字C. 使用interface关键字D. 使用new关键字9. 在Java中,以下哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. class10. 以下哪个是Java中实现封装的方式?A. 使用public关键字B. 使用private关键字C. 使用protected关键字D. 使用default关键字答案:1. D2. A3. D4. B5. A6. A7. A8. A9. A10. B二、简答题(每题10分,共20分)1. 简述面向对象程序设计中的“封装”概念及其重要性。
面向对象期末试卷 A(答案)

******************************************班级:******************************学号:************************************姓名:************************************共3页第1页得分 阅卷人************ ****** ****** ****** ****** ****** ****** 班级: ****** ****** ****** ****** ****** 学号: ****** ****** ****** ****** ****** ****** 姓名: ****** ****** ****** ****** ****** ******共3页 第21. (9分)class Point { private: int x, y; public:Point(){x=y=0;} Point(int x0,int y0) {x=x0;y=y0;} int GetX() { return x; } int GetY() { return y; }void Print(){cout<<"Point("<<x<<","<<y<<")"<<endl;} ___(1)___; //友元函数声明 ___(2)___; //友元函数声明};Point operator+(Point& pt,int dd) //加号操作符重载函数,实现Point 类对象与整数加法 { Point temp=pt; temp.x+=dd; temp.y+=dd; return temp;}Point operator+(Point& pt1,Point& pt2) //加号操作符重载函数,实现两个Point 类对象的加法 { Point temp=pt1; temp.x+=pt2.x; ___(3)___; return temp;}答案:(1) friend Point operator+(Point& pt,int dd) ----3分(2) friend Point operator+(Point& pt1,Point& pt2) ----3分 (3) temp.y+=pt2.y ----3分 2.(12分) 已知一个类的定义如下: #include<iostream.h> class AA { private:int a[10]; int n;public:void SetA(int aa[], int nn); //用数组aa 初始化数据成员a ,用nn 初始化数据成员n int MaxA(); //从数组a 中前n 个元素中查找最大值void SortA(); //采用选择排序的方法对数组a 中前n 个元素进行从小到大排序void InsertA();//采用插入排序的方法对数组a 中前n 个元素进行从小到大排序 void PrintA(); //依次输出数组a 中的前n 个元素};该类中InsertA()函数的实现如下,请在标号位置补充适当的内容。
面向对象期末考试题及答案

面向对象期末考试题及答案一、选择题(每题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 》期末试卷及标准答案

《面向对象程序设计C++》期末考试试卷(B)一、单项选择题(每小题2分,共40分)1、关于C++与C语言关系的描述中,( )就是错误的。
A.C语言就是C++语言的一个子集B.C语言与C++语言就是兼容的C.C++语言对C语言进行了一些改进D.C++语言与C语言都就是面向对象的2、已知:int m=10; 下列表示引用的方法中,( )就是正确的。
A.int &x=m;B.int &y=10;C.int &z;D.float &t=&m;3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的就是( )。
A.testDefaulParam(5);B.testDefaulParam(5,8);C.testDefaulParam(5,'#');D.testDefaulParam(0,0,'*');4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的就是( )。
A.函数的返回值类型B.参数的类型C.函数名称D.参数个数5、下列有关C++类的说法中,不正确的就是( )。
A.类就是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有成员C.在类中,如果不做特别说明,所有成员的访问权限均为私有的D.在类中,如果不做特别说明,所有成员的访问权限均为公用的6、已知X类,则当程序执行到语句X array[3];时,调用了( )次构造函数。
A.0B.1C.2D.37、有关析构函数的说法,不正确的就是( )。
A.析构函数有且仅有一个B.析构函数与构造函数一样可以有形参C.析构函数的功能就是在系统释放对象之前作一些内存清理工作D.析构函数无任何函数类型8、类定义的内容允许被其对象无限制地存取的就是( )。
《面向对象程序设计C 》期末试卷及答案

选择题1.在C++中,函数原型不能标识( D )A.函数的返回类型B.函数参数的个数C.函数参数类型D.函数的功能2.在C++程序中,对象之间的相互通信通过( B )A.继承实现B.调用成员函数实现C.封装实现D.函数重载实现3.对于任意一个类,析构函数的个数最多为( B )A.0B.1C.2D.34.友元关系不能( A )A.继承B.是类与类的关系C.是一个类的成员函数与另一个类的关系D.提高程序的运行效率5.语句ofstream f(″SALARY.DAT″,ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT 并与之连接,并且( A )A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件B.若文件存在,将其置为空文件;若文件不存在,打开失败C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件D.若文件存在,打开失败;若文件不存在,建立一个新文件6.下面说法正确的是( B )A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字inline 定义7.可以用p.a 的形式访问派生类对象p 的基类成员a,其中a 是( D )A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员8.在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( C )A.派生类的对象可以赋给基类的对象B.派生类的对象可以初始化基类的引用C.派生类的对象可以直接访问基类中的成员D.派生类的对象的地址可以赋给指向基类的指针9. 派生类对象可访问基类中的什么成员( A )A.公有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员10. 定义析构函数时,应该注意(C)A.其名与类名完全相同B.返回类型是void类型C.无形参,也不可重载D.函数体中必须有delete语句11. 如果类A被说明成类B的友元,则( D )。
java面向对象程序设计期末考试题及答案

java面向对象程序设计期末考试题及答案一、单项选择题(每题2分,共20分)1. 在Java中,哪个关键字用于声明一个类?A. classB. structC. interfaceD. enum答案:A2. 下列哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. All of the above答案:D3. 在Java中,哪个关键字用于创建对象?A. newB. createC. makeD. instantiate答案:A4. Java中的继承是通过哪个关键字实现的?A. extendsB. inheritC. deriveD. superclass答案:A5. 在Java中,哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. abstract答案:A6. 下列哪个不是Java中的方法重载的条件?A. 方法名相同B. 参数列表不同C. 返回值类型不同D. 访问修饰符不同答案:C7. 在Java中,哪个关键字用于声明一个抽象方法?A. abstractB. virtualC. overrideD. final答案:A8. Java中的多态性可以通过哪种方式实现?A. 方法重载B. 方法覆盖C. 接口实现D. 继承答案:B9. 在Java中,哪个关键字用于声明一个内部类?A. innerB. nestedC. staticD. inner class答案:B10. Java中的垃圾回收机制是自动的吗?A. YesB. NoC. SometimesD. Depends on the JVM答案:A二、填空题(每题2分,共20分)1. Java中,一个类可以继承另一个类的______方法和属性。
答案:非私有2. Java中的______关键字用于声明一个类是不可被继承的。
答案:final3. 在Java中,______关键字用于声明一个类是抽象的。
JAVA面向对象程序设计(期末考试试题及答案)

程序设计(期末考试试题及答案)JAVA面向对象面向对象程序设计一、单选择题1、编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。
A.javaB..classC.htmlD..exe2、不允许作为类及类成员的访问控制符的是(C)。
A.publicB.privateC.staticD.Protected3、设x=1,y=2,z=3,则表达式y+=z--/++x的值是(A)。
A.3B.3.5C.4D.54、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A)。
A.static void method()B.public void method()C.final void method()D.abstract void method()5、下列属于容器的组件有:(B)A.JButton B.JPaneC.Canvas D.JTextArea6、v oid的含义:(C)A.方法体为空B.定义的方法没有形参C.定义的方法没有返回值 D.方法的返回值不能参加算术运算7、关于Java中异常的叙述正确的是:(D)A.异常是程序编写过程中代码的语法错误B.异常是程序编写过程中代码的逻辑错误C.异常出现后程序的运行马上中止D.异常是可以捕获和处理的8、下面哪个不是java语言中的关键字?(B)A.longB.sizeofC.instanceofD.Const9、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?(D)A.ActionListenerB.MouseListenerC.MouseMotionListernD.ItemListener10、以下有关类的继承的叙述中,正确的是:(D)A子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性B.子类只能继承父类的方法,不能继承父类的属性C.子类只能继承父类的非私有属性,不能继承父类的方法D.子类不能继承父类的私有属性二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。
《面向对象程序设计C++》期末试卷及标准答案(A)

《面向对象程序设计C++》期末考试试卷一、选择题(每小题2分,共40分)1、C++是(C )。
A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括()。
A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=( B )。
A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是()。
A. testDefaulParam(5);B. testDefaulParam(5,8);C. t estDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是( C )。
A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,()是正确的。
已知:int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a;7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。
《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案

一、单选题1.在下列概念中,Java语言只保留了DA.运算符重载B.结构和联合C.指针D.方法重载2.下列类定义中,不正确的是BA.class x { .... } B.static class x implements y1,y2 { .... }C.public class x extends Applet { .... } D.class x extends y { .... }3.下列语句序列执行后,k 的值是Bint m=3, n=6, k=0;while( (m++) < (- - n) ) ++k;i++先把i的初值赋给表达式(i++),作为表达式(i++)的值,然后i自增1作为i的值。
如i=1,则表达式(i++)的值等于1,而i的值变为2。
++ii先自增1,再把自增后的值赋给表达式(++i)。
如i=1,则表达式(++i)的值等于2,i的值也为2,A.0 B.1 C.2 D.34.设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是AA.a[0] = 7; B.i = i + 2 C.i++ - --j; D.a(0) = 66;5.Java语言的类间的继承关系是BA.多重的B.单重的C.线程的D.不能继承6.下列语句序列执行后,k 的值是Cint i=10, j=18, k=30;switch( j - i ) {case 8 : k++;case 9 : k+=2;case 10: k+=3;default : k/=j;}A.31 B.3 C.2 D.337.设有定义float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是CA.x > y || x > z B.z > ( y + x ) C.x != y D.x < y & ! ( x < z )8.下列修饰符中,定义类头时能使用的修饰符是CA.private B.static C.abstract D.protected9.设i、j、k为类x中定义的int型变量名,下列类x的构造函数中不正确的是BA.x( int m){ ... } B.void x( int m){ ... }C.x( int m, int n){ ... } D.x( int h,int m,int n){ ... }10.下列对封装性的描述中,错误的是 DA.封装体包含了属性和行为B.封装使得抽象的数据类型提高了可重用性C.被封装的某些信息在封装体外是不可见的D.封装体中的属性和行为的访问权限是相同的11.下列关于包的描述中,错误的是BA.包是若干个类的集合B.包是一种特殊的类型C.包是使用package语句创建的D.包有有名包和无名包两种12.下列关于Applet程序的描述中,错误的是 CA.Applet程序的主类必须是Applet类得子类B.Applet不是完整的独立程序C.Applet程序的主类中应有一个main()方法D.Applet的字节码文件必须嵌套在一个HTML文件中13.下列界面元素中,不是容器的是CA.Dialog B.Frame C.List D.Panel14.下列关于异常处理的描述中,错误的是DA.程序运行时异常由Java虚拟机自动进行处理B.使用try-catch-finally语句捕获异常C.使用throw语句抛出异常D.捕获到的异常只能在当前方法中处理,不能在其他方法中处理15.以下方法不属于迭代器(Iterator)接口所定义的方法的是DA.hasNext()B.next()C.remove()D.nextElement()16.主线程属于(C )A.守护线程B.Thread线程C.用户线程D.Runnable线程二、填空题1.三目运算符的3个操作数中,第一个操作数的类型必须是逻辑型的。
JAVA面向对象程序设计(期末考试试题及答案)

JAVA面向对象程序设计(期末考试试题及答案)一、选择题(每题5分,共30分)1. 下列哪个不是Java基本数据类型?A. intB. charC. StringD. boolean答案:C2. 下列哪个操作符用于取模?A. %B. /C.D. &答案:A3. 下列哪个关键字用于定义接口?A. classB. interfaceC. extendsD. implements答案:B4. Java中,下列哪个方法可以实现字符串的截取?A. substring(int start, int end)B. substring(int start, int length)C. substring(int index)D. substring(int index, int length)答案:A5. 下列哪个方法用于判断字符串是否为空?A. isEmpty()B. isBlank()C. isEmptyD. isNull()答案:B6. 下列哪个方法用于获取字符串长度?A. length()B. lengthC. size()D. getSize()答案:A二、填空题(每题5分,共30分)1. 在Java中,所有的类都是_______类的子类。
答案:Object2. Java中定义接口时,需要使用_______关键字。
答案:interface3. 在Java中,定义抽象类时需要使用_______关键字。
答案:abstract4. Java中,字符串比较可以使用_______方法。
答案:equals()5. 在Java中,若要实现字符串的翻转,可以使用_______类。
答案:StringBuilder6. 下列哪个方法用于判断字符串是否以指定的字符串开头?答案:startsWith(String prefix)三、编程题(共40分)1. 编写一个Java程序,实现一个简单的计算器功能,包括加、减、乘、除四种运算。
JAVA面向对象程序设计(期末考试试题及答案)

程序设计(期末考试试题及答案)JAVA面向对象面向对象程序设计一、单选择题1、编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。
A.javaB..classC.htmlD..exe2、不允许作为类及类成员的访问控制符的是(C)。
A.publicB.privateC.staticD.Protected3、设x=1,y=2,z=3,则表达式y+=z--/++x的值是(A)。
A.3B.3.5C.4D.54、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A)。
A.static void method()B.public void method()C.final void method()D.abstract void method()5、下列属于容器的组件有:(B)A.JButton B.JPaneC.Canvas D.JTextArea6、v oid的含义:(C)A.方法体为空B.定义的方法没有形参C.定义的方法没有返回值 D.方法的返回值不能参加算术运算7、关于Java中异常的叙述正确的是:(D)A.异常是程序编写过程中代码的语法错误B.异常是程序编写过程中代码的逻辑错误C.异常出现后程序的运行马上中止D.异常是可以捕获和处理的8、下面哪个不是java语言中的关键字?(B)A.longB.sizeofC.instanceofD.Const9、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?(D)A.ActionListenerB.MouseListenerC.MouseMotionListernD.ItemListener10、以下有关类的继承的叙述中,正确的是:(D)A子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性B.子类只能继承父类的方法,不能继承父类的属性C.子类只能继承父类的非私有属性,不能继承父类的方法D.子类不能继承父类的私有属性二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。
c面向对象程序设计期末考试题及完整参考答案

3.distanee/400.0改为distanee/400或者distanee/400.0f;
4.public float ISwimmable.Run(float distanee)改为float ISwimmable.Run(float distanee)
7.类索引函数的参数类型必须为或。
8.类对接口方法的实现时,在方法名称之前加上接口名,这叫做对接口方法的实现,此时这个方法是这个
类的员,不能通过类的实例来访问。
9.作为一种特殊的函数成员,重载类的操作符时,被重载的操作符必须被声明为公有的和,并通过在关键
字operator后跟操作符来声明。
二、判断题(每小题1分,共5分)
public virtual float Run( float dista nce)
{
retur n dista nce/Speed;
}
public Automobile(float speed)
{
Speed = speed;
}
}
public class Amphicar:Automobile, ISwimmable
Console.WriteLine("{0}空中飞行1000公里需{1}小时", plane, plane.Run(1000)); //调用IFlyable接口Run方法
Con sole.ReadL in e();
}
}
public in terface IFIyable
{
public float Run( float dista nee);
面向对象期末考试答案

一、填空(15分)1、类之间的静态联系称作关联。
•在实例化后,由类产生对象,链是关联的实例。
•在系统实现时,关联采用对象的属性来实现。
2、用例图用于建立需求模型,描述用户的需求。
对象图是面向对象分析中的基本模型,属于静态结构模型。
3、顺序图(时序图)、通信图、活动图、状态图用于描述系统的行为方面的特征,属于动态结构模型。
4、时序图构成:参与者、相互协作的对象、对象的生命线、参与者与对象之间发送的消息、执行规约5、表示[可见性] 属性名[:类型][ =初始值]可见性分为+表示:(公有的)、#表示:(受保护的)、-表示:(私有的)、 ~(包,只有在同一包中声明的类能够使用这一属性)。
二、名词解释(15分)1、面向对象方法:是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。
2、类:是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和操作务两个主要部分。
类的作用是用来创建对象,对象是类的一个实例。
3、抽象:指从事物中舍弃个别的、非本质的、与问题域无关的特征,而抽取共同的、本质特征的、相关的做法。
4、多态性:在具有继承关系的类层次结构中可以定义同名的操作或属性,但这些属性或操作具有不同的含义,即具有不同的数据类型或表现出不同的行为。
(“同名不同参”或“同名不同类”)5、OOA模型:就是通过面向对象的分析所建立的系统分析模型。
用况:一个用况是对参与者使用系统的一项功能的描述,是一组动作序列的描述,是一项请求与响应。
(三、简答(45分)1、继承和泛化关系特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承。
一般类对特殊类的抽象关系叫泛化关系(简称泛化)。
2、聚合与组合有区别,请说明他们间的区别,并指出下图中哪图是聚合?聚合刻画了现实事物之间的构成关系,体现“整体——部分”关系。
而关联没有组成关系或拥有关系。
如例题中的c图3、简述下图中体现的面向对象的基本思想答: (1)第一次抽象封装:事物——对象①首先,直接以问题域(现实世界)中的事物为中心来思考问题、认识问题;②然后,根据这些事物的本质特征和系统责任,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。
Python面向对象程序设计期末复习题及答案(含编程题)

Python⾯向对象程序设计期末复习题及答案(含编程题)⼀、选择题1、关于⾯向过程和⾯向对象,下列说法错误的是(B)。
A.⾯向过程和⾯向对象都是解决问题的⼀种思路B.⾯向过程是基于⾯向对象的C.⾯向过程强调的是解决问题的步骤D.⾯向对象强调的是解决问题的对象2、关于类和对象的关系,下列描述正确的是(D)。
A.类是⾯向对象的核⼼B.类是现实中事物的个体C.对象是根据类创建的,并且⼀个类只能对应⼀个对象D.对象描述的是现实的个体,它是类的实例3、构造⽅法的作⽤是(C)。
A.⼀般成员⽅法B.类的初始化C.对象的初始化D.对象的建⽴4、构造⽅法是类的⼀个特殊⽅法,Python 中它的名称为(C)。
A.与类同名B. _constructC. initD. init5、Python 类中包含⼀个特殊的变量(A),它表⽰当前对象⾃⾝,可以访问类的成员A. selfB. meC.thisD.与类同名⼆、填空题1、Python安装扩展库常⽤的是___⼯具。
(pip)2、Python程序⽂件扩展名主要有__和__两种,其中后者常⽤于GUI程序。
(py、pyw)3、查看变量类型的Python内置函数是______。
(type())4、列表对象的sort()⽅法⽤来对列表元素进⾏原地排序,该函数返回值为 _____。
(None)5、查看变量内存地址的Python内置函数是_______。
(id())6、Python源代码程序编译后的⽂件扩展名为___。
(pyc)7、为了提⾼Python代码运⾏速度和进⾏适当的保密,可以将Python程序⽂件编译为扩展名____的⽂件。
(pyc)8、____命令既可以删除列表中的⼀个元素,也可以删除整个列表。
(del)三、判断题1、在 Python 中定义类时,如果某个成员名称前有 2 个下划线则表⽰是私有成员。
(对)2、在类定义的外部没有任何办法可以访问对象的私有成员。
(错)3、Python 中⼀切内容都可以称为对象。
《面向对象程序设计》期末考核试题样例及解答

《面向对象程序设计》期末考核试题样例及解答一、单项选择(每小题1分,12小题,共12分)1. C++源程序文件的缺省扩展名为( )。
A. cppB. exeC. objD. lik2. x>0 || y==5的相反表达式为()。
A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==53. 在下面的字符数组定义中,有语法错误的是( )。
A. char a[20]=“abcdefg”;B. char a[]=“x+y=55.”;C. char a[15];D. char a[10]=’5’;4. 以下正确的函数原型语句是( )。
A. double fun(int x,int y)B. double fun(int x;int y)C. double fun(int,int);D. double fun(int x,y);5. 在下面存储类中,()的对象不是局部变量。
A. 外部静态类B. 自动类C. 函数形参D. 寄存器类6. 假定有“struct BOOK{char title[40]; float price;}; BOOK *book=new BOOK;”,则正确的语句是()。
A. strcpy(book->title,”Wang Tao”);B. strcpy(book.title,”Wang Tao”);C. strcpy(*book.title,”Wang Tao”);D. strcpy((*book)->title,”Wang Tao”);7. 软件产品所具有的全部或部分地再用于新的应用的能力称为该软件的()。
A. 可维护性B. 可复用性C. 兼容性D. 正确性8. 在多文件结构的程序中,通常把含有main()函数的文件称为()。
A. 主文件B. 实现文件C. 程序文件D. 头文件9. 在一个用链表实现的队列类中,假定每个结点包含的值域用elem表示,包含的指针域用next表示,链队的队首指针用elemHead表示,队尾指针用elemTail表示,若链队为空,则进行插入时必须把新结点的地址赋给( )。
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中,使用关键字________定义了一个类的成员变量只能被本类的方法访问。
面向对象程序设计C++期末试卷2套(含答案)

面向对象程序设计C++ 第一套试卷一、选择题(共32分,每小题2分)1.按照C++标识符的规则,下面( B )是c++的标识符。
A.8_afrB.a_ideC.t-axyD._3?d2.C++中声明常量的关键字是( A )A.constB.externC.publicD.enum3.建立( C )的作用是为变量另起一个名字。
A.指针B.枚举C.引用D.结构4.在( D )情况下适宜采用内联函数。
A.函数体含有循环语句B.函数代码多,频繁调用C.函数体含有递归语句D. 函数代码少,频繁调用5.关于new运算符的下列描述中,错误的是( D )A.它可以用来动态创建对象和对象数组B.使用它创建的对象或对象数组可以使用运算符delete删除C.使用它创建对象时要调用构造函数D.使用它创建对象数组时必须指定初始值6.类成员的访问权限中,( C )只能被本类的成员函数和其友元函数访问。
A.shareB.publicC.privateD.protected7.在下面有关构造函数的描述中,正确的是( B )A.构造函数可以带有返回值B.构造函数名字与类名完全相同C.构造函数必须带参数D.构造函数必须定义,不能默认8.有如下类声明:class A{ private: int x;public: A(int n){ x=n;} };class B: public A{ private: int y;public: B(int a,int b); };在构造函数B的下列定义中,正确的是( C )。
A. B::B(int a,int b): x(a),y(b){ }B. B::B(int a,int b): x(a),B(b){ }C. B::B(int a,int b): A(a),y(b){ }D. B::B(int a,int b): A(a),B(b){ }9.设置虚基类的目的是( B )A.简化程序B.消除二义性C.提高运行效率D.减少目标代码10.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的( C )A.public成员B. protected成员C.private成员D.友元11. 应在下列程序划线处填入的正确语句是( D )#include<iostream>using namespace std;class Base{ public: void fun(){cout<<"Base::fun"<<endl;}};class Derived:public Base{ public: void fun() {cout<<"Derived::fun"<<endl;}};void main(){ Derived obj;_____________ //调用基类的fun函数}A.obj.fun(); B. Base.fun(); C. Base->fun(); D. obj.Base::fun();12. 假定一个类的构造函数为B(int x,int y){a=x;b=a*y;},则执行B obj(3,5); 语句后,obj.a和obj.b的值分别为( C )A.3和5 B.5和3 C.3和15 D.20和513.模板的使用是为了( A )A.提高代码的可重用性B.提高代码的运行效率C.加强类的封装性D.实现多态性14.在下列选项中( A )不是ostream类的对象。
《面向对象程序设计C+》期末试卷及标准答案

《⾯向对象程序设计C+》期末试卷及标准答案《⾯向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数:试卷说明:本套试题共四个⼤题,全部题⽬都答在答题纸上,写在其他地⽅均⽆效。
(答题纸在本套试卷的第10页上)⼀、选择题(每⼩题2分,共40分)1、C++是(C )。
A. ⾯向对象的程序设计语⾔B. ⾯向过程的程序设计语⾔C. 既⽀持⾯向对象的程序设计⼜⽀持⾯向过程的程序设计的混合型语⾔D. ⾮结构化的程序设计语⾔2、⾯向对象程序设计思想的主要特征中不包括( D )。
A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执⾏时,从键盘输⼊:Microsoft Visual Studio 6.0!所得的结果是str=( B )。
A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下⾯的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下⾯函数调⽤中,不合法的是( C )。
A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是( C )。
A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表⽰引⽤的⽅法中,( A )是正确的。
Java程序设计(面向对象基础)期末单元测试与答案

一、单选题1、下面关于类的描述错误的是()。
A.类的实现包括类声明和类体两部分B.一个包可以包含多个类C.类的方法都由方法头和方法体组成D.一个Java程序可以有多个公共类正确答案:D2、关于面向对象概念的描述不正确的是()。
A.程序中的对象等同于现实生活中的对象B.对象描述的是客观世界的实体C.在Java中通过类来描述对象D.类是具有相同特征的若干对象的模板正确答案:A3、下列构造方法的调用方式中,正确的是()。
A.按照一般方法调用B.只能通过new自动调用C.被系统调用D.由用户直接调用正确答案:B4、对于下面()类定义,可以通过“new J_Class()”生成类J_Class 的实例对象。
A.public class J_Class {public J_Class(void) {}}B.public class J_Class { }C.public class J_Class {public void J_Class() {}public J_Class(String s) {}}D.public class J_Class {public J_Class(String s) {}}正确答案:B5、在Java中,下面对于构造函数的描述正确的是()。
A.构造函数和类有相同的名称,并且不能带任何参数B.构造函数的返回类型是voidC.一个类可以定义多个构造函数D.类必须显式定义构造函数正确答案:C6、下列关于包的描述中,错误的是()。
A.包是使用package语句创建的B.包是若干个类的集合C.包是一种特殊的类D.包有有名包和无名包两种正确答案:C7、下面关于包的描述中,错误的是()。
A.包分为有名包和无名包两种B.包是若干对象的集合C.使用package语句创建包D.使用import语句引入包正确答案:B二、填空题1、类是一组具有相同()和()的对象的抽象。
()是由某个特定的类所描述的一个个具体的对象。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、填空(15分)
1、类之间的静态联系称作关联。
•在实例化后,由类产生对象,链是关联的实例。
•在系统实现时,关联采用对象的属性来实现。
2、用例图用于建立需求模型,描述用户的需求。
对象图是面向对象分析中的基本模型,属于静态结构模型。
3、顺序图(时序图)、通信图、活动图、状态图用于描述系统的行为方面的特征,属于动态结构模型。
4、时序图构成:参与者、相互协作的对象、对象的生命线、参与者与对象之间发送的消息、执行规约
5、表示
[可见性] 属性名[:类型][ =初始值]
可见性分为+表示:(公有的)、#表示:(受保护的)、-表示:(私有的)、~(包,只有在同一包中声明的类能够使用这一属性)。
二、名词解释(15分)
1、面向对象方法:是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。
2、类:是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和操作务两个主要部分。
类的作用是用来创建对象,对象是类的一个实例。
3、抽象:指从事物中舍弃个别的、非本质的、与问题域无关的特征,而抽取共同的、本质特征的、相关的做法。
4、多态性:在具有继承关系的类层次结构中可以定义同名的操作或属性,但这些属性或操作具有不同的含义,即具有不同的数据类型或表现出不同的行为。
(“同名不同参”或“同名不同类”)
5、OOA模型:就是通过面向对象的分析所建立的系统分析模型。
用况:一个用况是对参与者使用系统的一项功能的描述,是一组动作序列的描述,是一项请求与响应。
(
三、简答(45分)
1、继承和泛化关系
特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承。
一般类对特殊类的抽象关系叫泛化关系(简称泛化)。
2、聚合与组合有区别,请说明他们间的区别,并指出下图中哪图是聚合?
聚合刻画了现实事物之间的构成关系,体现“整体——部分”关系。
而关联没有组成关系或拥有关系。
如例题中的c图
3、简述下图中体现的面向对象的基本思想
答:(1)第一次抽象封装:事物——对象
①首先,直接以问题域(现实世界)中的事物为中心来思考问题、认识问题;②然后,根据这些事物的本质特征和系统责任,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。
(对象) 这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌.
①用对象的属性(attribute)表示事物的性质(静态特征);用对象的操作(operation)表示事物的行为(动态特征)。
②对象的属性与操作结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节。
(对象的封装)③复杂的对象可以用简单的对象作为其构成部分,对象之间是相互联系的。
(聚合)④对象之间通过消息进行通讯,以实现对象之间的动态联系. (消息)
(2)第二次抽象(分类):对象——类
①通过抽象对对象进行分类。
把具有相同属性和相同操作的对象归为一类,类(class)是这些对象的抽象描述,每个对象是它的类的一个实例。
(分类)
②通过关联表达类(一组对象)之间的静态关系。
(关联)
(3)第三次抽象:子类——父类
通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。
特殊类继承一般类的属性与操作,从而简化系统的构造过程及其文档。
(继承)
4、为什么说面向对象语言使得从客观世界到计算机世界的语义鸿沟变窄?
5、简单说明OOA与OOD有何区别
答:OOA用面向对象的建模语言对系统要实现的需求进行建模,不考虑与系统的具体实现有关的因素或环境(如编程语言、界面、数据库等);
OOD是针对系统的一组具体实现条件或环境,继续用面向对象的建模语言进行系统设计与实现。
包括两部分工作:
•第一、根据具体实现条件或环境对OOA模型进行修改和调整
•第二、根据具体实现条件或环境建立人机界面、数据存储和控制驱动等。
6、软件复用有何益处、有哪些级别的软件复用,为什么说继承是软件复用的重要形式
益处:
•提高软件开发效率;
•改善软件质量。
复用级别:
•程序(代码)级复用
•分析、设计结果的复用
继承是重要的软件复用形式
7、如何发现参与者?
人员——
系统的直接使用者
设备——
与系统直接相联的设备为系统提供信息
在系统控制下运行
不与系统相联的设备
计算机设备
外系统——
上级系统
子系统
其它原有系统
8、使用扩展用况描述下用例
9、类和对象的联系有何联系?
•对象是类的实例——由类创建出对象,系统是由若干个对象在计算机中的运行协作完成具体的功能;
•属性相似——一个类的所有对象都具有相同个数、名称、类型和含义的属性,但不同的对象属性具有不同的值;
•操作相同——一个类的所有对象的操作都具有相同的声明和实现
•生命周期——对象具有生命周期,类没有。
10、OO方法中有“实例属性”和“类属性” 之分,请说明什么是“实例属性”和“类属性”?
答:实例属性包含同一属性的每一个对象(实例)都具有自己的值。
类属性是描述类的所有对象共同特征的一个数据项,对于任何对象实例,它的属性值都是相同的,系统中只存在同一数据空间。
C++中冠以static的成员变量是类属性,这样的属性对一个类的全部对象实例只是一份共同的数据空间,所以对任何对象而言,该属性的值总是相同的。
11、在下图中,根据指定的条件标明A、B间的多重性。
给定类A的一个对象a:
(1) a 可以恰好与类B的一个对象关联
(2) a 可以最多与类B的一个对象关联
(3) a 可以与类B的一个或多个对象关联
(4) a 可以与类B的零个或多个对象关联
12、如果在具有关联关系的类中,存在着一个属性放在哪个类中都不合适的情况,就考虑使用关联类。
请举例说明:
举例:
13、特殊类继承了一般类的关联。
请对下列类图,加以说明。
答:一个系统管理员可以操作1..*的计算机,那么一个系统管理员也可以操作1..*的服务器或客户机答:教授可以指导学生、也可以指导教授的含义。
答:学生可以指导学生、教授可以指导教授。
学生可以指导教授,教授可以指导学生的含义(学生和教授都是人)
答:学生可以指导学生、教授可以指导教授,教授可以指导学生的含义
14、简述对象生命线在时序图中的特点
答:
生命线代表着类对象在当前模块中的存活期,即代表了某个对象何时被创建,何时别销毁。
•生命线自上而下,上端出现与对象被创建时,下端结束于对象被销毁时。
否则,生命线应当从图的顶部一直延续到底部。
•创建对象的消息箭头的头部画在对象符号上。
如果对象在图中被销毁,那么用一个大的“×” 标记它的析构,该标记或者放在调用析构的消息箭头处,或者放在从被销毁的对象最终返回处理结果的箭尾处(在自析构的情况下)。
生命线可以分裂成两条或更多条并发的生命线,并在某个后续点处合并,以表示条件性。
即,消息的分支可能导致同一对象在生命周期的同一时刻表现出不同的行为,也就产生了生命线上的分支结构。
15、时序图中,包含下图形,请说明其含义
一个对象的操作递归地调用自己或调用本对象的其他操作,将出现自调用的情形。
四、分析建模(25分)
1、ATM终端处理取款的用况图,动作序列如下:
系统从持卡人处获得取款命令;
系统检查口令;
系统完成用户的取款处理;
判断是否打印回单,并打印回单;
结束操作并退卡
要求使用扩展用例或包含用例转换上同例图
答:
2、很多软件系统都需要登录,若用户登录成功,就可以操作系统的功能,主要有以下方式:
打开登录页面,用户输入登录信息,系统执行用户验证;系统验证成功后,系统弹出功能提示框,等待用户选择执行功能;用户选择执行某个功能。
◆打开登录页面,用户输入登录信息,系统执行用户验证;系统验证成功后,转入主界面;用户
可以执行界面中的任何一个功能。
◆用户执行主界面的某个功能,系统打开登录页面,用户输入登录信息,系统执行验证,验证通
过后,系统继续执行用户选择功能的动作序列,完成用户选择的功能。
如下以一个研究生学籍管理系统为例,描述三种登录方法。
为了简化起见,假设此处仅描述登录、选课和查看学分这3项功能。
要求:分别设计出上三种处理方式的用例图:
3、用关联类为公司和雇员之间的薪水关系建模。
4、使用多重性、聚合建立大学、系、学生、课程、教师间的类图
5、销售部接受到订货单后,进行审核,未被批准的订单,直接送档案科归档;批准的订单,在系统中录入,开具出库单;配送部根据出库单发货并运送货物,财务部对已发货的订单开具销售发票并寄送给客户;客户在收到货物后,验货付款;财务对已经收到的货款,开具收款凭证,连同订单归档。
要求:画出以上活动的活动图。