Java练习题
一、单选题
1. Java程序的执行过程中用到一套JDK工具,其中java.exe是指( B )
A. Java文档生成器 B. Java解释器
C. Java编译器 D. Java类分解器
2. 编译Java程序的命令文件名是( B )
A. java.exe B. javac.exe
C. javac D. appletviewer.exe
3. 编译Java程序file.java后生成的程序是( C )
A. file.html B. File.class
C. file.class D. file.jar
4. Java语言与其他主要语言相比较,独有的特点是( C )
A. 面向对象 B. 多线程 C. 平台无关性 D. 可扩展性
5. 声明Java独立应用程序main()方法时,正确表达是( A )
A. public static void main(String[] args){…}
B. private static void main(String args[]){…}
C. public void main(String args[]){…}
D. public static void main(){…}
6. 下列有关Java语言的叙述中,正确的是( B )。
A. Java是不区分大小写的 B. 源文件名与public类型的类名必须相同
C. 源文件的扩展名为.jar D. 源文件中public类的数目不限
7. Java用来定义一个新类时,所使用的关键字为 ( A )。
A. class B. public C. struct D. class 或 struct
8.一个可以独立运行的Java应用程序( D )。
A. 可以有一个或多个main方法 B. 最多只能有两个main方法
C. 可以有一个或零个main方法 D. 只能有一个main方法
9. 下面哪个是Java语言中正确的标识符( B )
A. 3D B. $this C. extends D. implements
10. 下面哪个不是Java的保留字或关键字?( B )
A. default B. NULL C. throws D. long
11. 对if(…)句型括号中的表达式,下列Java类型中哪一个是合法的?( C )
A. byte B. short
C. boolean D. Object reference
12. Java中整型包括( D )。
A. int,byte,char B. int,short,long,byte,char
C. int,short,long,char D. int,short,long,byte
13. 哪个是将一个十六进制值赋值给一个long型变量?( D )
A. long number = 345L; B. long number = 0345;
C. long number = 0345L; D. long number = 0x345L;
14. 下面的哪个赋值语句是不对的?( A )
A.float f = 11.1; B.double d = 5.3E12;
C.double d = 3.14159; D.double d = 3.14D;
15. 下列哪个数代表八进制整数?( D )
A. 0XA6 B. -1E3 C. 1840 D. 0144
16. 在 Java 中,表示换行符的转义字符是( A )。
A. '\n’ B. '\f' C. 'n' D. \dd
17. 下列代码真正出错的在那一行: ( C )
1) public void modify() {
2) int I, j, k;
3) I = 100;
4) while ( I > 0 ) {
5) j = I * 2;
6) System.out.println (" The value of j is " + j );
7) k = k + 1;
8) I--;
9) }
10}
A. line 4 B. line 6 C. line 7 D. line 8
18. 以下代码段执行后的输出结果为( C )。(符号随被除数)
int x=-3; float y=10.0f;
System.out.println(y%x);
A. 不能成功编译 B. -1.0 C. 1.0 D. -1
19. 执行完以下代码int [ ] x = new int[10];后,以下哪项说明是正确的( A )
A.x[9]为0 B.x[9]未定义 C.x[10]为0 D.x[0]为空
20. 对数组的定义及初始化不正确的方法是:( B )
A.int array[]; B.int array[8];
C.int[] array=new int[8]; D.int array[]=new int[8];
21. 下面哪条语句定义了5个元素的数组( A )
A. int [] a={22,23,24,25,12}; B. int a []=new int(5);
C. int [5] array; D. int [] arr;
22. 定义一维数组名为 abc时,下面哪项可以得到数组元素的个数?( B)
A.abc.length( ) B.abc.length C.len(abc) D.ubound(abc)
23. 设有定义语句int a[]={66,88,99}; 则以下对此语句的叙述错误的是( C )。
A. 定义了一个名为a的一维数组 B. a数组有3个元素
C. a数组的下标为1~3 D. 数组中的每个元素是整型
24. 根据下面给出的代码,判断那个叙述是对的?( C )(p29)
public class Person{
static int arr[]=new int[10];
public static void main(String a[]){
System.out.println(arr[1]);
}
}
A.编译时将发生错误 B.编译时正确但是运行时出错
C.输出为0 D.输出为null
25.以下程序执行完后,c与result的值是:( A )
boolean a=false;
boolean b=true;
boolean c=(a&&b)&&(!b);
int result=c==false?1:2;
A. c: false; result:1; B. c: true; result:2;
C. c: true; result:1; D. c: false; result:2;
26. 代码“Green eggs”+“Ham”的结果是什么?( C )。
A. Green eggs+Ham B. Green eggs Ham
C. Green eggsHam D. Error
27. 下面哪个是对字符串String的正确定义 ( A )
A.String s1=null; B.String s2=’null’ ;
C.String s3=(String) ‘abc’ ; D.String s4=(String) ‘\uface’;
28. 给出下面一段程序,选择运行结果( C )
public class X{
public static void main(String [] args){
String names[]=new String[5];
for(int x=0; x
System.out.println(names[2]);}
}
命令行执行:java X a b命令后,其输出结果是下面哪一个?
A. names B. b C. null D. 运行出现异常
29. 哪种方法返回String中的字符数?( B )。
A. size() B. length() C. width() D. girth()
30. 下面哪个不是String类的方法?( C )
A. subString() B. startsWith() C. toString() D. toUpperCase()
31. 关于以下程序段,正确的说法是( C )
1. String s1=“a”+“b”;
2. String s2=new String(s1);
3. if(s1==s2)
4. System.out.println(“= = is succeeded”);
5. if (s1.equals(s2))
6. System.out.println(“.equals() is succeeded”);
A. 行4与行6都将执行 B. 行4执行,行6不执行
C. 行6执行,行4不执行 D. 行4行6都不执行
32. 下面关于java中类的说法哪个是不正确的?( C )
A. 类体中不仅可以有变量定义和成员方法的定义,还可包含静态代码块。
B. 构造方法是类中的特殊方法。
C. 类一定要声明为public的,才可以执行。
D. 一个java文件中可以有多个class定义。
33. 下面关于变量及其范围的陈述哪个是不对的?( B )
A.实例变量是类的成员变量
B.实例变量用关键字static声明
C.在方法中定义的局部变量在该方法被执行时创建
D.局部变量在使用前必须被初始化
34. 下列类的定义中,错误的是( B )。
A. class x { .... } B. public x extends y { .... }(p66)
C. public class x extends y { .... }
D. class x extends y implements y1 { .... }
35. 下面是程序ObjectText.java的代码段:
class Empty{}
public class ObjectTest{
public static void main(String[] args){
Empty em=new Empty();
}
}
以下错误的结论是( A )。
A. 类Empty是空的,既没有成员变量也没有成员方法
B. 类Empty非空,有一个默认的构造方法
C.类Empty中有一个构造方法Empty()
D.类Empty能够被继承
36. 下列应用程序打印多少行?( D )
public class hellotest
{ {System.out.println("hello.");}
public static void main(String[] args){
new hellotest();new hellotest();new hellotest(); }
}
A. 0 B. 1 C. 2 D. 3
37. 假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( C )
class A
{ int i;
static String s;
void method1() { }
static void method2() { }
}
A. System.out.println(a.i); B. a.method1();
C. A.method1(); D. A.method2();
38. 看下面一段程序:
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();
}
}
以上程序运行结果是:( C )
A. Aclass B. Bclass C. Aclass D. Bclass
Aclass Bclass Bclass Aclass
39. 哪一行定义了一个静态变量?( A )
A. public static int i; B.static public int i;
C. public int static i; D.int public static i;
40. MAX_LENGTH是int型public成员变量,变量值保持为常量100,其定义是( C )。
A. final public int MAX_LENGTH=100; B. public int MAX_LENGTH=100;
C. public final int MAX_LENGTH=100; D. final int MAX_LENGTH=100;
41. 若在某个类中定义了如下的方法:final void aFinalFunction( );,则该方法属于( C )。
A. 本地方法 B. 静态方法 C. 最终方法 D. 抽象方法
42. MyClass类的默认构造方法是哪一个?( B )
A. new MyClass() B. MyClass(){}
C. MyClass{} D. public class MyClass
43. 构造方法何时被调用( B )
A. 类定义时 B. 创建对象时
C. 调用对象方法时 D. 使用对象的变量时
44.对于构造方法,下列叙述不正确的是( B )。
A. 构造方法是类的一种特殊方法,它的方法名必须与类名相同。
B. 构造方法的返回类型只能是void型,且书写格式是在方法名前加void前缀。
C. 构造方法的主要作用是完成对类的对象的初始化工作。
D. 一般在创建新对象时,系统会自动调用构造方法。
45. 给出下面代码段
1. public class Test
2. { int m, n;
3. public Test() {}
4. public Test(int a) { m=a; }
5. public static void main(String arg[]) {
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. }
哪行将引起一个编译时错误?( D )
A. line 3 B. line 5 C. line 6 D. line 10
46. 在成员方法的访问控制修饰符中,下列哪个修饰符规定访问权限包含该类自身及同包的其他类和其他包的该类子类( B )。
A.默认 B.protected C.private D.public
47. 关于被私有访问控制符private修饰的成员变量,以下说法正确的是( C )
A. 可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B. 可以被两种类访问和引用:该类本身、该类的所有子类
C. 只能被该类自身所访问和修改
D. 只能被同一个包中的类访问
48. 下面哪个修饰符修饰的方法只能被本类中的其他方法使用( C )
A. protected B. static C. private D. public
49. 下面关于继承的哪些叙述是正确的? ( D )
A. 在java中允许多继承。
B. 在java中一个类只能实现一个接口。
C. 在java中一个类不能同时继承一个类和实现一个接口。
D. java的单一继承使代码更可靠。
50. 下面关于类的继承性的描述中,错误的是( C )。
A.继承是在已有的基础上生成新类的一种方法
B.Java语言要求一个子类只有一个父类
C.父类中成员的访问权限在子类中将被改变
D.子类继承父类的所有成员,但不包括私有的成员方法
51. 下面叙述中,错误的是( C )。
A.子类继承父类 B.子类能替代父类
C.父类包含子类 D.父类不能替代子类
52. 对于下列代码:
1. class Person {
2. public void printValue(int i, int j) {//... }
3. public void printValue(int i){//... }
4. }
5. public class Teacher extends Person {
6. public void printValue() {//... }
7. public void printValue(int i) {//...}
8. public static void main(String args[]){
9. Person t = new Teacher();
10. t.printValue(10);
11. }
12. }
第10行语句将调用哪行语句?( D )
A. line 2 B. line 3 C. line 6 D. line 7
53. 类Test1定义如下:
1. public class Test1{
2. public float aMethod(float a, float b){ }
3.
4. }
将以下哪种方法插入行3是不合法的。( B )
A. public float aMethod(float a,float b,float c){ }
B. public float aMethod(float c,float d){ }
C. public int aMethod(int a,int b){ }
D. private float aMethod(int a,int b,int c){ }
54. 下列关于抽象类的描述中,错误的是( C )。
A.抽象类是用修饰符abstract说明的 B.抽象类是不可以定义对象的
C.抽象类中不能有具体方法 D.抽象类通常要有它的子类
55. 下列哪个类声明是正确的( D )
A. abstract final class H1{…} B. abstract private move(){…}
C. protected private number; D. public abstract class Car{…}
56. 下列关于修饰符混用的说法,错误的是( D )
A. abstract不能与final并列修饰同一个类
B. abstract类不能有自己的构造方法
C. abstract方法所在的类必须是abstract类
D. static方法中能处理非static的属性(p51,static修饰方法的特点)
57. 在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数或参数类型各不相同。这种重复定义同名方法的行为称为对方法( C )。
A. 隐藏 B. 覆盖 C. 重载 D. Java不支持此特性
58. 在 Java 中,能实现多重继承效果的方式是( C )。
A. 内部类 B. 适配器 C. 接口 D. 同步
59. 以下哪个接口的定义是正确的?( D )
A. interface A
{ void print() { } ;}
B. abstract interface A
{ void print() ;}
C. abstract interface A extends I1, I2 // I1.I2为已定义的接口
{ abstract void print(){ };}
D. interface A
{ void print();}
60. A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明:
1. A a0=new A();
2. A a1 =new B();
3. A a2=new C();
问以下哪个说法是正确的? ( D )
A. 只有第1行能通过编译
B. 第1、2行能通过编译,但第3行编译出错
C. 第1、2、3行能通过编译,但第2、3行运行时出错
D. 第1行、第2行和第3行的声明都是正确的
61. 在finally代码块中的代码,( D )
A. 在任何错误处理代码之前执行
B. 不执行,除非在前面的try块中产生异常
C. 不能保证在任何确定的时间内执行,但是将会优先于“碎片收集”被JVM调用
D. 保证执行,无论try块中是否产生异常
62. 当方法遇到异常又不知如何处理时,下列哪种说法是正确的( B )
A. 捕获异常 B. 抛出异常
C. 声明异常 D. 嵌套异常
63. 在java的一个异常处理中,哪个语句块可以有多个 ( A )
A.catch B.finally C.try D.throws
64. 哪个关键字可以抛出异常? ( C )
A. transient B. finally C. throws D. static
65. 给出一段程序,试判断哪个是正确的结果( D )
public class myprogram{
public static void main (String args[]){
try{
System.out.print(“Hello world ”); }
finally{
System.out.println(“Finally executing”);
}
}
}
A. 无法编译,因为没有指定异常
B. 无法编译,因为没有catch子句
C. Hello world
D. Hello world Finally executing
66. Java中可以用两种方法来创建线程,一种是继承Thread类,另一种是实现( B )接口。
A. Throws B. Runnable C. Component D. Container
67. 下面哪个不是Thread类的方法?( C )
A.yield() B.sleep(long msec) C.go() D.stop()
68. Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点( B )。
A. 安全性 B. 多线程 C. 跨平台 D. 可移植
69. 以下不属于Swing的控件是( C )()
A. JPanel B. JTextField C. Canvas D. JFrame
70. 下列不属于容器的是( B )
A. Window B. TextBox
C. Panel D. ScrollPane
本文来源:https://www.2haoxitong.net/k/doc/3f68ed8f58fafab068dc0252.html
文档为doc格式