Java面向对象程序设计复习题附答案

上传人:小** 文档编号:111499896 上传时间:2022-06-20 格式:DOC 页数:21 大小:218KB
收藏 版权申诉 举报 下载
Java面向对象程序设计复习题附答案_第1页
第1页 / 共21页
Java面向对象程序设计复习题附答案_第2页
第2页 / 共21页
Java面向对象程序设计复习题附答案_第3页
第3页 / 共21页
资源描述:

《Java面向对象程序设计复习题附答案》由会员分享,可在线阅读,更多相关《Java面向对象程序设计复习题附答案(21页珍藏版)》请在装配图网上搜索。

1、Java面向对象程序设计复习题一、选择题1、下列哪个是Java中的关键字(C)。A、runB、IntegerC、defaultD、implement2、下面关于Java.applet.Applet和其祖先类的描述语句哪个不对(B)。A、Applet是Container的一种B、Applet是Window的一种C、Applet是Component的一种D、Applet是Panel的一种3、下列类DataOutputStream的构造方法正确的是(A)。A、newdataOutputStream(newFileOutputStream(“out.txt”);B、newdataOutputStrea

2、m(“out.txt”);C、newdataOutputStream(newwriter(“out.txt”);D、newdataOutputStream(newFileWriter(“out.txt”);4、在switch(表达式)语句中,表达式的类型不能为(C)。A、byteB、charC、longD、int5、在接口MouseMotionListener中方法正确的是(A)。A、PublicvoidmouseDragged(MouseEvent)B、PublicbooleanmouseDragged(MouseEvent)C、PublicvoidmouseDragged(MouseMot

3、ionEvent)D、PublicbooleanMouseDragged(MouseMotionEvent)6、下面是一些异常类的层次关系Java.lang.ExceptionJava.lang.RuntimeExceptionJava.lang.IndexOutOfBoundsExceptionJava.lang.ArrayIndexOutOfBoundsExceptionJava.lang.StringIndexOutOfBoundsException假设有一个方法X,能够抛出两个异常,ArrayIndex和StringIndex异常,假定方法X中没有trycatch语句,下面哪个答案是正

4、确的。(B)A、方法X应该声明抛弃ArrayIndexOutOfBoundsException和StringIndexOutOfBoundsException。B、如果调用X的方法捕获IndexOutOfBoundsException,则ArrayIndexOutOfBoundsException和StringIndexOutOfBoundsException都可以被捕获。C、如果方法X声明抛弃IndexOutOfBoundsException,则调用X的方法必须用Try-catch语句捕获。D、方法X不能声明抛弃异常。7、现有一变量声明为booleanaa;下面赋值语句中正确的是(D)。A、

5、aa=0B、aa=TrueC、aa=trueD、aa=false8、某类Example的main()方法参数为args,当输入数据JavaExamplecat时,args0的值为(A)。A、catB、JavaC、exampleD、null9、Strings1=newString(“Java”);Strings2=newString(s1)则下列哪个说法是正确的(C)。A、表达式s1=s2为真B、s1和s2是同一个对象C、表达式sl.equals(s2)为真D、以上均不对10、类定义如下classFoopublicstaticvoidmain(Stringargs)Strings;System.

6、out.println(s=+s);则下列结论正确的是(C)。A、有输出结果,且为空B、没有输出结果C、编译错误D、有输出结果,且不为空11、下列哪个不是Java的保留字(D)。A、floatB、classC、extendsD、virtual12、下列符号中不能作为Java标识符的是(D)。A、abcB、$str1C、_poreD、45six13、方法methodA定义如下:returnTypemethodA(bytex,doubley)return(short)x/y*2;则返回值returnType为(C)。A、byteB、doubleC、shortD、int14、如果floatf=4.2

7、F;Floatg=newFloat(4.2F);Doubled=newDouble(4.2);则下列选项正确的是(B)。A、f=gB、f=g.floatValue()C、d=fD、d.equals(f)15、下列二维数组定义中错误的是(A)。A、inta=newint;B、inta=newint1010;C、inta=newint1010;D、inta=newint1010;16、关于下列语句哪个答案是正确的(D)。System.out.println(4|7);A、4B、5C、6D、717、下面哪一个AWT组件可以有菜单栏MenuBar(A)。A、Java.awt.FrameB、Java.a

8、wt.WindowC、Java.awt.AppletD、Java.awt.Panel18、下列哪个方法用于创建并开始一个新的线程(B)。A、run();B、start();C、execute();D、run(Runnabler);19、如果有Booleana=newBoolean(“yes”),则a.booleanValue()值为(D)。A、yesB、“yes”C、trueD、false20、以下类DataOutputStream的构造方法正确的是(C)。A、newdataInputStream(“in.txt”);B、newdataInputStream(newfile(“in.txt”)

9、;C、newdataInputStream(newFileInputStream(“in.txt”);D、newdataInputStream(newFileWriter(“in.txt”);21、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。A、.JavaB、.classC、.htmlD、.exe22、设x=1,y=2,z=3,则表达式y+=z/+x的值是(A)。A、3B、3.5C、4D、523、在Applet表面输出文字时,可以选择不同的颜色,但是忘记了设置颜色的方法,应该首先在哪个类里面寻找(D)。A、Java.awt.AppletB

10、、Java.awt.PanelC、Java.applet.AppletD、Java.awt.Component24、类Cycle的main()方法为:publicstaticvoidmain(Stringargs)System.out.println(args0);则运行时如果命令行语句为JavaCycleonetwothree,则输出结果为(B)。A、CycleB、oneC、twoD、three25、下面哪一个是Thread类中的静态方法(D)。A、start()B、stop()C、run()D、sleep(longm)26、关于下列语句哪个答案是正确的(A)。if(5&7&5|2)Syst

11、em.out.println(“true”);A、不能编译成功B、可以编译成功,输出trueC、可以编译成功,但无输出D、以上均不对27、声明公用的abstract方法的正确格式是(C)。A、publicabstractvoidadd()B、publicabstractadd();C、publicabstractvoidadd();D、publicvirtualadd();28、下列程序结果正确的是(B)。publicclassTestpublicstaticvoidmain(Stringargs)Ada1=newAd();System.out.println(a1.add(1);Ada2=n

12、ewAd();System.out.println(a2.add(2);classAdstaticinttotal=10;publicintadd(inti)total=total+i;returntotal;A、11,12B、11,13C、11,11D、12,1229、基于Java.awt.Frame的一个程序中包含一个Panel,Panel其中包含一个Label,在Frame和Panel中分别有下面的一些语句,/Frame里面的语句setFont(newFont(Serif,Font.ITALIC,18);setBackground(Color.cyan);/Panel中的语句setBac

13、kground(Color.white);setForeground(Color.magenta);请问Label用什么颜色和字体显示(A)。A、Background=white;foreground=magenta;font=SerifItalicstyle,18pointB、Background=cyan;foreground=black;font=SerifItalicstyle,18pointC、Background=cyan;foreground=black;font=systemdefaultstyleforlabelsD、Background=white;foreground=m

14、agenta;font=systemdefaultstyleforlabels30、语句for(intx=0,y=0;(y!=0)&(xv4);x+)的执行次数是(B)。A、无限次B、一次也不执行C、执行4次D、执行3次二、判断题1、abstract是抽象修饰符,可以用来修饰类及其属性和方法。(对)2、Java支持多线程机制。(对)3、一个Java源程序文件中允许有多个公共类。(错)4、重载的方法可以通过它们的返回值类型的不同来区分。(错)5、子类要调用父类的方法,必须使用super关键字。(错)6、子类拥有的成员数目一定大于等于父类拥有的成员数目。(错)7、一个catch块也可以区分处理多个

15、不同类型的异常,只要它们是该catch语句块异常参数的子类或其本身。(对)8、程序中一旦执行了catch语句块,则不会执行finally语句块。(错)9、新建一个Frame对象,则其将立即显示在屏幕上。(错)10、一个正在执行的线程使用yield()方法将处理器让给其它同优先级的其它线程。(对)11、Java中的的字符使用的是16位的Unicode编码。(对)12、for语句中的循环体不能为空。(错)13、Java仅支持类间的单重继承。(对)14接口是由常量和抽象方法组成的特殊类。(对)15、构造函数的方法名可由编程人员任意命名。(错)16、使用静态属性必须以类名做前缀。(错)17、类的私有属

16、性和私有方法可以被其子类访问。(错)18、使用了FlowLayout布局管理器,不能改变组件的高度。(对)19、Java.lang.RuntimeException及其子类的异常可以不捕获。(对)20、当用户在TextField中改变光标的位置时,会产生一个TextEvent事件。(错)31、Java程序是由若干类定义组成的,类定义包括定义类头和定义类体。(对)32、类Classi中的属性被private修饰符修饰为私有变量,所以方法不能访问它。(错)34、引用一个类的属性或调用其方法,必须以这个类的对象为前缀。(错)35、与未加访问控制符的缺省情况相比,public和protected修饰符

17、扩大了类及其属性和方法的被访问范围,private修饰符则缩小了这种范围。(对)36、子类要调用父类的方法,必须使用super关键字。(错)37、因为Java不支持多重继承,所以定义类时implements关键字后面只能说明一个接口名。(错)38、挂起、阻塞或等待的线程都能恢复执行,但停止的线程不能复生。(对)39、如果一个方法在运行过程中产生异常,则方法会终止,但整个应用不一定终止。(对)40、接口Java.lang.runnable中只有一个run()方法。(对)三、程序阅读题1阅读下面的程序代码,并回答问题。Strings1=newString(abcde);Strings2=newSt

18、ring(abcde);booleanb1=s1.equals(s2);booleanb2=s1=s2;System.out.print(b1+b2);(1) 程序段执行后,在命令行的输出结果如何?(2) 解释输出(1)的结果的原因?(1)truefalse(2)equals方法比较两个字符串的内容是否相等;运算符“=”判断两个对象是否指向同一个引用,即是否为同一个对象。2.阅读下面的程序代码,并回答问题。importjava.io.*;publicclassTestpublicstaticvoidmain(Stringargs)throwsIOExceptionBufferedReaderb

19、uf=newBufferedReader(newInputStreamReader(System.in);while(true)Stringstr=buf.readLine();if(str.equals(quit)break;intx=Integer.parseInt(str);System.out.println(x*x);编译运行上面的程序:(1)从键盘输入10,回车后输出的结果如何?(2)从键盘输入exit,回车后程序能正确执行吗?为什么?(1)100不能;因为方法Integer.parselnt(str)不能将字符串“exit转化为整数,抛出异常。3. 阅读下面的程序代码import

20、java.io.*;publicclassTestpublicstaticvoidmain(Stringargs)inti,s=0;inta=10,20,30,40,50,60,70,80,90;for(i=0;ia.length;i+)if(ai%3=0)continue;s+=ai;System.out.println(s=+s);程序执行后,在命令行的输出结果是什么?2704. 阅读下面的程序代码importjava.util.*;publicclassExample9_14publicstaticvoidmain(Stringargs)Strings=市话费:28.89元,长途话费:1

21、28.87元,上网费:298元。”;Stringdelim=市话长途话上网费元:,。;StringTokenizerfenxi=newStringTokenizer(s,delim);用delim中的字符的任意组合作为分隔标记doubletotalMoney=0;while(fenxi.hasMoreTokens()doublemoney=Double.parseDouble(fenxi.nextToken();System.out.println(money);totalMoney+=money;System.out.println(”总费用:+totalMoney+元);程序执行后,在命令

22、行的输出结果是什么?市话费:28.89元长途话费:128.87元,上网费:298元。总费用:455.76元5. 阅读下面的程序代码importjava.util.*;classStudentimplementsComparableintenglish=0;Stringname;Student(intenglish,Stringname)this.name=name;this.english=english;publicintcompareTo(Objectb)Studentst=(Student)b;return(this.english-st.english);publicclassExam

23、ple13_8publicstaticvoidmain(Stringargs)TreeSetmytree=newTreeSet();Studentst1,st2,st3,st4;stl=newStudent(90,赵一);st2=newStudent(66,钱二”);st3=newStudent(86,孙三”);st4=newStudent(76,李四”);mytree.add(stl);mytree.add(st2);mytree.add(st3);mytree.add(st4);Iteratorte=mytree.iterator();while(te.hasNext()Studentst

24、u=te.next();System.out.println(+stu.name+stu.english);程序执行后,在命令行的输出结果是什么?钱二66李四76孙三86赵一906. 写出下面的程序编译、运行后的结果。publicclassTestpublicstaticvoidmain(Stringargs)newStudent(Tom,m,90,88);newStudent(Jack,m,66,89);newStudent(Mary,f,76,86);System.out.println(nametsextchinesetenglish);Student.print();classStud

25、entprotectedStringname;protectedcharsex;protectedintchinese;protectedintenglish;protectedStudentnext;staticStudentlist;Student(Stringname,charsex,intChinese,intenglish)this.name=name;this.sex=sex;this.chinese=chinese;this.english=english;this.next=list;list=this;staticvoidprint()Studentfriend=list;i

26、f(friend=null)System.out.println(Thelistisempty.);elsedoSystem.out.println(friend.toString();friend=friend.next;while(friend!=null);publicStringtoString()returnnewString(name+t+sex+t+chinese+t+english);namesexchin-eseenglishMatyf7686m6689Tamm90887. 与出以下程序的功能。importjava.io.*;publicclassTestFilepublic

27、staticvoidmain(Stringargs)throwsExceptionBufferedReaderbr=newBufferedReader(newInputStreamReader(System.in);BufferedWriterbw=newBufferedWriter(newFileWriter(“input.txt);Strings;while(true)System.out.print(请输入一个字符串:“);System.out.flush();s=br.readLine();if(s.length()=0)break;bw.write(s);bw.newLine();b

28、w.close();功能;从键盘逐一输入字符串,逐一输出至inputMt文件中,直至输入空行亠8. 阅读以下程序,写出输出结果。classAnimalAnimal()System.out.print(Animal);publicclassDogextendsAnimalDog()System.out.print(Dog);publicstaticvoidmain(Stringargs)Dogsnoppy=newDog();输出结果:AniiniilDug四、程序填空题1以下程序是一个算术测试小软件,用来训练小学生的算术能力。程序有3个类组成,其中Teacher对象充当监视器,负责给出算术题目,

29、并判断回答者的答案是否正确。ComputerFrame对象负责为算术题目提供视图,比如用户可以通过ComputerFrame对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案;MailClass是软件的主类。程序运行效果如下图所示。仔细阅读程序代码,请按模板要求,在【代码】处填写合适的Java程序代码。MainCIass.javapublicclassMainClasspublicstaticvoidmain(Stringargs)ComputerFrameframe;frame=newComputerFrame。;frame.setTitle(算术测试”);frame.setBo

30、unds(100,100,650,180);ComputerFrame.javaimportjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassComputerFrameextendsJFrameJMenuBarmenubar;JMenuchoiceGrade;选择级别的菜单JMenuItemgrade1,grade2;JTextFieldtextOne,textTwo,textResult;JButtongetProblem,giveAnwser;JLabeloperatorLabel,message;Teache

31、rteacherZhang;ComputerFrame()teacherZhang=newTeacher();teacherZhang.setMaxInteger(20);setLayout(【代码1】_newFlowLayout();/设置ComputerFrame的布局为FlowLayout布局menubar=newJMenuBar();choiceGrade=newJMenu(”选择级别”);gradel=newJMenuItem(”幼儿级别”);grade2=newJMenuItem(”儿童级别”);gradel.addActionListener(newActionListener(

32、)publicvoidactionPerformed(ActionEvente)teacherZhang.setMaxInteger(l0););grade2.addActionListener(newActionListener()publicvoidactionPerformed(ActionEvente)teacherZhang.setMaxInteger(50););choiceGrade.add(gradel);choiceGrade.add(grade2);menubar.add(choiceGrade);setJMenuBar(menubar);代码1】textOne=newJT

33、extField(5);创建textOne,其可见字符长是5textTwo=newJTextField(5);textResult=newJTextField(5);operatorLabel=newJLabel(+);operatorLabel.setFont(newFont(Arial,Font.BOLD,20);message=newJLabel(你还没有回答呢);getProblem=newJButton(获取题目);giveAnwser=newJButton(确认答案);add(getProblem);add(textOne);add(operatorLabel);add(textT

34、wo);add(newJLabel(=);add(textResult);add(giveAnwser);add(message);textResult.requestFocus();textOne.setEditable(false);textTwo.setEditable(false);getProblem.setActionCommand(getProblem);textResult.setActionCommand(answer);giveAnwser.setActionCommand(answer);teacherZhang.setJTextField(textOne,textTwo

35、,textResult);teacherZhang.setJLabel(operatorLabel,message);【代码2】getProblem.addActionListener(teacherZhang);/将teacherZhang注册为getProblem的ActionEvent事件监视器【代码3】giveAnwser.addActionListener(teacherZhang);将teacherZhang注册为giveAnwser的ActionEvent事件监视器【代码4】textResult.addActionListener(teacherZhang);_/将teacher

36、Zhang注册为textResult的ActionEvent事件监视器setVisible(true);validate();setDefaultCloseOperation(DISPOSE_ON_CLOSE);Teacher.javaimportjava.util.Random;importjava.awt.event.*;importjavax.swing.*;publicclassTeacherimplementsActionListenerintnumberOne,numberTwo;Stringoperator=;booleanisRight;Randomrandom;/用于给出随机

37、数intmaxInteger;/题目中最大的整数JTextFieldtextOne,textTwo,textResult;JLabeloperatorLabel,message;Teacher()random=newRandom();publicvoidsetMaxInteger(intn)maxInteger=n;publicvoidactionPerformed(ActionEvente)Stringstr=e.getActionCommand();if(str.equals(getProblem)numberOne=random.nextInt(maxInteger)+l;1至maxIn

38、teger之间的随机数;numberTwo=random.nextInt(maxInteger)+1;doubled=Math.random();/获取(0,1)之间的随机数if(d=0.5)operator=+;elseoperator=-;textOne.setText(+numberOne);textTwo.setText(+numberTwo);operatorLabel.setText(operator);message.setText(”请回答”);textResult.setText(null);elseif(str.equals(answer)Stringanswer=text

39、Result.getText();tryintresult=Integer.parseInt(answer);if(operator.equals(+)if(result=numberOne+numberTwo)message.setText(”你回答正确”);elsemessage.setText(”你回答错误”);elseif(operator.equals(-)if(result=numberOne-numberTwo)message.setText(”你回答正确”);elsemessage.setText(”你回答错误”);catch(NumberFormatExceptionex)m

40、essage.setText(”请输入数字字符”);publicvoidsetJTextField(JTextField.t)textOne=t0;textTwo=t1;textResult=t2;publicvoidsetJLabel(JLabel.label)operatorLabel=label0;message=label1;2. 有如下java源程序,程序的功能是在数组中查找键盘键入的整数。如果找到则输出该整数在数组中的序号,否则输出“notfound”。例如,运行程序,输入99,程序输出:99在数组中的序号是5;输入59,程序输出:notfound。仔细阅读程序代码,请按模板要求,

41、在【代码】处填写合适的Java程序代码。(注意:不改动程序的结构,不得增行或删行)。importjava.io.*;importjava.util.Scanner;publicclassJ_Testpublicstaticvoidmain(Stringargs)throwsIOExceptionint【代码1】a=83,75,92,67,55,99,78,61;Scannerin=newScanner(【代码2】System.in);intx=Integer.parseInt(【代码3】in.readLine();intindex=-1;for(inti=0;【代码4】_i=a.Length;

42、+i)if(ai=x)index=i;break;if(代码5】index=-l)System.out.println(notfound);elseSystem.out.println(x+在数组中的序号是+index);3. 下面程序的运行结果如下图。单击“Close”按钮关闭窗口。请阅读程序,在(1)和(2)处补充相应的内容,使整个程序能够正常运行。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassJ_TestprivateJFramef;privateJButtonbutton1,button2,

43、button3;publicvoidgo()f=newJFrame(Test);f.setLayout(newFlowLayout();button1=newJButton(Ok);button2=newJButton(Open);button3=newJButton(Close);f.add(button1);f.add(button2);f.add(button3);button3.addActionListener(newMonitor。);f.setSize(160,106);f.setVisible(true);publicstaticvoidmain(Stringargs)J_Te

44、stt=newJ_Test();t.go();classMonitorimplementsActionListenerpublicvoidactionPerformed(ActionEvente)System.exit(O);Answer:(1) button3.addActionListener(newMonitor();(2) publicvoidactionPerformed(ActionEvente)五、编程题1.编写一个计算图形面积的程序,程序应当能够计算并输出矩形、圆的面积。考虑到程序的未来扩展,设计一个图形抽象类:Shape,在此基础上派生出图形类Rectangle类和Circle类。(1) Rectangle类基本信息:宽度、高度。(2) Cirlce类基本信息:圆心坐标、半径。(3) 每个图形类有多个构造方法:默认构造方法、带参数的构造方法;成员变量为private属性,成员方法为public属性。(4) 每个图形类有计算图形面积getArea()方法,显示图形的基本信息toString()方法,以及访问方法set/get。ihttractclassfihapepul)lie)privatedoublewidth;privatedouhkheight;puhliuliectanglBdouhietv,doubleJi)width=w:

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!