[置顶] 2016小码哥杯java程序设计竞赛赛前模拟题

java程序设计赛前模拟题


一、单选题:(45分)

15题单选题,每题3分



第1题 单项选择题
    代码片段:
System.out.format("Pi is approximately %d.", Math.PI);
    请问执行的结果是什么?
      A
      编译出错
      B
      Pi is approximately 3.
      C
      Pi is approximately 3.141593.
      (D)
      运行时抛出异常
  
第2题 单项选择题
    代码片段:
    public class Certkiller3 implements Runnable {
	public void run() {
		System.out.print("running");
	}
	public static void main(String[] args) {
		Thread t = new Thread(new Certkiller3());
		t.run();
		t.run();
		t.start();
	}
    }
    执行的结果是?
      A
      编译出错
      B
      运行时抛出异常
      C
      代码正常运行并且输出: running
      (D)
      代码正常执行并且输出: runningrunningrunning
  
第3题 单项选择题
    代码片段1:
    public class ComplexCalc {
        public int value;
	public void calc() {value += 5;}
    }
    代码片段2:
    public class MoreComplexCalc extends ComplexCalc {
	public void calc() {value -= 2;}
	public void calc(int multi) {
		calc();
		super.calc();
		value *= multi;
	}
	public static void main(String[] args) {
		MoreComplexCalc calc = new MoreComplexCalc();
		calc.calc(3);
		System.out.println("Oh it is:" + calc.value);
	}
    }
    请问编译运行的结果是什么?
      (A)
     
Oh it is:9
      B
      编译出错
      C
      Oh it is:15
      D
      Oh it is:-6
      E
      代码正常运行但没有输出
      F
      运行时抛出异常
      G
      Oh it is:6
      H
      Oh it is:-15
  
第4题 单项选择题
    代码片段:
  1.  public class Person {
  2.      private String name;
  3.      public Person(String name) {this.name = name;}
  4.	  public boolean equals(Person p) {
  5.	      return p.name.equals(this.name);
  6.	  }
  7.  }
    那个选项的描述是正确的?
      (A)
     
equals 方法没有正确覆盖 Object 类中的 equals 方法。
      B
      编译这段代码会出错,因为第5行的私有属性
p.name 访问不到。
      C
      如果要与基于哈希的数据结构一起正常地工作,只需要在这个类中在实现
hashCode 方法即可。
      D
      当添加一组
Person 对象到类型为 java.util.Set 的集合时,第4行中的 equals 方法能够避免重复。
  
第5题 单项选择题
    代码片段:
    public class JavaContest {
	public static void main(String[] args) throws Exception {
		Thread.sleep(3000);
		System.out.println("alive");
	}
    }
    请问编译运行的结果是什么?
       A
      编译出错
      B
      运行时抛出异常
      (C)
      程序运行大约3秒后输出: alive
      D
      程序运行大约50分钟后输出: alive
           E
      代码正常运行但没有输出
  
第6题 单项选择题
    代码片段:
    public void aSafeMethod(Object value) {
	//在这里检查方法的参数
	//这里省略其他代码
	System.out.println(value.toString());
    }
    代码中的方法要求传入的参数是非空的,请问有什么比较好的方法去处理一个空值?
      A
     
assert value == null;
     (B)
      if(value == null) {
         throw new IllegalArgumentException("value can not be null.");
      }

     C
      if(value == null) {
         throw new AssertionException("value can not be null.");
     }

     D
      assert value != null : "value can not be null.";
  
第7题 单项选择题
    如下代码:
        public static void main(String[] args) {
		method1(1,2);
		System.out.print(" java");
        }
	public static void method1(int x1, int x2) {
		System.out.print("hello");
	}
	public static void method1(int x1, int x2, int x3) {
		System.out.print("hi");
	}
    请问编译运行的结果是什么?
      (A)
     
hello java
      B
      编译失败
      C
      hi java
      D
      hellohi java
      E
      hihello java
  
