JAVA语言程序设计复习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择填空题:全部为多选题,只有全部正确才能得分。

1. 编译java程序的命令是___b_____;运行java程序的命令是____a____;产生java 文挡的命令是____d____;查询java类型是否是serializable类型的命令是__c______;产生java安全策略文件的命令是____e____;产生类型归档文件.jar的命令是____f____。

A. java
B. javac
C. serialver
D.javadoc
E.policytool
F.jar
2. 在一个java原文件中,import, class, package语句的顺序是____f____。

A. import class package
B. class import package
C. package class import
D. import package class
E. class package import
F. package import class
3. 下面叙述正确的有________cde____________。

A. 在一个java原文件中只能定义一个class
B. 在一个java原文件中只能定义一个interface
C. 在一个java原文件中可以定义多个class
D.在一个java原文件中可以定义多个interface
E. 在一个java原文件中可以定义多个class和interface
F. 在一个java原文件中只能定义public class
G. java原文件的前缀一定是所包含类型的名字
4. java程序中程序运行入口方法main的签名正确的有___a_____。

A. public static void main(String args[])
B. static public void main(String[] args)
C. public void static main(String[] args)
D. public void main(String args[])
5. java程序中程序入口方法main的参数代表命令行输入参数,命令行参数从____a____开始。

A. 0
B. 1
C.-1
6. 以下属于正确的java注释有____acd____。

A. //This is comment
B. /*This is comment
C. /**This is comment*/
D. /*This is comment*/
7. 以下能作为class, interface, method或variable有效标识符的有______adf__________。

A. For
B.boolean
C.23age
D. _id
E.my name
F. $this_is_a_long_variable_name
8. 以下不是java关键字的有___d_____。

A. super C.this D.NULL E.true
9. byte变量的取值范围是___b_____。

A. 0 - 65535
B.-128 ?? 127
C.-256 ?? 255
D.0 - 32767
10. 以下正确的有____ac____。

A. int i = 32;
B.float f = 45.32;
C. double d=3.2;
11. 根据以下程序选择正确答案___c_____:
public class Test {
static int total = 10;
public static void main (String args []) {
new Test();
}
public Test () {
System.out.println("In test");
System.out.println(this);
int temp = this.total;
if (temp > 5) {
System.out.println(temp);
}
}
}
A. 编译出错
B.运行时有异常
C. 编译运行都正确
12. 下面集合定义正确的有____bd____。

A. String strs[] = { ‘a’‘b’‘c’};
B. String[] strs = {“a”, “b”, “c”};
C. String[] strs = new String{“a””b””c”};
D.String strs[] = new String[]{“a”, “b”, “c”};
E.String[] strs = new String[3]{“a”, “b”, “c”};
13. 以下switch表达语句正确的有____ac____。

A. public void switchTest(char c){
switch(c){…}
}
B. public void switchTest(long c){
switch(c){…}
}
C. public void switchTest(byte c){
switch(c){…}
}
D. public void switchTest(double c){
switch(c){…}
}
14.面向对象的特性包括___g_____、____i____和____j____。

在java中访问权限的限制由严
格到宽松依次是____e____、____h____、____b____和___a_____。

A.public
B.protected
C.identifier
D.data
E.private
F.operations
G.inheritance
H.default(no modifier)
I.encapsulation J.polymorphism
15. Java方法的参数传递对于基本数据类型如int, byte等,参数传递是____c____;对
自定义数据类型,参数传递是___a_____。

A. by reference
B.by pointer
C. by value
D.by address
16. 下面程序出错的有___8,10_____行。

1. class Student{
2. private String name; private int age;
3. public Student(){}
4. public void setName(String name){ =name; }
5. void setAge(int age){ this.age= age; }
6. }
7. public class StudentTest{
8. public void static main(String[] args){
9. Student s = new Student();
10. = “Hellen”;
11. s.setAge(20);
12. }
13. }
17. 方法重载(overloading)必须满足___bce_____。

A. 在不同class中定义的方法
B.在同一类中定义的方法
C. 方法名必须相同
D.返回类型必须相同
E. 参数一定不同
F.参数可以相同
18. 对于构造方法(constructor)描述正确的有___ac_____。

A. 构造方法没有返回类型
B.构造方法一定是public的方法
C.如果我们没有显示定义构造方法,系统会提供一个缺省的
D.构造方法不能重载
19.在java语法中允许___b_____继承,____a____方法不能被继承,______cd__被继承,显示调用父类型的构造方法是通过调用___e_____来完成的。

