1、二级 JAVA 机试-142 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题读取用户输入的字符流,直到用户输入字符串 quit 后结束。import java.io.*;public class java1public static void main(Stringargs)_;BufferedReader in;ir=new InputStreamReader(System.in);in=new BufferedReader(ir);System.out.println(“please input:“);while(_)trySt
2、ring s=in.readLine();System.out.println(“echo:“+s);if(s.equals(“quit“)_;catch(Exception e)(分数:30.00)_二、简单应用题(总题数:1,分数:40.00)2.本题是一个 Applet,页面中有两个文本域,当左侧文本域中的文本发生变化时,该文本域中的文本以行为单位按长度由短到长排列在右边的文本域中。import java.util.*;import java.applet.*;import java.awt.*;import java.awt.event.*;public class java2 ext
3、ends Applet implements TextListenerTextArea text1,text2;public void init()text1=new TextArea(6,15);text2=new TextArea(6,15);add(text1);add(text2);text2.setEditable(false);_;public void_if(e.getSource()=text1)String s=text1.getText();StringTokenizer fenxi=new StringTokenizer(s,“,/n“);int n=fenxi.coun
4、tTokens();String a=new Stringn;for(int i=0;i=n-1;i+)String temp=fenxi.nextToken();ai=temp;for(int i=0;i=n-1;i+)for(int j=i+1;j=n-1;j+)if(pareTo(ai)0)String t=aj;aj=ai;ai=t;text2.setText(null);for(int i=0;in;i+)text2.append(ai+“n“);(分数:40.00)_三、综合应用题(总题数:1,分数:30.00)3.本题的功能是跟踪鼠标在窗口的操作,以及在窗口的坐标,包括移进、移出
5、、移动、单击、释放和拖曳,并将这些信息显示在窗口的文字标签上。import java.awt.*;import java.awt.event.*;import javax.swing.*;public class java3 extends JFrame implements MouseListener MouseMotionListenerprivate JLabel statusBar;public java3()super(“java3“);statusBar=new JLabel();getContentPane.add(statusBar,BorderLayout.SOUTH);ad
6、dMouseListener(this);addMouseMotionListener(this);setSize(275,100);show();public void mouseClicked(MouseEvent e)statusBar.setText(“Clicked at“+e.getX()+“,“+e.getY()+“);public void mousePressed(MouseEvent e)statusBar.setText(“Pressed at“+e.getX()+“,“+e.getY()+“);public void mouseReleased(MouseEvent e
7、)statusBar.setText(“Released at“+e.getX()+“,“+e.getY()+“);public void mouseIn(MouseEvent e)statusBar.setText(“Mouse in window“);public void mouseExited(MouseEvent e)statusBar.setText(“Mouse outside window“);public void mouseDragged(MouseEvent e)statusBar.setText(“Dragged at“+e.getX()+“,“+e.getY()+“)
8、public void mouseMoved(MouseEvent e)statusBar.setText(“Moved at“+e.getX()+“,“+e.getY()+“);public static void main(String args)java3 app=new java3();app.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0);(分数:30.00)_二级 JAVA 机试-142 答案解析(总分:100.00,做题时间:90 分钟)一、基本
9、操作题(总题数:1,分数:30.00)1.本题读取用户输入的字符流,直到用户输入字符串 quit 后结束。import java.io.*;public class java1public static void main(Stringargs)_;BufferedReader in;ir=new InputStreamReader(System.in);in=new BufferedReader(ir);System.out.println(“please input:“);while(_)tryString s=in.readLine();System.out.println(“echo:
10、“+s);if(s.equals(“quit“)_;catch(Exception e)(分数:30.00)_正确答案:(第 1 处:InputStreamReader ir第 2 处:true第 3 处:break)解析:解析 第 1 处构造一个 InputStreamReader 对象,把从控制台输入的字节作为参数,构建一个读取数据用的 InputStreamReader 流,读取字节将其解码为字符;第 2 处 while 条件为真,执行循环;第 3处当输入的 s 中的内容为 quit 时,跳出循环。二、简单应用题(总题数:1,分数:40.00)2.本题是一个 Applet,页面中有两个文
11、本域,当左侧文本域中的文本发生变化时,该文本域中的文本以行为单位按长度由短到长排列在右边的文本域中。import java.util.*;import java.applet.*;import java.awt.*;import java.awt.event.*;public class java2 extends Applet implements TextListenerTextArea text1,text2;public void init()text1=new TextArea(6,15);text2=new TextArea(6,15);add(text1);add(text2);
12、text2.setEditable(false);_;public void_if(e.getSource()=text1)String s=text1.getText();StringTokenizer fenxi=new StringTokenizer(s,“,/n“);int n=fenxi.countTokens();String a=new Stringn;for(int i=0;i=n-1;i+)String temp=fenxi.nextToken();ai=temp;for(int i=0;i=n-1;i+)for(int j=i+1;j=n-1;j+)if(pareTo(ai
13、)0)String t=aj;aj=ai;ai=t;text2.setText(null);for(int i=0;in;i+)text2.append(ai+“n“);(分数:40.00)_正确答案:(第 1 处:text1.addTextListener(this)第 2 处:textValueChanged(TextEvent e)解析:解析 第 1 处注册文本监听器;第 2 处 textValueChanged 在对象中的文本内容发生变化时,就会被触发并执行该方法所定义的操作。三、综合应用题(总题数:1,分数:30.00)3.本题的功能是跟踪鼠标在窗口的操作,以及在窗口的坐标,包括移进
14、、移出、移动、单击、释放和拖曳,并将这些信息显示在窗口的文字标签上。import java.awt.*;import java.awt.event.*;import javax.swing.*;public class java3 extends JFrame implements MouseListener MouseMotionListenerprivate JLabel statusBar;public java3()super(“java3“);statusBar=new JLabel();getContentPane.add(statusBar,BorderLayout.SOUTH)
15、;addMouseListener(this);addMouseMotionListener(this);setSize(275,100);show();public void mouseClicked(MouseEvent e)statusBar.setText(“Clicked at“+e.getX()+“,“+e.getY()+“);public void mousePressed(MouseEvent e)statusBar.setText(“Pressed at“+e.getX()+“,“+e.getY()+“);public void mouseReleased(MouseEven
16、t e)statusBar.setText(“Released at“+e.getX()+“,“+e.getY()+“);public void mouseIn(MouseEvent e)statusBar.setText(“Mouse in window“);public void mouseExited(MouseEvent e)statusBar.setText(“Mouse outside window“);public void mouseDragged(MouseEvent e)statusBar.setText(“Dragged at“+e.getX()+“,“+e.getY()
17、+“)public void mouseMoved(MouseEvent e)statusBar.setText(“Moved at“+e.getX()+“,“+e.getY()+“);public static void main(String args)java3 app=new java3();app.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0);(分数:30.00)_正确答案:(第 1 处:extends JFrame implements MouseListener,MouseMotionListener第 2 处:getContentPane().add(statusBar,BorderLayout.SOUTH)第 3 处:public void mouseEntered(MouseEvent e)解析:解析 第 1 处实现了两个接口,前者是鼠标单击事件的监听者,后者是鼠标移动事件的监听者;第 2 处实现初始化容器并添加一些控件 statusBar 状态栏控件;第 3 处 mouseEntered()的作用是当鼠标进入某个组件时触发相应的动作,如实现本题的信息显示功能。