一、1、java语言在语言的类型上应属于______类型的语言。(1.0分)
A、编译型的语言
B、解释型的语言
C、脚本型的解释语言
D、编译链接型的语言
B
2、短整型short的取值范围 -2^15至2^15-1。
3、关键字______可以抛出异常?(1.0分)
A、transient
B、finally
C、throw
D、static
throw是语句抛出一个异常。
语法:throw(异常对象);
throw e;
throws是方法可能抛出异常的声明(用在声明方法时,表明该方法可能要抛出异常)
语句:(修饰符)(方法名)([参数列表])[(throws异常类)]{...}
4、
关键字______可以对对象加互斥锁?(1.0分)
A、transient
B、synchronized
C、serialize
D、static
正确答案: B
synchronized用于多线程的协调和同步。
5、native的方法都没有方法体,而是使用“.”代替。
6、
print()方法使用______类型的参数?(1.0分)
A、Graphics
B、Graphics2D
C、String
D、Color
正确答案: A
7、JPanel组件的默认布局管理器为 FloeLayout。
下面注释方法 /**...*/ 能够支持javadoc命令。
在java中要处理Button类对象的事件,以下各项中,ActionListener 是可以处理这个事件的接口。
main()方法的返回值类型是 void。
在java中,关键字 final 使类不能派生出子类。
二、
1、通过自己定义一个“点”(Point)类用来表示三维空间中的点(有三个坐标)。完成下面的设计要求:(10分)
(1)可以生成具有特定坐标的点对象。
(2)提供可以设置三个坐标值的方法。
(3)在这个类中提供可以计算该“点”原点距离平方和的方法。
(4)在这个类中提供可以计算该“点”距空间任意一点距离平方和的方法。
正确答案:
class Point{ double x,y,z; Point(double _x,double _y,double _z){//构造方法(2分) x=_x; y=_y; z=_z; } void setX(double _x){//设置方法(2分) x=_x; } double getDistance(Point p){//计算方法(2分) return (x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)+(z-p.z)*(z-p.z); } } public class TestPoint{//测试方法(2分) public static void main(String[] args) { Point p=new Point(1.0,2.0,3.0);//对象说明(2分) Point p1=new Point(0.0,0.0,0.0); System.out.println(p.getDistance(p1)); p.setX(5.0); System.out.println(p.getDistance(new Point(1.0,1.0,1.0))); } }
2、在一个窗体对象(Frame)(800*600)中添加一个Panel对象(400*300)。使用线程控制其从上到下以动画方式进入窗体中。
提示:重点考虑程序的结构控制,对于其中的代码尽可能实现。(20分)
(1)考虑线程的使用;
(2)考虑控制结构的正确使用;
(3)考虑包的引入方式;
(4)考虑异常处理方式;
import java.awt.*;//引入包(2分) import java.awt.event.*; public class Test { static int px,py; public static void main(String args[]) { MyFrame fr=new MyFrame(100,100,600,600,Color.green); MyPanel p=new MyPanel(); p.setBounds(100,50,400,400); p.setBackground(Color.red); fr.setBackground(new Color(255,255,255)); fr.addWindowListener( new WindowAdapter(){//事件处理(4分[匿名类]) public void windowClosing(WindowEvent e){ System.exit(0); } }); fr.add(p);//添加对象(2分) fr.setVisible(true);//对象可见(2分) for(py=0;py<400;py+=20){< p=""""""""> p.setBounds(100,py,400,400); p.run();//方法调用, } } } class MyFrame extends Frame{ static int id=0; MyFrame(int x,int y,int w,int h,Color color){ super("MyFrame"); setBackground(color); setLayout(null); setBounds(x,y,w,h); } } class MyPanel extends Panel implements Runnable{ public void run(){ try{ Thread.sleep(100); }catch(InterruptedException e){ return; } } }
三、
1、
import javax.awt.*;
mport javax.awt.event.*;
public class Test{
public static void main(String[]args){
new MyFrame();
}
}
class MyFrame extends JFrame{
JButton b= new JButton("Click me!");
public MyFrame(){
setLayout(new FlowLayout());
add(b);
b.addActionListener(new MyMonitor()) ;
setBounds(200,300,200,300);
setVisible(true);
this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
class MyMonitor implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (b.getText().equals("Click me!") )
b.setText("Click me again!");
else
b.setText(" Click me!");
}
}
}
(1) [简答题] (2分) 指出程序中的错误(不需要修改)
正确答案:导入包错误,应当使用javax.swing或修改为Frame。
2、
import java.io.*;
public class Test{
public static void main(String[]args){
int i=0;
String Str[]={"1","2","3"};
while(i<=3){
System.out.println(Str[i]);
i++;
}
}
}
(1) [简答题] (2分)指出程序中的错误(不需要修改)
正确答案:数组越界。
3、
public class Test{
public static void main(String[]args){
int j=3;
while(j==3){
System.out.println("j is"+j);
}
}
}
(1) [简答题] (2分)指出程序中的错误(不需要修改)
正确答案:死循环。
4、
public class Test{
public static void main(String[]args){
Dog d=new Dog();
System.out.println(d.name);
}
}
class Dog{
private int name;
Dog(){
name="Tom";
}
}
(1) [简答题] (2分)指出程序中错误(不需要修改)
正确答案:不能访问private数据。
5、
import java.awt.*;
import java.awt.event.*;
public class Test{
public static void main(string[]args){
Frame f=new Frame("Test");
Button b=new Button("Press Me!");
Monitor bh=new Monitor();
b.addActionListener(bh);
f.add(b,BorderLayout.CENTER);
f.setVisible(true);
}
}
class Monitor implements ActionListener{
public void actionPerformed(ActionEvent e){
System.out.println("a button has been pressed");
}
}
(1) [简答题] (2分)指出程序中的错误
正确答案:缺少pack()方法,对象均看不到。