java习题

1. class Card{}下列不属于Card类构造方法的是:()
A.Card(){}
B.public Card(){}
C.public void Card(){}
D.private Card(){}

正确答案:C

2. 下列关于线程的名字说法正确的是:()。
A.不能人为的为线程设置名字
B.Java规定所有的线程名字都是Thread=1形式的
C.可以使用Thread类的setName()方法为线程设置名字
D.默认情况下,线程无名字

正确答案:C

3. 关于下列代码说法正确的是:
class ClassA {
 public int numberOfinstances;
 protected ClassA(int numberOfinstances) {
  this.numberOfinstances = numberOfinstances;
 }
}
public class ExtendedA extends ClassA {
 private ExtendedA(int numberOfinstances) {
  super(numberOfinstances);
 }
 public static void main(String[] args) {
  ExtendedA ext = new ExtendedA(420);
  System.out.print(ext.numberOfinstances);
 }
}
A. 运行后,输出420
B. 运行时抛出异常
C. 编译错误,所有的构造器必须是public的
D. 编译错误,构造器不能是private的

正确答案:A

4.下列程序的输出结果是()。
public static void main(String[] args) {
              String str="ABCDEF";
              String sub=str.substring(3,5);
              System.out.println(sub);
}

A.CD
B.CDE
C.DE
D.DEF

正确答案:C

5. 下面不属于Java语言特点的是:
A. 平台无关
B. 面向对象
C. 支持指针类型
D. 垃圾回收机制

正确答案:C

6.下列代码的输出结果是: ()。
public class A {
 public void info(){
  System.out.println("A info");
 }
}
public class B extends A{
 public void info(){
  System.out.println("B info");
 }
 public static void main(String[] args) {
  B b=new B();
  A a=b;
  a.info();
 }
}
A.B info
  A info

B. A info
   B info
C.A info
D.B info

正确答案:D

7. 请看下列代码的输出结果是:
public class Bootchy {
 int bootch;
 String snootch;
 public Bootchy() {
  this("snootchy");
  System.out.print("first ");
 }
 public Bootchy(String snootch) {
  this(420, "snootchy");
  System.out.print("second ");
 }
 public Bootchy(int bootch, String snootch) {
  this.bootch = bootch;
  this.snootch = snootch;
  System.out.print("third ");
 }
 public static void main(String[] args) {
  Bootchy b = new Bootchy();
  System.out.print(b.snootch + " " + b.bootch);
 }
}
A. first second third snootchy 420
B. third second first snootchy 420
C. third first second snootchy 420
D. first second first third snootchy 420

正确答案:B

8. 下面关于final说法正确的是:()。
A.final修饰类时,该类能被继承。
B.final修饰方法时,该方法能被重写。
C.当使用static final 修饰的常量时,将采用编译期绑定的方式。
D.当使用final和abstract共同修饰一个类时,final应至于abstract之前。

正确答案:C

9.程序执行的结果是()。
  public class Test {
    String name="Tom";
    public Test(String name){
        name=name;
    }
    public static void main(String [] args){
        Test t = new Test("Jack");
        System.out.println(t.name);
    }
  }
A.null
B.Tom
C.Jack
D." "

正确答案:B

10. 实现Point类的equals方法,具体逻辑为:“成员变量x和y分别相等的Point对象被视为相等”。
public class Point {
 private int x;
 private int y;
  ...
 public boolean equals(Object obj) {
  《填入代码》
 }
}
 《插入代码》处应填入的代码正确的是:
A. if(obj.x == this.x || obj.y == this.y){
         return true;
    }
    return false;
B. if(obj.x == this.x && obj.y == this.y){
         return true;
    }
         return false;
C. if(!(obj instanceof Point)) return false;
    if(((Point)obj).x == ((Point)obj).y && this.x == this.y){
         return true;
    }
         return false;
D. if(!(obj instanceof Point)) return false;
    if(((Point)obj).x == this.x && ((Point)obj).y == this.y){
         return true;
    }
    return false;
正确答案:D

11.下列代码的运行结果是()。
public class TestOne implements Runnable {
    public static void main(String[] args) throws Exception {
        Thread t = new Thread(new TestOne());
        t.start();
        System.out.print("Started");
        t.join();
        System.out.print("Complete");
    }
    public void run() {
        for (int i = 0; i < 4; i++) {
            System.out.print(i);
        }
    }
}
A.StartedComplete
B.StartedComplete0123
C.Started0l23Complete
D.0123StartedComplete

