1、 二级 JAVA 上机试题汇编第 01 套:1. 基本操作(1 小题,计 30 分)注意:下面出现的“考生文件夹”均为%USER%在考生文件夹中存有文件名为 Java_1.java 的文件,该程序是不完整的,请在注释行“/*Found*”下一行语句的下划线地方填入正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。本题的要求是:完善 Java_1.java 程序,并完成两个整数的输入,两个整数为:最后按确定键退出程序。给定源程序:/计算两个整数的乘法import javax.swing.JOptionPane;publi
2、c class Java_1 public static void main( String args ) int x, y, result;String xVal, yVal;xVal = JOptionPane.showInputDialog( “输入第 1 个整数:“ );yVal = JOptionPane.showInputDialog( “输入第 2 个整数:“ );/*Found*x = Integer.parseInt( _ );y = Integer.parseInt( yVal );result = x * y;/*Found*JOptionPane._( null, “两
3、个数的积: “ + result );System.exit( 0 );解题思路:Java 程序修改如下:第 1 处:需转换成整数的字符串变量,需填入 xVal第 2 处:调用显示信息对话框,需填入 showMessageDialog参考源程序:c:wexam28990001hlpsys参考答案Java_1.java请把该程序复制到 c:wexam28990001 中,然后进行编译和执行。2. 简单应用(1 小题,计 40 分.)注意:下面出现的“考生文件夹”均为%USER%在考生文件夹中存有文件名为 Java_2.java 的文件,该程序是不完整的,请在注释行“/*Found*”下一行语句的
4、下划线地方填入正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。本题的要求是:阅读 Java_2.java 程序,该程序的功能是将本程序代码打印输出。完成程序编写并运行。所得结果即本程序代码。给定源程序:import java.io.*;public class Java_2/*Found*public static void main(String args) _ Exceptionlong filePoint = 0 ;String s;RandomAccessFile file = new RandomAcces
5、sFile(“Java_2.java“,“r“);long fileLength = file.length();while (filePointfileLength)/*Found*s = _.readLine();System.out.println(s);filePoint = file.getFilePointer();file.close();解题思路:Java 程序修改如下:第 1 处:异常处理,需填入 throws第 2 处:随机存取文件,需填入 file参考源程序:c:wexam28990001hlpsys参考答案Java_2.java请把该程序复制到 c:wexam28990
6、001 中,然后进行编译和执行。3. 综合应用(1 小题,计 30 分)注意:下面出现的“考生文件夹”均为%USER%在考生文件夹中存有文件名为 Java_3.java 的文件,该程序是不完整的,请在注释行“/*Found*”下一行语句的下划线地方填入正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。本题的要求是:阅读 Java_3.java 程序,该程序利用 BitSet 算法,筛选得到 1 至 1023 之间的素数。完成程序并运行所得结果为:给定源程序:/Java_3.java: 用 BitSet 完成 Erato
7、sthenes 筛网算法找 1 至 1023 之间的素数.import java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;public class Java_3 extends JFrame public Java_3()super( “BitSets“ );final BitSet sieve = new BitSet( 1024 );Container c = getContentPane();final JLabel status = new JLabel();c.add( status,
8、 BorderLayout.SOUTH );JPanel inputPanel = new JPanel();inputPanel.add( new JLabel( “从 1 至 1023“ +“输入值:“ ) );final JTextField input = new JTextField( 10 );input.addActionListener(new ActionListener() public void actionPerformed( ActionEvent e )int val = Integer.parseInt( input.getText() );if ( sieve.
9、get( val ) )status.setText( val + “ 是一个素数 “ );elsestatus.setText( val +“ 不是一个素数 “ ););inputPanel.add( input );c.add( inputPanel, BorderLayout.NORTH );JTextArea primes = new JTextArea();ScrollPane p = new ScrollPane();/*Found*p.add( _ );c.add( p, BorderLayout.CENTER );/从 1 至 1023 设置所有位int size = siev
10、e.size();for ( int i = 1; i size; i+ )sieve.set( i );/执行 Eratosthenes 筛网算法int finalBit = ( int ) Math.sqrt( sieve.size() );for ( int i = 2; i finalBit; i+ )if ( sieve.get( i ) )for ( int j = 2 * i; j size; j += i )sieve.clear( j );int counter = 0;for ( int i = 1; i size; i+ )if ( sieve.get( i ) ) pr
11、imes.append( String.valueOf( i ) );primes.append( +counter % 7 = 0 ? “n“ : “t“ );setSize( 300, 250 );show();public static void main( String args )Java_3 app = new Java_3();/*Found*app._(new WindowAdapter() public void windowClosing( WindowEvent e )System.exit( 0 ););解题思路:Java 程序修改如下:第 1 处:文本区域添加到窗口,
12、需填入 primes第 2 处:注册监控器,需填入 addWindowListener参考源程序:c:wexam28990001hlpsys参考答案Java_3.java请把该程序复制到 c:wexam28990001 中,然后进行编译和执行。第 02 套:1. 基本操作(1 小题,计 30 分)注意:下面出现的“考生文件夹”均为%USER%在考生文件夹中存有文件名为 Java_1.java 的文件,该程序是不完整的,请在注释行“/*Found*”下一行语句的下划线地方填入正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件
13、名。本题的要求是:使程序按下列格式打印:欢迎你参加Java考试注意:在输出的字符串中不含有空格。给定源程序:/用一个打印语句输出多行结果public class Java_1public static void main( String args )/*Found*_(“欢迎n 你n 参加nJavan 考试“);解题思路:Java 程序修改如下:第 1 处:在屏幕上打印输出,需填入 System.out.println 或 System.out.print参考源程序:c:wexam28990001hlpsys参考答案Java_1.java请把该程序复制到 c:wexam28990001 中,然
14、后进行编译和执行。2. 简单应用(1 小题,计 40 分)注意:下面出现的“考生文件夹”均为%USER%在考生文件夹中存有文件名为 Java_2.java 的文件,该程序是不完整的,请在注释行“/*Found*”下一行语句的下划线地方填入正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。本题的要求是:程序中 HandleButton 类是“Please press me!“按钮的监听器类。完成程序,使在点击“Please press me!“按钮时在命令窗口中打印“The button is pressed!“,并且在
15、点击窗口右上方的关闭窗口按钮时能够关闭窗口。给定源程序:import java.awt.*;import java.awt.event.*;TABpublic class Java_2 extends Frame TAB TABTAB public Java_2(String s)TAB TAB super(s);TAB TABTAB public static void main(String args)TAB TABTAB TAB Java_2 fr = new Java_2(“Testing“);TAB TAB Button b=new Button(“Please press me!“
16、);/*Found*b.addActionListener(_);TAB TAB fr.add(b);TAB TAB fr.setSize(200,200);TAB TAB TAB TABTAB TAB fr.addWindowListener(new WindowAdapter()TAB TAB TAB public void windowClosing(WindowEvent e) TAB TAB TAB TAB System.exit(0);TAB TAB TAB TAB TAB );/*Found*TAB TAB fr.setVisible(_);TABTAB class Handle
17、Button implements ActionListenerpublic void actionPerformed(ActionEvent e)TAB System.out.println(“The button is pressed!“);解题思路:Java 程序修改如下:第 1 处:为按钮注册监听器,需填入 new HandleButton()第 2 处:将窗体设为可见,需填入 true参考源程序:c:wexam28990001hlpsys参考答案Java_2.java请把该程序复制到 c:wexam28990001 中,然后进行编译和执行。3. 综合应用(1 小题,计 30 分)注意
18、:下面出现的“考生文件夹”均为%USER%在考生文件夹中存有文件名为 Java_3.java 的文件,该程序是不完整的,请在注释行“/*Found*”下一行语句的下划线地方填入正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。本题的要求是:该程序是测试以 0 作除数异常,在文本域中,显示出异常信息。完成程序并正常运行,运行结果如图所示。给定源程序:import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;public
19、class Java_3public static void main(String args)ExceptTestFrame frame = new ExceptTestFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);class ExceptTestFrame extends JFramepublic ExceptTestFrame()setTitle(“ExceptTest“);Container contentPane = getContentPane();Except
20、TestPanel panel = new ExceptTestPanel();contentPane.add(panel);pack();class ExceptTestPanel extends Boxpublic ExceptTestPanel()super(BoxLayout.Y_AXIS);group = new ButtonGroup();addRadioButton(“整数被零除“, newActionListener()/*Found*public void _(ActionEvent event)/*Found*a1 = 1 / (a.length - a._););text
21、Field = new JTextField(30);add(textField);private void addRadioButton(String s, ActionListener listener)JRadioButton button = new JRadioButton(s, false)protected void fireActionPerformed(ActionEvent event)trytextField.setText(“No exception“);super.fireActionPerformed(event);catch (Exception exceptio
22、n)/*Found*textField._(exception.toString();button.addActionListener(listener);add(button);group.add(button);private ButtonGroup group;private JTextField textField;private double a = new double10;解题思路:Java 程序修改如下:第 1 处:事件处理方法,需填入 actionPerformed第 2 处:被零除,测试异常处理,需填入 length第 3 处:设置文本框文字,需填入 setText参考源程
23、序:c:wexam28990001hlpsys参考答案Java_3.java请把该程序复制到 c:wexam28990001 中,然后进行编译和执行。第 03 套:1. 基本操作(1 小题,计 30 分)注意:下面出现的“考生文件夹”均为%USER%在考生文件夹中存有文件名为 Java_1.java 文件,请完善 Java_1.java 文件,并进行调试,使程序结果为:a b c d e f g h i由于 Java_1.java 文件不完整,请在注释行 “/*Found*”下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或其他已有语句内容。存盘时,文件必须存放在考生文件夹下
24、,不得改变原有文件的文件名。给定源程序:import java.io.*;public class Java_1 public static void main(String args) char charArray = a,b,c,d,e,f,g,h,i;char c ;try/*Found*DataOutputStream out = new _(new FileOutputStream(“test.dat“);for(int i =0; icharArray.length; i+)out.writeChar(charArrayi);out.close();TAB TABDataInput
25、Stream in = new DataInputStream(/*Found*new FileInputStream(“_“);while(in.available() != 0)c=in.readChar();System.out.print(c+“ “);System.out.println();/*Found*in._();catch(IOException e)解题思路:Java 程序修改如下:第 1 处:创建数据输出流,需填入 DataOutputStream第 2 处:文件输入流的文件名,需填入 test.dat第 3 处:关闭数据输入流,需填入 close参考源程序:c:wex
26、am28990001hlpsys参考答案Java_1.java请把该程序复制到 c:wexam28990001 中,然后进行编译和执行。*2. 简单应用(1 小题,计 40 分)注意:下面出现的“考生文件夹”均为%USER%在考生文件夹中存有文件名为 Java_2.java 文件,本题功能是在 1-n 之间的自然数中,每次抽取 k 个数字来抽奖,计算中奖几率的算法为:n*(n-1)*(n-2)* (n-k+1) / 1*2*3*k请完善 Java_2.java 文件,并进行调试,使程序先显示输入窗口如下:然后从自然数 1-20 中,每次抽 3 个数,计算中奖几率,并将最终结果在命令行中显示,其
27、形式类似:你中奖的几率是 1/1140. Good luck!由于 Java_2.java 文件不完整,请在注释行 “/*Found*”下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或其他已有语句内容。存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。给定源程序:import javax.swing.*;public class Java_2public static void main(String args)/*Found*String input = _.showInputDialog(“你想抽几位数?“);/*Found*int k = Integer.
28、parseInt(_);input = JOptionPane.showInputDialog(“你想在自然数中抽的最高数是几?“);/*Found*int n = _.parseInt(input);int lotteryOdds = 1;for (int i = 1; i = k; i+)lotteryOdds = lotteryOdds * (n - i + 1)/i;/*Found*System.out.println(“你中奖的几率是 1/“ + _ + “. Good luck!“);System.exit(0);解题思路:Java 程序修改如下:第 1 处:输入对话框,需填入 J
29、OptionPane第 2 处:需转换成整数的字符串变量,需填入 input第 3 处:将字符串 input 转换成整数的类方法所属于的类,需填入 Integer第 4 处:屏幕打印内容,需填入 lotteryOdds参考源程序:c:wexam28990001hlpsys参考答案Java_2.java请把该程序复制到 c:wexam28990001 中,然后进行编译和执行。*3. 综合应用(1 小题,计 30 分)注意:下面出现的“考生文件夹”均为%USER%在考生文件夹中存有文件名为 Java_3.java 和 Java_3.html 文件,本题的功能是用递归定义:n!=n*(n-1)! 计算 0 至 10 的阶乘。请完善 Java_3.java 文件,并进行调试(在命令行中使用 appletviewer Java_3.html,或者使用集成开发环境) ,使小程序结果如下:由于 Java_3.java 文件不完整,请在注释行 “/*Found*”下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或其他已有语句内容。存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。