1、国家二级( JAVA)机试模拟试卷 5及答案与解析 一、选择题 1 Java中的抽象类 Reader和 Writer所处理的流是 ( )。 ( A)图像流 ( B)对象流 ( C)字节流 ( D)字符流 2 下列选项中,与成员变量共同构成一个类的是 ( )。 ( A)关键字 ( B)方法 ( C)运算符 ( D)表达式 3 下列不属于逻辑运算符的是 ( )。 ( A) ! ( B) | ( C) int arr=30,1,-9,70; int n=_; for(i=0;iarrj) int temp=arri; _; _; for(i=0;in;i+) System.out.print(arr
2、i+“ “); 答案 第 1处: arr.length 第 2处: arri=arrj 第 3处: arrj=temp 三、简单应用题 42 本题用复选框来控制 字体的显示,窗口中有一个标签和两个复选按钮,这两个复选按钮分别对应的字体的两个特点:加粗和倾斜,任意选中一个按钮或两个都选中,标签上的字符串就显示对应的字体。 import java.awt.*; import java.awt.event.*; import javax.swing.*; class CheckBoxFrame extends JFrame implements ActionListener public Check
3、BoxFrame() setTitle(“CheckBoxTest“); setSize(300, 200); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); JPanel p = new JPanel(); bold = addCheckBox(p, “Bold“); italic = addCheckBox(p, “Italic“); getContentPane().add(p, “South“); panel = new CheckBoxT
4、estPanel(); getContentPane().add(panel, “Center“); public JCheckBox addCheckBox(JPanel p, String name) JCheckBox c = new JCheckBox(name); c.addActionListener(_); p.add(c); return c; public void _ int m = (bold.isSelected() ? Font.BOLD : 0) + (italic.isSelected() ? Font.ITALIC : 0); panel.setFont(m);
5、 private CheckBoxTestPanel panel; private JCheckBox bold; private JCheckBox italic; class CheckBoxTestPanel extends JPanel public CheckBoxTestPanel() setFont(Font.PLAIN); public void setFont(int m) setFont(new Font(“SansSerif“, m, 12); repaint(); public void paintComponent(Graphics g) super.paintCom
6、ponent(g); g.drawString(“The quick brown fox jumps over the lazy dog.“, 0, 50); public class java2 public static void main(String args) JFrame frame = new CheckBoxFrame(); frame.show(); 四、综合应用题 43 本题的功能是对图形进行操作,包括旋转、移位、放大和剪切。窗口中有四个单选按钮和一个图形面板,图形面板中有一个矩形和该矩形移位操作后的图形,任选其中一个单选按钮,则图形面板中将显示该操作后的图形。 impor
7、t java.awt.*; import java.awt.event.*; import java.awt.geom.*; import java.util.*; import javax.swing.*; public class java3 public static void main(String args) JFrame frame = new TransformTestFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); class TransformTest extends JF
8、rame public 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(); JRadioButton rotateButton = new
9、 JRadioButton(“旋转 “, true); buttonPanel.add(rotateButton); group.add(rotateButton); rotateButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) canvas.setRotate(); ); JRadioButton translateButton = new JRadioButton(“移位 “, false); buttonPanel.add(translateButton
10、); group.add(translateButton); translateButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) canvas.setTranslate(); ); JRadioButton scaleButton = new JRadioButton(“放大 “, false); buttonPanel.add(scaleButton); group.add(scaleButton); scaleButton.addActionListene
11、r(new ActionListener() public void actionPerformed(ActionEvent event) canvas.setScale(); ); JRadioButton shearButton = new JRadioButton(“剪切 “, false); buttonPanel.add(shearButton); group.add(shearButton); shearButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent even
12、t) canvas.setShear(); ); contentPane.add(buttonPanel, BorderLayout.NORTH); private TransformPanel canvas; private static final int WIDTH = 300; private static final int HEIGHT = 300; class TransformPanel extend JPanel public TransformPanel() square = new Rectangle2DDouble(-50, -50, 100, 100); t = ne
13、w 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.setPaint(Color.black); g2.draw(square); public void setRotate() t.setToR
14、otation(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; 国家二级( JAVA)机试模拟试卷 5答案与解析
15、一、选择题 1 【正确答案】 D 【试题解析】 Reader/Writer所处理的流是字符流, InputStream/OutputStream的处理对象 是字节流。 2 【正确答案】 B 【试题解析】 类体中定义的两种成员是数据成员和成员函数。 3 【正确答案】 D 【试题解析】 !是逻辑非, |是逻辑或, 第 2处和第 3处是借助临时变量把小的元素交换到前面。 三、简单应用题 42 【正确答案】 第 1处: this第 2处: actionPerformed(ActionEvent evt) 【试题解析】 第 1处注册监听器进行授权,该方法的参数是事件处理者对象 ;第 2处是 actionPerformed方法通过读取 ActionEvent对象的相关信息来得到事件发生时的情况。 四、综合应用题 43 【正确答案】 第 1处: class TransformTestFrame extends JFrame第 2处: class TransformPanel extends Jframe第 3处: public void paintComponent(Graphics g) 【试题解析】 第 1处类中公有对象名称应与类名一致 ;第 2处为继承的父类不正确;第 3处从下面的 super.paintComponent(g);可判断出是应有参数 Graphics g。