第一部分选择题
一、单项选择题:本大题共l0小题,每小题l分,共10分。在每小题列出的备选项中
只有一项是最符合题目要求的,请将其选出。
1.下面关于Java语言的说法中,错误的是 B
A.Java是一个纯面向对象的语言
B.Java语言中有指针、结构和类型定义的概念
C.Java语言是与平台无关的,可以在不同的操作系统下运行
D.Java语言具有自动无用内存回收机制
2.在Java语言中,int整型量在内存中占 C
A.8位 B.16位
C.32位 D.64位
3.在Java语言中,switch关键字之后的表达式的计算结果不能是 D
A.char型 B.int型
C.short型 D.10n9型
4.在Java语言中,类的多个实例对象所共享的变量被称为 A
A.静态变量 B.全局变量
C.实例变量 D.共享变量
5.以下对二维数组a的声明中,正确的是 C
A.int a[4][6]; B.int a[4][6]=new int[4][6];
C.int a[][]=new int[4][]; D.int a[][]=new int[][6];
6. Java允许一个类实现多个接口,从而实现了 C
A. 单重继承 B. 方法覆盖
C. 多重继承 D. 方法签名
7. 以下专门用于字符流处理的类是 B
A. BufferedInputStream和BufferedOutputStream
B. InputStreamReader和OutputStreamWriter
C. FileInputStream和FileOutputStream
D. ObjectInputStream和ObjectOutputStream
8. 绘图区域的坐标原点位于该区域的 左上角。
9. 方法setMnemonic()的作用是 位菜单项设置快捷键。
10. 以下方法中不能实现挂起线程的是 B
A. sleep() B. notify() C. wait() D. join()
二、填空题
11. 在Java虚拟机中可以运行Java的 字节码(或class) 文件。
12. 表达式-128>>4的值是 -8 。
13. 在异常处理中,包含有捕获及处理某种类型异常代码的是 catch 类。
14. 在Java中,允许多个方法使用同一个方法名,这就是方法名的 重载 。
15. 已知定义String s1=”ab”, s2=new String(“ab”);,则s1==s2的值是 false 。
16. 在接口中定义的成员变量默认为 终极(或final) 和静态属性。
17. 把对象转换为字节序列的过程成为对象的 序列化 。
18. 每个由BorderLayout管理的容器通常被划分为 5 个区域。
19. 要显示标准确认对话框,可使用JOptionPane类中的 showConfirmDialog() 方法。
20. 线程一共有四种状态:新建、可运行状态、死亡及 阻塞 。
三、简答题
21. 请写出Java语言中标识符的命名规则。
标识符是由字母、数字、下划线或美元符组成的字符串,其中数字不能作为标识符的开头,并区分大小写。
22. 请写出package语句和import语句的区别。
①package语句为包语句,每个文件最多只有一个,且必须放在文件开始的地方。
②import语句为引入语句,可以没有,也可以有多个,如果有,必须放在所有类定义的前面。
23. 请写出与数组相比,Vector对象的特点。
①Vector对象的大小可以根据需要来改变。
②Vector对象保存的元素的类型可以不一样。
24. 请写出用Thread类的子类创建线程并启动线程所包含的步骤。
①从Thread类派生出一个子类。
②实现run()。
③用该类创建一个对象。
④用start()方法启动线程。
25. 请写出Java语言中的事件处理机制。
事件被直接送往产生这个事件的组件,组件需要注册一个或多个侦听程序。侦听程序的类中包含了事件处理程序。用来接收和处理该事件。
四、程序填空题
26. 以下fact方法的功能是求n的阶乘。
static long fact(int n){
int i; long f=1;
for(i=1;i<=n;i++)
f=f*i;
return f;
}
27. 以下程序读取键盘输入,当按下回车时,将输入的内容显示在屏幕上。
import java.io.*;
public class Test27{
public static void main(String [] args){
try{
InputStreamReader dis=new InputStreamReader(System.in);
BufferedReader reader=new BufferedReader(dis);
String s;
while((s=reader.readLine())!=null){
System.out.println(s);
}
reader.colse();
}catch(IOException e){
System.out.println(e);
}
}
}
28. 以下paintComponent方法利用Graphics2D绘制一个左上角坐标是(10,30),边长为50的红色正方形。
public void paintComponent(Graphics g){
Graphics2D g2d=(Graphics2D)g;
g2d.setColor(Color.red);
Rectangle2D rec=new Rectangle2D.Double(10,30,50,50);
g2d.draw(rec);
}
五、程序分析题
29. 阅读下列程序,写出该程序的输出结果。
public class Test29{
public static void main(String[] args){
String s=”This Is A String!”;
String s1=s.toLowerCase();
System.out.println(“s1=”+s1);
StringBuffer s2=new StringBuffer(s);
System.out.println(“s2.length=”+s2.length());
StringBuffer s3=s2.replace(2,4,”at”);
System.out.println(“s3=”+s3);
}
}
结果:
s1=this is a string!
s2.length=17
s3=That Is A String!
30. 阅读下列程序,请写出该程序的输出结果。
class Test{
public void methodA(){
System.out.println(“Call Test’s methodA()”);
}
public void methodB(){
System.out.println(“Call Test’s methodB()”);
methodA();
}
}
class Test30 extends Test{
public void methodA(){
System.out.println(“Call Test30’s methodA()”);
}
public static void main(String args[]){
Test30 g=new Test30();
g.methodA(); g.methodB();
}
}
结果:
Call Test30’s method()
Call Test’s method()
Call Test30’s method()
31. 阅读下列程序,请写出该程序的功能。
class MyThread extends Thread{
public MyThread(String s){setName(s);}
public void run(){
for(int i=0;i<6;i++){
System.out.println(getName());
try{sleep(500);
}catch(InterruptedException e){}
}
}
}
public class Test31{
public static void main(String args[]){
new MyThread(“线程A”).start();
new MyThread(“线程B”).start();
}
}
该程序随机输出“线程A”“线程B”,分别是6次。
六、程序设计题
32. 请编写方法int[] invertArray(int []a),该方法返回一个数组b,b中元素顺序为数组a中元素的逆序。
int[] invertArray(int []a){
//代码如下
int []b=new int[a.length];
for(int i=0,i<a.length;i++){
b[i]=a[a.length-i-1];
}
return b;
//代码
}
33. 以下MyWindow类根据给定的选择项目表构造一组复选按钮,当某个复选按钮的选择状态有改变(从选中边长未选中,或从未选中变成选中)时,复选按钮的侦听程序将在右边文本框中输出所有选择项目状态。
注:这里是给定程序的部分代码,你要编写的代码是改变复选按钮状态时所完成的事件。
import javax.swing.*;import java.awt.*;import java.awt.event.*;
class MyWindow extends JFrame implements ItemListener{
JTextArea text; JCheckBox[] box;
String boxName[]={“张三”,”李四”,”王五”};
MyWindow(String s){
super(s);
Container con=this.getContentPane();
con.setLayout(new GridLayout(1,2));
setLocation(100,100);
JPanel panel=new JPanel();
int len=boxName.length;
panel.setLayout(new GridLayout(len 1));
box=new JCheckBox[len];
for(int i=0;i<len;i++){
box[i]=new JCheckBox(boxName[i],false);
box[i].addItemListener(this);
panel.add(box[i];
}
text=new JTextArea(4,10);
con.add(panel); con.add(text);
setVisible(true); pack();
}
public void itemStateChanged(ItemEvent e){
text.setText(null);
//此处为编写代码
for(int i=0;i<box.length;i++){
if(box[i].isSelected())
text.append(boxName[i]+”被选中\n”);
else
text.append(boxName[i]+”没有被选中\n”);
}
//代码结束
}
}
public class Test33{
public static void main(String args[]){
new MyWindow(“试题33”);
}
}