1、二级 JAVA 机试-110 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题统计字符串 str 中字母 a 出现的次数,其中 str 为“(7char c;int sum=0;int i=0;doc=_if(_)sum+;i+;while(_);System.out.println(“sum=“+sum);(分数:30.00)_二、简单应用题(总题数:1,分数:40.00)2.本题是一个 Applet,页面中有 10 个按钮,名称从“09”,用鼠标任意单击其中一个按钮后,通过键盘上的上下左右键可以控制按钮在窗口中移动。import
2、java.applet.*;import java.awt.*;import java.awt.event.*;public class java2 extends Applet_Button b=new Button10;int x,y;public void init()for(int i=0;i=9;i+)(bi=new Button(“+i);bi.addKeyListener(this);add(bi);public void_Button button=(Button)e.getSource();x=button.getBounds().x;y=button.getBounds()
3、.y;if(e.getKeyCode()=KeyEvent.VK_UP)y=y-2;if(y=0)y=0;button.setLocation(x,y);else if(e.getKeyCode()=KeyEvent.VK_DOWN)y=y+2;if(y=300)y=300;button.setLocation(x,y);else if(e.getKeyCode()=KeyEvent.VK_LEFT)x=x-2;if(x=0)x=0;button.setLocation(x,y);else if(e.getKeyCode()=KeyEvent.VK_RIGHT)x=x+2;if(x=300)x
4、=300;button.setLocation(x,y);public void keyTyped(KeyEvent e)public void keyReleased(KeyEvent e)(分数:40.00)_三、综合应用题(总题数:1,分数:30.00)3.本题的功能是监听键盘键的敲击,并显示在窗口中。import javax.swing.*;import java.awt.*;import java.awt.event.*;public class java3 extends JFrame extends KeyListenerprivate String linel=“,line2=
5、“;private String line3=“;private JTextArea textArea;public java3()super(“java3“);textArea=new JTextArea(10,15);textArea.setText(“Press any key on the keyboard.“);textArea.setEnabled(false);addKeyListener(this);getContentPane().add(textArea);setSize(350,100);show();public void keyPressed(KeyEvent e)l
6、ine1=“Key pressed:“+e.getKeyText(e.getKeyCode();setLines2and3(e);public void keyReleased(KeyEvent e)linel=“Key released:“+e.getKeyText(e.getKeyCode();setLines2and3(e);public void keyTyped(KeyEvent e)Line1=“Key typed:“+e.getKeychar();setLines2and3(e);private void setLines2and3(KeyEvent e)line2=“This
7、key is“+(e.isActionKey()?“:“not“)+“an action key“;String temp=e.getKeyModifiersText(e.getModifiers();line3=“Modifier keys pressed:“+(temp.equals(“)?“none“:temp);textArea.setText(line1+“n“+line2+“/n“+line3+“n“);public static void main(String args)java3 app=new java3();addWindowListener(new Windowadap
8、terl()public void windowClosing(WindowEvent e)System.exit(0););(分数:30.00)_二级 JAVA 机试-110 答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题统计字符串 str 中字母 a 出现的次数,其中 str 为“(7char c;int sum=0;int i=0;doc=_if(_)sum+;i+;while(_);System.out.println(“sum=“+sum);(分数:30.00)_正确答案:(第 1 处:str.charAt(i)第 2 处:
9、c=a第 3 处:istr.length()解析:解析 第 1 处获得字符串中第 i 个字符;第 2 处判断该字符是否为 a;第 3 处为循环终止条件。二、简单应用题(总题数:1,分数:40.00)2.本题是一个 Applet,页面中有 10 个按钮,名称从“09”,用鼠标任意单击其中一个按钮后,通过键盘上的上下左右键可以控制按钮在窗口中移动。import java.applet.*;import java.awt.*;import java.awt.event.*;public class java2 extends Applet_Button b=new Button10;int x,y;
10、public void init()for(int i=0;i=9;i+)(bi=new Button(“+i);bi.addKeyListener(this);add(bi);public void_Button button=(Button)e.getSource();x=button.getBounds().x;y=button.getBounds().y;if(e.getKeyCode()=KeyEvent.VK_UP)y=y-2;if(y=0)y=0;button.setLocation(x,y);else if(e.getKeyCode()=KeyEvent.VK_DOWN)y=y
11、+2;if(y=300)y=300;button.setLocation(x,y);else if(e.getKeyCode()=KeyEvent.VK_LEFT)x=x-2;if(x=0)x=0;button.setLocation(x,y);else if(e.getKeyCode()=KeyEvent.VK_RIGHT)x=x+2;if(x=300)x=300;button.setLocation(x,y);public void keyTyped(KeyEvent e)public void keyReleased(KeyEvent e)(分数:40.00)_正确答案:(第 1 处:i
12、mplements KeyListener第 2 处:keyPressed(KeyEvent e)解析:解析 第 1 处实现接口监听键盘事件;第 2 处处理键盘事件。三、综合应用题(总题数:1,分数:30.00)3.本题的功能是监听键盘键的敲击,并显示在窗口中。import javax.swing.*;import java.awt.*;import java.awt.event.*;public class java3 extends JFrame extends KeyListenerprivate String linel=“,line2=“;private String line3=“
13、;private JTextArea textArea;public java3()super(“java3“);textArea=new JTextArea(10,15);textArea.setText(“Press any key on the keyboard.“);textArea.setEnabled(false);addKeyListener(this);getContentPane().add(textArea);setSize(350,100);show();public void keyPressed(KeyEvent e)line1=“Key pressed:“+e.ge
14、tKeyText(e.getKeyCode();setLines2and3(e);public void keyReleased(KeyEvent e)linel=“Key released:“+e.getKeyText(e.getKeyCode();setLines2and3(e);public void keyTyped(KeyEvent e)Line1=“Key typed:“+e.getKeychar();setLines2and3(e);private void setLines2and3(KeyEvent e)line2=“This key is“+(e.isActionKey()
15、?“:“not“)+“an action key“;String temp=e.getKeyModifiersText(e.getModifiers();line3=“Modifier keys pressed:“+(temp.equals(“)?“none“:temp);textArea.setText(line1+“n“+line2+“/n“+line3+“n“);public static void main(String args)java3 app=new java3();addWindowListener(new Windowadapterl()public void windowClosing(WindowEvent e)System.exit(0););(分数:30.00)_正确答案:(第 1 处:extends JFrame implements KeyListener第 2 处:line1=“Key typed:“+e.getKeyChar()第 3 处:app.addWindowListener(new WindowAdapter()解析:解析 第 1 处实现接口应用 implements;第 2 处 Java 是大小写敏感的,获得键盘值应使用getKeyChar()方法;第 3 处窗体级监听器应注册给接收类。