正确答案:C

解析:主线程运行到Thread t = new Thread(new TestOne());t.start();新建一个线程并且该线程处于runnable状态,然后打印出“started”,当运行到t.join()时,该线程让出cpu时间,其他线程运行完后便执行run方法,最后打印出complete

12. Java语言可以跨平台的原因是:
A. Java面向对象
B. Java虚拟机
C. Java垃圾回收机制
D. Java编译器

正确答案:B

13.下列属于不合法Java标识符的是()。
A. _mem
B. 12a
C. M12
D. $12

正确答案:B

14. 数据类型int、char和double所占用内存字节数分别是:()。
A. 4、2和8
B. 2、2和4
C. 2、1和8
D. 4、4和4

正确答案:A

15. Java语言中int类型表示整数的最大范围是:
A. -2147483647 ~ 2147483647
B. -2147483648 ~ 2147483647
C. -32767~32767
D. -32768~32767

正确答案:B

16. 如下方法声明中,错误的是()。
A.public void say()
  {  System.out.print(“Hi”); }
B.public void say()
  {  System.out.print(“Hi”); return;  }
C.public int say()
  {  System.out.print(“Hi”); return; }
D.public int say()
  {  System.out.print(“Hi”); return 0; }
正确答案:C

17.执行下列语句:
int a = 0x9af700; //1001 1010 1111 0111 0000 0000
a <<= 2;
变量a的值为:()。
A. 0x26bdc00
B. 0xc6bdc00
C. 0x3fa0000
D. 0x7e02ffff

正确答案:A

18.下列语句创建对象的总个数是:()。
String s=”a”+”b”+”c”+”d”+”e”;
A.1
B.2
C.3
D.4

正确答案:A

19. 下列不属于Java运算符的是()。
A. >>
B. >>>
C. <<
D. <<<

正确答案:D

20.请看下列代码:
 public String makinStrings() {
  String s = "Fred";
  s = s + "47";
  s = s.substring(2, 5);
  s = s.toUpperCase();
  return s.toString();
 }
调用makinString方法,得到的字符串长度是:
A. 1
B. 2
C. 3
D. 4

正确答案:C

21. 下列Java标识符,错误的是()
A._sys_varl
B.$change
C.User_name   
D.1_file
正确答案:D

22.请看下列代码:
package domain;
public class Point {
    private int x;
    private int y;
    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
    public String toString() {
        return "x=" + x + ",y=" + y;
    }
}
和:
Point p = new Point(1, 2);
System.out.println(p);
不覆盖toString方法和覆盖toString方法,程序的输出结果分别是:
A. domain.Point@hashCode和x=1,y=2
B. x=1,y=2和domain.Point@hashCode
C. x=1,y=2和x=1,y=2
D. domain.Point@hashCode和domain.Point@hashCode
正确答案:A

23. 下面for语句,存在编译错误的是()。
A. for( ; ; ){}
B. for(int i=0; i < 100;i++){}
C. for(int i = 0, j=0; ;i++,j++){}
D. for(int i = 0; i < 10){}
正确答案:D

24. IO 包中,唯一代表磁盘本身的对象类是()。
A.FileInputStream  
B.File
C.InputStream     
D.BufferedReader
正确答案:B

25. 关于下列代码说法正确的是:
public class A {
 private int counter = 0;
 public static int getInstanceCount() {
  return counter;
 }
 public A() {
  counter++;
 }
 public static void main(String[] args) {
  A a1 = new A();
  A a2 = new A();
  A a3 = new A();
  System.out.println(A.getInstanceCount());
 }
}
A. 该类编译失败
B. 输出:1
C. 输出:3
D. 输出:0
正确答案:A

