1、Java练习题一、选择题(每题1分,共30分)1、以下程序的运行结果是: public class Increment public static void main(String args)int c;c = 2;System.out.println(c);System.out.println(c+);System.out.println(c); A:A2 2 2 B:B2 3 3 C:C2 2 3 D:D3 4 42、以下关于继承的叙述正确的是 A:在Java中类只允许单一继承 B:在Java中一个类只能实现一个接口 C:在Java中一个类不能同时继承一个类和实现一个接口 D:在Java中
2、接口只允许单一继承3、关于以下程序段,正确的说法是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 System.out.println(“.equals() succeeded”); A:行4与行6都将执行 B:行4执行,行6不执行 C:行6执行,行4不执行 D:行4、行6都不执行4、应用程序的main方法中有以下语句,则执行后输出的结果是 ( )。int x=125,21,5,168,98;int
3、 min=x0;for(int i=1;ix.length;i+)if(ximin)min=xi;System.out.println(min); A:125 B:5 C:98 D:1685、下面程序中类ClassDemo中定义了一个静态变量sum,分析程序段的输出结果。class ClassDemo public static int sum=1; public ClassDemo() sum = sum + 5; public class ClassDemoTest public static void main(String args) ClassDemo demo1=new Class
4、Demo(); ClassDemo demo2=new ClassDemo(); System.out.println(demo1.sum); A: 0 B:5 C: 11 D:26、能够支持javadoc命令的注释语句是 A:/*./ B:/*.*/ C:/ D:/*.*/ 7、File类是IO包中唯一表示磁盘文件信息的对象,它定义了一些与平台无关的方法来操纵文件。通过调用File类提供的各种方法,我们能够创建、删除文件、重命名文件、判断文件的读写权限及是否存在,设置和查询文件的最近修改时间等。下面的代码片段实现的是什么功能?File file = new File(C:test.dat);
5、 if (file.exists() file.delete(); A:创建C:test.dat。 B: 删除C:test.dat。 C: 打开C:test.dat文件输出流。 D: 移动C:test.dat8、char类型的取值范围是 A:2-7 27 -1 B:0216-1 C:-215 215 -1 D:028-1 9、以下关于java异常说法不正确的是( )。 A:Throwable 类是 Java 语言中Error类和Exception类的父类。 B:当异常对象是Exception类(或其子类)的实例时,可以使用throw 语句抛出该异常对象 C:如果只用一个catch块捕捉多个异常
6、对象,则catch 子句中的参数类型应是所有异常对象的父类。 D:以上说法都不对。10、Java语言的类间的继承关系是( ) A:多重的 B:单重的 C:线程的 D:不能继承11、下列属于合法的Java标识符是 A:_cat B:5books C:+static D:-3.1415912、Java中 A: 一个子类可以有多个父类,一个父类也可以有多个子类 B: 一个子类可以有多个父类,但一个父类只可以有一个子类 C: 一个子类可以有一个父类,但一个父类可以有多个子类 D: 上述说法都不对13、声明成员变量时,如果不使用任何访问控制符(public, protected, private),则以
7、下哪种类型的类不能对该成员进行直接访问 A:同一类 B:同一包中的子类 C:同一包中的非子类 D: 不同包中的子类14、有以下方法的定义,请选择该方法的返回类型ReturnType method(byte x, double y) return (short)x/y*2; A:byte B:short C:int D:double15、关于以下application的说明,正确的是1 class StaticStuff2 3 static int x=10;4 static x+=5;5 public static void main(String args )6 7 System.out.p
8、rintln(“x=” + x);8 9 static x/=3;10. A:4行与9行不能通过编译,因为缺少方法名和返回类型 B:9行不能通过编译,因为只能有一个静态初始化器 C:编译通过,执行结果为:x=5 D:编译通过,执行结果为:x=316、有如下程序段: int a = b = 5; String s1 = 祝你今天考出好成绩!; String s2 = s1;则表达式a = b与s2 = s1的结果分别是: A:true与true B:false与true C:true与false D:false与false17、下列关于线程优先级的说法中,正确的是 A:线程的优先级是不能改变的
9、B:线程的优先级是在创建线程时设置的 C:在创建线程后的任何时候都可以设置 D:B和C 18、下面语句在编译时不会出现警告或错误的是 A: float f=3.14; B: char c=”c”; C: Boolean b=null; D: int i=10.0;19、下列关于Java线程的说法那些是正确的( ) A:每一个Java线程可以看成由代码、一个真实的CPU以及数据三部份组成。 B:创建线程的两种方法中,从Thread类中继承的创建方式可以防止出现多父类问题。 C:Thread类属于java.util程序包。 D:以上说法无一正确。20、下面的程序段的功能是( )。File file
10、1=new File(d:xxxyyyzzz);file1.mkdirs( ); A:在当前目录下生成子目录:xxxyyyzzz B:生成目录: e:xxxyyyzzz C:在当前目录下生成文件xxx.yyy.zzz D:以上说法都不对21、欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的? A:ArrayList myList=new Object(); B:List myList=new ArrayList(); C:ArrayList myList=new List(); D:List myList=new List();22、下面说法不正确的是 A:
11、一个子类的对象可以接收父类对象能接收的消息; B: 当子类对象和父类对象能接收同样的消息时,它们针对消息产生的行为可能不同; C: 父类比它的子类的方法更多; D: 子类在构造函数中可以使用super( )来调用父类的构造函数;23、下列最终属性 i 的定义中,正确的是( )。 A: static final int i=100; B:final int i=1.2; C: final i=w; D: final char i;24、下面声明数组的写法错误 A:A int a ; B:B: int a; C:C int3 a; D:D; int 3 a;25、Java编程所必须的默认引用包为
12、A: javsys包 B: java.lang包 C: java.util包 D:以上都不是26、对于下列代码: public class Sample long length; public Sample(long l) length = l; public static void main(String arg) Sample s1, s2, s3; s1 = new Sample(21L); s2 = new Sample(21L); s3 = s2;long m = 21L; 下列哪些表达式返回值为true? A: s1 = = s2; B: s2 = = s3; C: m = = s
13、1; D: s1.equals(m)27、设有定义 int i = 6 ;,则执行以下语句后,i 的值为( )。i += i - 1; A:10 B:121 C:11 D:10028、有整型数组:int x=12,35,8,7,2;,则调用方法Arrays.sort(x)后,数组x中的元素值依次是( ) A:2 7 8 12 35 B:12 35 8 7 2 C:35 12 8 7 2 D:8 7 12 35 229、有如下代码段: 1) 2) if(unsafe()/do something 3) else if(safe()/do the other 4) 其中,方法unsafe() 将抛
14、出IOException, 请问可将以下哪项填入第1行? A: public IOException methodName() B: public void methodName() C:public void methodName() throw IOException D:public void methodName() throws IOException30、给出下面代码:1) class Parent 2 private String name; 3 public Parent( ) 4 5) public class Child extends Parent 6 private S
15、tring department; 7 public Child( ) 8 public String getValue( ) return name; 9 public static void main(String arg) 10 Parent p = new Parent( ); 11 12 那些行将引起错误( ) A: 第3行 B: 第6行 C: 第7行 D: 第8行二、填空题(共10分)31、在空白处填上合适的语句。 Public class ServerTimedOutException extends Exception private int port; public Serv
16、erTimedOutException(String message, int port) super(message); this.port = port; public int getPort() return port; class Client /在下行空白出填上声明抛弃ServerTimedOutException例外的语句 public void connectMe(String serverName) _(1)_ int success; int portToConnect = 80; success = open(serverName, portToConnect); if (
17、success = -1) /*在下行空白处填上抛出ServerTimedOutException例外的语句*/ _(2)_ 32、下面是一个实现了Runnable接口的小程序,程序通过多线程实现了以下功能:从1开始,每个两秒钟显示下一个连续的自然数,显示到直到10后结束。请根完成程序填空。public class Test public void main(String args) A a=new A(); Thread t; t=_(1)_; /创建线程对象 t.start();public class A _(2)_ Runnable public void run() int coun
18、ter=0; while( counter10 ) counter+; try Thread.sleep(2000); catch ( InterruptedException e ) System.out.println(counter); 33、下面的程序的功能是从136的整数中随机选取7个数:第1次随机选择136中的一个数,第2次从剩下的35个数(第1次选中的数不包括其中)中随机选择一个数,,重复这个过程,直到选中7个整数。请完成程序填空。import java.util.*;public class Select7From36 public static void main(Strin
19、g args) Random rd= new Random(); /创建动态数组 ArrayList allNum=new ArrayList(); /创建有7个元素的Integer数组 Integer result=_(1)_; int x; for(int i=1;i=36;i+) allNum.add(new Integer(i); for(int i=0;i=6;i+) x=rd.nextInt(36-i)+1; resulti=(Integer)allNum.get(x); allNum.remove(x); for(int i=0;iresult.length;i+) System
20、.out.print(_(2)_ + ); 34、下列程序的功能是:输入一个姓名,程序运行后,输出“姓名Welcome you!”。例如,输入“张三”,则输出“张三Welcome you!”。请在下面横线处填入正确的方法名,使程序可以正确运行。 Import java.awt.*; import java.awt.event*; public class WelcomeYou public static void main(String args) new FrameInOut(); class FrameInOut extends Frame implements ActionListene
21、r Label prompt; TextField input,output; Button btnn; void FramInOut() prompt=new Label(Please input your name); input=new TextField(10); output=new TextField(25); btnn=new Button(Closs); _ (new FlowLayout(); /设置布局对象add(prompt); add(input); add(output); add(btnn); input.addActionListener(this); btnn.
22、addActionListener(this); setSize(300200); validate(); public void actionPerformed(ActionEvent e) /事件处理接口方法 if(_=input) /获得事件源output.setText(_+Welcome you!);/在output中输出字符串 else dispose(); Systemexit(0) 35、下面是一个Java Application 的主类的定义,其功能是输出所有命令行参数。 import java.io.*;public class MyClasspublic static v
23、oid main(String args )if( args.length !=_)for(int i=0; i args.length; i+)System.out.println(_);else System.out.println(没有命令行参数);36、下面是一个类的定义:public class _ int x, y;Myclass ( int i, _) / 构造函数x=i;y=j;37、Applet程序:有2个复选框,其名称为“玩耍”和“学习”,根据选择情况,分别显示“我就喜欢玩耍”,“我只喜欢学习”,“两个我都喜欢”。import java.applet.Applet;impo
24、rt java.awt.*;import java.awt.event.*;public class testCheck_/定义类testCheck Checkbox c1,c2; String s=; public void init() c1=new Checkbox(玩耍); c1.addItemListener(this); add(c1); c2=new Checkbox(学习); c2.addItemListener(this); add(c2); _(ItemEvent e)/Checkbox选择事件响应处理方法 if(c1.getState() & c2.getState()/
25、如果两个都选择 s=玩耍和学习我都喜欢; else if(c1.getState() s=我就喜欢玩耍; else if(c2.getState() s=我只喜欢学习; else s=; repaint();/重画 public void paint(Graphics g) _ /在(20,80)处显示字符串s 对应HTML文件38、下列程序的功能是判断某一年是否为闰年。请在横线处填入适当内容,使程序能够正确运行。 import java.io.*; public class LeapYear public static void main(String arge) throws IOExce
26、ption InputStreamReader ir; BufferedReadwe in; ir=new InputStreamReader(Systemin); in=new BufferedReader(ir); SystemOutprintln(输入年份是:) String s= _(1)_int year=IntegerparseInt(s); if (_(2)_) Systemoutprintln(+year+年是闰年。) else Systemoutprintln(+year+年不是闰年。) 39、下面是一个小程序的主类myprogram的定义, 其中A、B是该主类所在源程序中已
27、定义的另两个类的类名: import java awt.*;import java applet.*;public class myprogram extends Applet/定义小程序的主类A a; B b;public _ init( ) a=new A( ); b=_ B( ); 40、下列程序中,指定变量b=50为字节类型,变量f=0.55F为单精度实型,变量1=0xfffL为64位整型,并将该三个变量打印输出.请将程序补充完整.import java.io.*;public class Assignpublic static void main(String args)_b=50;
28、_f=0.55F;_l=0xfffL;System.out.println(b=+b);System.out.println(f=+f);System.out.println(l=+l);三、程序阅读(共20分)41、现有一个类定义如下:class studentString name;int age;int score=88;student(String a1,int a2,int a3)name=a1; age=a3; score=a2; 在使用该类时,已使用下面语句生成了该类的对象: student s1,s2;s1=new student(张三,20,33);s2=new studen
29、t();问题:1)s1.name,s1.age,s1.score的值各是什么?2)s2.name,s2.age,s2.score的值各是什么?42、阅读下面的程序代码,并回答问题(1)问3分,(2)问3分,共6分)。String s1=new String(abcde);String s2=new String(abcde); boolean b1=s1.equals(s2);boolean b2=s1=s2; System.out.print(b1+ +b2); (1)程序段执行后,在命令行的输出结果如何?(2)解释输出(1)的结果的原因?43、阅读下面的程序,回答以下问题import ja
30、va.awt.*;import java.applet.*; import java.awt.event.*; public class Applet1 extends Applet implements ActionListener Label aa;TextField t1;int i=0;public void init()aa=new Label(请输入一个整数:);add(aa);t1=new TextField(10);add(t1);t1.addActionListener(this);public void paint(Graphics g)g.drawString(a=+(
31、+i*-i),20,60); g.drawString(i=+( i),20,80);public void actionPerformed(ActionEvent e)i=Integer.parseInt(t1.getText();/转化为整数repaint();问题:1)程序开头的 import java.applet.* ; 的含义是什么?2)ActionListener是类还是接口? 程序中哪个方法是ActionListener中的方法,其功能为何?3)若在文本域中输入6并回车,程序输出什么?44、设有数组定义:int MyIntArray = 10 , 20 , 30 , 40 ,
32、50 , 60 , 70; 则执行以下几个语句后的输出结果是什么。 Int s = 0 ; for ( int I = 0 ; I MyIntArray.length ; I + + ) if ( I % 2 = = 1 ) s += MyIntArrayi ; System.out.println( s );45、下面是一个排序的程序:import java.io.*;public class Test56_Sortpublic static void main(String args )int a=42,99,5,63,95,36,2,69,200,96;System.out.printl
33、n(排序前的数据序列:);ShowArray(a);Sort(a);System.out.println(排序后的数据序列:);ShowArray(a);public static void Sort(int x)int w;for(int i=1; ix.length; i+)for(int j=0; jxj+1) w=xj; xj=xj+1; xj+1=w; /* if(i=1|i=2) ShowArray(x);if(i=2) break; */public static void ShowArray(int b)for(int i=0; ib.length; i+)System.out
34、.print( +bi);System.out.println( );问题: 如果将方法Sort( )中的一对注释符(/* */)去掉,程序输出的结果是什么?46、 import java.awt.*;import java.applet.*;public class Test51 extends Appletfloat x = 1.2, 3.4, 5.6, 7.8;public void paint(Graphics g)int s=0;for( int i = 0; i x.length; i+ )s += (int)xi;g.drawString( + s, 30, 60);问题:1)程
35、序的输出结果是什么?2)方法paint()中的循环体 s += (int)xi; 能写为 s +=xi; 吗? 为什么?47、阅读下面的程序,并回答问题(1)问3分,(2)问3分,共6分)。import java.io.*;public class Test public static void main(String args) throws IOException BufferedReader buf=new BufferedReader( new InputStreamReader(System.in); while(true) String str=buf.readLine(); if
36、(str.equals(quit) break; int x=Integer.parseInt(str); System.out.println(x*x); 编译运行上面的程序:(1)从键盘输入10,回车后输出的结果如何?(2)从键盘输入exit,回车后程序能正确执行吗?为什么?48、写出下面的程序编译、运行后的结果(6分)。public class Test public static void main(String args) new Student(Tom,m,90,88); new Student(Jack,m,66,89); new Student(Mary,f,76,86); S
37、ystem.out.println(nametsextchinesetenglish); Student.print(); class Student protected String name; protected char sex; protected int chinese; protected int english; protected Student next; static Student list; Student(String name, char sex, int chinese,int english) this.name=name; this.sex=sex; this.chinese=chinese;