第8题 单项选择题
    代码片段:
    void waitForSignal() {
	Object obj = new Object();
	synchronized (Thread.currentThread()) {
		obj.wait();
		obj.notify();
	}
    }
    以下哪一个描述是正确的?
      (A)
      需要处理 InterruptedException.
      B
      代码能编译单可能运行时抛出 IllegalStateException.
      C
      运行10分钟后代码抛出 TimeOutException.
      D
      需要把 obj.wait() 替换为 ((Thread) obj).wait() 后代码才能通过编译。
      E
      把 obj.wait() obj.notify() 这两句调换一下位置,能使代码执行。
  
第9题 单项选择题
    代码片段:
  package certkiller;
  class Target {
	  public String name = "hello";
  }
     哪些类能够直接访问并且改变name这个变量的值。
       A
       任意类
       B
       只有 Target 这个类
       (C)
        certkiller 包下的类
       D
        Target 的子类
   
第10题 单项选择题
    代码片段:
        int i = 1;
	while(i != 5) {
		switch(i++%3) {
			case 0:
			    System.out.print("A");
			    break;
			case 1:
			    System.out.print("B");
			    break;
			case 2:
			    System.out.print("C");
			    break;
		}
	}
    请问编译运行的结果是什么?
      (A)
      BCAB
      B
      BCBA
      C
      ABC
      D
     
CBA
      E
      NBA
      F
      FIFA
  
第11题 单项选择题
    代码片段:
    public class Test {
	public Test() {
		System.out.print("test ");
	}
	public Test(String val) {
		this();
		System.out.print("test with " + val);
	}
	public static void main(String[] args) {
		Test test = new Test("wow");
	}
    }
    请问编译运行的结果是什么?
      A
     
test
      (B)
      test test with wow
      C
      test with wow
      D
      编译失败
  
第12题 单项选择题
    代码片段:
    String text = "Welcome to Java contest";
    String[] words = text.split("\s");
    System.out.println(words.length);
    请问编译运行的结果是什么?
      A
     
0
      B
      1
      C
      4
      (D)
      编译出错
      E
      运行时抛出一个异常
  
第13题 单项选择题
    代码片段:
    public class Test {
	private int a;
	public int b;
	protected int c;
	int d;
	public static void main(String[] args) {
		Test test = new Test();
		int a = test.a++;
		int b = test.b--;
		int c = test.c++;
		int d = test.d--;
		System.out.println(a + " - " + b + " - " + c + " - " + d);
	}
    }
    请问那个说法是正确的?
      A
      编译错误,因为变量
a、b、c d 没有被初始化
      B
      编译错误,因为变量
a 无法被访问
      (C)
      编译成功并输出
0 - 0 - 0 - 0
      D
      编译成功并输出 1 - -1 - 1 - -1
  
第14题 单项选择题

    有如下变量声明:

    Map<String, ? extends Collection<Integer>> map;

    请问以下那个赋值语句会出错?
      A
     
map = new HashMap<>();
      B
      map = new HashMap<String, List<Integer>>();
      C
      map = new HashMap<String, LinkedList<Integer>>();
      (D)
      map = new LinkedHashMap<Object, List<Integer>>();
  
第15题 单项选择题
    代码片段:
    contestKiller = new ReallyBigObject();
    //这里省略部分代码
    contestKiller = null;
    /*在这里补充代码*/
    下列哪一选项的代码是告诉虚拟机尽最大的能力去回收 contestKiller 这个对象所占用的内存。
      A
      Runtime.getRuntime().freeMemory()
      B
      Runtime.gc()
      C
      System.freeMemory()
      D
      Runtime.getRuntime().growHeap()
      (E)
      System.gc()


  

二、多选题(25分)

5题多选题,每题5分