26. 运行下列代码:
int[] oneArr = { 2, 11, 26, 27, 37, 44, 48, 60 };
int[] twoArr = { 19, 35, 49, 55, 58, 75, 83, 84, 91, 93 };
int[] threeArr = new int[oneArr.length + twoArr.length];
int p = 0, q = 0;
while (p < oneArr.length && q < twoArr.length) {
   threeArr[p + q] =
   oneArr[p] < twoArr[q] ? oneArr[p++] : twoArr[q++];
}
if (p < oneArr.length) {
      System.arraycopy(oneArr, p, threeArr, p + q, oneArr.length - p);
}
else if (q < twoArr.length) {
        System.arraycopy(twoArr, q, threeArr, p + q, twoArr.length - q);
}
System.out.println(Arrays.toString(threeArr));
输出的结果是:()。
A. [2,11,26,27,37,44,48,60,19,35,49,55,58,75,83,84,91,93];
B. [2,11,19,26,27,35,37,44,48,49,55,58,60,75,83,84,91,93];
C. [19,35,49,55,58,75,83,84,91,93,2,11,26,27,37,44,48,60];
D. [2,19,11,35,26,49,27,55,37,58,44,75,48,83,60,84,91,93];
正确答案:B

27. 下列代码编译和运行的结果是:
public class A {
 void process() throws Exception {
  throw new Exception();
 }
 public static void main(String[] args) {
  A a = new B();
  a.process();
 }
}
class B extends A {
 void process() {
  System.out.println("B ");
 }
}
A. 输出:B
B. 无输出
C. B类的process方法处,出现编译错误
D. 代码a.process();行,出现编译错误
正确答案:D

28.请看下列代码:
class ClassA {}
class ClassB extends ClassA {}
class ClassC extends ClassA {}
public class Test{
 public static void main(String[] args) {
  ClassA p0 = new ClassA();
  ClassB p1 = new ClassB();
  ClassC p2 = new ClassC();
  ClassA p3 = new ClassB();
  ClassA p4 = new ClassC();
  <插入代码>
 }
 }
可以在<插入代码>处,填入的代码正确的是()
A.p0 = p1;
B.p1 =p2;
C.p2 = p4;
D.p2 = (ClassC)p1;
正确答案:A

29. 下列代码编译和运行的结果是:
 public static void main(String[] args) {
   String[] elements = { "for", "tea", "too" };
   String first = (elements.length > 0) ? elements[0] : null;
   System.out.println(first);
 }
A. 编译出错
B. 输出:tea
C. 输出:for
D. 输出:null
正确答案:C

30.请看下列代码:
  public static void main(String[] args) {
       <插入代码>
        System.out.println(s);
    }
  如果程序输出的结果是4247,那么在<插入代码>处应该填入代码是()。
A.String s = "123456789";
   s = (s-"123").replace(1,3,"24") - "89";
B.StringBuffer s = new StringBuffer("123456789");
  s.delete(0,3).replace( 1,3, "24").delete(4,6);
C.StringBuffer s = new StringBuffer("123456789");
  s.substring(3,6).delete( 1 ,3).insert( 1, "24");
D.StringBuilder s = new StringBuilder("123456789");
  s.substring(3,6).delete( 1 ,2).insert( 1, "24");
正确答案:B

31. 下列赋值语句中,正确的是()。
A. byte b1 = 10, b2 = 20;
byte b=b1+b2;
B. byte b1 = 10, b2 = 20;
byte b=~b1;
C. byte b1 = 10, b2 = 20;
byte b=b1>>1;
D. byte b1 = 10;
byte b=++b1;
正确答案:D

解析:“++”和“+=”自动完成类型转换

32. A类中有一个方法:protected int  print(String str){},B类继承A类,以下方法能在B类中重写A类中print()方法的是: ()。
A.public int  print(String str){}
B.private int  print(String str){}
C.private void  print(String str){}
D.public void  print(String str){}

正确答案:A

33.下列代码编译和运行的结果是()。
public class A {
  public void start() {
    System.out.println("TestA");
 }
}
public class B extends A {
  public void start() {
    System.out.println("TestB");
  }
  public static void main(String[] args) {
    ((A) new B()).start();
  }
}

A.输出:TestA
B.输出:TestB
C.输出:TestA  TestB
D.编译错误
正确答案:B

34.运行下列程序:
String str = "**oracle***oracle*****oracle***";
String str1 = "oracle";
int index = 0;
while ((index = str.indexOf(str1, index)) != -1) {
       System.out.print(index+””);
       index += str1.length();
}
控制台输出的结果是:()。
A.1 10 21
B.2 11 22
C.3 13 23
D.5 13 22

正确答案:B

35.下列代码的运行结果是()。
public class Animal {
  public String noise() {
    return "peep";
  }
 public static void main(String[] args) {
    Animal animal = new Dog();
    Cat cat = (Cat)animal;
    System.out.println(cat.noise());
 }
}
class Dog extends Animal {
 public String noise() {
  return "bark";
 }
}
class Cat extends Animal {
 public String noise() {
  return "meow";
 }
}
A.peep
B.bark
C.meow
D.抛出运行时异常
正确答案:D

