1、(A)二级 JAVA 笔试-2 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题的功能是计算 110 之间除了 5 以外的各个自然数的和。public class java1public static void main(String args)int i=l;int sum=0;while(i=10)if(i=5)_;_;i+;System. out. println(“sum=“+sum);(分数:30.00)填空项 1:_二、简单应用题(总题数:1,分数:30.00)2.本题的功能是监听键盘敲击事件,并将敲击的字符显示在标签上。
2、开始,文字标签提示“Please press your keyboard!”,当按下键盘上的字符键,文字标签就变为“*is pressed!”(*为所按字母)。import java. awt. * ;import java. awt. event. * ;import javax. swing. * ;public class java2 extends Frame_public static void main(String args)java2 f=new java2(“java2“);Panel pan=new Panel();f. init();public java2(String
3、 str)super(str);public void init()addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System. exit(0););setSize(200,200);setLayout(new FlowLayout();lab=new Label(“Please press your keyboard!“);add(lab);addKeyListener(this);setVisible(true);public void keyTyped(KeyEvent e)lab
4、. setText(“/“+_+“/is pressed !“);repaint();public void keyPressed(KeyEvent e)public void keyReleased(KeyEvent e)private Label lab;(分数:30.00)填空项 1:_三、综合应用题(总题数:1,分数:40.00)3.本题的功能是求两个交叉图形的并、减、交和异或。窗口中有 4 个单选按钮和一个图形面板,面板中有两个交叉的图形,选中其中一个单选按钮,图形面板中以黑色填充的方式显示运算结果。import java. awt. * ;import java. awt. eve
5、nt. * ;import java. awt. geom. * ;import java. util. * ;import javax. swing. * ;public class java3public static void main(String args)JFrame frame=new AreaTestFrame();frame. setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE);frame. show();class AreaTestFrame extends JFramepublic AreaTestFrame()setTitl
6、e(“java3“);setSize(WIDTH, HEIGHT);area1=new Area (new Ellipse2D. Double(100,100,150,100);area2= new Area(new Rectangle2D. Double(150,150,150,100);Container confentPane=getContentpane();panel=newJPanel()public void paintComponent(Graphics g)super, paintComponent(g);Graphics2D g2=(Graphics2D)g;g2. dra
7、w(area1);g2. draw(area2);if(area!=null) g2. fill(area);contentPane, add (panel, BorderLayout. CENTER);JPaneI buttonPanel=new JPanel();ButtonGroup group=new ButtonGroup();JRadioButton addButton=new JRadioButton(“并“, false);buttonPanel. add(addButton);group. add(addButton);addButton. addActionListener
8、(newActionListener()public void actionPerformed(ActionEvent event)area=new Area();area. add(area1);area. add(area2);panel. repaint(););JRadioButton subtractButton=new JRadioButton(“减“, false);buttonPanel. add(subtraetButton);group. add(subtractButton);subtractButton. addActionListener(new ActionList
9、ener()public void actionPerformed(ActionEvent event)area=new Area();area. add(area1);area. subTract(area2);panel, repaint(););JRadioButton intersectButton=new JRadioButton(“交“, false);buttonPanel. add(interseetButton);group. add(intersectButton);intersectButton. addActionListener(newActionListener()
10、public void actionPerformed(AetionEvent event)area=new Area();area. add(area1);area. intersect(area2);panel. repaint(););JRadioButton exclusiveOrButton=new JRadioButton(“异或“, false);buttonPanel. add(exclusiveOrButton);group. add(exclusiveOrButton);exclusiveOrButton, addActionListener (new ActionList
11、ener()public void actionPerformed(ActionEvent event)area=new Area();area. add(area1);area. exclusiveor(area2);panel, repaint(););contentPane, add(buttonPanel, BorderLayout. NORTH);private JPanel panel;private Area area;private Area area1;private Area area2;private static final int WIDTH=400;private
12、static final int HEIGHT=400;(分数:40.00)填空项 1:_(A)二级 JAVA 笔试-2 答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题的功能是计算 110 之间除了 5 以外的各个自然数的和。public class java1public static void main(String args)int i=l;int sum=0;while(i=10)if(i=5)_;_;i+;System. out. println(“sum=“+sum);(分数:30.00)填空项 1:_ (正确答案:第 1
13、 处:i=i+1 或 i+或 i+=1第 2 处:continue第 3 处:sum+=i 或 sum=sum+i)解析:解析 第 1 处 while 循环是累加 110 之间除了 5 的自然数之和,将 i 加 1 是为了跳过 5;第 2处当 i 等于 5 时就跳出本次循环;第 3 处累加 110 之间除了 5 的自然数的和将其最终赋给 sum。二、简单应用题(总题数:1,分数:30.00)2.本题的功能是监听键盘敲击事件,并将敲击的字符显示在标签上。开始,文字标签提示“Please press your keyboard!”,当按下键盘上的字符键,文字标签就变为“*is pressed!”(
14、*为所按字母)。import java. awt. * ;import java. awt. event. * ;import javax. swing. * ;public class java2 extends Frame_public static void main(String args)java2 f=new java2(“java2“);Panel pan=new Panel();f. init();public java2(String str)super(str);public void init()addWindowListener(new WindowAdapter()p
15、ublic void windowClosing(WindowEvent e)System. exit(0););setSize(200,200);setLayout(new FlowLayout();lab=new Label(“Please press your keyboard!“);add(lab);addKeyListener(this);setVisible(true);public void keyTyped(KeyEvent e)lab. setText(“/“+_+“/is pressed !“);repaint();public void keyPressed(KeyEve
16、nt e)public void keyReleased(KeyEvent e)private Label lab;(分数:30.00)填空项 1:_ (正确答案:第 1 处:implements KeyListener第 2 处:e. getKeyChar())解析:解析 第 1 处实现键盘监听接口;第 2 处键盘事件对象 e 调用 getKeyChar()方法获得用户按下的键盘键值。三、综合应用题(总题数:1,分数:40.00)3.本题的功能是求两个交叉图形的并、减、交和异或。窗口中有 4 个单选按钮和一个图形面板,面板中有两个交叉的图形,选中其中一个单选按钮,图形面板中以黑色填充的方式显
17、示运算结果。import java. awt. * ;import java. awt. event. * ;import java. awt. geom. * ;import java. util. * ;import javax. swing. * ;public class java3public static void main(String args)JFrame frame=new AreaTestFrame();frame. setDefaultCloseOperation (JFrame. EXIT_ON_CLOSE);frame. show();class AreaTestF
18、rame extends JFramepublic AreaTestFrame()setTitle(“java3“);setSize(WIDTH, HEIGHT);area1=new Area (new Ellipse2D. Double(100,100,150,100);area2= new Area(new Rectangle2D. Double(150,150,150,100);Container confentPane=getContentpane();panel=newJPanel()public void paintComponent(Graphics g)super, paint
19、Component(g);Graphics2D g2=(Graphics2D)g;g2. draw(area1);g2. draw(area2);if(area!=null) g2. fill(area);contentPane, add (panel, BorderLayout. CENTER);JPaneI buttonPanel=new JPanel();ButtonGroup group=new ButtonGroup();JRadioButton addButton=new JRadioButton(“并“, false);buttonPanel. add(addButton);gr
20、oup. add(addButton);addButton. addActionListener(newActionListener()public void actionPerformed(ActionEvent event)area=new Area();area. add(area1);area. add(area2);panel. repaint(););JRadioButton subtractButton=new JRadioButton(“减“, false);buttonPanel. add(subtraetButton);group. add(subtractButton);
21、subtractButton. addActionListener(new ActionListener()public void actionPerformed(ActionEvent event)area=new Area();area. add(area1);area. subTract(area2);panel, repaint(););JRadioButton intersectButton=new JRadioButton(“交“, false);buttonPanel. add(interseetButton);group. add(intersectButton);inters
22、ectButton. addActionListener(newActionListener()public void actionPerformed(AetionEvent event)area=new Area();area. add(area1);area. intersect(area2);panel. repaint(););JRadioButton exclusiveOrButton=new JRadioButton(“异或“, false);buttonPanel. add(exclusiveOrButton);group. add(exclusiveOrButton);excl
23、usiveOrButton, addActionListener (new ActionListener()public void actionPerformed(ActionEvent event)area=new Area();area. add(area1);area. exclusiveor(area2);panel, repaint(););contentPane, add(buttonPanel, BorderLayout. NORTH);private JPanel panel;private Area area;private Area area1;private Area a
24、rea2;private static final int WIDTH=400;private static final int HEIGHT=400;(分数:40.00)填空项 1:_ (正确答案:第 1 处:Container contentPane=getContentPane()第 2 处:area. subtract(area2)第 3 处:area. exelusiveOr(area2))解析:解析 第 1 处用 getContentPane()获得内容面板;第 2 处表示从 area 形状中减去 area2 形状;第 3 处将 area 设置为 area 形状和 area2 形状的组合,并减去相交部分。