1、国家二级( JAVA)机试模拟试卷 32及答案与解析 一、基本操作题( 30分) 1 下面的程序是打印输出 100 300之间的不能被 3整除的数。请在每条横线处填写一条语句,使程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 public class printN03and5 void print() int n; for(n=100 ; n =300 ; n+) if(n%3=0) _ System out println(n); public static_main(String args) printNo3and5 obj=new p
2、rintNo3and5() _ 二、简单应用题( 40分) 2 请完成下列 Java程序:用一个边框布局来安排一个工具栏和一个卡片布局。工具栏可浮动,包括 2个 按钮,一个向前一个向后控制卡片的显示;卡片布局包括 3张卡片,分别标识为 card1, card2, card3。 注意;请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 程序运行结果如下: import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border. LineBorder; publ
3、ic class ex24_2 private static CardLayout cl=new CardLayout(); private static JPanel cp=new JPanel(); public static void main(String args) JFrame if=new JFrame(); jf.setTitle(“ex24_2“); Container c=jf.getContentPane(); JToolBar jtb=new JToolBar(); JButton btnNext=new JButton(new ImageIcon(“next.gif“
4、); JButton btnPre=new JButton(new ImageIcon(“back.gif“); jtb.add(btnPre); jtb.add(btnNext); cp.setLayout(cl); Dimension dim=new Dimension(150,80); cp.setPreferredSize(dim); cp.setBorder(new LineBorder(Color. BLACK); cp.add(new JLabel(“cardl“,JLabel.CENTER),“card1“); cp.add(new JLabel(“card2“,JLabel.
5、CENTER),“card2“); cp.add(new JLabel(“card3“,JLabel.CENTER),“card3“); c.add(jtb,BorderLayout.NORTH); c.add(cp,BorderLayout.CENTER); ActionListener al=new ActionResponse(); _; _; jf.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent we) System.exit(0); ); jf.pack(); jf.setVisi
6、ble(true); static class ActionResponse implements ActionListener public void actionPerformed(ActionEvent ae) if(ae.getActionCommand().equals(“next“) cl.next(cp); else cl.previous(cp); 三、综合应用题( 30分) 3 下面是一个 Applet程序,其功能是计算山顶的高度,计算方法是;该山顶由 a点量得仰角度数为 a度,由 b点量得仰角度数为 b度,且测得 a, b点之间的距离为 c米,求山的高度。要求窗口中有 3个
7、输入框,分别作为 a, b, c的输入,一个按钮点击后进行计算,结果显示在另 一个文本框中 (这个文本框不可编辑 )。请改正程序中的错误 (有下划线的语句 ),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运行结果如下: import java.io.*; import java.awt.*; import java.awt.event.*; import java.applet.Applet; /* applet code=“ex23_3.class“ width=800 height=400 /applet */ public class ex23_3 exten
8、ds Applet implements ActionListener Panel pane=new Panel(); Label 11 = new Label(“a点仰角 :“); TextField tf1 = new TextField(5); Label 12 = new Label (“b点仰角 : “); TextField tf2 = new TextField(5); Label 13 = new Label(“a,b之间距离 :“); TextField tf3 = new TextField(5); Button btn = new Button(“OK“); Label
9、14=new Label(“山高 :“); TextField tf4=new TextField(20); ex23_3 obj23_3; public void init() pane.setLayout(new Flow Layout (FlowLayout.LEFT, 10,5); pane.add(11); pane.add(tf1); pane.add(12); pane.add(tf2); add(“North“,pane); Panel p2=new Panel(); p2.setLayout(new FlowLayout (FlowLayout.LEFT, 10,5); p2
10、.add(13); p2.add(tf3); p2.add(btn); btn.addActionListener(this); add(“Center“,p2); Panel p3=new Panel(); p3.setLayout(new FlowLayout(FlowLayout.LEFT,10,5); p3.add(14); tf4.setEditable(true); p3.add(tf4); add(“South“,p3); obj23_3=new ex23_3(); public void doMessure(double al,double a2,double a3,TextF
11、ield tf) double pi=Math. PI,a,b,h; a=al*pi/180.0; b=a2*pi/180.0; h=a3/(1.0/Math.tan(a)-1.0/Math.tan(b); tf.setText(Integer.toString(h); public void actionPerformed(ActionEvent ae) double a,b,c; try a=new Double(tf1.getText().doubleValue(); b=new Double(tf2.getText().doubleValue(); c=new Double(tf3.g
12、etText().doubleValue(); obj23_3.doMessure(a,b,c,tf4); catch(NumberFormatException nfe) tf4.setText(“wrong number!“); ex23_3, html HTML HEAD TITLE ex23_3 /TITLE /HEAD BODY applet code=“ex23_3.class“ width=800 height=400 /applet /BODY /HTML 国家二级( JAVA)机试模拟试卷 32答案与解析 一、基本操作题( 30分) 1 【正确答 案】 continue; v
13、oid obj print() ; 【试题解析】 本题主要考查 continue关键字,这个语句 ,main()主方法的使用。解答本题的关键是熟悉 continue关键字的作用,及成员方法的引用。在本题中continue;语句是用来退出本次 for循环语句,关键字 void是用来说明 main()主方法没有返回值。 obj.print();语句是用来引用 print()方法。 二、简单应用题( 40分) 2 【正确答案】 btnNext addActionListener(al) btnPre addActionListener(al) 【试题解析】 本题主要考查工具栏和卡片布局的基本使用。解
14、题关键是熟悉工具栏的设计和卡片布局的管理,熟悉事件处理机制,会制作图像按钮,会制作自己的事件监听器类。本题中,第 1个空和第 2个空都是需要填入注册监听器的语句,这里向前和向后 2个按钮共用一个监听器,此监听器对象负责判断和处理相应的操作。 三、综合应用题( 30分) 3 【正确答案】 th4.setEditable(false) h=a3 Math abs(1.0 Math tan(a)-1.0 Math tan(b) tf setText(Double toString(h) 【试题解析】 本题主要考查 Applet窗口编程和 AWT基本构件的使用以及事件处理机制。解题关键是设计出计算山高的方法,并且结合事件处理机制,调用该计算方法实现程序的功能。本题中,第 1处,由于用显示结果的文本框不可编辑,因此参数为 false;第 2处,需要对分母进行取绝对值操作,否则最后结果会产生负数;第 3处,由于 h是 double类型的变量,做数据类型转换时需要调用Double类的 toString()方法。