A. constructor
B. single
C. methods
D. fields
E. super
19. 请看以下程序:
class Vehicle {
public void drive() {
System.out.println("Vehicle: drive");
}
}
class Car extends Vehicle {
public void drive() {
System.out.println("Car: drive");
}
}
public class Test {
public static void main (String args []) {
Vehicle v;
Car c;
v = new Vehicle();
c = new Car();
v.drive();
c.drive();
v = c;
v.drive();
}
}
以下描述正确的有___c_____。

A.对于语句v=c;会导致编译错误
B.对于语句v=c;会导致运行错误
C.运行输出:
Vehicle: drive
Car: drive
Car: drive
D.运行输出:
Vehicle: drive
Car: drive
Vehicle: drive
20. 程序:
public class StaticTest {
static {
System.out.println("Hi there");
}
public void print() {
System.out.println("Hello");
}
public static void main(String args []) {
StaticTest st1 = new StaticTest();
st1.print();
StaticTest st2 = new StaticTest();
st2.print();
}
}
什么时候字符串“Hi there”会输出____c____。

A.永远都不会输出
B.创建st1和st2时
C.第一次将StaticTest类型装载进内存时
D.显示调用print方法时
21. 以下描述正确的有___bcde_____。

A.abstract class一定有abstract method(s)
B.abstract class可以没有abstract method(s)
C.定义abstract class的目的是为了被继承
D.interface中定义的方法全是abstract methods
E.interface中定义的变量全部是final static变量
22. 一个匿名的内置类有可能___abd_____。

A.继承其他的类
B.实现了某一接口
C.定义了构造方法
D.可以使用成员变量
23. ____a____又叫做unchecked exception。

Checked Exception通常继承____b____。

在方法签名上指定可能有异常产生用关键字___e_____, 在程序中产生异常用关键字___d_____。

获得异常的简单描述信息调用方法____c____, 获得详细的异常栈信息调用方法____f____。

A. RuntimeException
B. Exception
C. getMessage
D. throw
E.throws
F.printStackTrace
24. 在图形编程中,将不同的控件按区域排列用___d_____布局管理器;让控件自动排列并保持大小用___c_____布局管理器;让控件按相同大小排列用___b_____布局管理器;一次只有一个控件可见的布局管理器是__a______。

A. CardLayout
B. GridLayout
C. FlowLayout
D. BorderLayout
25. 图形编程通常按________cabd__________顺序。

A.设置布局管理器(Layout manager)
B.向容器中增加控件
C.选择容器
D.为控件设置事件处理器
26. 完成如下代码,按照FlowLayout的布局方式向JFrame中添加一JButton:
JFrame frame = new JFrame(“Simple GUI”);
FlowLayout fl = new FlowLayout();
frame.setLayout(f1);
JButton btn = new JButton(“OK”);
frame.add(btn);
27. 事件处理方式采用了observer(观察者)设计模式,事件编程模式三要素是___a_____、____b____和___c_____。

其中, ____b____通常继承java.util.EventObject, __c______通常继承java.util.EventListener。

A.Event source
B.Event object
C.Event listener
D.Helper
E.Model
28. JButton是____b____事件的事件源,它通过方法____a____注册事件侦听器,事件侦听器必须实现接口____c____,当事件发生时侦听器的方法____e____被调用,在此方法中调用___b_____的方法___d_____可以获得事件源。

A. addActionListener
B. ActionEvent
C.ActionListener
D.getSource
E.actionPerformed
29. JFrame的却省布局管理器是__b____, JDialog的却省布局管理器是___b___, JPanel 的却省布局管理器是___a_____。

A. FlowLayout
B.BorderLayout
C.GridLayout
D.GridBagLayout
30. 在swing编程中,用作提示信息的控件是____f____, 作单行文本编辑的控件是___d_____, 用作多行文本编辑的控件是____a____,可编辑HTML等类型文档的控件是___e_____,在界面上显示多条记录并可多重选择的控件是__b______, 从下拉框中选择记录的空间是___c_____。

A. JTextArea
B. JList
C. JComboBox
D. JTextField
E. JEditorPane
F. JLabel
31. 创建线程(Thread)的方式有两种,一种是继承类____b____,另一种是实现接口__c______。

启动线程的方法是___d_____。

线程启动后运行的是___a_____里的代码。

A.run
B.Thread
C.Runnable
D.start
32. 完成以下代码创建并启动线程:
public class TestThread implements Runnable{
public void run(){
for(int i = 0; i < 10000; i++)
System.out.println(i);
}
public static void main(String[] args){
TestThread tt = new TestThread();
Thread t = ________;
t.________;
}
}
33. 判断一个线程是否被中断,调用方法__c______;中断一个线程,调用方法____a____;
等待一个线程退出,调用方法___b_____;一个线程放弃执行权利调用方法__d______。

