1、二级JAVA上机试题汇编 第01套: 1. 基本操作(1小题,计30分) 注意:下面出现的“考生文件夹”均为%USER% 在考生文件夹中存有文件名为Java_1.java的文件,该程序是不完整的,请 在注释行“//**********Found**********”下一行语句的下划线地方填入 正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。 存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。 本题的要求是: 完善Java_1.java程序,并完成两个整数的输入,两个整数为: 最后按确定键退出程序。 给定源程序: //计算两个整数的乘法 im
2、port javax.swing.JOptionPane; public 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( _____________
3、 ); y = Integer.parseInt( yVal ); result = x * y; //*********Found******** JOptionPane._________________________( null, "两个数的积: " + result ); System.exit( 0 ); 解题思路: Java程序修改如下: 第1处:需转换成整数的字符串变量,需填入 xVal 第2处:调用显示信息对话框,需填入 showMessageDialog 参考源程序:c:\wexam\28990001\hlpsys\参考答案\Java_1.ja
4、va 请把该程序复制到c:\wexam\28990001中,然后进行编译与执行。 2. 简单应用(1小题,计40分.) 注意:下面出现的“考生文件夹”均为%USER% 在考生文件夹中存有文件名为Java_2.java的文件,该程序是不完整的,请 在注释行“//**********Found**********”下一行语句的下划线地方填入 正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。 存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。 本题的要求是: 阅读Java_2.java程序,该程序的功能是将本程序代码打印输出。完成程 序编写并运行。所得
5、结果即本程序代码。
给定源程序:
import java.io.*;
public class Java_2{
//*********Found********
public static void main(String args[]) ___________ Exception{
long filePoint = 0 ;
String s;
RandomAccessFile file = new RandomAccessFile("Java_2.java","r");
long fileLength = file.length();
while (filePoint 6、ileLength){
//*********Found********
s = ___________.readLine();
System.out.println(s);
filePoint = file.getFilePointer();
file.close();
解题思路:
Java程序修改如下:
第1处:异常处理,需填入 throws
第2处:随机存取文件,需填入 file
参考源程序:c:\wexam\28990001\hlpsys\参考答案\Java_2.java
请把该程序复制到c:\wexam\28990001中,然后进行编译与执行。
3. 综合应用 7、1小题,计30分)
注意:下面出现的“考生文件夹”均为%USER%
在考生文件夹中存有文件名为Java_3.java的文件,该程序是不完整的,请
在注释行“//**********Found**********”下一行语句的下划线地方填入
正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。
存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
本题的要求是:
阅读Java_3.java程序,该程序利用BitSet算法,筛选得到1至1023之间
的素数。完成程序并运行所得结果为:
给定源程序:
//Java_3.java: 用BitSet完成Erat 8、osthenes筛网算法找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 JLabe 9、l();
c.add( status, 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.pa 10、rseInt( input.getText() );
if ( sieve.get( val ) )
status.setText( val + " 是一个素数 " );
else
status.setText( val +
" 不是一个素数 " );
inputPanel.add( input );
c.add( inputPanel, BorderLayout.NORTH );
JTextArea primes = new JTextArea();
ScrollPane p = new ScrollPane();
//*********Found********
p. 11、add( ________________ );
c.add( p, BorderLayout.CENTER );
//从1 至 1023设置所有位
int size = sieve.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 12、 = 2 * i; j < size; j += i )
sieve.clear( j );
int counter = 0;
for ( int i = 1; i < size; i++ )
if ( sieve.get( i ) ) {
primes.append( String.valueOf( i ) );
primes.append( ++counter % 7 == 0 ? "\n" : "\t" );
setSize( 300, 250 );
show();
public static void main( String args[] ){
Java_3 ap 13、p = new Java_3();
//*********Found********
app.________________________(
new WindowAdapter() {
public void windowClosing( WindowEvent e ){
System.exit( 0 );
解题思路:
Java程序修改如下:
第1处:文本区域添加到窗口,需填入 primes
第2处:注册监控器,需填入 addWindowListener
参考源程序:c:\wexam\28990001\hlpsys\参考答案\Java_3.java
请把该程序复制到c 14、\wexam\28990001中,然后进行编译与执行。
第02套:
1. 基本操作(1小题,计30分)
注意:下面出现的“考生文件夹”均为%USER%
在考生文件夹中存有文件名为Java_1.java的文件,该程序是不完整的,请
在注释行“//**********Found**********”下一行语句的下划线地方填入
正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。
存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
本题的要求是:
使程序按下列格式打印:
欢迎
你
参加
Java
考试
注意:
在输出的字符串中不含有空格。
15、给定源程序:
//用一个打印语句输出多行结果
public class Java_1
public static void main( String args[] )
//*********Found********
_________________________("欢迎\n你\n参加\nJava\n考试");
解题思路:
Java程序修改如下:
第1处:在屏幕上打印输出,需填入 System.out.println 或 System.out.print
参考源程序:c:\wexam\28990001\hlpsys\参考答案\Java_1.java
请把该程序复制到c: 16、\wexam\28990001中,然后进行编译与执行。
2. 简单应用(1小题,计40分)
注意:下面出现的“考生文件夹”均为%USER%
在考生文件夹中存有文件名为Java_2.java的文件,该程序是不完整的,请
在注释行“//**********Found**********”下一行语句的下划线地方填入
正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。
存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
本题的要求是:
程序中HandleButton类是"Please press me!"按钮的监听器类。
完成程序,使在点击"Please p 17、ress me!"按钮时在命令窗口中打印
"The button is pressed!",并且在点击窗口右上方的关闭窗口按钮时能
够关闭窗口。
给定源程序:
import java.awt.*;
import java.awt.event.*;
\TAB
public class Java_2 extends Frame {
\TAB \TAB
\TAB public Java_2(String s){
\TAB \TAB super(s);
\TAB }
\TAB
\TAB public static void main(String args[]){\TAB \ 18、TAB
\TAB \TAB Java_2 fr = new Java_2("Testing");
\TAB \TAB Button b=new Button("Please press me!");
//*********Found********
b.addActionListener(__________________);
\TAB \TAB fr.add(b);
\TAB \TAB fr.setSize(200,200);
\TAB \TAB \TAB \TAB
\TAB \TAB fr.addWindowListener(new WindowAdapter(){
\ 19、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(____________);\TAB
\TAB }
class HandleButton implements ActionListener{
public void actionPerformed(ActionEvent e){
\T 20、AB System.out.println("The button is pressed!");
解题思路:
Java程序修改如下:
第1处:为按钮注册监听器,需填入 new HandleButton()
第2处:将窗体设为可见,需填入 true
参考源程序:c:\wexam\28990001\hlpsys\参考答案\Java_2.java
请把该程序复制到c:\wexam\28990001中,然后进行编译与执行。
3. 综合应用(1小题,计30分)
注意:下面出现的“考生文件夹”均为%USER%
在考生文件夹中存有文件名为Java_3.java的文件,该程序是不完整的,请
21、
在注释行“//**********Found**********”下一行语句的下划线地方填入
正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。
存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
本题的要求是:
该程序是测试以0作除数异常,在文本域中,显示出异常信息。完成程序
并正常运行,运行结果如图所示。
给定源程序:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class Java_3
public 22、static void main(String[] args)
ExceptTestFrame frame = new ExceptTestFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
class ExceptTestFrame extends JFrame
public ExceptTestFrame()
setTitle("ExceptTest");
Container contentPane = getContentPane();
ExceptT 23、estPanel panel = new ExceptTestPanel();
contentPane.add(panel);
pack();
class ExceptTestPanel extends Box
public ExceptTestPanel()
super(BoxLayout.Y_AXIS);
group = new ButtonGroup();
addRadioButton("整数被零除", new
ActionListener()
//*********Found********
public void ___________________(Actio 24、nEvent event)
//*********Found********
a[1] = 1 / (a.length - a.__________);
textField = new JTextField(30);
add(textField);
private void addRadioButton(String s, ActionListener listener)
JRadioButton button = new JRadioButton(s, false)
protected void fireActionPerformed(ActionEvent event)
t 25、ry
textField.setText("No exception");
super.fireActionPerformed(event);
catch (Exception exception)
//*********Found********
textField.________(exception.toString());
button.addActionListener(listener);
add(button);
group.add(button);
private ButtonGroup group;
private JTextField textField 26、
private double[] a = new double[10];
解题思路:
Java程序修改如下:
第1处:事件处理方法,需填入 actionPerformed
第2处:被零除,测试异常处理,需填入 length
第3处:设置文本框文字,需填入 setText
参考源程序:c:\wexam\28990001\hlpsys\参考答案\Java_3.java
请把该程序复制到c:\wexam\28990001中,然后进行编译与执行。
第03套:
1. 基本操作(1小题,计30分)
注意:下面出现的“考生文件夹”均为%USER%
在考生文件夹中存有文件名为Jav 27、a_1.java文件,请完善Java_1.java文件,
并进行调试,使程序结果为:
a b c d e f g h i
由于Java_1.java文件不完整,请在注释行“//*********Found*********”
下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行
或其他已有语句内容。
存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。
给定源程序:
import java.io.*;
public class Java_1 {
public static void main(String[] args) {
char[] char 28、Array = {'a','b','c','d','e','f','g','h','i'};
char c ;
try{
//*********Found**********
DataOutputStream out = new ______________________(
new FileOutputStream("test.dat"));
for(int i =0; i 29、ataInputStream(
//*********Found**********
new FileInputStream("____________________"));
while(in.available() != 0){
c=in.readChar();
System.out.print(c+" ");
System.out.println();
//*********Found**********
in.____________________();
}catch(IOException e){}
解题思路:
Java程序修改如下:
第1处:创建数据输出流 30、需填入 DataOutputStream
第2处:文件输入流的文件名,需填入 test.dat
第3处:关闭数据输入流,需填入 close
参考源程序:c:\wexam\28990001\hlpsys\参考答案\Java_1.java
请把该程序复制到c:\wexam\28990001中,然后进行编译与执行。
2. 简单应用(1小题,计40分)
注意:下面出现的“考生文件夹”均为%USER%
在考生文件夹中存有文件名为Java_2.java文件,本题功能是在1-n之间
的自然数中,每次抽取k个数字来抽奖,计算中奖几率的算法为:
n*(n-1)*(n-2)*·…* (n-k+ 31、1) / 1*2*3*…*k
请完善Java_2.java文件,并进行调试,使程序先显示输入窗口
如下:
然后从自然数1-20中,每次抽3个数,计算中奖几率,并将最终结果在命令行
中显示,其形式类似:
你中奖的几率是1/1140. Good luck!
由于Java_2.java文件不完整,请在注释行“//*********Found*********”
下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行
或其他已有语句内容。
存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。
给定源程序:
import javax.swing.*;
pub 32、lic class Java_2{
public static void main(String[] args){
//*********Found**********
String input = ____________________.showInputDialog("你想抽几位数?");
//*********Found**********
int k = Integer.parseInt(______________________);
input = JOptionPane.showInputDialog("你想在自然数中抽的最高数是几?");
//********* 33、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处: 34、输入对话框,需填入 JOptionPane
第2处:需转换成整数的字符串变量,需填入 input
第3处:将字符串input转换成整数的类方法所属于的类,需填入 Integer
第4处:屏幕打印内容,需填入 lotteryOdds
参考源程序:c:\wexam\28990001\hlpsys\参考答案\Java_2.java
请把该程序复制到c:\wexam\28990001中,然后进行编译与执行。
3. 综合应用(1小题,计30分)
注意:下面出现的“考生文件夹”均为%USER%
在考生文件夹中存有文件名为Java_3.java与Java_3.html文件,本题的功能
是用 35、递归定义:n!=n*(n-1)! 计算0至10的阶乘。请完善Java_3.java文件,
并进行调试(在命令行中使用appletviewer Java_3.html,或者使用集成开
发环境),使小程序结果如下:
由于Java_3.java文件不完整,请在注释行“//*********Found*********”
下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行
或其他已有语句内容。
存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。
给定源程序:
import java.awt.*;
import javax.swing.*;
//***** 36、Found**********
public class Java_3 extends _____________________{
JTextArea outputArea;
public void init(){
outputArea = new JTextArea();
//*********Found**********
Container c = ____________________();
//*********Found**********
c.add( __________________ );
//计算0至10的阶乘
for ( long i = 37、 0; i <= 10; i++ )
outputArea.append(
i + "! = " + factorial( i ) + "\n" );
//阶乘的递归定义
public long factorial( long number ){
if ( number <= 1 )
return 1;
else
return number * factorial( number - 1 );
解题思路:
Java程序修改如下:
第1处:扩展网页,需填入 JApplet
第2处:创建对象,需填入 getContentPane
第3处:添加对象,需填入 outputAr 38、ea
参考源程序:c:\wexam\28990001\hlpsys\参考答案\Java_3.java,Java_3.html
请把该程序复制到c:\wexam\28990001中,然后进行编译与执行。
第04套:
1. 基本操作(1小题,计30分)
注意:下面出现的“考生文件夹”均为%USER%
在考生文件夹中存有文件名为Java_1.java文件,请完善Java_1.java文件,
并进行调试,使程序运行后输出窗口如下:
由于Java_1.java文件不完整,请在注释行“//*********Found*********”
下一行语句的下划线地方填入正确内容,然后删除下划线 39、请勿删除注释行
或其他已有语句内容。
存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。
给定源程序:
import javax.swing.*;
import java.text.DecimalFormat;
public class Java_1{
//*********Found**********
public static ___________________ main( String args[] ){
SimpleTime t = new SimpleTime( 12, 30, 19 );
//*********Found**********
40、
___________________.showMessageDialog( null, t.buildString(),
" \"this\" 引用示范",
JOptionPaneRMATION_MESSAGE );
System.exit( 0 );
class SimpleTime {
private int hour, minute, second;
public SimpleTime( int hour, int minute, int second ){
this.hour = hour;
this.minute = minute;
this.second = 41、second;
public String buildString(){
//*********Found**********
return "this.toString(): " + ___________________() +
"\ntoString(): " + toString() +
"\nthis (with implicit toString() call): " +
this;
public String toString(){
DecimalFormat twoDigits = new DecimalFormat( "00" );
return twoDi 42、gits.format( this.hour ) + ":" +
twoDigits.format( this.minute ) + ":" +
twoDigits.format( this.second );
解题思路:
Java程序修改如下:
第1处:main方法的标识符,需填入 void
第2处:显示信息对话框函数,需填入 JOptionPane
第3处:返回的字符串内容,需填入 toString 或 this.toString
参考源程序:c:\wexam\28990001\hlpsys\参考答案\Java_1.java
请把该程序复制到c:\wexam\289900 43、01中,然后进行编译与执行。
2. 简单应用(1小题,计40分)
注意:下面出现的“考生文件夹”均为%USER%
在考生文件夹中存有文件名为Java_2.java文件。请完善Java_2.java文件,
并进行调试,使程序显示对话框如下:
并在命令行中每隔 10秒显示一下当前时间(如下图),直至用户在对话框
按下确认按钮后退出。
由于Java_2.java文件不完整,请在注释行“//*********Found*********”
下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行
或其他已有语句内容。
存盘时,文件必须存放在考生文件夹下,不得改变原有文件的 44、文件名。
给定源程序:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.Timer;
public class Java_2{
public static void main(String[] args){
//*********Found**********
ActionListener listener = new __________________();
Timer t = new Timer(10000 45、 listener);
t.start();
JOptionPane.showMessageDialog(null, "退出程序吗?");
System.exit(0);
//*********Found**********
class TimePrinter ___________________ ActionListener{
//*********Found**********
public void actionPerformed(___________________ event){
Date now = new Date();
System.out.printl 46、n("At the tone, the time is " + now);
//*********Found**********
___________________.getDefaultToolkit().beep();
解题思路:
Java程序修改如下:
第1处:创建类对象,需填入 TimePrinter
第2处:接口的实现,需填入 implements
第3处:类型的对象,需填入 ActionEvent
第4处:需填入 Toolkit
参考源程序:c:\wexam\28990001\hlpsys\参考答案\Java_2.java
请把该程序复制到c:\wexam\2 47、8990001中,然后进行编译与执行。
3. 综合应用(1小题,计30分)
注意:下面出现的“考生文件夹”均为%USER%
在考生文件夹中存有文件名为Java_3.java与Java_3.html文件,本题的功能
是由用户输入两个浮点数求与。请完善Java_3.java文件与Java_3.html文件
,并进行调试(在命令行中使用appletviewer Java_3.html,或者使用集成
开发环境),程序先显示输入如下:
输入两个浮点数后,小程序窗口显示结果如:
由于Java_3.java与Java_3.html文件都不完整,需分别进行修改,请在注释
行“//****** 48、Found*********”下一行语句的下划线地方填入正确内容,
然后删除下划线,请勿删除注释行或其他已有语句内容。
存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。
给定源程序:
import java.awt.Graphics;
import javax.swing.*;
//*********Found**********
public class Java_3 extends ____________________ {
double sum; //存与的变量
//*********Found**********
public void ___ 49、){
String firstNumber, //输入第1个字符串格式的数
secondNumber; //输入第2个字符串格式的数
double number1, //加数
number2; //被加数
//读入第1个输入的数
firstNumber =
JOptionPane.showInputDialog(
"Enter first floating-point value" );
//读入第2个输入的数
secondNumber =
JOptionPane.showInputDialog(
"Enter second floati 50、ng-point value" );
//将字符串数据转换成双字长类型
number1 = Double.parseDouble( firstNumber );
number2 = Double.parseDouble( secondNumber );
//数据相加
sum = number1 + number2;
public void paint( Graphics g ) {
//用g.drawString给结果
g.drawRect( 15, 10, 270, 20 );
g.drawString( "数相加之与为:" + sum, 25, 25 );
解题思路:






