1、二级 JAVA 机试-140 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题统计 score=(37,89,63,60,59,78,91)中成绩不及格的人数。public class java1public static void main(Stringargs)int score=37,89,63,60,59,78,91;int sum=0;int i=0;while(iscore.length)if(scorei=60)_;_;_;i+;System.out.println(“below 60 sum:“+sum);(分数:30
2、.00)_二、简单应用题(总题数:1,分数:40.00)2.本题中,在窗口右侧添加了一个菜单,右侧为一个文本域,菜单有“File”和“Help”,“File”菜单中有菜单项“New”、“Open”、“Save”、“Save as”和“Exit”,其中“Open”的快捷键为Ctrl+O,“Save”的快捷键为Ctrl+S,而“Help”菜单以及其中的菜单项“Index”和“About”没定了第一个字母为其快捷字母,通过鼠标单击任一个菜单项或通过快捷键以及快捷字母,都能在后台输入所选择的菜单项。import java.awt.*;import java.awt.event.*;import jav
3、ax.swing.*;import javax.swing.event.*;public class java2 extends JFrame_private JMenuItem saveItem;private JMenuItem saveAsItem;private JPopupMenu popup;private JTextArea textArea;public java2()setTitle(“java2“);setSize(400,300);addWindowListener(new WindowAdapter()public void windowClosing(WindowEv
4、ent e)System.exit(0););textArea=new JTextArea(0,0);Container contentPane=getContentPane();contentPane.add(new JScrollPane(textArea),“Center“);JMenuBar menuBar=new JMenuBar();menuBar.setLayout(new BoxLayout(menuBar,BoxLayout.Y_AXIS);getContentPane().add(menuBar,BorderLayout.WEST);HorizontalMenu fileM
5、enu=new HorizontalMenu(“File“);fileMenu.addMenuListener(this);JMenuItem openItem=new JMenuItem(“Open“);openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_0,InputEvent.CTRL_MASK);saveItem=new JMenuItem(“Save“);saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK);
6、saveAsItem=new JMenuItem(“Save As“);menuBar.add(makeMenu(fileMenu,new Object“New“,openItem,null,saveItem,saveAsItem,null,“Exit“,this);HorizontalMenu helpMenu=new HorizontalMenu(“Help“);helpMenu._(H);menuBar.add(Box.createVerticalGlue();menuBar.add(makeMenu(helpMenu,new Objectnew JMenuItem(“Index“,I)
7、,new JMenuItem(“About“,A),this);public void actionPerformed(ActionEvent evt)String arg=evt.getActionCommand();System.out.println(arg);if(arg.equals(“Exit“)System.exit(0);public void menuSelected(MenuEvent evt)public void menuDeselected(MenuEvent evt)public void menuCanceled(MenuEvent evt)public Hori
8、zontalMenu makeMenu(Object parent,Objectitems,Object target)HorizontalMenu m=null;if(parent instanceof HorizontalMenu)m=(HorizontalMenu)parent;else if(parent instanceof String)m=new HorizontalMenu(String)parent);elsereturn null;m.setMinimumSize(m.getPrefeHedSize();for(int i=0;iitems.length;i+)if(ite
9、msi=null)m.addSeparator();elsem.add(makeMenuItem(itemsi,target);return m;public static JMenuItem makeMenuItem(Object item,Object target)JMenuItem r=null;if(item instanceof String)r=new JMenuItem(String)item);else if(item instanceof JMenuItem)r=(JMenuItem)item;else return null;if(target instanceof Ac
10、tionListener)r.addActionListener(ActionListener)target);return r;class HorizontalMenu extends JMenuHorizontalMenu(String label)super(label);JPopupMenu pm=getPopupMenu();pm.setLayout(new BoxLayout(pm,BoxLayout.X_AXIS);setMinimumSize(getPreferredSize();public static void main(stringargs)Frame f=new ja
11、va2();f.show();(分数:40.00)_三、综合应用题(总题数:1,分数:30.00)3.本题中,主窗口中有两个下拉菜单,一个控制绘制图形的颜色,另一个控制绘制的图形,在画板中单击鼠标,则以单击的位置为左上角、以选定的颜色绘制选定的图形。import java.awt.*;import java.awt.event.*;class java3 extends FrameStringfigureNames=“圆形“,“椭圆形“,“正方形“,“长方形“);StringcolorNames=“红色“,“绿色“.“蓝色“.“黄色“;ColorcolorValues=Color.red,Co
12、lor.green,Color.blue,Color.yellow;Choice chFigure=new Choice();Choice chColor=new Choice();int curX,curY;java3()super(“java3“);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););Panel p=new Panel(new GridLayout(1,0);for(int i=0;ifigureNames.length;i+)chFigu
13、re.addItem(figureNamesi);for(int i=0;icolorNames.length;i+)chColor.addItem(colorNamesi);p.add(chColor);p.add(chFigure);add(p,BorderLayout.NORTH);addMouseListener(this);setSize(300,300);show();public void update(Graphics g)g.getColor(colorValueschColor.getSelectedIndex();switch(chFigure.getSelectedIn
14、dex()case 0;g.fillOval(curX,curY,30,30);break;case 1:g.fillOval(curX,curY,30,50);break;case 2:g.fillReet(curX,curY,30,30);break;case 3:g.fillRect(curX,curY,30,50);break;class MouseEventListener implements MouseAdapterpublic void mousePressed(MouseEvent evt)curX=evt.getX();curY=evt.getY();repaint();s
15、tatic public void main(Stringargs)new java3();(分数:30.00)_二级 JAVA 机试-140 答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题统计 score=(37,89,63,60,59,78,91)中成绩不及格的人数。public class java1public static void main(Stringargs)int score=37,89,63,60,59,78,91;int sum=0;int i=0;while(iscore.length)if(scorei=60
16、)_;_;_;i+;System.out.println(“below 60 sum:“+sum);(分数:30.00)_正确答案:(第 1 处:i+第 2 处:continue第 3 处:sum+)解析:解析 第 1 处是为往后遍历做自加;第 2 处是结束本次循环;第 3 处是如果符合不及格这个条件,则 sum 做累加统计。二、简单应用题(总题数:1,分数:40.00)2.本题中,在窗口右侧添加了一个菜单,右侧为一个文本域,菜单有“File”和“Help”,“File”菜单中有菜单项“New”、“Open”、“Save”、“Save as”和“Exit”,其中“Open”的快捷键为Ctrl+
17、O,“Save”的快捷键为Ctrl+S,而“Help”菜单以及其中的菜单项“Index”和“About”没定了第一个字母为其快捷字母,通过鼠标单击任一个菜单项或通过快捷键以及快捷字母,都能在后台输入所选择的菜单项。import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class java2 extends JFrame_private JMenuItem saveItem;private JMenuItem saveAsItem;private JPopu
18、pMenu popup;private JTextArea textArea;public java2()setTitle(“java2“);setSize(400,300);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););textArea=new JTextArea(0,0);Container contentPane=getContentPane();contentPane.add(new JScrollPane(textArea),“Center“)
19、;JMenuBar menuBar=new JMenuBar();menuBar.setLayout(new BoxLayout(menuBar,BoxLayout.Y_AXIS);getContentPane().add(menuBar,BorderLayout.WEST);HorizontalMenu fileMenu=new HorizontalMenu(“File“);fileMenu.addMenuListener(this);JMenuItem openItem=new JMenuItem(“Open“);openItem.setAccelerator(KeyStroke.getK
20、eyStroke(KeyEvent.VK_0,InputEvent.CTRL_MASK);saveItem=new JMenuItem(“Save“);saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK);saveAsItem=new JMenuItem(“Save As“);menuBar.add(makeMenu(fileMenu,new Object“New“,openItem,null,saveItem,saveAsItem,null,“Exit“,this);Horizon
21、talMenu helpMenu=new HorizontalMenu(“Help“);helpMenu._(H);menuBar.add(Box.createVerticalGlue();menuBar.add(makeMenu(helpMenu,new Objectnew JMenuItem(“Index“,I),new JMenuItem(“About“,A),this);public void actionPerformed(ActionEvent evt)String arg=evt.getActionCommand();System.out.println(arg);if(arg.
22、equals(“Exit“)System.exit(0);public void menuSelected(MenuEvent evt)public void menuDeselected(MenuEvent evt)public void menuCanceled(MenuEvent evt)public HorizontalMenu makeMenu(Object parent,Objectitems,Object target)HorizontalMenu m=null;if(parent instanceof HorizontalMenu)m=(HorizontalMenu)paren
23、t;else if(parent instanceof String)m=new HorizontalMenu(String)parent);elsereturn null;m.setMinimumSize(m.getPrefeHedSize();for(int i=0;iitems.length;i+)if(itemsi=null)m.addSeparator();elsem.add(makeMenuItem(itemsi,target);return m;public static JMenuItem makeMenuItem(Object item,Object target)JMenu
24、Item r=null;if(item instanceof String)r=new JMenuItem(String)item);else if(item instanceof JMenuItem)r=(JMenuItem)item;else return null;if(target instanceof ActionListener)r.addActionListener(ActionListener)target);return r;class HorizontalMenu extends JMenuHorizontalMenu(String label)super(label);J
25、PopupMenu pm=getPopupMenu();pm.setLayout(new BoxLayout(pm,BoxLayout.X_AXIS);setMinimumSize(getPreferredSize();public static void main(stringargs)Frame f=new java2();f.show();(分数:40.00)_正确答案:(第 1 处:implements ActionListener,MenuListener第 2 处:setMnemonic)解析:解析 第 1 处是实现了 ActionListener 接口,MenuListener
26、接口;第 2 处是设置 Help 的快捷键为H。三、综合应用题(总题数:1,分数:30.00)3.本题中,主窗口中有两个下拉菜单,一个控制绘制图形的颜色,另一个控制绘制的图形,在画板中单击鼠标,则以单击的位置为左上角、以选定的颜色绘制选定的图形。import java.awt.*;import java.awt.event.*;class java3 extends FrameStringfigureNames=“圆形“,“椭圆形“,“正方形“,“长方形“);StringcolorNames=“红色“,“绿色“.“蓝色“.“黄色“;ColorcolorValues=Color.red,Colo
27、r.green,Color.blue,Color.yellow;Choice chFigure=new Choice();Choice chColor=new Choice();int curX,curY;java3()super(“java3“);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););Panel p=new Panel(new GridLayout(1,0);for(int i=0;ifigureNames.length;i+)chFigure
28、.addItem(figureNamesi);for(int i=0;icolorNames.length;i+)chColor.addItem(colorNamesi);p.add(chColor);p.add(chFigure);add(p,BorderLayout.NORTH);addMouseListener(this);setSize(300,300);show();public void update(Graphics g)g.getColor(colorValueschColor.getSelectedIndex();switch(chFigure.getSelectedInde
29、x()case 0;g.fillOval(curX,curY,30,30);break;case 1:g.fillOval(curX,curY,30,50);break;case 2:g.fillReet(curX,curY,30,30);break;case 3:g.fillRect(curX,curY,30,50);break;class MouseEventListener implements MouseAdapterpublic void mousePressed(MouseEvent evt)curX=evt.getX();curY=evt.getY();repaint();sta
30、tic public void main(Stringargs)new java3();(分数:30.00)_正确答案:(第 1 处:addMouseListener(new MouseEventListener()第 2 处:g.setColor(colorValueschColor.getselectedIndex()第 3 处:class MouseEventListener extends MouseAdapter)解析:解析 第 1 处是注册鼠标监听器,主要是单击动作;第 2 处是设置 Graphics 类对象 g 的颜色通过将从 chColor 中选中的字符串转换成 colorValues 类型来实现;第 3 处定义一个 MouseEventListener 类来继承 MouseAdapter 鼠标事件适配器。