A. interrupt
B.join
C.isInterrupted
D.yield
34. 并发控制是多线程编程的难点。

一个线程要等待某个条件的满足调用方法___b_____;
通知某一个处于等待状态线程的方法是___a_____,通知多个的是___d_____;处于等待状态的
线程当前调用的方法或程序块用关键字___c_____来限制。

A.notify
B.wait
C.synchronized
D.notifyAll
35. 对原始数据的读写,采用流____a____和_____h___,为了提高性能,采用流___f_____
和____i____;对各种基本数据类型和String类型的读写,采用流____b____和___d_____;读
写文本类型采用__c______和____j____,方便读写文本行采用流___e_____和___k_____;对象
读写采用流____l____和___m______。

A. InputStream
B.DataInputStream
C. Reader
D.InputStreamReader
E.BufferedReader
F.BufferedInputStream
G.DataOutputStream H.OutputStream I.BufferedOutputStream
J.Writer K.PrintWriter L.ObjectInputStream M.ObjectOutputStream N.OutputStreamWriter
36. 一个File对象是文件或目录在内存中的表示,File类型中定义了方法__d____来判断
一个文件是否存在,定义方法____a____创建一个新文件,定义方法__c______删除一个文件,
定义方法____b____改变文件名,定义方法___f_____创建一级目录,定义方法___e_____同时
创建一个目录层次。

对原始数据类型文件的操作用文件I/O流____h____和___k_____;对文本
文件操作用文件I/O流____g____和___j_____;同时对一个文件进行读写操作用文件流
___i_____。

A.createNewFile
B.renameTo
C.delete
D.exists
E.mkdirs
F.mkdir
G.FileReader
H.FileInputStream I.RandomAccessFile J.FileWriter
K.FileOutputStream
37. 创建一个TCP服务程序,该程序运行在port为6868,完成以下代码,实现一个多线
程的服务程序:
_ServerSocket ss = new ServerSocket(6868);
while(true){
Socket clientRequest = ss.accept();
service(clientRequest);
}
38. 创建一个tcp客户程序的顺序是___dacbe_____。

A. 获得I/O流
B. 关闭I/O流
C. 对I/O流进行读写操作
D. 建立socket
E. 关闭socket
39. 创建一个tcp服务程序的顺序是____bcadegf____。

A. 创建一个服务线程处理新的连接
B. 创建一个服务器socket
C. 从服务器socket接受客户连接请求
D. 在服务线程中,从socket中获得I/O流
E. 对I/O流进行读写操作,完成与客户的交互
F. 关闭socket
G. 关闭I/O流
40. 可以通过使用URL和URLConnection类型来完成基于HTTP/FTP的远程通讯,完成以下代码读取Tarena网站的首页内容:
URL tarenaFirstPage = __________new URL("http://210.29.0.5")________;
InputStream is = ______tarenaFirstPage.openString()________;
BufferedReader br = __new bufferedReader(is)______;
String line = null;
while((line = br.readLine()) != null) System.out.println(line);
41. Java UDP编程主要用到的两个类型是_____b___和___d_____。

发送和接收信息的方法是___f_____。

A.UDPSocket
B.DatagramSocket
C.UDPPacket
D.DatagramPacket
E.read/write
F.send/receive
42.指出下列哪个方法与方法public void add(int a){}为合理的重载方法。

