1、二级 JAVA 机试-17 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题的功能是统计成绩不及格的人数,分数有 89,90,56,90,89,45,23,45,60,59,61。public class java1public static void main(Stringargs)intscore=56,90,89,23,45,61,60,59;int num=0;_;int i=0;while(_)if(_)sum+;i+;System.out.println(“60:“+sum);(分数:30.00)_二、简单应用题(总题数:
2、1,分数:40.00)2.本题中,窗口的背景色为系统桌面的颜色,在窗口中分别画空心和实心的黑色矩形、深灰色圆角矩形和浅灰色椭圆形,并且画白色粗体的“欢迎学习 Java!”字符串。import java.awt.*;import javax.swing.*;public class java2public static void main(Stringargs)FillFrame frame=new FillFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.show();class FillFrame exten
3、ds JFramepublic FillFrame()setTitle(“java2“);setSize(WIDTH,HEIGHT);FillPanel panel=new FillPanel();panel.setBackround(SystemColor.desktop);Container contentPane=getContentPane();contentPane.add(panel);public static final int WIDTH=400;public static final int HEIGHT=250;class FillPanel extends JPanel
4、public void paintComponent(Graphics g)_;g.setColor(new Color(10,10,10);g.drawRect(10,10,100,30);g.setColor(new Color(100,100,100);g.drawRoundRect(150,10,100,30,15,15);g.setColor(new Color(150,150,150);g.drawOval(280,10,80,30);g.setColor(new Color(10,10,10);g.fillRect(10,110,100,30);g.setColor(new Co
5、lor(100,100,100);g.fillRoundRect(150,110,100,30,15,15);g.setColor(new Color(150,150,150);g.fillOval(280,110,80,30);g.setColor(Color.white);Font f=new Font(“宋体“,_,20);g.setFont(f);g.drawstring(“欢迎学习 Java!“,150,200);(分数:40.00)_三、综合应用题(总题数:1,分数:30.00)3.本题的功能是对图形进行操作,包括旋转、移位、放大和剪切。窗口中有 4 个单选按钮和一个图形面板,图形
6、面板中有一个矩形和该矩形移位操作后的图形,任选其中一个单选按钮,则图形面板中将显示该操作后的图形。import java.awt.*;import java.awt.event.*;import java.awt.geom.*;import java.util.*;import javax.swing.*;public class java3public static void main(Stringargs)JFrame frame=new TransformTestFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);fr
7、ame.show();class TransformTest extends JFramepublic TransformTestFrame()setTitle(“java3“);setSize(WIDTH,HEIGHT);Container contentPane=getContentPane();canvas=new TransformPanel();contentPane.add(canvas,BorderLayout,CENTER);JPanel buttonPanel=new JPanel();ButtonGroup group=new ButtonGroup();JRadioBut
8、ton rotateButton=new JRadioButton(“旋转“,true);buttonPanel.add(rotateButton);group.add(rotateButton);rotateButton.addActionListener(newActionListener()public void actionPerformed(ActionEvent event)canvas.setRotate(););JRadioButton translateButton=new JRadioButton(“移位“,false);buttonPanel.add(translateB
9、utton);group.add(translateButton);translateButton.addActionListener(newActionListener()public void actionPerformed(ActionEvent event)canvas.setTranslate(););JRadioButton scaleButton=new JRadioButton(“放大“,false);buttonPanel.add(scaleButton);group.add(scaleButton);scaleButton.addActionListener(newActi
10、onListener()public void actionPerformed(ActionEvent event)canvas.setScale(););JRadioButton shearButton=new JRadioButton(“剪切“,false);buttonPanel.add(shearButton);group.add(shearButton);shearButton.addActionListener(newActionListener()public void actionPerformed(ActionEvent event)canvas.setShear(););c
11、ontentPane.add(buttonPanel,BorderLayout.NORTH)private TransformPanel canvas;private static final int WIDTH=300;private static final int HEIGHT=300;class TransformPanel extend JPanelpublic TransformPanel()square=new Rectangle2D.Double(-50,-50,100,100);t=flew AffineTransform();setRotate();public void
12、paintComponent()super.paintComponent(g);Graphics2D g2=(Graphics2D)g;g2.translate(getWidth()/2,getHeight()/2);g2.setPaint(Color.gray);g2.draw(square);g2.transform(t);g2.setPaint(Color.black);g2.draw(square);public void setRotate()t.setToRotation(Math.toRadians(30);repaint();public void setTranslate()
13、t.setToTranslation(20,15);repaint();public void setScale()t.setToScale(2.0,1.5);repaint();public void setShear()t.setToShear(-0.2,0);repaint();private Rectangle2D square;private AffineTransform t;(分数:30.00)_二级 JAVA 机试-17 答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题的功能是统计成绩不及格的人数,分数有 89,90,5
14、6,90,89,45,23,45,60,59,61。public class java1public static void main(Stringargs)intscore=56,90,89,23,45,61,60,59;int num=0;_;int i=0;while(_)if(_)sum+;i+;System.out.println(“60:“+sum);(分数:30.00)_正确答案:(第 1 处:int sum=0第 2 处:iscore.length第 3 处:scorei60 或 scorei=59)解析:解析 第 1 处是定义变量,前面的 int num=0 只是迷惑考生的;
15、第 2 处为循环条件;第 3 处判断是否及格。二、简单应用题(总题数:1,分数:40.00)2.本题中,窗口的背景色为系统桌面的颜色,在窗口中分别画空心和实心的黑色矩形、深灰色圆角矩形和浅灰色椭圆形,并且画白色粗体的“欢迎学习 Java!”字符串。import java.awt.*;import javax.swing.*;public class java2public static void main(Stringargs)FillFrame frame=new FillFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
16、;frame.show();class FillFrame extends JFramepublic FillFrame()setTitle(“java2“);setSize(WIDTH,HEIGHT);FillPanel panel=new FillPanel();panel.setBackround(SystemColor.desktop);Container contentPane=getContentPane();contentPane.add(panel);public static final int WIDTH=400;public static final int HEIGHT
17、=250;class FillPanel extends JPanelpublic void paintComponent(Graphics g)_;g.setColor(new Color(10,10,10);g.drawRect(10,10,100,30);g.setColor(new Color(100,100,100);g.drawRoundRect(150,10,100,30,15,15);g.setColor(new Color(150,150,150);g.drawOval(280,10,80,30);g.setColor(new Color(10,10,10);g.fillRe
18、ct(10,110,100,30);g.setColor(new Color(100,100,100);g.fillRoundRect(150,110,100,30,15,15);g.setColor(new Color(150,150,150);g.fillOval(280,110,80,30);g.setColor(Color.white);Font f=new Font(“宋体“,_,20);g.setFont(f);g.drawstring(“欢迎学习 Java!“,150,200);(分数:40.00)_正确答案:(第 1 处:super.paintComponent(g)第 2 处
19、:Font.Bold)解析:解析 第 1 处使用父类方法应使用 super 来引用;第 2 处为设置粗体。三、综合应用题(总题数:1,分数:30.00)3.本题的功能是对图形进行操作,包括旋转、移位、放大和剪切。窗口中有 4 个单选按钮和一个图形面板,图形面板中有一个矩形和该矩形移位操作后的图形,任选其中一个单选按钮,则图形面板中将显示该操作后的图形。import java.awt.*;import java.awt.event.*;import java.awt.geom.*;import java.util.*;import javax.swing.*;public class java3
20、public static void main(Stringargs)JFrame frame=new TransformTestFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.show();class TransformTest extends JFramepublic TransformTestFrame()setTitle(“java3“);setSize(WIDTH,HEIGHT);Container contentPane=getContentPane();canvas=new TransformP
21、anel();contentPane.add(canvas,BorderLayout,CENTER);JPanel buttonPanel=new JPanel();ButtonGroup group=new ButtonGroup();JRadioButton rotateButton=new JRadioButton(“旋转“,true);buttonPanel.add(rotateButton);group.add(rotateButton);rotateButton.addActionListener(newActionListener()public void actionPerfo
22、rmed(ActionEvent event)canvas.setRotate(););JRadioButton translateButton=new JRadioButton(“移位“,false);buttonPanel.add(translateButton);group.add(translateButton);translateButton.addActionListener(newActionListener()public void actionPerformed(ActionEvent event)canvas.setTranslate(););JRadioButton sc
23、aleButton=new JRadioButton(“放大“,false);buttonPanel.add(scaleButton);group.add(scaleButton);scaleButton.addActionListener(newActionListener()public void actionPerformed(ActionEvent event)canvas.setScale(););JRadioButton shearButton=new JRadioButton(“剪切“,false);buttonPanel.add(shearButton);group.add(s
24、hearButton);shearButton.addActionListener(newActionListener()public void actionPerformed(ActionEvent event)canvas.setShear(););contentPane.add(buttonPanel,BorderLayout.NORTH)private TransformPanel canvas;private static final int WIDTH=300;private static final int HEIGHT=300;class TransformPanel exte
25、nd JPanelpublic TransformPanel()square=new Rectangle2D.Double(-50,-50,100,100);t=flew AffineTransform();setRotate();public void paintComponent()super.paintComponent(g);Graphics2D g2=(Graphics2D)g;g2.translate(getWidth()/2,getHeight()/2);g2.setPaint(Color.gray);g2.draw(square);g2.transform(t);g2.setP
26、aint(Color.black);g2.draw(square);public void setRotate()t.setToRotation(Math.toRadians(30);repaint();public void setTranslate()t.setToTranslation(20,15);repaint();public void setScale()t.setToScale(2.0,1.5);repaint();public void setShear()t.setToShear(-0.2,0);repaint();private Rectangle2D square;private AffineTransform t;(分数:30.00)_正确答案:(第 1 处:class TransformTestFrame extends JFrame第 2 处:class TransformPanel extends JFrame第 3 处:public void paintComponent(Graphics g)解析:解析 第 1 处类中公有对象名称应与类名一致;第 2 处为继承的父类不正确;第 3 处从下面的super.paintComponent(g);可判断出应有参数 Graphics g。