资源描述
二级JAVA上机试题汇编
第01套:
1. 基本操作(1小题,计30分)
注意:下面出现的“考生文件夹”均为%USER%
在考生文件夹中存有文件名为Java_1.java的文件,该程序是不完整的,请
在注释行“//**********Found**********”下一行语句的下划线地方填入
正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。
存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
本题的要求是:
完善Java_1.java程序,并完成两个整数的输入,两个整数为:
最后按确定键退出程序。
给定源程序:
//计算两个整数的乘法
import 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( __________________ );
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.java
请把该程序复制到c:\wexam\28990001中,然后进行编译与执行。
2. 简单应用(1小题,计40分.)
注意:下面出现的“考生文件夹”均为%USER%
在考生文件夹中存有文件名为Java_2.java的文件,该程序是不完整的,请
在注释行“//**********Found**********”下一行语句的下划线地方填入
正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。
存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
本题的要求是:
阅读Java_2.java程序,该程序的功能是将本程序代码打印输出。完成程
序编写并运行。所得结果即本程序代码。
给定源程序:
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<fileLength){
//*********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. 综合应用(1小题,计30分)
注意:下面出现的“考生文件夹”均为%USER%
在考生文件夹中存有文件名为Java_3.java的文件,该程序是不完整的,请
在注释行“//**********Found**********”下一行语句的下划线地方填入
正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。
存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
本题的要求是:
阅读Java_3.java程序,该程序利用BitSet算法,筛选得到1至1023之间
的素数。完成程序并运行所得结果为:
给定源程序:
//Java_3.java: 用BitSet完成Eratosthenes筛网算法找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, 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.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.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 = 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 app = 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:\wexam\28990001中,然后进行编译与执行。
第02套:
1. 基本操作(1小题,计30分)
注意:下面出现的“考生文件夹”均为%USER%
在考生文件夹中存有文件名为Java_1.java的文件,该程序是不完整的,请
在注释行“//**********Found**********”下一行语句的下划线地方填入
正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。
存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
本题的要求是:
使程序按下列格式打印:
欢迎
你
参加
Java
考试
注意:
在输出的字符串中不含有空格。
给定源程序:
//用一个打印语句输出多行结果
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:\wexam\28990001中,然后进行编译与执行。
2. 简单应用(1小题,计40分)
注意:下面出现的“考生文件夹”均为%USER%
在考生文件夹中存有文件名为Java_2.java的文件,该程序是不完整的,请
在注释行“//**********Found**********”下一行语句的下划线地方填入
正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。
存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
本题的要求是:
程序中HandleButton类是"Please press me!"按钮的监听器类。
完成程序,使在点击"Please press 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 \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(){
\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){
\TAB 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的文件,该程序是不完整的,请
在注释行“//**********Found**********”下一行语句的下划线地方填入
正确内容, 然后删除下划线,请勿删除注释行或改动其他已有语句内容。
存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
本题的要求是:
该程序是测试以0作除数异常,在文本域中,显示出异常信息。完成程序
并正常运行,运行结果如图所示。
给定源程序:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class Java_3
public 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();
ExceptTestPanel 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 ___________________(ActionEvent 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)
try
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;
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%
在考生文件夹中存有文件名为Java_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[] 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; i<charArray.length; i++){
out.writeChar(charArray[i]);
out.close();\TAB \TAB
DataInputStream 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:\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+1) / 1*2*3*…*k
请完善Java_2.java文件,并进行调试,使程序先显示输入窗口
如下:
然后从自然数1-20中,每次抽3个数,计算中奖几率,并将最终结果在命令行
中显示,其形式类似:
你中奖的几率是1/1140. Good luck!
由于Java_2.java文件不完整,请在注释行“//*********Found*********”
下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行
或其他已有语句内容。
存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。
给定源程序:
import javax.swing.*;
public class Java_2{
public static void main(String[] args){
//*********Found**********
String input = ____________________.showInputDialog("你想抽几位数?");
//*********Found**********
int k = Integer.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处:输入对话框,需填入 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文件,本题的功能
是用递归定义:n!=n*(n-1)! 计算0至10的阶乘。请完善Java_3.java文件,
并进行调试(在命令行中使用appletviewer Java_3.html,或者使用集成开
发环境),使小程序结果如下:
由于Java_3.java文件不完整,请在注释行“//*********Found*********”
下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行
或其他已有语句内容。
存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。
给定源程序:
import java.awt.*;
import javax.swing.*;
//*********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 = 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处:添加对象,需填入 outputArea
参考源程序: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*********”
下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行
或其他已有语句内容。
存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。
给定源程序:
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**********
___________________.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 = 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 twoDigits.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\28990001中,然后进行编译与执行。
2. 简单应用(1小题,计40分)
注意:下面出现的“考生文件夹”均为%USER%
在考生文件夹中存有文件名为Java_2.java文件。请完善Java_2.java文件,
并进行调试,使程序显示对话框如下:
并在命令行中每隔 10秒显示一下当前时间(如下图),直至用户在对话框
按下确认按钮后退出。
由于Java_2.java文件不完整,请在注释行“//*********Found*********”
下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行
或其他已有语句内容。
存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。
给定源程序:
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, listener);
t.start();
JOptionPane.showMessageDialog(null, "退出程序吗?");
System.exit(0);
//*********Found**********
class TimePrinter ___________________ ActionListener{
//*********Found**********
public void actionPerformed(___________________ event){
Date now = new Date();
System.out.println("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\28990001中,然后进行编译与执行。
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文件都不完整,需分别进行修改,请在注释
行“//*********Found*********”下一行语句的下划线地方填入正确内容,
然后删除下划线,请勿删除注释行或其他已有语句内容。
存盘时,文件必须存放在考生文件夹下,不得改变原有文件的文件名。
给定源程序:
import java.awt.Graphics;
import javax.swing.*;
//*********Found**********
public class Java_3 extends ____________________ {
double sum; //存与的变量
//*********Found**********
public void __________________(){
String firstNumber, //输入第1个字符串格式的数
secondNumber; //输入第2个字符串格式的数
double number1, //加数
number2; //被加数
//读入第1个输入的数
firstNumber =
JOptionPane.showInputDialog(
"Enter first floating-point value" );
//读入第2个输入的数
secondNumber =
JOptionPane.showInputDialog(
"Enter second floating-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 );
解题思路:
展开阅读全文