bcd
A public int add(int a)
B public void add(long a)
C public void add(int a,int b)
D public void add(float a)
43.如果下列的方法能够正常运行,在控制台上将显示什么?ACD
public void example(){
try{
unsafe();
System.out.println("Test1");
}
catch(SafeException e)
{System.out.println("Test 2");}
finally{System.out.println("Test 3");}
System.out.println("Test 4");
}
A Test 1
B Test 2
C Test 3
D Test 4
44.如果下列的方法不能正常运行,在控制台上将显示什么?BCD public void example(){
try{
unsafe();
System.out.println("Test1");
}
catch(SafeException e)
{System.out.println("Test 2");}
finally{System.out.println("Test 3");}
System.out.println("Test 4");
}
A Test 1
B Test 2
C Test 3
D Test 4
45. 写出下面程序的运行结果:Hello!I love JA V A.
import java.io.*;
public class abc {
public static void main(String args [ ])
{
AB s = new AB("Hello!","I love JA V A.");
System.out.println(s.toString( ));
}
}
class AB {
String s1;
String s2;
public AB(String str1, String str2)
{
s1 = str1;
s2 = str2;
}
public String toString( )
{
return s1+s2;
}
}
二单选题
1. 下列哪个是JDK提供的编译器( B )
A.java.exe
B.javac.exe
C.javap.exe d.javaw.exe
2. 下列哪个是Java应用程序主类中正确的main方法 ( D )
A. public void main(String args[])
B. static void main(String args[])
C. public static void Main(String args[])
D. public static void main(String args[])
3.下列哪个叙述是正确的( B )
A.Java应用程序由若干个类所构成,这些类必须在一个源文件中.
B.Java应用程序由若干个类所构成,这些类可以在一个源文件中,也可以在若干个源文件中,其中必须有一个源文件含有主类.
C.Java源文件必须含有主类.
D.Java源文件如果含有主类,主类必须是public类.
4.下列哪个叙述是正确的( D )
A.成员变量的名字不可以和局部变量的名字相同.
B.方法的参数的名字可以和方法中声明的局部变量的名字形同.
C.成员变量没有默认值.
D.局部变量没有默认值.
5.下列哪些类的声明是错误的( D )
A.class A
B.public class A
C.protected class A
D.private class A
6.下列哪个叙述是正确的( C )
A.子类继承父类的构造方法.
B.abstract类的子类必须是非abstract类
C.子类继承的方法只能操作子类继承和隐藏的成员变量
D.子类重写或新增的方法也只能直接操作被子类隐藏的成员变量
7. 下列哪个叙述是正确的( D )
A.final类可以有子类.
B.abstract类中只可以有abstract方法
C.abstract类中可以有非abstract方法,但该方法不可以用final修饰
D.不可以同时使用abstract和final修饰修饰同一个方法
E.允许使用static修饰abstract方法
8.假设C是B的子类,B是A的子类,cat是C的一个对象,bird是B的一个对象,下列哪个叙述是错误的( D )
A. cat instanceof B的值是true
B. bird instanceof A的值是true
C. cat instanceof A的值是true
D. bird instanceof C的值是true
9.下列程序注释中的哪个代码(A,B,C,D)是错误的(无法通过编译)( B )
class A
{
static int m;
static void f()
{
m=20; //A
}
}
class B extends A
{
void f() //B
{
m=222; //C
}
}
class E
{
public static void main(String[] args)
{
A.f(); //D
}
}
10.下列代码中标注的(A,B,C,D)中,哪一个是错误的( B )
abstract class Takecare
{
protected void speakHello(){ } //A
public abstract static void cry(); //B
static int f(){ return 0; } //C
abstract float g(); //D
}
11. 下列程序注释中的哪个代码(A,B,C,D)是错误的(无法通过编译)(D )
Abstract class A
{
Abstract float getFloat(); //A
Void f() { } //B
}
Public class B extend A
{
Private float m=1.0f; //C
Private float getFloat() //D
{
Return m;
}
}
12. 下列哪个代码(A,B,C,D)放入程序中标注的【代码】处将导致编译错误?(B )
A. public float getNum() { return 4.0f; }
B. public void getNum() { }
C. public void getNum(float d) { }
D. public double getNum(float d) { return 4.0f; }
class A
{
public float getNum()
{
return 3.0f;
}
}
class B extends A
{
【代码】
}
13.对于下列代码,下列哪个叙述是正确的? ( A )
A.程序提示编译错误(原因是A类没有不带参数的构造方法)
B.编译无错误, 【代码】输出结果是0。

C.编译无错误, 【代码】输出结果是1。

D.编译无错误, 【代码】输出结果是2。

class A
{
public int i=0;
A(int m)
{
i=1;
}
}
class B extends A
{
B(int m)
{
i=2;
}
public static void main(String args[ ])
{
B b=new B(200);
System.out.println(b.i); // 【代码】
}
}
14、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。

A. java
B. .class
C. html
D. .exe
15.以下关于继承的叙述正确的是( A )。

A、在Java中类只允许单一继承
B、在Java中一个类只能实现一个接口
C、在Java中一个类不能同时继承一个类和实现一个接口
D、在Java中接口只允许单一继承
16.以下哪个关键字可以用来对对象加互斥锁?( B )
A、transient
B、synchronized
C、 serialize
D、static
17、如下哪个是Java中的标识符( D )
A、public
B、super
C、3number
D、width
18、如下哪个是Java中的标识符( A )
A、fieldname
B、super
C、3number
D、#number
19、如下哪个是Java中有效的关键字( C )
A、name
B、hello
C、false
D、good
20、下面的代码段执行之后count的值是什么( D )
int count = 1;
for (int i = 1; i <= 5; i++) {
count += i;
}
System.out.println(count);
A、5
B、1
C、15
D、16
21、定义一个类,必须使用的关键字是( B )
A、public
B、class
C、interface
D、static
22、定义一个接口必须使用的关键字是( C )
A、public
B、class
C、interface
D、static
23、声明并创建一个按钮对象b,应该使用的语句是( A )
A、Button b=new Button();
B、button b=new button();
C、Button b=new b();
D、b.setLabel(“确定”);
24、Frame对象默认的布局管理器是( B )
A、FlowLayout
B、BorderLayout
C、CardLayout
D、null
25、下面哪一个import命令可以为我们提供编写网络应用程序的类(D)
A、import java.sql.*;
B、import java.util.*;
C、import java.io.*;
D、import .*;
26、如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象( A )
A、FileInputStream
B、FileOutputStream
C、DataOutputStream
D、FileWriter
27、当某一线程正处于休眠状态,而另一个线程用 Thread 类中的 interrupt() 方法中断它时,抛出的异常类型是( C )。

A) IOException B) RuntimeException
C) InterruptedException D) ClassNotFoundException
28.下列修饰符中与访问控制无关的是( D )
A.private B.public
C.protected D.final
29.关于对象成员占用内存的说法哪个正确?( B )
A.同一个类的对象共用同一段内存
B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间
C.对象的方法不占用内存
D.以上都不对
30.下列说法哪个正确?( C )
A.不需要定义类,就能创建对象
B.对象中必须有属性和方法
C.属性可以是简单变量,也可以是一个对象
D、属性必须是简单变量
31.下列说法哪个正确?( A )
A、一个程序可以包含多个源文件
B、一个源文件中只能有一个类
C、一个源文件中可以有多个公共类
D、一个源文件只能供一个程序使用
32.关于方法main()的说法哪个正确?( C )
A.方法main()只能放在公共类中
B main()的头定义可以根据情况任意更改
C.一个类中可以没有main()方法
D.所有对象的创建都必须放在main()方法中
33.构造函数何时被调用?( A)
A、创建对象时
B、类定义时
C、使用对象的方法时
D、使用对象的属性时
34.抽象方法:( C )
A、可以有方法体
B、可以出现在非抽象类中
C、是没有方法体的方法
D、抽象类中的方法都是抽象方法
35.关于继承的说法正确的是:( B )
A、子类将继承父类所有的属性和方法。

B、子类将继承父类的非私有属性和方法。

C、子类只继承父类public方法和属性
D、子类只继承父类的方法,而不继承属性
36.关于构造函数的说法哪个正确?( C )
A、一个类只能有一个构造函数
B、一个类可以有多个不同名的构造函数
C、构造函数与类同名
D、构造函数必须自己定义,不能使用父类的构造函数
37. this和super: ( C )
A、都可以用在main()方法中
B、都是指一个内存地址
C、不能用在main()方法中
D、意义相同
38.覆盖与重载的关系是( A )
A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中
B.覆盖方法可以不同名,而重载方法必须同名
C.final修饰的方法可以被覆盖,但不能被重载
D.覆盖与重载是同一回事
39.关于接口哪个正确?( A )
A、实现一个接口必须实现接口的所有方法
B.一个类只能实现一个接口
C.接口间不能有继承关系
D.接口和抽象类是同一回事
40.异常包含下列哪些内容?( A )
A.程序执行过程中遇到的事先没有预料到的情况
B.程序中的语法错误
C.程序的编译错误
D.以上都是
41.对于已经被定义过可能抛出异常的语句,在编程时:(A)A、必须使用try/catch语句处理异常,或用throws将其抛出
B.如果程序错误,必须使用 try/catch语句处理异常
C.可以置之不理
D.只能使用try/catch语句处理
42.字符流与字节流的区别在于(D)
A.前者带有缓冲,后者没有
B.前者是块读写,后者是字节读写
C. 二者没有区别,可以互换使用
D. 每次读写的字节数不同
43. 请说出下列代码的执行结果 :
String s = "abcd";
String s1 = new String(s); ( B )
if (s = = s1) System.out.println("the same");
if (s.equals(s1)) System.out.println("equals");
A. the same equals
B. equals
C. the same
D. 什么结果都不输出
44. 下列有关 Java 中接口的说法哪个是正确的? ( B )
A. 接口中含有具体方法的实现代码
B. 若一个类要实现一个接口,则用到“implements” 关键字
C. 若一个类要实现一个接口,则用到“ extends ”关键字
D. 接口不允许继承
45.下列说法正确的是B
A.不需定义类,就能创建对象
B.属性可以是简单变量,也可以是一个对象
C.属性必须是简单变量
D.对象中必有属性和方法
5.若有定义String to="I am a good cat";则to.indexOf("a",7)的值为B
A.7
B.13
C.14
D.8
8.下面不是面向对象技术特点的是A
A.模块化
B.封装
C.继承性
D.多态性
11.下面哪个代表八进制数字C
A.0x12
B.320
C.032
D.12
14.下面不是合法Java标识符的是C
A.ab
B.$3
C.3ab
D.ab3
16.接口中的方法被默认是什么的B
A.private
B.public
C.protected
D.package
17.Java语言的编译器命令是A
A.javac
B.java
C.javaw
D.jar
19.关于实例方法和类方法的区别,下列描述正确的是B
A.实例方法是不用创建类的实例就可以直接调用
B.类方法是通过static关键字声明的方法
C.实例方法属于类
D.类方法是通过new以后才能调用的方法
23.使用哪个关键字来定义一个接口D
A.implements
B.class
C.extends
D.interface
25.若有定义String tom="I am a good cat";则tom.indexOf("a")的值为A
A.2
B.3
C.4
D.5
28. main()需要一个参数,它是B
A.一个整型量
B.一个String对象
C.一个实型量
D.一个任意类的对象
29.下列不是重载方法的特征的是D
A.参数个数不同
B.参数名相同而类型不同
C.参数类型不同
D.参数名相同且类型相同
30.在Java中,名字必须与它所在的类的名字相同,而且不返回任何数据类型的方法是A
A.构造方法
B.类方法
C.实例方法
D.重载方法
32.不是修饰符的是D
A.public
B.private
C.protected
D.class
ng包中的类,该类的实例用来封装对象运行时的状态的是A
A.Class
B.Object
C.Math
D.Date
36.在编写异常处理的Java程序中,每个catch语句块都应该与____C__语句块对应,使得用该语句块来启动Java的异常处理机制.
A.if-else
B.switch
C.try
D.throw
37.下面关于继承的描述正确的是___A___.
A.在Java中只允许单一继承
B.在Java中一个类只能实现一个接口
C.在Java中一个类不能同时继承一个类和实现一个接口
D.Java的单一继承使代码不可靠
40.下列__B____是异常的含义.
A.程序的语法错
B.程序编译或运行中所发生的异常事件
C.程序预定义好的异常事件
D.程序编译错误
43.定义一个名为key的类,使之不能被继承,应选D
A.class key{}
B.native class key{}
C.class key{ final;}
D.final class key{}
44.已知:int[] a=new int[100]; 在下列给出的数组元素中,非法的是__D____.
A.a[0]
B.a[1]
C.a[99]
D.a[100]
45.编译一个定义了5个类和18个方法的Java源代码文件,编译该源代码文件时会产生几个字节码文件D
A.1
B.23
C.18
D.5
46.Java源文件扩展名是B
A..class
B..java
C..jav
D..cla
47.Java中,一个类可以有父类的个数是A
A.1
B.2
C.3
D.4
48.类中不加任何访问权限限定的成员属于A
A.default
B.public
C.private
D.protected
49.接口体中不应包含C
A.常量定义
B.常量赋值
C.方法实现
D.方法声明
50在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上__C____语句.
A.import java.awt.*;
B.import applet.Applet;
C.import java.io.*;
D.import java.awt.Graphics;
51.一个对象创建的操作中,没有下面的A
A.释放内存
B.对象声明
C.分配内存
D.调用构造方法
52.处理日期的类在Java的哪个包中A
A.java.util
B.java.io
ng
53.Java 异常处理涉及的关键字,以下哪个不是B
A.try
B.final
C.catch
D.throws
54.在方法内部使用,代表对当前对象自身引用的关键字是__D____.
A.super
B.This
C.Super
D.this
55.将有三个boolean值的数组初始化为true的是B
A.boolean []b=new boolean[3]
B.boolean []b={true,true,true}
C.boolean [3]b={true,true,true}
D.boolean []b=new boolean[3]; b={true,true,true}
56.在Java中,由Java编译器自动导入,而无需在程序中用import导入的包是___D___.
A.java.applet
B.java.awt
C.java.util
ng
57.定义一个接口使用的关键字是D
A.implements
B.class
C.extends
D.interface
58.若有定义String tom="我们是学生";则tom.length()的值是A
A.5
B.10
C.6
D.11
59.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为___A___.
A.static void method( )
B.public void method( )
C.final void method( )
D.abstract void method( )
60.数组对象所包含的元素个数称为数组的长度.数组具有成员域(),表示数组的长度B
A.len
B.length
C.trim
D.size
61.默认情况下,所有类能访问所有成员,除了C
A.用final关键字定义的
B.用abstract定义的
C.在另一个包中定义的
D.在同一个包中定义的
62.若声明一个类不能被继承,即不能有子类,用关键字A
A.final
B.finally
C.abstract
D.super
63.Java语言使用的字符集是C
A.ASCII
B.EBCDIC
C.Unicode
D.BCD
64.类定义代码被置于其他类定义中的类的是B
A.外部类
B.内部类
C.匿名类
D.抽象类
65.以下哪个是处理可变字符串的类B
A.String
B.StringBuffer
C.Object
D.Math
66.有关实例方法和类方法的描述错误的是B
A.一个类中的实例方法可以调用其他实例方法
B.静态方法可以调用实例方法
C.实例方法可以调用静态方法
D.静态方法可以调用静态方法
67.若有定义char a4[]=new char[5];则length的值为D
A.0
B.10
C.4
D.5
68.编译代码class MySstring extends String{} 会出现的情况是D
A.成功编译
B.不能编译,因为没有main方法
C.不能编译,因为String是abstract类型的
D.不能编译,因为String是final类型的
69.若有定义String jerry="I love Tom",s1;则s1=jerry.substring(2)的值为C
A.l
B.love
C.love Tom
D.Tom
70.抽象类和接口的共同点是D
A.代表系统的抽象层
B.都不能被实例化
C.都包含抽象方法
D.以上都对
71.关于super,下面说法中错误的是C
A.用来访问父类被隐藏的的成员变量
B.用于调用父类中被重写的方法
C.用于定义父类 D .用于调用父类的构造函数
72.构造方法是一种特殊方法,它的名字必须与___A___相同,而且不返回任何数据类型.
A.类名
B.对象名
C.包名
D.变量名
73.若有定义int a=2,b=4;boolean x;则执行语句x=a>b;System.out.println(x);的结果为D
A.1
B.0
C.true
D.false
74.常量定义的修饰符为A
A.final
B.finally
C.const
D.define
75.Java中,一个类可以有几个父类B
A.任意
B.1
C.2
D.4
76.字符常量需要使用B括起
A.双引号
B.单引号
C.括号
D.无符号
77.在成员变量与局部变量重名时,若想在方法内使用成员变量,要使用关键字C
A.super
B.import
C.this
D.return
78.Java源文件经编译产生的文件称为D
A..obj文件
B..exe文件
C..java文件
D.字节码文件
79.this关键字的含义是表示一个B
A.指针
B.当前对象
C.一个类
D.一个方法
80.下列___D___类声明是正确的.
A.abstract final class A {…}
B.abstract private move() {…}
C.protected private number;
D.public abstract class Car {…}
81.下面定义main()方法有效的是A
A.public static void main(String args[]){}
B.public main(String[])
C.public void main()
D.public void main(args[]){}
82.下面的哪一项能正确生成5个空字符串A
A.String a[]=new String [5]
B.String 5[a]
C.String [5]a
D.String a[5]
83.一个类的构造方法被自动调用时机是D
A.类定义时
B.使用对象的属性时
84.数据下标越界,则发生异常,提示为C
A.Runtime Exception
B.IOException
C.ArrayIndex OutOfBound Exception
D.class Cast Exception
85.Java的int型变量占内存的字节是B
A.1
B.4
C.2
D.与机器有关
86.如果类中的成员变量只能被同一包访问,则使用以下___A___约束符.
A.无访问控制符
B.public
C.protected
D.final
87.若有定义String tom="boy";String hill="boy";则表达式(tom==hill)的值为B
A.1
B.true
C.false
D.0
88.编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为___B___.
A..java
B..class
C..html
D..exe
89.异常处理流程中,以下哪个代码块用来捕获并处理异常B
A.try
B.catch
C.finally
D.都不是
141.若想连接字符串"Zang","Zoom"和"Moon",可使用哪种形式D
A."bang","Zoom","Moon"
B."bang Zoom Moon "
C."bang" & "Zoom" & "Moon"
D."bang"+"Zoom"+"Moon"
90.接口中的方法默认的访问控制方式是A
A.public
B.private
C.protected
D.default
91.下列定义形式错误的是B
A.float a[]
B.float a[5]
C.int a[]=new int[5]
D.float []c
92.若有定义如下class dog { float x; static int y;…},则下列说法中正确的是D
A.x称为类变量,y为实例变量
B.x,y均为类变量
C.x,y均为实例变量
D.x为实例变量,y为类变量
93.Java异常的处理时,抛出异常可以利用什么语句A
A.throw
B.try
C.catch
D.throws
三、阅读
1. 下列程序标注的【代码1】和【代码2】的输出结果是什么?
class E
{
public static void main(String[] args)
{
long[] a={1,2,3,4};
long[] b={100,200,300,400,500};
b=a;
System.out.println("数组b的长度:"+b.length); 【代码1】
System.out.println("b[0]="+b[0]); 【代码2】}
}
答案: 【代码1】数组b的长度:4
【代码2】b[0]=1
2. 下列程序标注的【代码1】和【代码2】的输出结果是什么?
class E
{
public static void main(String[] args)
{
int[] a={10,20,30,40};
int[][] b={{1,2},{4,5,6,7}};
b[0]=a;
b[0][1]=b[1][3];
System.out.println(b[0][3]); 【代码1】
System.out.println(a[1]); 【代码2】
}
}
答案: 【代码1】40
【代码2】7
3.说出下列E类中【代码1】~【代码3】的输出结果。

