《java程序设计》复习题
第一部分  选择题(单选)
1.
javac 是 java的 (B)
A.解释器
B.编译器
C.小程序浏览器
D.调试器
2.
appletviewer是java的 (C)
A.解释器
B.编译器
C.小程序浏览器
D.调试器
3.
编译一个定义了三个类和三个方法的 java源码文件,总共会产生几个字节码文件,其扩展名是什么?(C)
A.5个字节码文件,其扩展名是“.java”
B.2个字节码文件,其扩展名是“.java”
C.3个字节码文件,其扩展名是“.class”
D.2个字节码文件,其扩展名是“.class”
4.
java源码文件的名称与主类的名称(B)
A.必须相同但不区分大小写
B.必须相同且区分大小写
C.必须不同
D.任意
5.
下面那些选项不能用做变量名的首字符(C)
A.字母
B.下划线(_)
C.数字
D.美元符号($)
6.
下面哪个不是java的原始数据类型?(B)
A.short
B.boolean
C.Int
D.Float
7.下面哪条语句不会出现编译警告或错误?(A)
A.float f=1.3F;
B.chat c =”a”;
C.float f=1.3;
D.boolean d=null;
8.
以下声明常量不正确的是(B)
A.final int PI=3;
B.final PI=3;
C.static final int PI=3:
D.public static final int PI=3;
9.
java定义了4个整型数据类型:字节性(byte)短整型(short) 整型(int) 长整型(long),其中byte占用内存为(A)
A.8bit
B.16bit
C.32 bit
D.64bit
10.
5%2.1的值是(D)
A.1
B.0
C.0.8
D.不能通过编译
11.
-11&3的值是(A)
A.1
B.3
C.9
D.–11
12.
8<<2的值是(A)
A.2
B.4
C.8
D.32
13
若有int a = 1, b= 2 , c = 3, d=4; 则表达式a>b?a:c>d?c:d的值是(D)
A.1
B.2
C.3
D.4
14.
以下为合法类型转换的为(D)
A.( int )”A”
B.(char)”A”
C.(boolean)(2-2)
D.(char) (651/12)
15
下面哪条语句是正确的?(C)
A.int a={1,2,3,4,5,};
B.int b=(1,2,3,4,5)
C.int c[]={1,2,3,4,5}
D.int []d={1,2,3,4,5}
16.
对于数组int  a[];下面那条语句可以输出数据a的元素个数?D
A.System.out.println(a.size);
B.System,out.println(a.size());
C.System.out.println(a.length());
D.System.out.println(a.length);
17.
可以用作switch表达式的基本数据类型分别是(B)
A.boolean
B.byte
C.float
D.double
18.
下面的while语句退出时.i的值是(D)
byte b=1;
int i = 0 ;
while(b++>0)
i=i+1;
A.126
B.0
C.127
D.出现死循环,i的值无穷大
19.
设J_Hello.java文件内容如下:
class J_Hello{
static void main(String args[]){
System.out.println(“Hello!”);
}
编程语言有哪几种类
}
下面说法正确的是(D)
A.J_Hello.java无法通过编译
B.J_Hello.java可以通过编译,但运行时出现“Main method not public”提示信息
C.J_Hello.java可以通过编译,但无法运行,且无任何提示信息
D.J_Hello.java可以通过编译,可以正常运行,输出“Hello!”
20
下面哪个类声明是正确的(D)
A.abstract final class car{}
B.abstract private car(){}
C.protected private car{}
D.public abstract class car{};
21.
下列(C)的说法是错误的。
A.Java 语言只允许单一继承
B.Java语言允许多个接口
C.Java语言不允许一个类派生多个子类
D.Java语言的单一继承使得代码更加可靠
22.
下述(A)说法是正确的
A.实例变量是类的成员变量
B.实例变量是用static关键字声明的
C.方法变量在方法执行时创建
D.方法变量在使用之前不用初始化
23.
使用继承的优点(A)
A. 基类的大部分功能可以通过继承关系自动进入派生类
B.继承将基类的实现细节暴露给派生类
C. 基类实现出现问题,、就会影响到派生类
D.可在运行期决定是否选择继承代码,有足够的灵活性
24.
下列关于修饰符混用的说法,错误的是(A)
A.abstract 不能与final并列修饰同一个类
B.abstract 类中不能有private的成员
C.abstract 方法必须在abstract类中
D.static方法中能处理非static的属性
25
对于下列代码:
public class Parent
{public int addValue(int a, int b)
{
int s;
s=a+b;
return s;}
}A
class Child extends Parent{…..}
Child类中欲把Parent类中的addValue方法覆盖,下述什么方法可以加入类Child中?A
A.private int addValue(int a,int b){….}
B.public float addValue(int a,int b){….}
C.public int addValue(int a,int b){….}
D.public int addValue(int a,int b)throws MyException{….}
26 声明成员变量为临时变量(又称为过渡变量)所用的保留字是(C)
A.final
B.abstract
C.transient
D.temp
27.
声明公共变量所用的保留字是(A)
A.public
B.private
C.protectede
D.static
28
声明受保护变量所用的保留字是(C)
A.public
B.private
C.protected
D.static
29
设有下面的程序段
1.class StaticStuff
2.{
3.static int x=10;
4.static {x+=5;}
5.public static void main(String args[])
6.{
7.System.out.println(“x=”+x);
8.}
9.static {x/=3;}
10.}
哪个说明是正确的()
A.4行和9行不能通过编译,因为缺少方法名和返回类型
B.9行不能通过编译,因为只能有一个静态初始化器
C.编译通过,执行结果为:x=5;
D.编译通过,执行结果为:x=3;
30
对于下述类定义哪个说法正确?(A)
class MyString extends String{…..}
A.可以成功编译
B.无法编译,因为没有main方法
C.无法编译,因为String 是抽象类
D.无法编译,因为String是final类
31
不能在Java派生类中被覆盖的方法是(C)
A.构造函数
B.动态方法
C.final方法
D.抽象方法
32
关于方法覆盖,下面哪个说法是错误的(A)
A.方法覆盖可以发生在任意类之间
B.覆盖方法与被覆盖的方法返回值类型相同
C.如果被覆盖的方法是用public 修饰的,覆盖方法也必须用public 修饰
D.覆盖方法不能抛出比被覆盖的方法更多的异常
33
下面哪个方法声明是正确的?B
A.abstract final String abc(){}
B.public abstract abc(){}
C.private static void abc(){}
D.public abstract static void abc(){}
34
编译以下代码,将出现什么情况?()
abstract class Shape{
abstract void draw();
}
class Square extends Shape{}
A.Square类和Shape类都可以成功编译
B.Square类无法编译,但Shape可以编译
C.Shape类无法编译,但Square可以编译
D.Square类和Shape类都无法编译
35
关于Java的垃圾回收机制,下面那些结论是正确的?()