36. 下列关于Java的说法,错误的是()。
A. Java语言是纯粹的面向对象的语言。
B. Java程序的运行必须有Java虚拟机(JVM)的支持。
C. Java语言支持指针。
D. Java语言支持多重继承。
正确答案:CD

37. 以下创建线程的方式正确的是:
A. class Runner implements Runnable {
 public void run() {线程体…}
  public static void main(String args[]) {
           Runner r = new Runner();
          Thread t = new Thread(r);
            t.start();
  }
}
B. class Runner implements Runnable {
 public void run() {线程体…}
     public static void main(String args[]) {
          Runner t = new Runner();
            t.start();
  }
}
C. class Runner extends Thread {
 public void run() {线程体… }
public static void main(String args[]){
    Thread t = new Runner();
        t.start();
}
}
D. class Runner {
  public static void main(String args[]){
      Thread t = new Thread(){
         public void run() {线程体… }
      };
       t.start();
  }
正确答案:ACD

38. 请看下列代码:
public class Key {
    private long id1;
    private long 1d2;
    // class Key methods
 }
程序员开发Key类,作为java.util.HashMap的key,那么Key应该覆盖的两个方法是:
A. public int hashCode()
B. public boolean equals(Key k)
C. public int compareTo(Object o)
D. public boolean equals(Object o)
正确答案:AD

39.查看如下代码:
public class Foo {
       public void method(String str,int age){}
}
下列选项中,和 Foo 类中 method 方法重载的方法是()。
A.public int method(String str,int age){}
B. public void  method(int year,String s){}
C. public int  method(int year,String s){}
D. public int method(String str){}
正确答案:BCD

40. 题目代码的功能为:输出每个字符在一个字符串中出现的次数(不区分大小写)。
String str = "ewrwqFrewqfsadfdsfdsfs";
str=str.toLowerCase();
int max_length = 0;
while (str.length() > 0) {
   《插入代码》
}

A. int length = str.length();
char first=str.charAt(0);
String strNew = str.replaceAll(String.valueOf(first), "");
if (length>strNew.length()) {
  max_length = length - strNew.length();
  System.out.println(first+":"+max_length);
}
B. int length = str.length();
char first=str.charAt(0);
String strNew = str.replaceAll(String.valueOf(first), "");
if (length>strNew.length()) {
  max_length = length - strNew.length();
  str = strNew;
  System.out.println(first+":"+max_length);
}
C. int length = str.length();
String first = str.substring(0, 1);
String strNew = str.replaceAll(first, "");
if (length>strNew.length()) {
  max_length = length - strNew.length();
  str = strNew;
  System.out.println(first+":"+max_length);
}
D. int length = str.length();
String first = str.substring(0, 1);
String strNew = str.replaceAll(first, "");
if (length>strNew.length()) {
  max_length = length - strNew.length();
  System.out.println(first+":"+max_length);
}
正确答案:BC

41.阅读理解
public class A {
    public A() {
       System.out.print("A ");
    }
    public A(String s) {
       System.out.print(s);
    }
    public void fun() {
       System.out.println("A.fun()");
    }
}
public class B extends A {
    public B() {
       System.out.print("B ");
    }
    public B(String s) {
        super(s);
    }
    public void fun() {
       System.out.println("B.fun()");
    }
public void sun(){
     System.out.println("B.sun()");
}
    public static void Main() {
       A a = new B();
       a.fun();
    }
}
(1).下列关于上述代码中构造方法的描述,错误的是()。
A.实例化对象 a 时,将默认调用父类的无参构造方法
B.类 B中使用 super 关键字,是为了调用父类的含有一个参数的构造方法
C.实例化对象 a 时,父类A和子类B的构造方法都会被调用到
D.实例化父类对象时,调用父类 A 的构造方法;实例化子类对象时,则只调用子类B的构造方法
正确答案:D

(2).该代码运行后,输出为:()。
A.A B A.fun()
B.A B B.fun()
C.B A A.fun()
D.B A B.fun()
正确答案:B

(3).如果 main 方法中如此调用:
public static void main(String[] args)
{
    A a = new B("Hello,");
    a.fun();
}
其他代码不变,该代码运行后,输出为:()。
A.A A.fun()
B.B A.fun()
C.Hello,A.fun()
D.Hello,B.fun()
正确答案:D

(4).如果 main 方法中如此调用:
public static void main(String[] args)
{
    A a = new A();
    a.sun();
}
其它代码不变,下列说法正确的是:()。
A.运行输出结果为:A B.sun()
B.运行输出结果为:A B B.sun()
C.运行输出结果为:B A B.sun()
D.编译错误
正确答案:D

(5).下列关于上述代码的描述,正确的是()。
A.如果将A类定义成public abstract class A,那么方法fun必须定义成抽象方法
B.如果将A类定义成public abstract class A,那么A类中必须有一个抽象方法
C.如果将A类中的方法fun定义成public abstract void fun(),那么A类必须是抽象类
D.如果将A类定义成public abstract class A,那么A类应然可以实例化对象
正确答案:C

42.歌德巴赫猜想的近似证明
歌德巴赫猜想是说任何一个大于2的偶数都能表示为两个素数之和,请编写一个Java程序,验证1~100内歌德巴赫猜想的正确性。
public class Guess {
    public static void main(String[] args) {
        System.out.println("在1~100范围内,现在开始证实哥德巴赫猜想:");
        if (testifyGuess(1, 100)) {
            System.out.println("在 1~100范围内,哥德巴赫猜想是正确的。");
        } else {
            System.out.println("哥德巴赫猜想是错误的");
        }
    }
    /**
     * 判断1~100范围内的所有偶数是否符合哥德巴赫猜想,符合则返回true,反之则返回false
     */
    public static boolean testifyGuess(int low, int high) {
        int i, j = 0;
        boolean flag = true;
        for (i = low; i <= high; i++)
           if (          空白处1        ) // 在1~100之间选取大于2的偶数进行哥德巴赫猜想测试
                if (isGoldbach(i)) {
                    j++;                   // j用来控制输出格式,每行输出5个数据
                    if (j == 5) {
                        System.out.println();
                        j = 0;
                    }
                } else {
                    flag = false;
                    break;
                }
        return flag;
    }
    /**
     *判断参数a是否符合哥德巴赫猜想
     */
    public static boolean isGoldbach(int a) {
        int i;
        boolean flag = false;
        for (i = 1;          空白处2         ; i++) {
           // 根据试题分析中的表达式,传入相关的两个参数
            if (          空白处3         ) { 
                flag = true;
                System.out.print(a + "=" + i + "+" + (a - i) + "  ");
                          空白处4       
            }
        }
        return flag;
    }
    /**
     * 判断参数i是否是素数,是则返回true反之则返回false
     */
    public static boolean isPrime(int i) {
        int n;
        boolean flag = true;
        // 1本身不是素数,因此需把这个特殊的数字抛出
        if (1 == i)                     
            flag = false;
      /*
       * 质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除数
       * 判断i是否是素数的一个方法是看2~i-1之间有其因子(能被2整除),
       * 有则不是素数返回false,反之则返回true
       */
        for (          空白处5         )       
            if (i % n == 0) {
                flag = false;
                break;
            }
        return flag;
    }
}
(1).下列选项中,能填入空白处1的代码是(    )
A.i % 2 == 0 && i > 2
B.i % 2 == 0 && i < 2
C.i / 2 == 0 && i > 2
D.i / 2 == 0 && i < 2
正确答案:A

(2).下列选项中,能填入空白处2的代码是(    )
A.i <= a % i;
B.i <= a / i;
C.i <= a % 2;
D.i <= a / 2;
正确答案:D

(3).下列选项中,能填入空白处3的代码是(    )
A.isPrime(i-1) && isPrime(a - i)
B.isPrime(i) && isPrime(a + i)
C.isPrime(i) && isPrime(a - i)
D.isPrime(i) && isPrime(a)
正确答案:C

(4).下列选项中,能填入空白处4的代码是(    )
A.final;
B.break;
C.continue;
D.static;
正确答案:B

(5).下列选项中,能填入空白处5的代码是(    )
A.n = 2; n <= i - 1; n++
B.n = 2; n <= i; n++
C.n = 1; n <= i - 1; n++
D.n = 1; n <= i; n++
正确答案:A

转载于:https://www.cnblogs.com/grape/p/3305994.html

你可能感兴趣的:(java习题)