当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
Java全国计算机二级考试练习题及答案(3)
发布时间:2009/10/23 9:21:50 来源:www.xue.net 编辑:城市总裁吧

  10   下列不是InputStream子类的是__C____。
  A、文件输入流FileInputStream    B、对象输入流ObjectInputStream
  C、字符输入流CharInputStream     D、压缩文件输入流ZipInputStream
  11   Java中没有CharInputStream流。
  下列方法中可以用来创建一个新线程的是___C___。
  A、实现java.lang.Runnable接口并重写start()方法
  B、实现java.lang.Runnable接口并重写run()方法
  C、继承java.lang.Thread类并重写run()方法
  D、继承java.lang.Thread类并重写start()方法
  解析:java.lang中的Thread类的典型构造方法为:
  public Thread(ThreadGroup group,Runnable target,String name)
  接口Runnable定义了run()方法;而Thread类本身也实现了Runnable接口,故创建线程有两种方法:
  1、用实现Runnable接口的类的实例作target参数生成Thread类的实例
  2、编写继承Thread类的类,并重写(override)run()方法
  12  下列关于线程优先级的说法中,正确的是__C____。
  A、线程的优先级是不能改变的    B、线程的优先级是在创建线程时设置的
  C、在创建线程后的任何时候都可以设置     D、B和C
  解析:Java语言中线程的优先级是用一个介于MIN_PRIORITY 和MAX_PRIORITY之间的整数来表示的。可以在创建线程后的任何时候修改线程的优先级。
  13  下列代码中,将引起一个编译错误的行是__D____。
  1)public class Test{
  2) int m,n;
  3) public Test(){}
  4) public Test(int a){m=a;}
  5) public static void main(String args[]){
  6) Test t1,t2;
  7) int j,k;
  8) j=0;k=0;
  9) t1=new Test();
  10) t2=new Test(j,k);
  11) }
  12) }
  A、第3行    B、第5行    C、第6行    D、第10行
  解析:第10行代码中的参数数目比类Test的任何一个构造方法声明的形参都多,因此引起编译错误。
  14  阅读下列代码后
  public class Person{
  int arr[]=new int[10];
  public static void main(String args[]){
  System.out.println(arr[1]);
  }
  }
  15  正确的说法是__A____。
  A、编译时将产生错误  B、编译时正确,运行时将产生错误 C、输出为零  D、输出为空
  解析:由于数组arr声明时未用static关键字,而main()方法直接引用arr(而非通过Person的实例引用),将产生"非静态变量不能从静态上下文中引用"(non-static variable cannot be referenced from a static context)的编译错误。
  16  某二叉树中度为2的结点有18个,则该二叉树中有   19   个叶子结点。
  解析:二叉树的性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为18,故叶子结点数为18+1=19个。
  17   问题处理方案的正确而完整的描述称为   算法   。
  18  线程在生命周期中要经历5种状态,分别是新建状态、可运行状态、运行状态、___阻塞 或 Blocked___状态和终止状态。[NextPage]

  19  请阅读下列程序代码,然后将程序的执行结果补充完整。
  程序代码:
  class throwsException
  {
  static void Proc(int sel) throws ArithmeticException,ArrayIndexOutOfBoundsException
  {
  System.out.println("In Situation"+sel);
  if(sel==0){
  System.out.println("no Exception caught");
  return;
  }
  else if(sel==1){
  int iArray[]=new int[4];
  iArray[1]=3;
  }
  }
  public static void main(String[] args)
  {
  try{
  Proc(0);
  Proc(1);
  }catch(ArrayIndexOutOfBoundsException e){
  System.out.println("Catch"+e);
  }finally{
  System.out.println("in Proc finally");
  }
  }
  }
  执行结果:
  In Situation0
  no Exception caught
  __In Situation1____
  in Proc finally
  解析:调用Proc(1)时,执行语句System.out.println("In Situation"+sel);控制台输出In Situation1。然后在if语句中执行sel==1分支,该分支中无任何输出语句。
  当使用Thread t=new Thread(r)创建一个线程时,表达式:r instanceof Thread的值是___false___。
  表达式:r instanceof Thread的语义即"r是否为Thread的实例(instance)"。再看Thread的构造方法(Thread有许多构造方法,以下是最典型的构造方法,其它构造方法都是从下面的构造方法中"减掉"一些参数形成的):
  Thread(ThreadGroup group, Runnable target, String name)
  可见,Thread构造方法中没有类型为Thread的参数,故r不可能是Thread的实例
  20  面向对象的语言将客观世界都看成由各种对象组成。具有共同特征和行为的对象组成类,类是变量和___操作___的集合体。
  21   Random类中的nextInt(N)方法得到一个介于0至N-1之间的随机数,而平常用到的Math.random()是得到一个介于0与1之间的小数。

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved