面向对象程序设计试卷作业答案
面向对象程序设计练习题库与答案
面向对象程序设计练习题库与答案一、单选题(共36题,每题1分,共36分)1.下列关于静态内部类的说法,错误的是()A、静态内部类不能直接访问外部类的非静态成员B、静态内部类只能访问外部类的静态成员C、创建静态内部类的对象时,必须要先创建外部类的对象D、静态内部类,就是使用static关键字修饰的成员内部类正确答案:C2.以下选项中,哪个是FileInputStream的父类()A、FileB、FileOutputC、OutputStreamD、InputStream正确答案:D答案解析:FileInputStream是用来读取文件的字节流,属于InputStream类的子类。
3.下面关于FileInputStream和FileOutputStream的说法中,错误的是()A、FileInputStream是InputStream的子类,它是操作文件的字节输入流B、FileOutputStream是OutputStream的子类,它是操作文件的字节输出流C、如果使用FileOutputStream向一个已存在的文件中写入数据,那么写入的数据会被追加到该文件原先的数据后面D、使用FileInputStream读取文件数据时,必须保证要读取的文件存在并且是可读的正确答案:C答案解析:如果使用FileOutputStream向一个已存在的文件中写入数据,如果构造函数FileOutputStream的参数append的值是true,那么写入的数据才会追加到原先数据之后,否则的话,原先的数据会被清空,然后再写入新的数据。
4.下列关于类的说法中,错误的是()A、Java中创建类的关键字是class。
B、类中可以有属性与方法,属性用于描述对象的特征,方法用于描述对象的行为。
C、Java中对象的创建,首先需要定义出一个类。
D、一个类只能创建一个对象。
正确答案:D答案解析:类是对象的模板,对象是类的实例,一个类是可以创建多个对象的。
面向对象的程序设计作业及答案
1. 一段代码可能导致异常,程序员将它放到了一个try模块中,catch(){……}块中的代码为空,那么() CA. 编译无法通过B. 只有在代码所在函数的声明中抛出才能编译通过C. 代表对异常不做处理,编译可通过D. 运行时一定出错满分:4 分2. 如果一段代码可能引发某种异常,Java要求(D)A. 最好处理B. 必须全部抛出C. 必须全部捕获D. 必须有明确的处理代码满分:4 分3. 错误提示内容:javac:Command not found,请判断是下列哪个方面出了问题?AA. 编译器的路径变量设置不正确B. 程序中有错误的语句C. 文件名和公有类名不匹配D. main方法缺少statci和public修饰满分:4 分4. public class Xyz {int x=1;} 类Xyz有几个构造方法() BA. 0B. 1C. 2D. 3满分:4 分5. 创建包目录的编译命令选项是( ) DA. -aB. -bC. -cD. -d满分:4 分6. 用()可以修饰类或成员方法,表明是抽象的。
CA. finalB. abstractD. static满分:4 分7. 子类中,若要使用父类中隐藏的方法,可以使用()关键字 AA. superB. thisC. upperD. parents满分:4 分8. 使用GridLayout管理组件,当容器的大小变化时(C)A. 组件的相对位置不变,组件的大小不变B. 组件的相对位置改变,组件的大小不变C. 组件的相对位置不变,组件的大小改变D. 组件的相对位置改变,组件的大小改变满分:4 分9. 下列哪个类不是java.applet.Applet类父类?(A )A. java.awt.FrameB. ponentC. java.awt.ContainerD. java.awt.Panel满分:4 分10. String类中,得到字符串中字符个数的函数是( A)A. length成员变量B. size成员变量C. length( )成员函数D. size( )成员函数满分:4 分11. 下列哪个是Java应用程序的正确运行命令?AA. java HelloWorldAppB. java HelloWorldApp.javaC. javac HelloWorldAppD. javac HelloWorldApp.java满分:4 分12. 可变(长度)字符串使用( )处理. DB. CharacterC. StringD. StringBuffer满分:4 分13. Java的三类异常中,当发生内存越界等无法恢复的错误时,会产生()A. ExceptionB. ErrorC. RuntimeD. Exception满分:4 分14. 数组的唯一的数据成员是(D)A. sizeB. SizeC. LengthD. length满分:4 分15. Stirng.replace(char char1,char char2);的意义是( ) AA. 所有char1换成char2B. 所有char2换成char1C. 第一个char1换成char2D. 第一个char2换成char1满分:4 分16. java中使用()符号来访问对象的方法 AA. .B. ->C. ()D. A和B满分:4 分17. 包语句可以放在()BA. 源文件的任意位置B. 源文件的第一条语句C. 源文件的末尾D. 源文件的中间满分:4 分18. 在一个程序中,我们处理完了数据,想更新显示,应该在代码中使用()函数。
福建师范大学2021年8月课程考试《面向对象的程序设计》作业考核(答案参考)
《面向对象的程序设计》期末考试A卷姓名:专业:学号:学习中心:一、单选题 (请将答案填在下表中,共25题,每题2分,共50分)1 2 3 4 5 6 7 8 9 10C A B B AD A D A A11 12 13 14 15 16 17 18 19 20A C C C D D D A D C21 22 23 24 25D A A A A1、Observer模式不适用于()。
A.当一个抽象模型存在两个方面,其中一个方面依赖于另一方面,将这二者封装在独立的对象中以使它们可以各自独立的改变和复用B.当对一个对象的改变需要同时改变其他对象,而不知道具体有多少个对象有待改变时C.当一个对象必须通知其它对象,而它又不能假定其它对象是谁,也就是说你不希望这些对象是紧耦合的D.一个对象结构包含很多类对象,它们有不同的接口,而想对这些对象实施一些依赖于其具体类的操作2、顺序图由类角色,生命线,激活期和()组成。
A.关系B.消息C.用例D.实体3、UML中类的有三种,下面哪个不是其中之一()A.实体类B.抽象类C.控制类D.边界类4、如果用例A与用例B相似,但A的功能较B多,A的动作序列是通过在B的动作序列中的某些执行点上插入附加的动作序列而构成的,则称()。
A.用例A实现用例BB.用例A继承用例BC.用例A扩展用例BD.用例A包括用例B5、()技术是将一个活动图中的活动状态进行分组,每一组表示一个特定的类、人或部门,他们负责完成组内的活动。
A.泳道B.分叉汇合C.分支D.转移6、关于继承表述错误的是:()。
A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法B.泛化类(超类)可以显式地捕获那些公共的属性和方法。
特殊类(子类)则通过附加属性和方法来进行实现的扩展C.在一定意义上说破坏了封装性,因为这会将父类的实现细节暴露给子类D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类7、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用()模式。
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中,______关键字用于声明一个类是抽象的。
面向对象程序设计试卷及答案
面向对象程序设计试卷及答案.)答案考试试卷A(面向对象程序设计注意事项:请考生按要求在试卷装订线内填写姓名、学号1.和年级专业。
请仔细阅读各种题目的回答要求,在规定的位2.置填写答案。
不要在试卷上乱写乱画,不要在装订线内填写3.无关的内容。
分钟。
100分,考试时间为1204. 满统分得单项选择一.分分,共小题,每小题3(本大题共10 评分) 30分人) B 中每个int类型的变量占用(1. C# 个字节的内存。
)C (( B)4 8 (A)1 )(D 2) A 2. 面向对象的特点是(态装封、继承、多(A)(B)抽象、封装、多态封继承、(C )抽装象、)抽象、多态、重载(D 3. C#控制台程序的主入口点是() C)C Run Page_Load(A)函数(B)函数( Main函数函数)(DForm_Load引用类型存储在()中。
B 4.))(堆内存B 堆栈)(A () C队列D (列表表示一个字符串的变量应使用以下哪在5. C#中,)B 条语句定义(.(A)CString str (B)string str(C)Dim str as string (D)char*str6.在中,用来与数据源建立连接的对象是( A )。
(A)Connection对象(B)Command 对象(C)DataAdapter对象(D)DataSet 对象7. 在类的定义中,类的( B )描述了该类的对象的行为特征。
(A)类名(B)方法(C)所属的名字空间(D)私有域8. 如果未显式赋值,则将整型值( B )赋给枚举中的第一个元素。
(A)1 (B)0 (C)23)(D)类型类型的值可以隐式转换成(9. float C的值而保持值不被改变。
double )C( long )B( char )A(int )D(是IExample而,是一个类Class1假设,中在C#10.A 下面的(,一个接口)类声明是正确的。
class Employee: Class1, IExample )A(.class Employee: IExample, Class1 B)(class Employee- Class1, IExample )(Cclass Employee: Class1/IExample )(D得.判断题二分15共每小题小题,3分,(本大题共5 评)分分中子类可以继承多个基类,也可以1. C人)×继承一个接口。
《面向对象程序设计》答案
0837一、BCABB DDCBA二、1、答:程序运行的输出结果是:1 2 6 24 1202、3、问题(1):Test3是SuperTest的子类(或SuperTest是Test3的父类,或继承关系)。
问题(2):super指对象的父类(或超类);this指使用它的对象本身(或对对象自己的引用)。
问题(3):程序的输出是:<\ p="">Hi, I am OliveNice to meet you!Age is 7My age is 7My parent"s age is 35<\ p="">4、答:问题(1):new FileOutputStream(“out.txt”)dout.writeInt( ‘0’ + i);dout.close( );new FileInputStream(“out.txt”)din.readInt( )din.close( );问题(2):常被用于读取与存储(读写或输入/输出)基本数据类型的数据。
问题(3):文件out.txt的内容是:0 1 2 3 4 5 6 7 8 9程序在控制台窗口输出:0,1,2,3,4,5,6,7,8,9,三、import java.io.DataOutputStream;import java.io.FileOutputStream;import java.io.IOException;public class TestSort {public static int MAXSIZE = 61;public static void sortInt(int[] arr) { // 采用选择法对一维数组进行排序for (int i = 0; i < arr.length - 1; i++) {int k = i;for (int j = i + 1; j < arr.length; j++)if (arr[j] < arr[k])k = j; // 用k记录最小值的下标if (k > i) { // 在外循环中实施交换arr[i] = arr[i] + arr[k];arr[k] = arr[i] - arr[k];arr[i] = arr[i] - arr[k];}}}public static void main(String args[]) {int score[] = new int[MAXSIZE];try {for (int i = 0; i < MAXSIZE; i++)score[i] = (int) (Math.random() * 100 + 0.5);sortInt(score);DataOutputStream dout = new DataOutputStream(new FileOutputStream(\"score.txt\"));for (int i = 0; i < MAXSIZE; i++) {dout.writeInt(score[i]);System.out.println(score[i]);}dout.close();// 结果保存到文件} catch (IOException e) {System.err.println(\"发生异常:\" + e);e.printStackTrace();}// try-catch结构处理异常}}。
(0837)《面向对象程序设计》网上作业题及答案
(0837)《面向对象程序设计》网上作业题及答案1:[单选题]执行下列语句后,变量x的值是:()int x = 7, y = 10;switch (x / y) {case 0:x++;case 7:x *= y;case 14:x += y;break;default:x %= y;}A:8B:70C:80D:90参考答案:D2:[单选题]以下由for语句构成的循环的执行次数是:()for (int i=0; i<=0; i=i) ;A:有语法错,不能执行B:一次也不执行C:执行1次D:无限次参考答案:D3:[单选题]设有定义int i=7;char ch='b'; 下面赋值语句中不正确是:()A:i = ch;B:ch = i;C:ch = (char)i;D:i = (int)ch;参考答案:B4:[单选题]设有定义int i=80, j=7; double d=80.7;下列语句中正确的赋值语句是:()A:i = d;B:i = (int)d + j;C:j = (int)i - d;D:i + j = (int)d;参考答案:B5:[单选题]以下关于Java语言的叙述错误的是:()A:Java是最纯粹的面向对象语言,对面向对象方法学的支持也最全面B:Java是解释执行的语言,由Java解释器负责将Java源文件解释为机器码执行C:Java是平台无关的,即Java程序不用修改就可以在不同类型的计算机平台上运行D:Java提供了大量功能丰富的可重用类库,有效减少了编程的工作量参考答案:B6:[单选题]下列选项中,用于声明实现一个接口关键字是:()A:interfaceB:implementsC:importD:abstract参考答案:B7:[单选题]Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序“一次编写,到处运行”的特点:()A:多线程B:与平台无关C:面向对象D:分布式参考答案:B8:[单选题]下列不属于Java语言关键字的是:()A:repeatB:tryC:breakD:new参考答案:A9:[单选题]下列字符序列中可以作为Java语言标识符的是:()A:trueB:123_xyzC:x.yD:_x123参考答案:D10:[单选题]下列字符序列中不能作为Java语言标识符的是:()A:abc_123B:圆周率PIC:falseD:_123abc参考答案:C1:[单选题]下列语句序列给出了k,myArr和myMethod()的声明。
面向对象程序设计-试卷[附参考答案]
《面向对象程序设计》试卷第一学期“本科”期末考试计算机专业面向对象程序设计试题一、单项选择题(每小题1分,共20分)1.由C++源程序文件编译而成的目标文件的默认扩展名为(C)。
A.cppB.exeC.objD.lik2.设x和y均为bool量,则x&&y为真的条件是(A)。
A. 它们均为真B.其中一个为真C. 它们均为假D. 其中一个为假3.在下面的二维数组定义中,正确的语句是(C)。
A.int a[5][];B.int a[][5];C.int a[][3]={{1,3,5},{2}};D.int a[][10];4.在文件包含命令中,被包含文件的扩展名(C)。
A.必须是 .h;B.不能是 .h;C.可以是 .h或 .cpp;D.必须是 .cpp;5.要使语句“p=new int[10][20]”正确,p应事先定义为(D)。
A.int *p;B.int **p;C.int *p[20];D.int (*p)[20];6.在关键字public后定义的成员为该类的(B)成员。
A.私有B. 公有C.保护D.任何7.假定AA为一个类,a为该类私有的数据成员,若要在该类的一个成员函数中访问它,则书写格式最好为(B)。
A.aB.AA::aC.a( )D. AA::a( )8.队列具有(A)的操作特性。
A.先进先出B.先进后出C.进出无序D.仅进不出9.假定AB为一个类,则执行“AB a,b(3),*p”语句时共调用该类构造函数的次数为(D)。
A. 5B. 4C. 3D. 210.在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是(B)。
A. 作为友元函数重载的1元运算符B. 作为成员函数重载的1元运算符C. 作为友元函数重载的2元运算符D. 作为成员函数重载的2元运算符二、填空题(每空2分,共20分)1.当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光标从当前位置移动到下一行的开始位置。
面向对象程序设计作业参考答案
面向对象程序设计作业参考答案《面向对象程序设计》作业及答案作业一1.类和对象的概念和关系是什么?对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。
一个对象由一组属性和对这组属性进行操作的一组服务组成,类是具有相同属性和服务的一组对象的集合。
类是对象的模板,对象是类的实例2.用UML表示交通工具Vehicle类及名为car1,car2及car3的三个Vehicle对象3.简述对象之间的消息传递机制是如何实现的?当程序运行时,我们使用类和由类生成的对象来完成任务。
而要命令类或对象执行某项任务,就需要给它发送一条消息(message)。
为了能够处理所接收到的消息,类或对象必须拥有相应的方法(method)。
一个方法就是一个指令序列,也就是一段程序代码,类似于C语言中的函数。
为类定义的方法称为类方法(class method),为对象定义的方法称为实例方法(instance method)。
类方法可以通过类直接调用,实例方法则必须先创建类的实例才能够调用。
4.import语句的用途是什么?Java程序是否总要包括import语句?import保留字用于引入其他包中的类。
Java如果使用的都是同一包的类的话则不需要import保留字。
5.什么是Java的源文件?什么是字节码文件?Java的源文件是以.java结尾的文本文件,字节码文件是将Java源文件经过Java编译器编译后的文件,字节码文件不能直接运行,只能运行于Java虚拟机之上。
6.Java虚拟机是什么?它有作用是什么?Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。
Java语言的一个非常重要的特点就是与平台的无关性。
而使用Java 虚拟机是实现这一特点的关键。
一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。
而引入Java 语言虚拟机后,Java 语言在不同平台上运行时不需要重新编译。
Java 语言使用模式Java 虚拟机屏蔽了与具体平台相关的信息,使得Java 语言编译程序只需生成在Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
面向对象程序设计平时作业题及参考答案-part1
//////////////////////////////////////////////////////////////////////////////// Java Java ”BA.B.C.D.//////////////////////////////////////////////////////////////////////////////// Java BA.JavaB.Java Java JavaC.Java JavaD.Java//////////////////////////////////////////////////////////////////////////////// Java CA.abc_123B. PIC.falseD._123abc//////////////////////////////////////////////////////////////////////////////// Java DA.trueB.123_xyzC.x.yD._x123//////////////////////////////////////////////////////////////////////////////// Java AA.repeatB.tryC.breakD.new//////////////////////////////////////////////////////////////////////////////// BA.interfaceB.implementsC.importD.abstract//////////////////////////////////////////////////////////////////////////////// int i=80, j=7; double d=80.7; BA.i = d;B.i = (int)d + j;C.j = (int)i - d;D.i + j = (int)d;//////////////////////////////////////////////////////////////////////////////// int i=7;char ch='b'; BA.i = ch;B.ch = i;1C.ch = (char)i;D.i = (int)ch;//////////////////////////////////////////////////////////////////////////////// for Dfor (int i=0; i<=0; i=i) ;A.B.C.D.//////////////////////////////////////////////////////////////////////////////// Dint x=7, y=10;switch( x/y ) {case 0: x++;case 7: x*=y;case 14: x+=y; break;default: x%=y;}A.8B.70C.80D.90//////////////////////////////////////////////////////////////////////////////// , AA.publicB.extendsC.voidD.private//////////////////////////////////////////////////////////////////////////////// BA.B.C.D.//////////////////////////////////////////////////////////////////////////////// String DA.String str2 = “” ;B.String str1 = new String( );C.String str4 = “” + 123;D.String str3 = new String(123);//////////////////////////////////////////////////////////////////////////////// ???? myArr myMethod() myMethod(myArr,k) myArr Dint k = 7;String myArr[] = {"love", "peace", "and"};void myMethod(String a[], int m) {String temp = a[1];a[1] = a[2];2a[2] = temp;m = a[2].length();}A.{"peace", "love", "and"} 4B.{"peace", "love", "and"} 7C.{"love", "and", "peace"} 5D.{"love", "and", "peace"} 7myArr myMethod() myMethod(myArr, k) myArrint k = 7;String myArr[] = {"love", "peace", "and"};void myMethod(String a[], int m) {String temp = a[1];a[1] = a[2];a[2] = temp;m = a[2].length();}myArr {"love", "and", "peace"}7public class Test2 {static int k = 7;static String myArr[] = {"love", "peace", "and"};void myMethod(String a[], int m) {String temp = a[1];a[1] = a[2];a[2] = temp;m = a[2].length();}public static void main(String args[]) {Test2 test = new Test2();test.myMethod(myArr, k);for(int i=0; i<myArr.length; i++) {System.out.println(myArr[i]);}System.out.println(k);}}//////////////////////////////////////////////////////////////////////////////// b1 b2 b3 b4 CString s1 = “peace”;String s2 = new String(s1);String s3 = s2;String s4 = new String(“PEACE”);boolean b1 = (s1 == s2);boolean b2 = s1.equals(s2);boolean b3 = (s3 == s2);boolean b4 = s4.equals(s3);3A.true true false falseB.false true true trueC.false true true falseD.false true false false//////////////////////////////////////////////////////////////////////////////// DA.BoxLayoutB.FlowLayoutC.CardLayoutD.BorderLayout//////////////////////////////////////////////////////////////////////////////// Swing BA.JApplet JPanel JWindowB.JDialog JApplet JFrameC.JApplet JFrame, JMenuD.JFrame JPanel JTextArea//////////////////////////////////////////////////////////////////////////////// Java Applet AA.java.applet.Applet JavaB.JavaC.Java main()D.Java ActionListener//////////////////////////////////////////////////////////////////////////////// CA.B.C.D.////////////////////////////////////////////////////////////////////////////////public class Test1 {public int method(int n) {int result = 1;for(int i = 1; i <= n; i++) {result *= n;}return result;}public static void main(String args[]) {Test1 test = new Test1( );int sum = 0 ;for (int i = 1; i <= 3; i++)sum += test.method(i) ;System.out.println("sum = " + sum);}}sum = 324////////////////////////////////////////////////////////////////////////////////public class Test1 {public int method(int n) {int result = 1;for (int i=1; i<=n; i++) {result *= i;}return result;}public static void main(String args[]{Test1 test =new Test1( );int sum[] = new int[6];for (int i=1; i<=5; i++) {sum[i] = test.method(i) ;System.out.print(sum[i] + " ");}}}1 2 6 24 120////////////////////////////////////////////////////////////////////////////////public class Test2 {public static char method(char ch) {if((ch>='A') && (ch<='Z'))return (char)(ch + 32);else return ch;}public static void main(String[] args) {String s= "0123456789ABCDEF",s1="";for (int i=s.length()-1; i>=0; i--)s1 = s1 + method(s.charAt(i));System.out.println(s1);}}fedcba9876543210////////////////////////////////////////////////////////////////////////////////public class Test2 {public String method(String s) {StringBuffer result = new StringBuffer();for (int k = s.length() - 1; k >= 0; k--) {result.append(s.charAt(k));}return result.toString();}public static void main(String args[]) {Test2 test = new Test2();String str = "peace";System.out.println(test.method(str));}}5ecaep////////////////////////////////////////////////////////////////////////////////Test3 SuperTestsuper thisclass SuperTest {public int age ;public SuperTest( String s ) {System.out.println("Hi, I am " + s);age = 35;}}public class Test3 extends SuperTest {public int age;public Test3 ( String s ) {super( s );System.out.println("Nice to meet you!");age = 7;}public void print() {System.out.println( "Age is " + age );System.out.println( "My age is " + this.age );System.out.println( "My parent's age is " + super.age );}public static void main( String args[ ] ) {Test3 test = new Test3(“Olive”);test.print();}}Test3 SuperTest SuperTest Test3super thisHi, I am OliveNice to meet you!Age is 7My age is 7My parent’s age is 35////////////////////////////////////////////////////////////////////////////////Child Parentsuper thisclass Parent {public void printMe( ) {System.out.println("parent");}6}class Child extends Parent {public void printMe( ) {System.out.println("child");}public void printAll( ) {super.printMe( );this.printMe( );}}public class Test3 {public static void main(String args[ ]) {Child myC = new Child( );myC.printAll( );}}Child Parent Parent Childsuper ;thisparentchild////////////////////////////////////////////////////////////////////////////////tryDataOutputStream DataInputStreamout.txt out.txtimport java.io.* ;public class Test4 {public static void main( String args[ ]) {try {DataOutputStream dout = new DataOutputStream(new FileOutputStream(“out.txt”));for(int i = 0; i < 10; i++)dout.writeInt( ‘0’ + i);dout.close( );DataInputStream din = new DataInputStream(new FileInputStream(“out.txt”));for(int i = 0; i < 10; i++)System.out.print( din.readInt( ) - ‘0’ + ”, ” );din.close( );} catch ( IOException e ) {System.err.println( “ ” + e );e.printStackTrace( );}}}7new FileOutputStream(“out.txt”)dout.writeInt( ‘0’ + i);dout.close( );new FileInputStream(“out.txt”)din.readInt( )din.close( );out.txt 0 1 2 3 4 5 6 7 8 9////////////////////////////////////////////////////////////////////////////////Java JavaActionListener ActionListenerimport javax.swing.*;import java.awt.*;import java.awt.event.*;public class Test4 extends JApplet implements ActionListener{private Container cp = getContentPane();;private JLabel prompt = new JLabel(" ");private JButton start = new JButton(" ");private JTextField output = new JTextField(20);public void init( ){cp.setLayout(new FlowLayout());cp.add(start);cp.add(prompt);cp.add(output);output.setEditable(false);start.addActionListener(this);}public void actionPerformed(ActionEvent e){if ((JButton)e.getSource( ) == start )output.setText(" ");}}Java Java Java application Java Java applet ; JavaJLabel JButton JTextField ;ActionListener ; actionPerformed() ActionListener ; applet//////////////////////////////////////////////////////////////////////////////// 61 100 “score.txt”8import java.io.DataOutputStream;import java.io.FileOutputStream;import java.io.IOException;public class TestSort {public static int MAXSIZE = 61;//public static void sortInt(int[] arr) {// for(int i=0; i<arr.length-1; i++) {int k = i;for(int j=i+1; j<arr.length; j++)if (arr[j] < arr[k]) k = j;//if (k>i) {//arr[i] = arr[i] + arr[k];arr[k] = arr[i] - arr[k];arr[i] = arr[i] - arr[k];}}}public static void main(String args[]) {int score[] = new int[MAXSIZE];// try-catchtry {for (int i = 0; i < MAXSIZE; i++)score[i] = (int)(Math.random() * 100 + 0.5); //sortInt(score);//DataOutputStream dout = new DataOutputStream(newFileOutputStream("score.txt"));for(int i=0; i < MAXSIZE; i++) {dout.writeInt(score[i]);System.out.println(score[i]);}dout.close( );} catch(IOException e) {System.err.println(" " + e);e.printStackTrace( );}}}////////////////////////////////////////////////////////////////////////////////(5,10) 15(0,0) 15//9interface Shapes {abstract double getArea();abstract double getPerimeter();}// Squareclass Square implements Shapes {public int x, y;public int width, height;public double getArea() {return (width * height);}public double getPerimeter() {return (2 * width + 2 * height);}public Square(int x, int y, int width, int height) {this.x = x;this.y = y;this.width = width;this.height = height;}}// Circleclass Circle implements Shapes {public int x, y;public double radius;public double getArea() {return (radius * radius * Math.PI);}public double getPerimeter() {return (2 * Math.PI * radius);}public Circle(int x, int y, double r) {this.x = x;this.y = y;this.radius = r;}}//public class TestShape {public static void main(String[] args) {Shapes s1 = new Square(5, 10, 15, 15);Shapes s2 = new Circle(0, 0, 6.0);System.out.println(" : " + s1.getArea());System.out.println(" : " + s1.getPerimeter());System.out.println(" : " + s2.getArea());System.out.println(" : " + s2.getPerimeter());}}//////////////////////////////////////////////////////////////////////////////// "peace&love" Application Applet10public class PeaceLove {public static void main(String[] args) {System.out.println("peace&love");}}import java.applet.Applet;import java.awt.Graphics;public class PeaceLoveApplet extends Applet {public void paint(Graphics g) {g.drawString("peace&love", 10, 10);}}//////////////////////////////////////////////////////////////////////////////// Java Applet “abc123XYZ”, “zyx321CBA”// importimport java.awt.*;import java.awt.event.*;import java.applet.*;public class StringApplet extends Applet implements ActionListener { // //private Label prompt = new Label("Input a String and <ENTER> or Press the Button");private TextField input = new TextField(15);private TextArea display = new TextArea(15, 50);private Button convert = new Button("Convert!");// init()public void init() {input.addActionListener(this);convert.addActionListener(this);display.setEditable(false);add(prompt);add(input);add(convert);add(display);}//public String convert(String str) {StringBuffer resultStr = new StringBuffer();char ch;for (int i = str.length() - 1; i >= 0; i--) {ch = str.charAt(i);if ((ch >= 'A') && (ch <= 'Z'))//resultStr.append((char) (ch + 32));else if ((ch >= 'a') && (ch <= 'z'))//11resultStr.append((char) (ch - 32));elseresultStr.append(ch);}return resultStr.toString();}// actionPerformed()public void actionPerformed(ActionEvent e) {display.append(convert(input.getText()) + "\n");}}Java Application “abc123XYZ”, “zyx321CBA” // importimport javax.swing.*;import java.awt.*;import java.awt.event.*;public class StringConvert extends JFrame implements ActionListener { //private JTextField input = new JTextField(15);private JButton convert = new JButton(" <-> + ");private JTextField display = new JTextField(15);//public StringConvert () {Container c = getContentPane();c.setLayout(new FlowLayout());c.add(input);c.add(convert);c.add(display);convert.addActionListener(this);}//public void actionPerformed(ActionEvent e) {display.setText(convert(input.getText()) + "\n");}//public String convert(String str) {StringBuffer resultStr = new StringBuffer();char ch;for (int i = str.length() - 1; i >= 0; i--) {ch = str.charAt(i);if ((ch >= 'A') && (ch <= 'Z'))//resultStr.append((char) (ch + 32));else if ((ch >= 'a') && (ch <= 'z'))//resultStr.append((char) (ch - 32));12elseresultStr.append(ch);}return resultStr.toString();}//public static void main(String args[ ]) {StringConvert f =new StringConvert();f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setSize(640, 160);f.setVisible(true);}}//////////////////////////////////////////////////////////////////////////////// “=”// importimport javax.swing.*;import java.awt.*;import java.awt.event.*;public class Multiply extends JFrame implements ActionListener {//private JButton operator = new JButton(" * ");private JTextField input1 = new JTextField(5);private JTextField input2 = new JTextField(5);private JButton equal = new JButton(" = ");private JTextField result = new JTextField(5);//public Multiply () {Container c = getContentPane();c.setLayout(new FlowLayout());c.add(input1);c.add(operator);c.add(input2);c.add(equal);c.add(result);equal.addActionListener(this);}//public void actionPerformed(ActionEvent e) {double operand1 = Double.valueOf(input1.getText()).doubleValue();double operand2 = Double.valueOf(input2.getText()).doubleValue();result.setText(String.valueOf(operand1*operand2));}//public static void main(String args[ ]) {13Multiply f = new Multiply();f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setSize(320, 80);f.setVisible(true);}}////////////////////////////////////////////////////////////////////////////////class SuperClass {int data;SuperClass() {System.out.println("SuperClass::constructor: data=" + data);add(1);System.out.println("SuperClass::constructor: data=" + data);}public void add(int i) {data += i;}public void print() {System.out.println(data);}}class SubClass extends SuperClass {SubClass() {System.out.println("SubClass::constructor: data=" + data);add(2);System.out.println("SubClass::constructor: data=" + data);}public void add(int i) {data += i*2;}}class Test {public static void method(SuperClass a) {a.add(6);a.print();}public static void main(String[] args) {method(new SubClass());}}SuperClass::constructor: data=0SuperClass::constructor: data=2SubClass::constructor: data=2SubClass::constructor: data=6181415。
第三章 面向对象程序设计(答案)
学号:姓名:第三章面向对象程序设计作业一、判断题1、一个Java源程序可有多个类,但只仅有一个public类,而且程序名与public类名相同。
对2、如果类A和类B在同一个包中,则除了私有成员外,类A可以访问类B中所有的成员。
对3、接口中的成员变量全部为常量,方法为抽象方法。
对4、抽象类可以有构造方法,可以直接实例化。
错5、对static方法的调用可以不需要类实例。
对6、包含抽象方法的类一定是抽象类。
对7、方法中的形参可以和方法所属类的属性同名。
对8、接口无构造器,不能有实例,也不能定义常量。
错9、类的实例对象的生命周括实例对象的创建、使用、废弃、垃圾的回收。
对10、Java应用程序的入口main方法只有一种定义法。
对二、选择题1、下列答案正确的是(A)A) 在同一个Java源文件中可以包含多个类,只能有一个被声明为publicB) 在同一个Java源文件中只能包含一个类,并被声明为publicC) 在同一个Java源文件中可以包含多个类,都可以被声明为publicD) 在同一个Java源文件中可以包含多个类,只能有一个被声明为default2、Java实现动态多态性是通过(B)实现的。
A) 重载B) 覆盖C) 接口D) 抽象类3、下列哪一个是正确的方法重载描述(A)A) 重载方法的参数类型必须不同B) 重载方法的参数名称必须不同C) 返回值类型必须不同D) 修饰词必须不同4、final关键字不可以用来修饰(D)A) 类B) 成员方法C) 域D) 接口5、接口的所有成员方法都具有(B)属性A) private, final B) public, abstractC) static, protected D) static6、Java的封装性是通过(A)实现的A) 访问控制B) 设计内部类C) 静态域和静态方法D) 包7、下列接口或类不属于java.util.*包的是(D)A) Collection B)Vector C) MapD) Integer8、下述哪一组方法,是一个类中方法重载的正确写法?(A)A) int addValue( int a, int b ){return a+b;}float addValue ( float a, float b) {return a+b;}B) int addValue (int a, int b ){value=a+b; }float addValue ( int a, int b) {return (float)(a+b);}C) int addValue( int a, int b ){return a+1;}int addValue ( int a, int b) {return a+b;}D) int addValue( int a, int b ) {return a+b;}int addValue ( int x, int y ) {return x+y;}9、下列说法哪个是正确的?(C)A) 子类不能定义和父类同名同参数的方法B) 子类只能继承父类的方法,而不能重载C) 重载就是一个类中有多个同名但有不同形参和方法体的方法D) 子类只能覆盖父类的方法,而不能重载10、对于下列代码:public class Parent {public int addValue( int a, int b) {int s;s = a+b;return s;}}class Child extends Parent {}下述哪个方法不可以加入类Child? (B)A) public int addValue( int a, int b,int c ){// do something...}B) public void addV alue (int a, int b ){// do something...}C) public int addValue( int a ){// do something...}D) public int addValue( int a, int b ) {//do something...}11、以下程序段输出结果的是(B)public class A implements B {public static void main(String args[]) {int i;A c1 = new A();i= c1.k;System.out.println("i="+i);}}interface B {int k = 10;}A) i=0 B) i=10 C) 程序有编译错误D) i=true12、阅读下面的程序,输出结果是(B)public class TestDemo {int m=5;public void some(int x) {m=x;}public static void main(String args []) {new Demo().some(7);}}class Demo extends TestDemo {int m=8;public void some(int x) {super.some(x);System.out.println(m);}}A) 5 B) 8 C) 7 D) 编译错误13、下述哪个说法是不正确的?(A)A) 局部变量在使用之前无需初始化,因为有该变量类型的默认值B) 类成员变量由系统自动进行初始化,也无需初始化C) 参数的作用域就是所在的方法D) for语句中定义的变量,当for语句执行完时,该变量就消亡了14、下述那一个保留字不是类及类成员的访问控制符。
面向对象程序设计(附答案)(DOC)
《面向对象程序设计》试卷 第1页 共9页 东莞理工学院(本科)试卷(B 卷) 2012 --2013学年第二学期 没有参考答案,答案纯手打,错了勿喷 《面向对象程序设计》试卷 开课单位: 计算机学院,考试形式:闭卷,允许带 入场 题序 一 二 三 四 五 六 总 分 得分 评卷人 一.单项选择题 (15小题,每小题2分,共30分,请将正确答案填写在以下对应的答题表格中) 题号 1 2 3 4 5 6 7 8 9 10 答案 题号 11 12 13 14 15 答案 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];时,调用了()次构造函数。
面向对象程序设计习题及答案【精选文档】
面向对象程序设计一、选择填空1.关于C++与C语言的关系描述中,(D)是错误的.(A)C语言是C++的一个子集(B)C语言与C++是兼容的(C)C++对C语言进行了一些改进(D)C++和C语言都是面向对象的2.下面关于对象概念的描述中,(B)是错误的。
(A)对象就是C语言的结构变量(B)对象代表着正在创建的系统中的一个实体(C)对象是一个状态的操作(或方法)的封装体(D)对象之间的信息传递是通过消息进行的3.下面关于类概念的描述中,(D)是错误的。
(A)类是抽象数据类型的实现(B)类是具有共同行为的若干对象的统一描述体(C)类是创建对象的样板(D)类就是C语言的结构类型4.按照标识符的要求,(A)符号不能组成标识符。
(A)连接符(B)下划线(C)大小写字母(D)数字字符5.下列符号中,(C)不可作为分隔符。
(A),(B):(C)?(D);6.在16位机中,int型字宽为(A)字节.(A)2(B)4(C)6(D)87.类型修饰符unsigned修饰(D)类型是错误的。
(A)char(B)int (C)long int(D)float8.对于int *pa[5];的描述,(D)是正确的.(A)pa是一个指向数组的指针,所指向的数组是5个int型元素(B)pa是一个指向某数组中第5个元素的指针,该元素是int变量(C)pa[5]表示某个数组的第5个元素(D)pa是一个具有5个元素的指针数组,每个元素是一个int型指针。
9.下列关于指针的运算中,(D)是非法的。
(A)两个指针在一定条件下,可以进行相等或不等的运算。
(B)可以有一个空指针赋值给某个指针.(C)一个指针可以加上一个整数。
(D)两个指针在一定条件下,可以相加.10.指针可以用来表示数组元素,下列表示中(A)是错误的。
已知:int a[3][7];(A)*(a+1)[5] (B)*(*a+3)(C)*(*(a+1))(D)*(&a[0][0]+2)11.下列表示引用的方法中,(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. 继承是面向对象程序设计中的一个重要概念,它通过建立类与类之间的继承关系,实现代码的重用和扩展。
(完整版)面向对象程序设计试卷及答案
考试试卷A(答案)面向对象程序设计注意事项:1。
请考生按要求在试卷装订线内填写姓名、学号和年级专业。
2. 请仔细阅读各种题目的回答要求,在规定的位置填写答案。
3。
不要在试卷上乱写乱画,不要在装订线内填写无关的内容.4。
满分100分,考试时间为120分钟。
一。
单项选择(本大题共10小题,每小题3分,共30分)1. C#中每个int类型的变量占用( B )个字节的内存。
(A)8 (B)4 (C)2 (D)12。
面向对象的特点是( A )(A)封装、继承、多态(B)抽象、封装、多态(C)抽象、继承、封装(D)抽象、多态、重载3。
C#控制台程序的主入口点是( C )(A) Page_Load函数(B)Run函数(C)Main函数(D)Form_Load函数4。
引用类型存储在( B )中。
(A)堆栈(B)堆内存(C)队列(D)列表5. 在C#中,表示一个字符串的变量应使用以下哪条语句定义( B )(A)CString str (B)string str(C)Dim str as string (D)char *str6。
在中,用来与数据源建立连接的对象是( A )。
(A)Connection对象(B)Command对象(C)DataAdapter对象(D)DataSet对象7. 在类的定义中,类的( B )描述了该类的对象的行为特征.(A)类名(B)方法(C)所属的名字空间(D)私有域8. 如果未显式赋值,则将整型值( B )赋给枚举中的第一个元素。
(A)1 (B)0 (C)2 (D)39. float类型的值可以隐式转换成( C )类型的值而保持值不被改变。
(A)char (B)long (C)double (D)int10。
在C#中,假设Class1是一个类,而IExample是一个接口,下面的( A )类声明是正确的。
(A)class Employee: Class1, IExample(B )class Employee : IExample , Class1(C )class Employee- Class1, IExample(D )class Employee: Class1/IExample二.判断题(本大题共5小题,每小题3分,共15分)1. C#中子类可以继承多个基类,也可以继承一个接口。
(完整版)c++面向对象程序设计试题和答案
};
多种
(D)不受保护
void fun (){cout<<"Base::fu n"< <ENDL;}
class Derived:public Base
{ void fun()
//显示调用基类的函数
cout<<"Derived::fu n"< <ENDL;
fun()
};
(A)fun();(B)Base.fun();
(C)构造函数无任何函数返回类型
(D)构造函数有且只有一个
5、派生类可以访问其基类的(
(A)公有成员
(C)私有派生
6、下列关于运算符重载的描述中,错误的是(
运算符重载不可以改变操作数的个数 运算符重载不可以改变运算符的功能 运算符重载不可以改变结合方向 运算符重载不可以改变运算优先级
(A)
(B)
(C)
(D)
7、C++语言是从早期的
进行的最大改进是(
(A)面向过程
8对于类中定义的成员,
A.public
C.private
(D) protected
)。
(B)保护成员
(D)公有和保护成员
)。
C语言逐渐发展演变而来的
.与C语言相比,它在求解问题方法上
)
(B)面向对象(C)
其隐含访问权限为(
B.protected
20、C+冲声明常量的关键字是()。
A. const B. exter n C. public D. enum
三、改错题(每处2分,共6分)
1、使用VC6打开考生文件夹下的工程proj1,此工程包含一个源程序文件main.cpp,但
java面向对象程序设计练习题(有答案)
满分:100 分姓名:班级:学号:1. 填空题 ( 5.0 分 )面向对象三大特征______ ______ ______正确答案:封装继承多态2. 填空题 ( 5.0 分 )使用static 修饰的变量称为静态变量,静态变量可以有两种访问方式,分别是对象名.静态变量名和______正确答案:类名.静态变量名3. 单选题 (4.0 分 )下面关于java 中类的说法哪个是不正确的A. 构造函数是类中的特殊方法B. 类一定要声明为public 的,才可以执行C. 在软件设计中,类,就是一个模板,它定义了通用于一个特定种类的所有对象的属性(变量)和行为(方法)D. 一个java 文件中可以有多个class 定义(但只能有一个public 修饰的类)正确答案:B4. 单选题 ( 4.0 分 )关于类中可以包含的内容,如下说法错误的是()A. 类中可以包含属性和方法B. 类中可以直接包含代码块C. 类中可以嵌套定义类D. 类中不能包含其他类正确答案:D5. 单选题 ( 4.0 分 )构造方法是否可被重写和重载()A. 不能重写,可以重载B. 可以重写,不能重载C. 不能重写,不能重载D. 可以重写,可以重载正确答案:A6. 单选题 ( 4.0 分 )关于封装的好处,以下错误的是()A. 隐藏实现的细节B. 方便修改的实现C. 只能通过规定方法访问D. 实现代码复杂化正确答案:D7. 单选题 ( 4.0 分 )在Java 中,下面描述正确的是()A. 一个子类可以有多个父类,一个父类也可以有多个子类B. 一个子类可以有多个父类,但一个父类只可以有一个子类C. 一个子类只可以有一个父类,但一个父类可以有多个子类D. 以上说法都不对正确答案:C8. 单选题 ( 4.0 分 )Java 语言的类间的继承关系是A. 多重的B. 单继承C. 线程的D. 不能继承正确答案:B9. 单选题 ( 4.0 分 )以下关于this 和super 关键字的说法错误的是()A. this 关键字指向当前对象自身,super 关键字指向当前对象的直接父类B. 在main 方法中可以存在this 或者super 关键字,但不能同时存在。
面向对象程序设计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类的对象。
《JAVA面向对象程序设计》考试卷及答案带注释
D) int score[] = new int[]{90,12,34,77,56};
11.若有定义:byte[] x={11,22,33,-66};
其中 0≤k≤3,则对 x 数组元素错误的引用是( )
A) x[5-3]
B) x[k]
C) x[k+5]
D) x[0]
12.以下代码的输出结果是()。
public static void main(String[] args){
第 4页 共 3 页
_________________ } }
A) Constants con = new Constants();
B) Constants.MAX = 100;
C) int i = Constants.MAX-Constants.MIN ; D) Constants.MIN>0;
D) 1 3 7 9
13.下列( )选项的 java 源文件代码片段是不正确的。
A) package testpackage;
B) import java.io.* ;
public class Test{}
package testpackage;
public class Test{}
C) import java.io.* ;
A) true、false、true、false
B) false、true、false、true
C) true、true、true、编译错误
D) true、true、false、编译错误
27.以下关于接口的说法中,正确的是()。
A) 接口中全部方法都是抽象方法,方法可以是任意访问权限
B) 接口中属性都是使用 public static final 修饰,没有显式赋值将使用默认值
(完整版)c++面向对象程序设计试题和答案
2、在C++类中可以包含—私有、_公有和—保护
三种具有不同访问控制权的成员。
3、 定义类时,在类头中将使用关键字___class来表示类定义的开始。
4、 如果一个类中至少有一个纯虚函数,则该类称为抽象类。
5、C++类的组成包括数据成员和—成员函数,友元—不是(是、不是)
该类的成员函数。
6、 友员函数是用关键字friend修饰的非成员函数。
20、C+冲声明常量的关键字是()。
A. const B. exter n C. public D. enum
三、改错题(每处2分,共6分)
1、使用VC6打开考生文件夹下的工程proj1,此工程包含一个源程序文件main.cpp,但
该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:
member=0
member=5
men ber=10
源程序文件main.cpp清单如下:
#in clude <iostream.h>
class MyClass
{
public:
MyClass(i nti){member=i;}
void SetMember(i nt m){member=m;}
int GetMember()c on st{return men ber;}
(C)构造函数无任何函数返回类型
(D)构造函数有且只有一个
5、派生类可以访问其基类的(
(A)公有成员
(C)私有派生
6、下列关于运算符重载的描述中,错误的是(
运算符重载不可以改变操作数的个数 运算符重载不可以改变运算符的功能 运算符重载不可以改变结合方向 运算符重载不可以改变运算优先级
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《面向对象程序设计》作业答案作业一:编写程序,将从键盘读入的所有大小写字母写入名为a.txt的文件中(遇EOF结束)。
(本题总分10分,fopen函数使用妥当4分,读入过程正确4分,关闭文件2分。
程序结构完整,有不妥之处,酌情扣分。
)#include <stdio.h>main ( ){FILE *fptr;fptr = fopen("a.txt","w");if (fptr==NULL)return 0;char a;a=getchar( );while(a!=EOF ){if(a>=’a’ && a<=’z’|| a>=’A’ && a<=’Z’) fputc(a,fptr);a = getchar();}fclose(fptr);return 0;}作业二定义一个矩形类Rectangle,并在main函数中用它声明一个矩形对象,然后利用接口设置该矩形对象的长和宽、计算面积并输出。
(本题总分10分,类结构2分,设置矩阵对象的长与高各1分,计算面积函数2分,输出函数2分,主函数2分。
程序结构完整,有不妥之处,酌情扣分。
)#include <stdio.h>#include <iostream.h>class Rectangle{public:int getArea();void setWidth(int w);void setLength(int l);private:int Length;int Width;};int Rectangle::getArea(){return Length*Width;}void Rectangle::setLength(int l){Length=l;}void Rectangle::setWidth(int w){Width=w;}main(){int len,wid;Rectangle r1;cout<<"Input the Rectangle's Information"<<endl;cout<<"Lentgh:"<<endl;cin>>len;cout<<"Width:"<<endl;cin>>wid;r1.setLength(len);r1.setWidth(wid);cout<<"Rectangle's Area:"<<r1.getArea()<<endl;return 0;}作业三定义一个整数栈类IStack,并用该类声明一个整数栈对象istack,往该对象压入整数6、7、8,然后逐一弹栈输出。
(本题总分10分,类结构2分,构造、析构函数各1分,压栈、出栈函数实现2分,主函数2分。
程序结构完整,有不妥之处,酌情扣分。
)#include <stdio.h>#include <iostream.h>struct Node {int item;struct Node *next;};class IStack {public:IStack();~IStack();void push(int item);int pop();int getItemNum();private:Node *head;int size;};IStack::IStack(){head = NULL;size = 0;}IStack::~IStack(){Node *temp = head;while (temp != NULL) {temp = head->next;delete head;head = temp;}}void IStack::push(int item){Node *temp = new Node;temp->item = item;temp->next = head;head = temp;size++;}int IStack::pop(){if (size == 0) {cout<<"No Item in the stack!\n";return 0;}Node *temp = head;head = head->next;int i = temp->item;delete temp;return i;}int IStack::getItemNum() {return size;}main(){ IStack istack;istack .push(6);istack .push(7);istack .push(8);cout<<istack .pop( )<<endl;cout<<istack .pop( )<<endl;cout<<istack .pop( )<<endl;return 0;}作业四定义分数类Rational,要求在private部分用整数表示分子和分母,分子和分母以简化形式表示,即24/36应该以2/3的形式表示,并实现如下功能:(1)两个分数对象可以用*相乘,结果表示为简化形式;(2)按a/b的形式输出分数的值,a、b为整数。
最后在main函数中对上述功能进行测试。
(本题总分10分,类结构2分,分数相乘实现函数2分,化简函数实现2分,输出格式转化函数2分,主函数2分。
程序结构完整,有不妥之处,酌情扣分。
)#include <stdio.h>#include <iostream.h>class Rational{public:Rational(int num1=1,int num2=1);Rational operator*(Rational r1);void showNomal();private:int up;int down;int Minmultiple(int a,int b); //最小公倍数int Maxdivisor(int a,int b);//最大公约数};Rational::Rational(int num1,int num2){up=num1;down=(num2==0)?1:num2;int i;i=Maxdivisor(up,down);up=up/i;down=down/i;}int Rational::Maxdivisor(int a,int b){int temp;int remainder;if(a<b){temp=a;a=b;b=temp;}remainder=a%b;while(remainder!=0){a=b;b=remainder;remainder=a%b;}return b;}int Rational::Minmultiple(int x,int y) {return x*y/Maxdivisor(x,y);}Rational Rational::operator*(Rational r1) {int Ndown,Nup,i;Ndown=down*r1.down;Nup=up*r1.up;i=Maxdivisor(Nup,Ndown);return Rational(Nup/i,Ndown/i);}void Rational::showNomal(){cout<<up<<"/"<<down<<endl;}main(){Rational r1(4,14);Rational r2(5,8);Rational r;cout<<"The r1 is:"<<endl;r1.showNomal();cout<<"The r2 is:"<<endl;r2.showNomal();r=r1*r2;cout<<"The r1*r2 is:"<<endl;r.showNomal();return 0;}作业五定义包含时、分、秒信息的时间类Time,并实现时间对象的流输入输出,格式为时:分:秒,如23:35:18。
(本题总分10分,类结构4分,输入输出函数实现各2分,主函数2分。
程序结构完整,有不妥之处,酌情扣分。
)#include "time.h"#include <iostream.h>class Time {friend ostream & operator<<(ostream &output, Time &t);friend istream & operator>>(istream &input, Time &t);public:Time(int h=0, int m=0, int s=0);private:int hour, minute, second;};Time::Time(int h, int m, int s){hour=h;minute=m;second=s;}ostream & operator<<(ostream &output, Time &t){output << t.hour << ":" << t.minute << ":" << t.second << endl;return output;}istream & operator>>(istream &input, Time &t){char a,b;input >> t.hour >> a >> t.minute >> b >> t.second ;return input;}int main(){Time t;cout << "Please input the time hh:mm:ss: " << endl;cin >> t;//调用自己定义的运算符重载函数operator>>(cin,t)cout << "your input time is: " << endl;cout << t << endl;//调用自己定义的运算符重载函数operator<<(cout,t) return 0;}作业六对于下面的类MyString,要求重载一些运算符后可以计算表达式:a = b + c,其中a、b、c都是类MyString的对象,+用以实现两个字符串对象的连接。