第16题 多项选择题
    给出一个尚未使用泛型的方法:
  11.  public static int getSum(List list) {
  12.	  int sum = 0;
  13.	  for(Iterator iter = list.iterator(); iter.hashNext();) {
  14.		  int i = ((Integer) iter.next()).intValue();
  15.		  sun += i;
  16.	  }
  17.	  return sum;
  18.  }
    为了适应泛型,需要对代码做以下那三项改动?
      (A)
      删除第14行
      B
      将第14行替换成
      int i = iter.next();
      (C)
      将第13行替换成
      for(int i : intList) {
      D
      将第13行替换成
      for(Iterator iter : intList)
      E
      方法的参数声明改为
      getSum(List<int> intList)
      (F)
      方法的参数声明改为
      getSum(List<Integer> intList)
  
第17题 多项选择题
    代码片段:
    public abstract interface Sudo {
	public void crazy(String s);
    }
    请问以下哪些选项中的类定义是正确的?
      A

      public abstract class MySudo implements Sudo {
      public abstract void crazy(String s) {}
      }

      (B)
      public abstract class YourSudo implements Sudo {}
      (C)
      public class HerSudo implements Sudo {
          public void crazy(String i){}
          public void crazy(Integer s){}
      }

      D
      public class HisSudo implements Sudo {
          public void crazy(Integer i) {}
      }

      E
      public class ItsSudo extends Sudo {
          public void crazy(Integer i){}
      }



第18题 多项选择题
     如下代码:
        public class Test {
		public static void main(String[] args) {
			int i = 3, j;
			outer:while(i > 0) {
				j = 3;
				inner:while(j > 0) {
					if(j < 2) break outer;
					System.out.println(j + " and " + i);
					j--;
				}
				i--;
			}
		}
	}
    请问以下哪些选项的内容会出现在输出中?
      (A)
     
3 and 3
      B
      3 and 2
      C
      3 and 1
      D
      3 and 0
      (E)
      2 and 3
  
第19题 多项选择题
    如下代码:
        import java.io.*;
	class Directories {
    	static String[] films = {"sora", "shu"};
	    public static void main(String[] args) {
		    for(String fp ; films) {
			    //在这里插入第一句代码
			    File file = new File(path, args[0]);
			    //在这里插入第二句代码
		    }
	    }
	}
    有一个文件夹,它有2个子文件夹,分别是“ sora ”和“ shu ”, " sora 里面只有名为“ aoi.txt ”的文件,“ shu ”里面只有名       为“ qi.txt ”的文件。
    在此文件夹下执行以下命令:
    java Directories qi.txt
    输出的结果是:“ false true
    请问以下哪些选项的代码分别插到上面的代码中能达到此效果?
  (A)
  //第一句代码
 
String path = fp;
  //第二句代码
  System.out.print(file.exists() + " ");
  (B)
  //第一句代码
  String path = fp;
  //第二句代码
  System.out.print(file.isFile() + " ");
  C
  //第一句代码
  String path = File.separator + fp;
  //第二句代码
  System.out.print(file.exists() + " ");
  D
  //第一句代码
  String path = File.separator + fp;
  //第二句代码
  System.out.print(file.isFile() + " ");
  
第20题 多项选择题
    以下哪些选项的代码存在错误?
      A
      
long n1 = 12_3_45____789;
      (B)
       long n2 = __123_45_678_9;
      (C)
       int n3 = 0xFc_aB_C3_353;
      D
       double n4 = 0b11001_001_0_0_11;
      (E)
       float n5 = 1.4_142_13;
      F
       float n6 = 0_1_2_3;
  

三、编程题(30分)

以下有4题编程题,前两题每题5分,第3题7分,最后一题13分。



第21题 Java编程题
    写一个名叫Square的类用于求一个数的平方。
    类里面提供两个静态方法,名字都叫square。
    其中一个方法的参数和返回值都是long型,另一个方法的参数和返回值都是double型

    这是一道范例题,下面是一个可行的答案:

        public class Square {
		public static long square(long v) {
			return v * v;
		}
		public static double square(double d) {
			return d * d;
		}
	}
    你可以直接将上面代码输入答案框提交。

    请您写出一个类名为Square的类,要求能满足题意。[代码编辑区]
        public class Square {
		public static long square(long v) {
			return v * v;
		}
		public static double square(double d) {
			return d * d;
		}
	}
    [保存]
  
第22题 Java编程题
    给出以下接口HelloWorld,请编写一个类MyHelloWorld实现该接口,并满足接口中所要求的功能。

    这是一道范例题,下面是一个可行的答案:
        public class MyHelloWorld implements HelloWorld {
		public String sayHelloWorld(String name) {
			return name + " say: hello world!";
		}
	}
    你可以直接将上面代码输入答案框提交。

    给定如下的代码:
       1  public interface HelloWorld {
	2	  /**
	3	  *返回name + " say: hello world!".
	4	  */
	5	  String sayHelloWorld(String name);
	6  }
    请您写出一个类名为MyHelloWorld的类,要求能满足题意。[代码编辑区]
      public class MyHelloWorld implements HelloWorld {
          public String sayHelloWorld (String name) {
              return name + " say: hello world!";
          }
      }
    [保存]
  
第23题 Java编程题
    给出如下Shape类,请事先一个公有类Rectangle,满足以下要求:
    1.继承于Shape,实现Shape的所规定的功能
    2.有int类型的width和height属性(宽和高)及相应的getter和setter
    3.有一个带两个int参数的共有构造方法,第一个参数用于设置宽,第二个参数用于设置高

    给定如下的代码:

        1  public abstract class Shape {
	2	  /**
	3	  *计算形状的面积
	4	  */
	5  	  abstract public int getArea();
	6  }
    请您写出一个类名为Rectangle的类,要求能满足题意。[代码编辑区]
public class Rectangle extends Shape {

	int width,height;
	
	public Rectangle(int i, int j) {
		this.width = i;
		this.height = j;
	}
	
	public void setWidth(int i) {
		this.width = i;
	}
	
	public void setHeight (int i) {
		this.height = i;
	}
	
	public int getWidth() {
		return width;
	}
	
	public int getHeight() {
		return height;
	}
	
	public int getArea() {
		// TODO Auto-generated method stub
		return width * height;
	}

}
    [保存]
  
第24题 Java编程题
     在某间软件公司里,小蔡接到上头的一个任务:某位高职的员工留下了一个接口IList,但是该接口的实现类的源码却已丢失,现在需要为该接口重
    新开发一个实现类MyList.
    下面提供了IList接口的代码。
    要实现的MyList是一个公有类,里面需要提供一个公有的无参构造方法MyList(),用于创建一个空的(不含任何元素的)IList。
    请你帮小蔡写出这个实现类的代码。
    (注意。若要使用java.lang包以外的类,请别忘了import。竞赛时将不会有此提醒)

  给定如下的代码:
       /**
	*精简的列表(List),用于储存一系列的元素(对象)。
	*IList里面储存的元素会按插入的顺序排放,也能根据下标获取这些元素。下标从0开始。
	*/
public interface IList {
        /**
        *往列表的尾部增加一个元素
        */
	void add(Object o);
	/**
	*获取下标所指定的元素。当下标越界时抛出异常java.lang.IndexOutBoundsException
	*/
	Object get(int i);
	/**
	*获取列表里当前元素的个数
	*/
	int size();
	/**
	*清空列表,移除列表里所有的元素
	*/
	void clear();
}

    请您写出一个类名为MyList的类,要求能满足题意。[代码编辑区]

import java.util.ArrayList;
import java.util.List;

public class MyList implements IList {

	List list = null;
	
	public MyList() {
	    list = new ArrayList();
	}
	
	public void add(Object o) {
		// TODO Auto-generated method stub
		list.add(o);
	}

	public Object get(int i) {
		// TODO Auto-generated method stub
		if (i > list.size()) {
			throw new IndexOutOfBoundsException("大小不对");
		}
		return list.get(i);
	}

	public int size() {
		// TODO Auto-generated method stub
		return list.size();
	}

	public void clear() {
		// TODO Auto-generated method stub
		list.clear();
	}
	
}

    [保存]



竞考网直通车:在这里

以上就是模拟测试题了,答案通过测试。

希望对你有所帮助!!!



你可能感兴趣的:(java基础,Java程序设计,小码哥,Java竞赛,竞赛网)