class Fish
{
int weight=1;
}
class Lake
{
Fish fish;
void setFish(Fish s)
{
fish=s;
}
void foodFish(int m)
{
fish.weight=fish.weight+m;
}
}
public class E
{
public static void main(String[] args)
{
Fish redFish=new Fish();
System.out.println(redFish.weight); 【代码1】
Lake lake=new Lake();
lake.setFish(redFish);
lake.foodFish(120);
System.out.println(redFish.weight); 【代码2】System.out.println(lake.fish.weight); 【代码3】
}
}
答案: 【代码1】1
【代码2】121
【代码3】121
4.请说出A类中System.out.println的输出结果。

class B
{
int x=100,y=200;
public void setX(int x)
{
x=x;
}
public void setY(int y)
{
this.y=y;
}
public int getXYSum()
{
return x+y;
}
}
class A
{
public static void main(String[] args)
{
B b=new B();
b.setX(-100);
b.setY(-200);
System.out.println("sum="+b.getXYSum());
}
}
结果:sum=-100
5.请说出A类中System.out.println的输出结果。

class B
{
int n;
static int sum=0;
void setN(int n)
{
this.n=n;
}
int getSum()
{
for(int i=1;i<=n;i++)
sum=sum+i;
return sum;
}
}
class A
{
public static void main(String[] args)
{
B b1=new B(),b2=new B();
b1.setN(3);
b2.setN(5);
int s1=b1.getSum();
int s2=b2.getSum();
System.out.println(s1+s2);
}
}
结果:27
6.说出下列E类中【代码1】和【代码2】的输出结果。

