1、-各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-Java面向对象程序设计试卷(七)一、选择题1、根据java标识符命名规则和风格约定,下面哪一个标识符是类名? A、XxxYyy B、xxxYyy C、XXXYYY D、xxxyyy2、下列变量定义语句中不正确的是:A、byte d = 312; B、short d = 312;C、int d = 1+C;D、long d = 312;3、下列数组的定义语句中不正确的是:A、 int grade = new int1010;B、 int grade = new int10;C、 int grade = new int10
2、10;D、 int grade = new int1010;4、下列说法中,哪一个是正确的?A、抽象类中定义的方法一定是抽象的。B、抽象类中一定存在抽象的方法。C、抽象类中可以没有抽象方法。D、抽象类的子类一定要实现抽象类中的抽象方法。5、关于方法的重载,下列说法哪一个是正确的?A、方法的重载是指一个类中多个方法使用相同的名字,但参数不同。B、方法的重载是指一个类中多个方法使用相同的名字,且参数相同。C、方法的重载是指子类和父类中两个方法使用相同的名字,但参数不同。D、方法的重载是指子类和父类中两个方法使用相同的名字,且参数相同。6、假定有程序段: class SupperClass publ
3、ic int addValue( int a, int b) return a+b; class SubClass extends SuperClass int value; /此处插入代码下述哪个方法可以插入到类SubClass中而不会出现编译错误?A、int addValue( int a, int b )return a+b+1; B、public long addValue (int a, int b )value=a+b+1; C、protected int addValue(int a, int b )return a+b+1; D、public int addValue( int
4、 a, int b ) return a+b+1;7、若编译和运行下列代码,其结果将是 class Circle double radius=1;public Circle(double r) radius = r;public double area( )return 3.14*radius*radius;public class MyTest public static void main(String args) Circle c1=new Circle(); System.out.println(c1.area(); A、3.14 B、0 C、编译出错 D、 以上答案都不对8、下列说法
5、中,不正确的是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对象能
6、够被加入到JPanel对象中。C、JPanel对象能够被加入到另一个JPanel对象中。D、JFrame对象能够被加入到JApplet对象中。11、有下列程序public class MyTest public static void main(String args) try int a1=Integer.parseInt(args0); int a2=Integer.parseInt(args1); int result=a1/a2; System.out.println(运算结果: + result); catch(ArrayIndexOutOfBoundsException e) Sy
7、stem.out.println(下标越界); return; catch(ArithmeticException e) System.out.println(除数为零); catch(Exception e) System.out.println(捕获了异常); finally System.out.println(进入Finally语句块); 该程序编译后,执行java MyTest 10 10 ,则运行的结果为A、运所结果:1 进入Finally语句块 B、下标越界C、除数为零D、捕获了异常注:(对try catch语句,即使前面符合条件的catch中有return语句,也会进入fina
8、lly,之后再执行return)12、关于异常,以下说法正确的是A、所有异常类都是Throwable类的子类。B、Error类是Exception的子类。C、在catch语句中,异常类的排列次序无关紧要。D、运行时异常无法捕获。13、有下列程序class TestExceptionclass MyException extends Exception public void testMethod() throws MyException public void test() testMethod();在public void test( ) 后加上哪一句可以使编译不出错。A、throw MyE
9、xceptionB、throws MyExceptionC、throw new MyException()D、throws new MyException()14、下列哪一段代码能够删除文件file.txtA、File f=new File(“file.txt”); f.delete();B、RandomAccessFile f=new RandomAccessFile(“file.txt”,”rw”);f.delete();C、FileOutputStream f=new FileOutputStream(“file.txt”); f.remove();D、File f=new File(“
10、file.txt”); File.delete(f);15、下面哪一个流属于过滤流A、InputStreamB、FileInputStreamC、DataInputStreamD、FileReader16、下列说法错误的是: A、TCP是面向连接的协议,而UDP是无连接的协议。B、数据报传输是可靠的,可以保证包按顺序到达。C、URL代表的统一资源定位符一共包括五个部分D、Socket和ServerSocket分别表示连接的Client端和Server端17、设有以下程序段class TestExceptionpublic static void main(String args) tryret
11、urn;finallySystem.out.println(finally);程序编译并执行,其结果将是A、程序执行,但没有任何输出B、程序输出finallyC、程序编译时出错,提示缺少catchD、程序编译时出错,提示finally语句无法访问到。18、FlowLayout布局管理器按照组件加入容器的次序从( )到( )排列组件。A、 上、下 B、右、左C、左、右D、 前、后19、有程序如下class SuperClassprivate int i=10;void printI()System.out.println (i);class SubClass extends SuperClass
12、int i=20;public void printA()super.printI();class Testpublic static void main(String args) SubClass c1=new SubClass();,;c1.printA();编译并运行程序,其结果将是A、10B、20C、编译出错D、020、下面哪一种流可以用来输入字符A、InputStreamB、OutputStreamC、InputStreamReaderD、BufferedInputStream二、判断题(阅读每一句陈述,判断其正误。在题后的括号中作相应的记号,正确的填入T,错误的填入F。)1、接口可
13、以被另一个接口继承。(T)2、接口中只能定义符号常量和抽象方法。(T)3、private方法不能被继承,但可以被覆盖。(F)4、如果类A的一个方法m的访问权限是默认的,则m可以被同一个包中的其他类访问,也可以被其它包中A的子类访问。(F)5、类的静态变量被该类的所有对象共享。(T)6、所有的类都可以被继承。(F)7、java中是单继承,但一个类可以实现多个接口。(T)8、不管定义与否,任何类都有一个不带参数的构造方法。(F)9、语句”double i=20.0f;”在编译时不会引起错误。(T)10、线程的sleep()方法是一个静态方法。(T)三、程序阅读题。1、仔细阅读下面的程序代码,编译和
14、运行后,请写出该程序的输出结果。class TestExceptionpublic static String toSeparateNumber(String number)String formatedNumber=;trydouble n=Double.parseDouble(number);number=Double.toString(n);int i=number.indexOf(.);if (i=0)formatedNumber=number.substring(i,number.length();i=i-1;else i=number.length()-1;int k=0;for
15、(int j = i; j=0; j-) formatedNumber=number.charAt(j)+formatedNumber;k=(k+1)%3;if (k=0 & j!=0) formatedNumber=,+formatedNumber; catch(NumberFormatException e)System.out.println (参数错误!要求是数字格式!);return formatedNumber;public static void main(String args) System.out.println (TestException.toSeparateNumbe
16、r(001200.45); System.out.println (TestException.toSeparateNumber(235A6.54); 答案:1,200.45参数错误!要求是数字格式!2、仔细阅读下面的程序代码,编译和运行后,请写出该程序的输出结果。class Father String name=Father; int age=45; int getAge() return age; String getName() return name; void setAge(int a) age = a; class Child extends Father String name=
17、Child; int age=18; int getAge() return age+1; class Test2 public static void main(String args) Father p=new Child(); System.out.println(p.getAge(); p.setAge(30); System.out.println(p.getAge(); System.out.println(p.getName(); 答案:1919Father3、阅读下面程序代码,写出程序运行的输出结果。class Test3public static void main(Stri
18、ng args)trycallMethod();catch(Exception e)System.out.print(will );System.out.println(win );static void createException()throw new ArithmeticException();static void callMethod()trycreateException();System.out.print(not );catch(ArrayIndexOutOfBoundsException e) System.out.print(you );finallySystem.out
19、.print(I );System.out.print(never );答案:I will win4、下面的程序利用线程输出从a到z的26个字母,每隔一秒钟输出一个字母,程序不完整,请阅读程序代码,根据注释要求在划线处补充完成代码。public class Test4 implements Runnable char charArray=new char26; public Test4() for(int i = 0; icharArray.length; i+) charArrayi=(char)(i+a); public void run() try for (int i = 0; i c
20、harArray.length; i+) /休眠一秒钟 System.out.print(charArrayi); catch (InterruptedException e) e.printStackTrace(); public static void main(String args) Thread t = /实例化线程对象 /启动线程 答案:Thread.sleep(1000);new Thread(new Test4();t.start(); 5、下面的程序是一个基于AWT的简单图形用户界面程序。程序运行时将显示一个窗口(如下图),窗口上有一个“退出”按钮,单击退出按钮程序将结束运行
21、。阅读程序代码,根据注释要求补充完成代码(划线是需要补充的地方)。import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Test5 extends JFrame private JButton exit; private JLabel label; public Test5() super( 图形用户界面 ); label = new JLabel(单击退出按钮关闭本窗口。); /将标签放置在窗口的北面 exit = new JButton(退出); exit.addActionListener(
22、 /* 注册一个内部类形式的事件监听器,该监听器关闭程序 */); add(exit,BorderLayout.CENTER ); setSize(300,100); setVisible(true); public static void main ( String args ) Test5 app = new Test5(); 答案:add( label, BorderLayout.NORTH );new ActionListener() public void actionPerformed(ActionEvent e) System.exit(0);四、编程题(共2小题,每小题20分,
23、共40分)。1、根据以下说明,编写一个银行账户类Account,并编写一个main方法,对Account类进行测试,在main方法中要调用Account的所有方法,发生异常时,要打印异常信息。该类的成员变量如下(访问权限均为private): 变量名含义数据类型Id帐号StringOwner账户持有人姓名StringBalance余额double该类的成员方法如下(访问权限均为public):方法名参数说明构造方法无构造一个账户实例,将id,owner设为null,balance设为0.00构造方法String id, String owner, double amount构造一个账户实例,用
24、参数设置成员变量id,ownerl,balance的值setIDString id用参数设置成员变量id的值。返回类型void。setOwnerString owner用参数设置成员变量owner的值。返回类型void。Depositdouble amount将金额amount存入帐户,如果帐号为null,则抛出异常,异常信息为“帐号未知!”。返回类型double,返回值为amount。Withdrawdouble amount从帐户支取金额amount,如果帐号为null,或者余额小于amount,则抛出异常,异常信息分别为“帐号未知!”和“余额不足!”。返回类型double,返回值为amo
25、unt。Query无打印id,owner,balance。返回类型void。参考答案:class Accountprivate String id;private String owner;private double balance;public Account()id=null;owner=null;balance=0.00; public Account(String id,String owner,double balance)this.id=id;this.owner=owner;this.balance=balance;public void setID(String id)thi
26、s.id=id; public void setowner(String owner)this.owner=owner;public double deposit(double amount) throws Exceptionif (id=null) throw new Exception(帐号未知!);elsebalance+=amount;return amount;public double withdraw(double amount) throws Exceptionif (id=null) throw new Exception(帐号未知!);else if (balanceamo
27、unt) throw new Exception(余额不足!);elsebalance-=amount;return amount;public void query()System.out.println (帐号:+id+ 户名:+owner+ 余额:+balance);public static void main(String args)tryAccount ac1=new Account(1020011232,张三,10000);ac1.query();ac1.deposit(2000);ac1.query();ac1.withdraw(5000);ac1.query();Accoun
28、t ac2=new Account();ac2.query();ac2.setID(2012343433);ac2.setOwner(李四);ac2.deposit(2000);ac2.query();ac2.withdraw(5000);ac2.query();catch(Exception e)System.out.println (e.getMessage();2、编写类HandInput.java,该类接受用户的键盘输入,存入指定的文件。用户的输入以行为单位,当用户输入end时,程序结束。如果指定的文件已经存在,程序提示用户,并结束程序。参考答案import java.io.*;cla
29、ss HandInputpublic static void main(String args)String inline;BufferedReader handin=null;PrintWriter fostream=null;tryFile f=new File(args0);if (f.exists()System.out.println (目标文件已经存在。请换一个文件名!);return;handin = new BufferedReader( new InputStreamReader(System.in);fostream = new PrintWriter(new FileWriter(f);while (true) inline=handin.readLine();if (!inline.equals(end)fostream.println(inline);elsebreak; catch(IOException e)System.out.println (操作失败!);finallytryif (handin!=null) handin.close();if (fostream!=null) fostream.close();catch(Exception e1)-各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有-