2023年Java面向对象程序设计试卷七含答案_第1页
2023年Java面向对象程序设计试卷七含答案_第2页
2023年Java面向对象程序设计试卷七含答案_第3页
2023年Java面向对象程序设计试卷七含答案_第4页
2023年Java面向对象程序设计试卷七含答案_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java面向对象程序设计试卷(七)一、选择题1、根据java标记符命名规则和风格约定,下面哪一个标记符是类名?A、XxxYyyB、xxxYyyC、XXXYYYD、xxxyyy

2、下列变量定义语句中不对的的是:A、byted=312;B、shortd=312;C、intd=1+’C’;D、longd=312;

3、下列数组的定义语句中不对的的是:A、intgrade[][]=newint[10][10];B、intgrade[][]=newint[][10];C、int[][]grade=newint[10][10];D、int[]grade[]=newint[10][10];

4、下列说法中,哪一个是对的的?A、抽象类中定义的方法一定是抽象的。B、抽象类中一定存在抽象的方法。C、抽象类中可以没有抽象方法。D、抽象类的子类一定要实现抽象类中的抽象方法。

5、关于方法的重载,下列说法哪一个是对的的?A、方法的重载是指一个类中多个方法使用相同的名字,但参数不同。B、方法的重载是指一个类中多个方法使用相同的名字,且参数相同。C、方法的重载是指子类和父类中两个方法使用相同的名字,但参数不同。D、方法的重载是指子类和父类中两个方法使用相同的名字,且参数相同。

6、假定有程序段:classSupperClass{publicintaddValue(inta,intb){returna+b;}}classSubClassextendsSuperClass{intvalue;//此处插入代码}下述哪个方法可以插入到类SubClass中而不会出现编译错误?A、intaddValue(inta,intb){returna+b+1;}B、publiclongaddValue(inta,intb){value=a+b+1;}C、protectedintaddValue(inta,intb){returna+b+1;}D、publicintaddValue(inta,intb){returna+b+1;}

7、若编译和运营下列代码,其结果将是classCircle{ doubleradius=1; publicCircle(doubler) { radius=r; } publicdoublearea() { return3.14*radius*radius; }}publicclassMyTest{publicstaticvoidmain(Stringargs[]){Circlec1=newCircle();System.out.println(c1.area());}}A、3.14B、0C、编译犯错D、

8、下列说法中,不对的的是A、一个java源程序文献中,只能有一个public类。B、一个java源程序文献中,只能有一个package语句。C、一个java源程序文献中,可以有多个import语句。D、一个java源程序文献中,只能有一个类中可以有main方法。

9、下列说法中不对的的是A、假如一个方法中定义的变量名与该方法所在类的成员变量同名,则在该方法中无法访问同名的类成员变量。B、在java接口中定义的方法一定是抽象方法。C、java接口中不能定义变量。D、java接口没有构造方法。

10、下列说法中对的的是()A、JFrame对象可以被加入到另一个JFrame对象中。B、JFrame对象可以被加入到JPanel对象中。C、JPanel对象可以被加入到另一个JPanel对象中。D、JFrame对象可以被加入到JApplet对象中。

11、有下列程序publicclassMyTest{publicstaticvoidmain(String[]args){try{ inta1=Integer.parseInt(args[0]);inta2=Integer.parseInt(args[1]);intresult=a1/a2; System.out.println("运算结果:"+result);}catch(ArrayIndexOutOfBoundsExceptione){System.out.println("下标越界");return

;}catch(ArithmeticExceptione){System.out.println("除数为零");}catch(Exceptione){System.out.println("捕获了异常");}finally{System.out.println("进入Finally语句块");}}}该程序编译后,执行javaMyTest1010,则运营的结果为A、运所结果:1进入Finally语句块B、下标越界C、除数为零D、捕获了异常注:(对trycatch语句,即使前面符合条件的catch中有return语句,也会进入finally,之后再执行return)

12、关于异常,以下说法对的的是A、所有异常类都是Throwable类的子类。B、Error类是Exception的子类。C、在catch语句中,异常类的排列顺序无关紧要。D、运营时异常无法捕获。

13、有下列程序classTestException{ classMyExceptionextendsException{ } publicvoidtestMethod()throwsMyException{} publicvoidtest() { testMethod(); }}在publicvoidtest()后加上哪一句可以使编译不犯错。A、throwMyExceptionB、throwsMyExceptionC、thrownewMyException()D、throwsnewMyException()

14、下列哪一段代码可以删除文献file.txtA、Filef=newFile(“file.txt”);f.delete();B、RandomAccessFilef=newRandomAccessFile(“file.txt”,”rw”);f.delete();C、FileOutputStreamf=newFileOutputStream(“file.txt”);f.remove();D、Filef=newFile(“file.txt”);File.delete(f);

15、下面哪一个流属于过滤流A、InputStreamB、FileInputStreamC、DataInputStreamD、FileReader

16、下列说法错误的是:A、TCP是面向连接的协议,而UDP是无连接的协议。B、数据报传输是可靠的,可以保证包按顺序到达。C、URL代表的统一资源定位符一共涉及五个部分D、Socket和ServerSocket分别表达连接的Client端和Server端

17、设有以下程序段classTestException{ publicstaticvoidmain(String[]args) { try{ return; }finally{ System.out.println("finally"); } }}程序编译并执行,其结果将是A、程序执行,但没有任何输出B、程序输出finallyC、程序编译时犯错,提醒缺少catchD、程序编译时犯错,提醒finally语句无法访问到。

18、FlowLayout布局管理器按照组件加入容器的顺序从()到()排列组件。A、上、下B、右、左C、左、右D、前、后

19、有程序如下classSuperClass{ privateinti=10; voidprintI() { System.out.println(i); }}classSubClassextendsSuperClass{ inti=20; publicvoidprintA() { super.printI(); }}classTest{ publicstaticvoidmain(String[]args) { SubClassc1=newSubClass(); ,;c1.printA(); }}编译并运营程序,其结果将是A、10B、20C、编译犯错D、0

20、下面哪一种流可以用来输入字符A、InputStreamB、OutputStreamC、InputStreamReaderD、BufferedInputStream

二、判断题(阅读每一句陈述,判断其正误。在题后的括号中作相应的记号,对的的填入T,错误的填入F。)1、接口可以被另一个接口继承。(T)2、接口中只能定义符号常量和抽象方法。(T)3、private方法不能被继承,但可以被覆盖。(F)4、假如类A的一个方法m的访问权限是默认的,则m可以被同一个包中的其他类访问,也可以被其它包中A的子类访问。(F)5、类的静态变量被该类的所有对象共享。(T)6、所有的类都可以被继承。(F)7、java中是单继承,但一个类可以实现多个接口。(T)8、不管定义与否,任何类都有一个不带参数的构造方法。(F)9、语句”doublei=20.0f;”在编译时不会引起错误。(T)10、线程的sleep()方法是一个静态方法。(T)

三、程序阅读题。1、仔细阅读下面的程序代码,编译和运营后,请写出该程序的输出结果。classTestException{ publicstaticStringtoSeparateNumber(Stringnumber) { StringformatedNumber=""; try { doublen=Double.parseDouble(number); number=Double.toString(n); inti=number.indexOf('.'); if(i>=0) { formatedNumber=number.substring(i,number.length()); i=i-1; } elsei=number.length()-1; intk=0; for(intj=i;j>=0;j--) { formatedNumber=number.charAt(j)+formatedNumber; k=(k+1)%3; if(k==0&&j!=0)formatedNumber=","+formatedNumber; } } catch(NumberFormatExceptione) { System.out.println("参数错误!规定是数字格式!"); } returnformatedNumber; } publicstaticvoidmain(String[]args) { System.out.println(TestException.toSeparateNumber("001200.45")); System.out.println(TestException.toSeparateNumber("235A6.54")); }}答案:1,200.45参数错误!规定是数字格式!

2、仔细阅读下面的程序代码,编译和运营后,请写出该程序的输出结果。classFather{Stringname="Father";intage=45;intgetAge(){returnage;}StringgetName(){returnname;}voidsetAge(inta){age=a;}}classChildextendsFather{Stringname="Child";intage=18;intgetAge(){returnage+1;}}classTest2{publicstaticvoidmain(Stringargs[]){Fatherp=newChild();System.out.println(p.getAge());p.setAge(30);System.out.println(p.getAge());System.out.println(p.getName()); }}答案:1919Father

3、阅读下面程序代码,写出程序运营的输出结果。classTest3{ publicstaticvoidmain(String[]args){ try { callMethod(); } catch(Exceptione) { System.out.print("will"); } System.out.println("win"); } staticvoidcreateException() { thrownewArithmeticException(); } staticvoidcallMethod() { try { createException(); System.out.print("not"); } catch(ArrayIndexOutOfBoundsExceptione) { System.out.print("you"); } finally { System.out.print("I"); } System.out.print("never"); }}答案:Iwillwin

4、下面的程序运用线程输出从a到z的26个字母,每隔一秒钟输出一个字母,程序不完整,请阅读程序代码,根据注释规定在划线处补充完毕代码。publicclassTest4implementsRunnable{charcharArray[]=newchar[26];publicTest4(){ for(inti=0;i<charArray.length;i++) { charArray[i]=(char)(i+'a'); }}publicvoidrun(){ try { for(inti=0;i<charArray.length;i++) { //休眠一秒钟 System.out.print(charArray[i]); } } catch(InterruptedExceptione) { e.printStackTrace(); }}publicstaticvoidmain(Stringargs[]){Threadt=//实例化线程对象//启动线程}}答案:Thread.sleep(1000);newThread(newTest4());t.start();

5、下面的程序是一个基于AWT的简朴图形用户界面程序。程序运营时将显示一个窗口(如下图),窗口上有一个“退出”按钮,单击退出按钮程序将结束运营。阅读程序代码,根据注释规定补充完毕代码(划线是需要补充的地方)。importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassTest5extendsJFrame{privateJButtonexit;privateJLabellabel;publicTest5(){super("图形用户界面");label=newJLabel("单击退出按钮关闭本窗口。");//将标签放置在窗口的北面exit=newJButton("退出");exit.addActionListener( /*注册一个内部类形式的事件监听器,该监听器关闭程序*/);add(exit,BorderLayout.CENTER);setSize(300,100);setVisible(true);}publicstaticvoidmain(Stringargs[]){Test5app=newTest5();}}答案:add(label,BorderLayout.NORTH);newActionListener(){ publicvoidactionPerformed(ActionEvente) {System.exit(0);}}

四、编程题(共2小题,每小题20分,共40分)。1、根据以下说明,编写一个银行账户类Account,并编写一个main方法,对Account类进行测试,在main方法中要调用Account的所有方法,发生异常时,要打印异常信息。该类的成员变量如下(访问权限均为private):变量名含义数据类型Id帐号StringOwner账户持有人姓名StringBalance余额double该类的成员方法如下(访问权限均为public):方法名参数说明构造方法无构造一个账户实例,将id,owner设为null,balance设为0.00构造方法Stringid,Stringowner,doubleamount构造一个账户实例,用参数设立成员变量id,ownerl,balance的值setIDStringid用参数设立成员变量id的值。返回类型void。setOwnerStringowner用参数设立成员变量owner的值。返回类型void。Depositdoubleamount将金额amount存入帐户,假如帐号为null,则抛出异常,异常信息为“帐号未知!”。返回类型double,返回值为amount。Withdrawdoubleamount从帐户支取金额amount,假如帐号为null,或者余额小于amount,则抛出异常,异常信息分别为“帐号未知!”和“余额局限性!”。返回类型double,返回值为amount。Query无打印id,owner,balance。返回类型void。参考答案:classAccount{ privateStringid; privateStringowner; privatedoublebalance; publicAccount() { id=null; owner=null; balance=0.00; } publicAccount(Stringid,Stringowner,doublebalance) { this.id=id; this.owner=owner; this.balance=balance; } publicvoidsetID(Stringid) { this.id=id; } publicvoidsetowner(Stringowner) { this.owner=owner; } publicdoubledeposit(doubleamount)throwsException { if(id==null) thrownewException("帐号未知!"); else { balance+=amount; returnamount; } } publicdoublewithdraw(doubleamount)throwsException { if(id==null) thrownewException("帐号未知!"); elseif(balance<amount) thrownewException("余额局限性!"); else { balance-=amount; returnamount; } } publicvoidquery() { System.out.println("帐号:"+id+"户名:"+owner+"余额:"+balance); } publicstaticvoidmain(String[]args) { try{ Accountac1=newAccount("","张三",10000); ac1.query(); ac1.deposit(2023); ac1

温馨提示

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

评论

0/150

提交评论