面向对象技术模拟试卷+-+2015
面向对象程序设计模拟题(C)

面向对象程序设计模拟题一、简答题:1. 什么是对象?什么是对象的事件和方法?试列举几个常用的事件和方法?答:对象是代码和数据的组合,可以作为一个单位来处理。
对象可以使应用程序的一部分,也可以是整个应用程序。
对象事件是对象可以识别的动作,即窗体、控件和其他对象可以识别的动作。
常用的事件有Click事件、Paint事件、Load事件等。
方法是对象要执行的动作,常见的有Clear、AddIRem、RemoveITem等。
2.VB有几种类型的表达式?请举例说明。
答:VB有5中类型的表达式,它们是算术表达式(例2*Pi*r*r)、字符串表达式(例“欢迎您”)、日期型表达式(例#11/22/98)、关系表达式(”abc”>”abcd”)和布尔表达式(2<=4AND6>3)。
二、填空题:1.单选按钮用于建立一组多选一的选项供用户选择,即在这些选项中,用户一次只能选择其中的一个选项选项,并且必须选择其中一个选项。
同时,当一个单选钮被选中时,其他选项自动关闭。
2.列表框是以列表形式显示一系列项目和信息,用户可通过单击其中某一项来选择的自己所需项目或信息。
在Windows中,使用列表框输出数据是保证数据标准化的重要手段,它是一个重要的输出控件。
在工具栏中它是一个标着带有滚动条的列表图案的按钮。
3.MsgBox 函数用来在对话框中显示消息,等待用户单击按钮,并返回一个整数,告诉程序用户单击了哪一个按钮。
4.在VB中有三种形式的数组,静态数组、动态的数组和控件数组。
静态数组就是指数组元素的个数在程序运行时保持不变,动态数组是指数组中的元素个数在程序运行时可以变化的数组,控件数组是使用VB中某些常用控件创建的数组。
使用静态数组、动态数组前必须要先声明,才能在程序中使用。
5.VB提供了图形控件,如Shape控件和Line控件。
它们提供一定的绘图样式,虽比较简单,但是使用非常方便,不需要编写代码,只要设置相应的属性即可。
2015年软考软件设计师模拟试题及答案解析

2015年软考软件设计师模拟试题及答案解析第一篇:2015年软考软件设计师模拟试题及答案解析2015年软考软件设计师模拟试题及答案解析[1] 【网络综合-2015年软考软件设计师模拟试题及答案解析】:41.不是C语言提供的合法关键字是(46)(45)A.switchB.beginC.caseD.default参考答案:(46)B。
解析:因C语言的关键字表中没有begin,它不是C语言的关键字。
所以解答是B。
42.下列字符列中,能作为单个标识符是(47)(47)A.?aB.a=2C.a.3D.a___3参考答案:(47)D。
解析:在C语言中,规定标识符是这样一种字符序列,由英文字母或下线字符开始,后接任1个英文字母、下线字符和数字符组成。
所以问题所列的字符列只有a_3是标识符,其余都l是标识符,一个是由字符’?’开头、一个中间有字符’=’,另一个有字符’.’。
所以解答是D。
43.在C语言中,下列说法中错误的是(48)(47)A.函数定义可以分为两个部分:函数说明部分和函数体B.主函数可以调用任何非主函数C.任何非主函数可以调用其它任何非主函数D.程序可以从任何函数开始执行参考答案:(48)D。
解析:每个C函数的定义分两部分,函数说明部分和函数体,所以叙述①是正确的叙述。
C语言中,函数可以递归调用,主函数可以调用程序中的任何函数,当然可以调用任何非主教的其它函数,所以叙述②是一个正确的叙述。
同样理由,叙述③也是正确的。
C语言规,C程序只有一个主函数,并总是从主函数开始执行,不能从非主函数开始执行。
所以,说程可以从任何函数开始执行是错误的。
所以解答是D。
44.为了直观地分析系统的动作,从特定的视点出发描述系统的行为,需要采用动态分析的方法。
其中,(49)适用于描述与分析相互独立、协同操作的处理系统,也就是并发执行的处理系统。
(49)A.状态迁移图B.时序图C.Petri网D.HIPO图参考答案:(49)C。
(完整word版)2014-2015面向对象程序设计试卷_共9页

研究生院2014-2015学年《面向对象程序设计》考试试卷开卷一、填空(共15分,每空1分)1、编译时的多态性通过__重载__函数实现。
2、面向对象的四个基本特性是_抽象__、__多态性_、__继承性__和_封装性_。
3. 假定AB为一个类,则执行“AB a(2), b[4],*p[4];”语句时调用该类构造函数的次数为__5__。
4.要实现动态联编必须通过对象指针或引用来调用_虚函数_实现。
5.在函数前面用_ inline _保留字修饰时,则表示该函数表为内联函数。
6.如果将一个对象说明为常对象,则通过该对象只能调用它的__公有成员__函数。
7、非成员函数应声明为类的__友元___函数才能访问这个类的private成员。
8、在用class定义一个类时,数据成员和成员函数的默认访问权限是_ 私有____。
9、运算符重载函数可能是类的_友元_函数,也可以是类的_成员_函数,还可以是普通函数。
10、__转换构造函数__函数可以将一个指定的数据转换为类的对象,_类型转换函数_函数实现类的对象转换成其它类型的数据。
二、简答题(共25分,每小题5分)1、什么是类模板,类模板声明的一般形式是什么?答案:类模板是对一批仅仅成员数据类型不同的类的抽象,程序员只要为这一批类所组成的整个类家族创建一个类模板,给出一套程序代码,就可以用来生成多种具体的类,(这类可以看作是类模板的实例),从而大大提高编程的效率。
定义类模板的一般形式是:template <类型名参数名1,类型名参数名2,…>class 类名{类声明体};2、有哪几种继承方式?每种方式的派生类对基类成员的继承性如何?答案:继承方式包括:public、private、protected。
3、简述运算符重载的实现方式有哪几种?给出对应的声明语法形式。
答案:(1)类外定义的运算符重载函数格式为:friend <返回类型> operator <op>(<类型> 参数1,<类型> 参数2) { <函数体> }(2)成员运算符重载函数<返回类型> <类名>::operator <op> (<类型> 参数){ <函数体> }4、写出下面程序的输出结果#include<iostream.h>#include<string.h>class Person{}答案:第1次调用类型转换构造函数!第2次调用类型转换构造函数!调用复制构造函数!OldObjectOldObjectNewObject第1次调用析构函数!OldObject第2次调用析构函数!第3次调用析构函数!5. 写运行结果#include <iostream>using namespace std;class A{};答案:(A,B,C,D)= 31,2,3,4三、改错题(共20分,每小题4分)1. 以下程序可动态分配二维数组并释放内存,且可实现二维指针和一维指针复用,试问程序能否正常运行,如不能运行找出原因并改正之。
面向对象测试题及答案

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

共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+ " 。
java面试题2015及答案

java面试题2015及答案1. Java基础- 1.1 什么是Java平台?- 答案:Java平台是一个由Java语言、Java类库以及Java虚拟机组成的软件平台,它允许开发者编写跨平台的应用程序。
- 1.2 解释Java中的“一次编写,到处运行”。
- 答案:这个概念指的是Java程序可以在任何安装了Java虚拟机(JVM)的设备上运行,而不需要进行任何修改。
- 1.3 什么是JVM?- 答案:JVM(Java虚拟机)是一个可以执行Java字节码的虚拟计算机,它为Java程序提供了一个与平台无关的执行环境。
2. 面向对象编程- 2.1 什么是封装?- 答案:封装是面向对象编程的一个核心概念,它指的是将数据(属性)和操作这些数据的方法(行为)捆绑在一起,并隐藏对象的内部状态。
- 2.2 什么是继承?- 答案:继承是面向对象编程的一个特性,它允许一个类(子类)继承另一个类(父类)的属性和方法。
- 2.3 什么是多态?- 答案:多态性是指允许不同类的对象对同一消息做出响应的能力,即同一个接口可以被不同的对象以不同的方式实现。
3. Java集合框架- 3.1 List和Set有什么区别?- 答案:List是一个有序的集合,可以包含重复的元素;而Set是一个不允许重复元素的集合,且没有固定的顺序。
- 3.2 如何选择ArrayList和LinkedList?- 答案:ArrayList适合随机访问,而LinkedList适合频繁的插入和删除操作。
- 3.3 HashMap和Hashtable有什么区别?- 答案:HashMap是非线程安全的,允许一个null键和多个null值;Hashtable是线程安全的,不允许null键和null值。
4. 异常处理- 4.1 什么是异常?- 答案:异常是程序执行过程中发生的一个事件,它打断了程序的正常执行流程。
- 4.2 什么是try-catch-finally块?- 答案:try-catch-finally块是Java中用于异常处理的结构,其中try块包含可能抛出异常的代码,catch块用于捕获和处理异常,finally块无论是否发生异常都会被执行。
2015 年春季学期《面向对象程序设计(Java)》在线考试(适用于2015年6月份考试)中石油华东 标准答案

2015 年春季学期《面向对象程序设计(Java)》在线考试(适用于2015年6月份考试)一、单选题(共20 道试题,共40 分。
)1. 下列关于Applet 的叙述中,正确的是()。
A. Applet 是Java 类,所以可由JDK 中的解释器直接解释运B. Applet 的主类不一定要定义为java.applet.Applet 类或JApplet 类的子类C. Applet 与Application 的主要区别在执行方式上D. Applet 不能在浏览器中运行----------------选择:C2. 对于下列代码:1) class Person {2) public void printValue(int i, int j) {//... }3) public void printValue(int i){//... }4) }5) public class Teacher extends Person {6) public void printValue() {//... }7) public void printValue(int i) {//...}8) public static void main(String args[]){9) Person t = new Teacher();10) t.printValue(10);11) }12) }第10 行语句将调用()语句。
A. line 2B. line 7C. line 6D. line 3----------------选择:D3. 如果想让某方法不能被任何外部类访问,应使用访问说明符()定义。
A. publicB. privateC. defaultD. protected----------------选择:B4. 下列选项中,()反映了Java 程序并行机制的特点。
A. 安全性B. 多线程C. 跨平台D. 可移植----------------选择:B5. 若在某一个类定义中定义有如下的方法:abstract void performDial( ); 该方法属于()方法。
C++ 2014-2015-2模拟卷

上海应用技术学院2014—2015学年第二学期《面向对象程序设计》期末(模拟)试卷课程代码: B2042211 学分: 3 考试时间: 100分钟课程序号: 1451497,1451498班级:学号:姓名:我已阅读了有关的考试规定和纪律要求,愿意在考试中遵守《考场规则》,如有违反将愿接受相应的处理。
1.在每个C ++程序中都必须包含有这样一个函数,该函数的函数名为()A、mainB、MAINC、MainD、function2.执行下列语句后的输出结果是()int hot=100;int&rad=hot;hot+=100;cout<<rad<<endl;A、0B、100C、200D、3003.C++中,下面设置的默认参数正确的是( )A、 void fun(int x=0,int y,int z)B、 short fun(int x=0,int y=0,int z)C、 float fun(int x=0,int y,int z=0)D、 double fun(int x,int y=0,int z=0)4.用来说明类中私有成员的关键字是()A、publicB、privateC、protectedD、friend5.有关构造函数的说法不正确的是()。
A、构造函数名和类名一样B、构造函数在定义类变量时自动执行C、构造函数无任何函数类型D、构造函数有且只有一个6.对于拷贝构造函数,正确的描述是()A、在C++语言中,如果不自定义类的拷贝构造函数,则每个类都有默认的拷贝构造函数B、必须为每个类定义拷贝构造函数C、如果要使用拷贝构造函数,则必须在类中先定义D、当定义了类的构造函数时,如果要使用拷贝构造函数,则必须定义拷贝构造函数7.下面有关析构函数的描述正确是( )A、析构函数可以带参数B、析构函数可以有多个C、析构函数有返回值D、析构函数可以为虚函数8.在程序代码中,this 的类型是()Sample::Sample (int a, int *b){this->x = a;this->y = b;}A、intB、int *C、SampleD、Sample *9.不能作为函数重载判断依据的是()A、参数个数B、参数类型C、函数名字D、返回类型10.当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的()A、public成员B、private成员C、protected成员D、友元二、程序阅读题(每题8分,共40分)1.写出下列程序的运行结果#include <iostream>using namespace std;int main(){char a[]="abcdabcabfgacd";int i1=0,i2=0,i=0;while(a[i]){cout<<a[i];if(a[i]=='a')i1++;if(a[i]=='b')i2++;if(a[i]=='g'){cout<<endl;break;}i++;}cout<<i<< " " << i1<<" "<<i2<<endl;return 0;}2.写出下列程序的运行结果#include <iostream>using namespace std;void f1(int x, int y){int z;z = x;x = y;y = z;}void f3(int *x, int *y){int z;z = *x;*x = *y;*y = z;}int main(){int x, y;x = 10;y = 26;cout<< "x,y=" << x << ", " << y <<endl;f1(x, y);cout<< "x,y=" << x << ", " << y <<endl;f3(&x, &y);cout<< "x,y=" << x << ", " << y <<endl;return 0;}3.写出下列程序的运行结果#include <iostream>using namespace std;class CSimple{private:int x;public:CSimple();CSimple(int);~CSimple();void Display();};CSimple::CSimple(){x=0;cout<<"Default constructor\n";}CSimple::CSimple(int m){x=m;cout<<"Constructor with a number: "<<x<<endl;}CSimple::~CSimple(){cout<<"Destructor with a number: "<<x<<endl;}void CSimple::Display(){cout<<"Display a number: "<<x<<endl;}int main(){CSimple obj1;CSimple obj2(20);obj1.Display();obj2.Display();return 0;}4.写出下列程序的运行结果#include <iostream>using namespace std;class CParent{private:int n;public:CParent(int a){cout<<"Constructor of CParent with a number: "<<a<<endl;n=a;}~CParent(){cout<<"Destructor of CParent"<<endl;}class CSon:public CParent{private:int m;public:CSon(int a,int b):CParent(a){cout<<"Constructor of CSon with a number: "<<b<<endl;m = b;}~CSon(){cout<<"Destructor of CSon"<<endl;}};int main(){CSon s(35,10);return 0;}5.写出下列程序的运行结果#include <iostream>using namespace std;class A{public:A(){cout<< "A Constructor" <<endl;}virtual ~A(){cout<< "A Destructor" <<endl;}virtual void f(){cout<< "A::f()" <<endl;}void g(){cout<< "A::g()" <<endl;}class B:public A{public:B( ){cout<< "B Constructor" <<endl;}~B( ){cout<< "B Destructor" <<endl;}void f(){cout<< "B::f()" <<endl;}void g(){cout<< "B::g()" <<endl;}};int main(){A *p=new B;p->f();p->g();delete p;return 0;}三、编程题(每题8分,共40分)1.编写程序,打印1、2、4、8、16、32,每轮循环都将计数变量的值乘以2。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
D.DatagramPacket
E.read/write
F.send/receive
9. Which of the following statements are true?
A. The equals() method determines if reference values refer to the same object.
B. The == operator determines if the contents and type of two separate objects match.
C. The equals() method returns true only when the contents of two objects match.
method on the same object, it is still possible that the first thread might never resume execution.
C. If a thread is blocked in the wait method of an object, and another thread executes the notify
4
4、设应用程序中有一个数据录入界面,如下图所示。程序中有一个上题 3 中 seaweedSet 类对 象 set 属性,保存用户输入的所有 Seaweed 类信息。试完成: (1)当用户单击“添加(Append)”按钮时,创建 Seaweed 类的对象 seaweed,添加的数据插 入到图中的表格中,并将相关信息存入该对象,将其添加到 set 对象中; (2)当用户单击“关闭(Close)”按钮时,将 set 中的 Seaweed 类的对象信息通过控制台显示 出来。请完成“添加(Append)”、“关闭(Close)”按钮单击事件。 (3)简述 JAVA 的事件对象模型、常用的事件监听器接口。如何注册事件监听器?
的方法或程序块用关键字________来限制。
A.notify
B.wait
C.synchronized
D.notifyAll
8 JAVA UDP 编程主要用到的两个类型是_____ __和________。发送和接收信息的方法是
______。
A.UDPSocket
B.DatagramSocket
C.UDPPacket
2
7. ( )if(true){int i=17;} System.out.println(i);
运行此程序的结果是输出 17 8. ( )float x=26f; int y=26; int z=x/y; 以上语句能正常编译和运行 9. ( )int x=9; if(x>8 and x<10) System.out.println("true"); 以上语句运行的结果是显示 true 10. ( )String str; System.out.println(str.length()); 以上语句运行的结果是显示 0
5.
static { x/=3;}
6. public static void main(String args[ ])
7. {
8.
System.out.println(“x=“ + x);
9. }
10. }
A、 4 行与 5 行不能通过编译,因为缺少方法名和返回类型
B、 4 行不能通过编译,因为只能有一个静态初始化器
}
}
A、输出结果为:value is 99.99
B、输出结果为:value is 9
C、输出结果为:value is 9.0
D、编译错误
2、关于以下 Application 的说明,正确的是( )
1. class StaticStuff
2. {
3. static int x=10;
4. static { x+=5;}
2、设生物信息管理系统中,需要定义一个实体类 Capture 表示生物类,要求如下: (1)具有属性生物名称 name、生物的分类 Catalog; (2)属性的 setter/geter 方法; (3)构造方法,默认的构造方法将生物初始化为“赤藻(Red Algae),藻类(Algae)”; (4)重写 toString()方法; (5)设计一个接口类 Processable,该接口中一个方法 String print(),输出生物的基本信息;
C、 编译通过,执行结果为:x=5
D、编译通过,执行结果为:x=3
3、Java 中如果一个类希望长期保存其状态,则必须实现( )接口
A、Java.io.OutputStream
B、Java.io.无效 Stream
C、java.io.Serializable
D、java.io.Object
4、关于以下程序段,正确的说法是( )
modify on that same object, then the first thread immediately resumes execution.
B. If a thread is blocked in the wait method of an object, and another thread executes the notify
海参类 Seaweed 继承 Capture 类并实现接口 Processable,新的属性 weight 表示重量、color 表示 外观,编写测试类 TestSeaweed,测试类 Seaweed。 [考核要点] (1)类与接口的定义、特点; (2)继承与多态 (3)面向抽象的编程
3、设计上题 2 中的 Seaweed 类对象数据存储方法: (1)设计 Comparator 接口类的子类 MyComparator,实现对 Seaweed 类对象的比较,比较的规 则是 name 的字典顺序(升或降)(其他代码不需要列出); (2)创建 TreeSetDemo.java,在 main()方法中用 MyComparator 为参数,创建一个 SortedSet 接口实现类 TreeSet 的对象 seaweedSet; (3)创建 4 个 Seaweed 类对象,并以存入 seaweedSet; (4)使用迭代器,从 seaweedSet 检索出所有 Seaweed 类对象,调用 Seaweed 类对象中的 print 方法,输出按 name 排序后的信息; [其他数据结构的使用:分别用 Vector、LinkedList、ArrayList、HashSet、HashMap、TreeSet、 TreeMap 类] [考核要点] (1)集合类框架中常用的接口、类的特点及其应用;
notify
method on the same object, then the first thread that executed the wait call first definitely
resumes
execution as a direct and sole consequence of the notify call.
A. final class 不能被继承
B. final 变量不能被修改
C. final 成员变量可以在构造方法中赋值 D. final 方法不能被覆盖(overriden)
7 并发控制是多线程编程的难点。一个线程要等待某个条件的满足调用方法_______;通知某一
个处于等待状态线程的方法是________,通知多个的是________;处于等待状态的线程当前调用
苏州科技学院 面向对象技术 模拟试卷
一、选择题(10*2 分=20 分)
1、编译运行以下程序后,关于输出结果的说明正确的是 ( )
public class Conditional{
public static void main(String args[ ]){
int x=4;
System.out.println(“value is “ + ((x>4) ? 99.9 : 9));
Thread t=new Thread(new X()); t.start(); } }
运行结果:
四、编程(共 60 分)
1、根据给定的以下 UML 类图,完成: (1)说明图中的类与类之间的关系; (2)根据 UML 类图,设计图中相应的所有类。(10 分)
3
(3)该图描述哪一种设计模式? [考核要点] (1)类与类的关系; (2)UML 类图 (3)常用设计模式
} }
2.下列程序的运行结果是 public class X extends Thread implements Runable{
public void run(){ System.out.println("this is run()");
} public static void main(String args[]) {
1. String s1="abc"+"def";
2. String s2=new String(s1);
3. if(s1= =s2)
4. System.out.println(“= = succeeded”);
5. if (s1.equals(s2))
6. Systeeded”);
method on the same object, then the first thread definitely resumes execution as a direct and sole
consequence of the notify call.
D. If two threads are blocked in the wait method of one object, and another thread executes the