Java试题(三)

一、 选择

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运行。






五、 程序填空题:

1. 在空白处填上合适的语句。
  public class ServerTimedOutException extends Exception {
   private int port;
   public ServerTimedOutException(String message, int port) {
     super(message);
     this.port = port;
   }
  public int getPort() {
  return port;
   }
  }
  class Client{
  //在下行空白出填上声明抛弃ServerTimedOutException例外的语句
    public void connectMe(String serverName)
     {
      int success;
      int portToConnect = 80;
      success = open(serverName, portToConnect);
      if (success == -1) {
  /*在下行空白处填上抛出ServerTimedOutException例外的语句*/
      
      }
    }
  }