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