class A
{
double f(double x,double y)
{
return x+y;
}
}
class B extends A
{
double f(int x,int y)
{
return x*y;
}
}
class E
{
public static void main(String[] args)
{
B b=new B();
System.out.println(b.f(3,5)); //【代码1】
System.out.println(b.f(3.0,5.0)); //【代码2】}
}
答案: 【代码1】15.0
【代码2】8.0
7. 说出下列B类中【代码1】和【代码2】的输出结果。

class A
{
public int getNumber(int a)
{
return a+1;
}
}
class B extends A
{
public int getNumber(int a)
{
return a+100;
}
public static void main(String args[ ])
{
A a=new A();
System.out.println(a.getNumber(10));
a=new B();
System.out.println(a.getNumber(10));
}
}
答案: 【代码1】11
【代码2】110
8. 说出下列E类中【代码1】~【代码4】的输出结果。

class A
{
double f(double x,double y)
{
return x+y;
}
static int g(int n)
{
return n*n;
}
}
class B extends A
{
double f(double x,double y)
{
double m=super.f(x,y);
return m+x*y;
}
static int g(int n)
{
int m=A.g(n);
return m+n;
}
}
class E
{
public static void main(String[] args)
{
B b=new B();
System.out.println(b.f(10.0,8.0)); //【代码1】
System.out.println(b.g(3)); //【代码2】 A a=new B();
System.out.println(a.f(10.0,8.0)); //【代码3】
System.out.println(a.g(3)); //【代码4】 }
}
答案: 【代码1】98.0
【代码2】12
【代码3】98.0
【代码4】9
9. 说出下列E类中【代码1】和【代码2】的输出结果。

interface A
{
double f(double x,double y);
}
class B implements A
{
public double f(double x,double y)
{
return x*y;
}
int g(int a,int b)
{
return a+b;
}
}
class E
{
public static void main(String[] args)
{
A a=new B();
System.out.println(a.f(3,5)); //【代码1】
B b=(B)a;
System.out.println(b.g(3,5)); //【代码2】 }
}
答案: 【代码1】15.0
【代码2】8
10. 说出下列E类中【代码1】和【代码2】的输出结果。

interface Com
{
int add(int a,int b);
}。

相关文档
最新文档