一、 选择 1.给定下面的代码片段: 1) String str = null; 2) if ((str != null) && (str.length() > 10)) { 3) System.out.println("more than 10"); 4) } 5) else if ((str != null) & (str.length() < 5)) { 6) System.out.println("less than 5"); 7) } 8) else { System.out.println("end"); } 哪些行会导致错误?
A line 1
B line 2
C line 5
D line 8 2.下面哪种注释方法能够支持javadoc命令:
A /**...**/
B /*...*/
C //
D /**...*/ 3. 欲编写如下图的一个界面,用于显示用户指定的图像: 如果在区域A中只能放置一个AWT组件,从各组件的本来功能角度考虑,最好使用哪种组件:
A TextArea
B Panel
C Applet
D Canvas 4. 界面如上题所示。若"Button1"的功能是:点击后弹出一个用于输入的界面,获取用户想要显示的图像文件名,则该界面最好是(从编程简单和程序不易出错的角度考虑): A 模式(Modal)Dialog B 非模式(None-modal)Dialog C FileDialog D Frame 5. 界面如上题所示。如果在A区域使用某种AWT组件(java.awt.Component的子类)来负责绘制图像,则绘图的语句最好应放在该组件的哪个方法中(考虑到应用程序和Java虚拟机的AWT线程都会要求重画该组件)?
A 构造方法
B paint(Graphics g)
C update(Graphics g)
D repaint() 6.下面关于Applet的说法正确的是
A Applet也需要main方法
B Applet必须继承自java.awt.Applet
C Applet能访问本地文件
D Applet程序不需要编译 7.看下面一段程序: class Aclass{ void go(){ System.out.println("Aclass"); } } public class Bclass extends Aclass{ void go{ System.out.println("Bclass"); } public static void main(String args[]){ Aclass a=new Aclass(); Aclass a1=new Bclass(); a.go(); a1.go(); } 以上程序运行结果是:
A Aclass Aclass
B Bclass Bclass
C Aclass Bclass
D Bclass Aclass 8.下列关于Java线程的说法那些是正确的()
A 每一个Java线程可以看成由代码、一个真实的CPU以及数据三部份组成。
B 创建线程的两种方法中,从Thread类中继承的创建方式可以防止出现多父类问题。
C Thread类属于java.util程序包。
D 以上说法无一正确。 9.看以下程序: boolean a=false; boolean b=true; boolean c=(a&&b)&&(!b); int result=c==false?1:2; 这段程序执行完后,c与result的值是:
A c=false;result=1;
B c=true;result=2;
C c=true;result=1;
D c=false;result=2; 10.运行下列程序, 会产生什么结果 public class X extends Thread implements Runable{ public void run(){ System.out.println("this is run()"); } public static void main(String args[]) { Thread t=new Thread(new X()); t.start(); } }
A 第一行会产生编译错误
B 第六行会产生编译错误
C 第六行会产生运行错误
D 程序会运行和启动 11.指出下列程序的运行结果 int i = 9; switch (i) { default: System.out.println("default"); case 0: System.out.println("zero"); break; case 1: System.out.println("one"); case 2: System.out.println("two"); }
A default
B default, zero
C error default clause not defined
D no output displayed那个 12.运行下列程序,会产生什么结果: class Outer1{ private int a; void foo(double d,final float f){ String s; final boolean b; class Inner{ void methodInner(){ System.out.println("in the Inner"); } } } public static void main(String args[]) { Outer1 me=new Outer1(); me.foo(123,123); System.out.println("outer"); } }
A in the Inner outer
B outer
C in the Inner
D 编译不通过
二、多项选择 1.下面哪些标识符在Java语言中是合法的?
A persons$
B TwoUsers
C *point
D instanceof F.end-line 2.下面哪些代码片段会产生编译错误?
A String s = "Gone with the wind"; String t = " good "; String k = s + t;
B String s = "Gone with the wind"; String t; t = s[3] + "one";
C String s = "Gone with the wind"; String standard = s.toUpperCase();
D String s = "home directory"; String t = s - "directory". 3.下面哪些赋值语句是错误的?
A float f = 11.1;
B double d = 5.3E12;
C char c = '\r';
D byte bb = 433; E Boolean b=true; 4.给定下面的代码片段: public void Test() { try { method(); System.out.println("Hello World"); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("Exception?"); } catch(Exception e) { System.out.println("Exception1"); } finally{ System.out.println("Thank you!"); } } 如果函数method正常运行并返回,会显示下面的哪些信息?
A Hello World
B Exception
C Exception1
D Thank you! 5.下列哪些语句是正确的?
A int a[][]=new int[][3];
B int a[][]={{1,3},{2,3,4},{1,2}};
C String s[][]=new String[2][];
D String s[][]={{"can","I"},{"help","you"}} 6.下面哪些语句能够正确地生成5个空字符串?
A String a [] = new String [5]; for (int i = 0; i < 5; a[i++] = "");
B String a [] = {"", "", "", "", ""};
C String a [5];
D String [5] a; E String [] a = new String [5]; for (int i = 0; i < 5; a[i++] = null); 7.下面关于Java代码安全的说法哪些是正确的?
A 程序执行过程中需要的所有类都是通过字节码校验程序装入的。
B 代码的运行是由Java运行环境中的解释器完成的。
C 在运行时,字节码要经过装入,校验之后,才能在解释器中执行。
D 在缺省的安全配置条件下,Java Applet不能访问任何本地资源。 8.下列方法属于java.lang.Math类的有(方法名相同即可):
A random()
B abs()
C sqrt()
D sin() 9.下列表达式哪些是正确的:
A byte=340;
B Boolean=1;
C long l=-2;
D double=0.9239d; 10.下面的说法正确的是:
A Java语言里的线程不是对象
B Applet不需要main方法
C Java语言的对象都是java.lang.Object的子类
D double是Java语言的合法标识符 11.下面的Java语句错误的是:
A Double a=1.0;
B double a=1.0;
C out.println("hello");
D DatagramSocket a = new DatagramSocket()
三、 填空题 1. Java中类成员的限定词有以下几种:private, public, , 。其中, 的限定的范围最大。 2. Java中所有类都是类 的子类。 3. 请填出在java.lang包中与下列基本数据类型相对应的封装类: float:java.lang.Float, char: , boolean: 。 4. 请写出下面程序的运行结果。 public class Test extends TT{ public void main(String args[]){ Test t = new Test("Tom"); } public Test(String s){ super(s); System.out.println("How do you do?"); } public Test(){ this("I am Tom"); } } class TT{ public TT(){ System.out.println("What a pleasure!"); } public TT(String s){ this(); System.out.println("I am "+s); } } 结果: 5. 给定下面的未完成的代码片断: public class Example{ int x,y; public Example(int a){ … x = a; } public Example(int a, int b){ //和上面一个参数的构造方法做同样的操作,包括赋值 x=a y = b; } } 如果要用最简捷的一行代码实现"//和上面一个参数的…"注释所指出的功能,请写出你认为最合适的一行代码: 6. 如果有一个类MyFrame是Frame的子类,能够被不同包中的类所使用,同时又能够为线程提供运行代码(run()方法),请写出该类的声明头。 你的解答:
四、 编程题 1. 编写一个程序用选择法对数组a[]={20,10,50,40,30,70,60,80,90,100}进行由大到小的排序。 2. 使用socket编写一个服务器端程序,服务器端程序在端口8888监听,如果它接到客户端发来的"hello"请求时会回应一个"hello",对客户端的其他请求不响应。 3. 编写一个应用程序,创建三个线程分别显示各自的时间。 4. 编写一个计算器程序,只有加减乘除功能,当作applet运行。