全国计算机等级考试二级JAVA历年试题合集含答案(CHM文件下载)>>
1.考生在上机考试时,应在规定的考试时间提前30分钟报到,交验准考证和身份证(军人身份证或户口本),同时抽签决定机考试的工作站号(或微机号);
2.考生提前5分钟进入机房,坐在由抽签决定上机考试的工作站号(或微机号)上,不允许乱坐位置;
3.在考试过程中若发生"死机"等异常现象,应举手示意,与监考人员联系,不得擅自关机;
4.不得擅自登录与己无关的考号;
5.不得擅自拷贝或删除与己无关的目录和文件;
6.考生不得在考场中交头接耳、大声喊叫等;
7.未到10分钟不得离开考场;
8.迟到10分钟者取消考试资格。
上机考试要求考生独立完成,考试过程中不得讲话,如果在考试中计算机出现故障、死机、死循环、电源故障等异常情况时,应举手示意与监考人员联系,不得擅自关机。考生不得登录与己无关的考号,不得擅自查阅、拷贝、删除与考试无关的目录和文件。
考生答题完毕后应立即离开考场,不得干扰其他考生答题。
注意:考生必须在自己的考生目录下进行考试,否则在评分时查询不到考试内容而影响考试成绩。
根据考试大纲要求,上机操作满分100分,时间90分钟。
上机题目类型包括以下三种:
一、基本操作题(30分)
主要测试考生对简单数据类型、复合数据类型和表达式的掌握能力。
主要测试考生使用JavaApplet程序和JavaApplet程序开发过程的能力。
主要测试考生对Java程序的输入输出的编程与操作能力。
主要测试考生对Java语言的基本语句的使用能力。
二、简单应用题(30分)
主要测试考生对Java语言的结构化设计的使用能力。
主要测试考生对使用语言中面向对象特性的能力。
主要测试考生对线程和编写用户界面程序的能力。
三、综合应用题(30分)
测试考生对包括基本操作和简单应用操作的综合适应能力。
下面是一个Application程序,其功能是点击框架上的"退出"按钮,弹出"确认"对话框,单击对话框的"确定"按钮退出程序。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行删行。
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjavax.swing.event.*;
publicclassDialogExample
{
publicstaticvoidmain(String[]args)
{
DialogFrameframe=newDialogFrame();
frame.setDefaultCloseOperation(JFrame.EXIT-ON-CLOSE);
frame.show();
}
}
classDialogFrameextendsJFrame
{
publicDialogFrame()
{
setTitle(″DialogExample″);
setSize(WIDTH,HEIGHT);
ContainercontentPane=getContentPane();
JPanelbuttonPanel=newJPanel();
logoutButton=newJButton(″退出″);
logoutButton.addActionListener(newLogoutButton());
buttonPanel.add(logoutButton);
contentPane.add(buttonPanel,BorderLayout.SOUTH);
}
privateclassLogoutAction
implementsActionListener
{
publicvoidactionPerformed(ActionEventevent)
{
intselection=JOptionPane.showConfirmDialog(
DialogFrame.this,
″您确实要退出吗?″,″Logout″,
JOptionPane.OK-CANCEL-OPTION,
JOptionPane.WARNING-MESSAGE);
if(Logout==JOptionPane.OK-OPTION)
{
System.exit(0);
}
}
}
publicstaticfinalintWIDTH=200;
publicstaticfinalintHEIGHT=120;
privateJButtonlogoutButton;
}
下面是一个Application程序,其功能是实现简单的自定义异常的功能,当主函数调用f()方法时,引发MyException异常,并输出信息。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行删行。
classMyExceptionextendsException
{
publicMyException()
{
}
publicMyException(Stringmessage)
{
super(message);
}
}
publicclassExceptionInherit
{
publicstaticvoidf()throwsMyException
{
System.out.println(″ThrowingMyException″);
catchnewMyException(″thesecondconstructor!″);
}
publicstaticvoidmain(String[]args)
{
try
{
f();
}
catch(Exceptione)
{
e.printStackTrace();
}
}
}
下面是一个Application程序,其功能是创建一个基本框架,设置为FlowLayout布局管理器,根据命令行参数输入值创建相应数量的按钮。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行删行。
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassFlowLayoutTest
{
publicstaticvoidmain(String[]args)
{
if(args.length!=1)
{
System.out.println(″FlowLayout管理器″);
System.exit(0);
}
StringbuttonString=args[0];
intbuttonNumber=Byte.parseInt(buttonString);
ButtonFrameframe=newButtonFrame(buttonNumber);
frame.setDefaultCloseOperation(JFrame.EXIT-ON-CLOSE);
frame.show();
}
}
classButtonFrameextendsJFrame
{
publicButtonFrame(intbuttonNumber)
{
buttons=buttonNumber;
setTitle(″FlowLayout管理器″);
setSize(WIDTH,HEIGHT);
JPanelbuttonPanel=newJPanel();
for(inti=0;i<buttons;i+
{
JButtonaddButton=newJButton(″add″+i);
buttonPanel.add(addButton);
}
ContainercontentPane=setContentPane();
contentPane.add(buttonPanel);
}
publicstaticfinalintWIDTH=350;
publicstaticfinalintHEIGHT=200;
privateintbuttons;
}
下面是一个Application程序,其功能是创建了一个简单框架,并在框架FontPanel上的(x,y)位置绘制文本。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行删行。
importjava.awt.*;
importjava.awt.font.*;
importjavax.swing.*;
publicclassFontSet
{
publicstaticvoidmain(String[]args)
{
FontFrameframe=newFontFrame();
frame.setDefaultCloseOperation(JFrame.EXIT-ON-CLOSE);
frame.show();
}
}
classFontFrameextendsJFrame
{
publicFontFrame()
{
setTitle(″设置字体″);
setSize(WIDTH,HEIGHT);
FontPanelpanel=newFontPanel();
ContainercontentPane=getContentPane();
contentPane.add(panel);
}
publicstaticfinalintWIDTH=300;
publicstaticfinalintHEIGHT=200;
}
classFontPanelextendsJPanel
{
publicvoidpaintComponent(paintg)
{
super.paintComponent(g);
Fontf=newFont(″宋体″,Font.BOLD+Font.ITALIC,20);
g.setFont(f);
g.drawImage(″我已经绘制了字体!″,x,y);
}
publicintx=75;
publicinty=100;
}
下面是一个Application程序,其功能是创建了一个框架,根据屏幕的相关尺寸设置框架的大小,并不能调节框架大小,设置"icon.gif"图片为框架图标。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行删行。
importjava.awt.*;
importjavax.swing.*;
publicclassFrameSizeSet
{
publicstaticvoidmain(String[]args)
{
FrameSizeframe=newFrameSize();
frame.setDefaultCloseOperation(JFrame.EXIT-ON-CLOSE);
frame.show();
}
}
classFrameSizeextendsJFrame
{
publicFrameSize()
{
setTitle(″框架尺寸″);
Toolkittk=Toolkit.getDefaultToolkit();
DimensionscreenSize=tk.getScreenSize();
intscreenHeight=screenSize.height;
intscreenWidth=screenSize.width;
setSize(screenWidth/3,screenHeight/3);
setResizable(true);
Imageimg=tk.setImage(″icon.gif″);
setIconImage(img);
}
}
下面是一个Application程序,其功能是从指定的URL上下载图片,并将图片绘制到创建的框架中。请根据"//"后的提示,改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行删行。
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.net.*;
publicclassInternetAccess
{
publicstaticvoidmain(String[]args)
{
ImageFrameframe=newImageFrame();
frame.setDefaultCloseOperation(JFrame.EXIT-ON-CLOSE);
frame.show();
}
}
classImageFrameextendsJFrame
{
publicstaticfinalintWIDTH=300;
publicstaticfinalintHEIGHT=120;
publicImageFrame()
{
setTitle(″InternetAccess″);
setSize(WIDTH,HEIGHT);
ImagePanelpanel=newImagePanel();
ContainercontentPane=getContentPane();
contentPane.add(panel);
}
}
classImagePanelextendsJPanel
{
privateImageimage;
URLurl;
publicImagePanel()
{
try
{
//指定要获取的资源的URL。
url=newurl(″http//www.waterpub.com.cn/images/cwpp-logo1.gif″);
}
catch(MalformedURLExceptione)
{
}
//获取指定URL上的图像。
image=Toolkit.getDefaultToolkit().getImage(url);
}
publicvoidpaintComponent(Graphicsg)
{
super.paintComponent(this);
intimageWidth=image.getWidth(this);
intimageHeight=image.getHeight(this);
g.drawImage(image,0,0,null);
g.drawString(″正在下载图像...″,100,80);
}
}
下面是一个Application程序,其功能是通过InputStreamReader和BufferedReader类分别读取和输出字符串、整数、实型数。请根据"//"后的提示,改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行删行。
importjava.io.*;
publicclassStandardIO
{
publicstaticvoidmain(String[]args)
{
try
{
BufferedReaderstdin=newBufferedReader(newInputStreamReader(System.out));
//读取并输出字符串。
System.out.print(″Enterastring″)
System.out.printIn(″stdin.readLine()″)
//读取并输出整型数据。
System.out.print(″Enteraninteger:″);
//将字符串解析为带符号的十进制整数。
intnumber1=Integer.parseInteger(stdin.readLine());
System.out.println(number1);
//读取并输出double类型数据。
System.out.print(″Enteradouble:″);
//将字符串解析为带符号的double类型数据。
doublenumber2=Double.parseDouble(stdin.readLine());
System.out.println(number2);
}
catch(IOExceptione)
{
System.err.println(″IOException″);
}
}
}
下面是一个Application程序,其功能是在框架中放置了四个单选框和一个标签,选择不同单选框将在标签上显示不同的提示信息。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行删行。
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjavax.swing.event.*;
publicclassRadioButtonExample
{
publicstaticvoidmain(String[]args)
{
RadioButtonFrameframe=newRadioButtonFrame();
frame.setDefaultCloseOperation(JFrame.EXIT-ON-CLOSE);
frame.show();
}
}
classRadioButtonFrameextendsJFrame
{
publicRadioButtonFrame()
{
setTitle(″RadioButtonExample″);
setSize(WIDTH,HEIGHT);
ContainercontentPane=getContentPane();
myLabel=newJLabel(″提示标签″,JLabel.CENTER);
contentPane.add(myLabel,BorderLayout.CENTER);
radionPanel=newJPanel();
myButtonGroup=newButton();
addRadioButton(″EAST″,true,″EAST″);
addRadioButton(″SOUTH″,false,″SOUTH″);
addRadioButton(″WEST″,false,″WEST″);
addRadioButton(″NORTH″,false,″NORTH″);
contentPane.add(radioPanel,BorderLayout.SOUTH);
}
publicvoidaddRadioButton(Stringname,booleandefaultRadio,Stringshow)
{
finalStringshowLabel=show;
JRadioButtonbutton=newJRadioButton(name,defaultRadio);
myButtonGroup.add(button);
radioPanel.add(button);
button.addActionListener(newActionListener()
{
publicvoidactionPerformed(ActionEventevt)
{
myLabel.Text(″你选择了:″+showLabel);
}
});
}
publicstaticfinalintWIDTH=300;
publicstaticfinalintHEIGHT=140;
privateJLabelmyLabel;
privateButtonGroupmyButtonGroup;
privateJPanelradioPanel;
}
下面是一个JApplet程序,其功能是在JApplet上加载一个多文本区域、一个文本区域和一个按钮,当在文本区域中输入任意文本文件的文件名,点击"打开"按钮,JApplet将把该文本文件内容读入到多文本区域。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行删行。
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjava.util.*;
importjavax.swing.*;
publicclassFileReadAppletextendsJFrame
{
publicFileReadApplet()
{
fileNameField=newJTextField(20);
JPanelpanel=newJPanel();
panel.add(newJLabel(″文件名:″));
panel.add(fileNameField);
JButtonopenButton=newJButton(″打开″);
panel.add(openButton);
openButton.addActionListener(
newActionListener()
{
publicvoidactionPerformed(ActionEventevent)
{
loadFile(fileNameField.getText());
}
});
ContainercontentPane=getContentPane();
contentPane.add(panel,″North″);
fileText=newJTextArea();
contentPane.add(newJScrollPane(fileText),″Center″);
}
publicvoidloadFile(Stringfilename)
{
try
{
fileText.setText(″″);
BufferedReaderin=newBufferedReader(newFileReader(filename));
Strings;
while((s=in.writeLine())!=null)
fileText.append(s+″\n″);
in.close();
}
catch(IOExceptione)
{
fileText.append(e+″\n″);
}
catch(SecurityExceptione)
{
fileText.append(″发生异常,停止执行!″);
}
}
privateJTextFieldfileNameField;
privateJTextAreafileText;
}
FileReadApplet.html:
</HEAD>
<APPLET
CODE=″FileReadApplet.class″
ARCHIVE=″FileReadApplet.jar″
WIDTH=400HEIGHT=300
VIEWASTEXT>
下面是一个applet程序,其功能是:通过在文本框(in1,in2)中输入两个整数,当点击按钮btn1时,判断两数之间的全部素数,在多文本区域(out1)中显示出来(设置out1为不可编辑),并在标签result上显示素数的个数。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行删行。
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassApplet-PrimenumberextendsAppletimplementsActionListener
{
Labellb1,lb2,result;
TextFieldin1,in2;
TextAreaout1;
Buttonbtn1,btn2;
inta=0,b=0;
Strings=″″;
publicvoidinit()
{
result=newLabel(″输出框″);
lb1=newLabel(″上限″);
lb2=newLabel(″下限″);
in1=newTextField(5);
in2=newTextField(5);
out1=newTextArea();
out1.setEditable(true);
btn1=newButton(″输出素数″);
btn2=newButton(″关闭″);
add(lb1);
add(in1);
add(lb2);
add(in2);
add(btn1);
add(btn2);
add(result);
add(out1);
btn1.addActionListener(this);
btn2.addActionListener(this);
}
publicvoidactionPerformed(ActionEvente)
{
intk=0;
if(e.getSource()==btn1)
{
out1.setText(″\n″);
a=Integer.parseInt(in1.getText());
b=Integer.parseInt(in2.getText());
//判断是否素数,是则计数并加入输出子串s
Loop:
for(inti=b;i<A;I+&NBSP;+)
{
for(intj=2;j<I,J+&NBSP;+)
{
if(i%j==0)
continueLoop;
}
k++;
if(k%10==0)
s=s+i+″,″+″\n″;
else
s=s+i+″,″;
}
out1.setText(b+″与″+a+″之间共有素数″+k+″个,输出如下:″);
out1.setText(s);
}
else
System.exit(0);
}
}
Applet-Primenumber.htm:
<APPLET
code=″Applet-Primenumber.class″
width=″500″
height=″300″
请完成下列程序:用于通过文本框接收用户输入的三个整数,并按照从大到小的顺序将其绘制出来。
注意:请勿改动main主方法和其他已有语句内容,仅在下划线处填入适当语句。
importjava.awt.*;
importjava.applet.*;
importjava.awt.event.*;
publicclassSortFromBigToSmallextendsAppletimplementsActionListener{
Labelprompt;
TextFieldinput1,input2,input3;
Buttonbtn;
intmax,mid,min;
booleanflag=false;
publicvoidinit(){
prompt=newLabel(″请输入三个整数:″);
input1=newTextField(5);
input2=newTextField(5);
input3=newTextField(5);
btn=newButton(″排序″);
add(prompt);
add(input1);
add(input2);
add(input3);
add(btn);
btn.addActionListener(this);
}
publicvoidpaint(Graphicsg){
if(flag)
g.
--------------------------------------------------------------------------------
(″三个数从大到小的顺序为:″+max+″,″+mid+″,″+min,80,50);
}
publicvoidactionPerformed(ActionEvente){
inta=0,b=0,c=0;
a=Integer.parseInt(input1.getText());
b=Integer.parseInt(input2.getText());
c=Integer.parseInt(input3.getText());
max=a>=(b>=c?b:c)?a:(b>=c?b:c);
min=
--------------------------------------------------------------------------------
mid=a+b+c-max-min;
flag=true;
repaint();
}
}
请完成下列JApplet程序:用于在JApplet中定义了一个菜单,并显示出来,选择不同的菜单项将输出不同的提示消息。
注意:请勿改动其他已有语句内容,仅在下划线处填入适当语句。
importjavax.swing.*;
importjavax.swing.event.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassTestextends
--------------------------------------------------------------------------------
{
publicvoidinit()
{
JMenuBarmb=newJMenuBar();
JMenufileMenu=newJMenu(″File″);
fileMenu.add(″New...″);
fileMenu.add(″Open...″);
fileMenu.add(″Save″);
fileMenu.add(″SaveAs..″);
fileMenu.addSeparator();
fileMenu.add(″Exit″);
--------------------------------------------------------------------------------
setJMenuBar(mb);
fileMenu.addMenuListener(newMenuListener()
{
publicvoidmenuCanceled(MenuEvente)
{
System.out.println(″menucanceled″);
}
publicvoidmenuSelected(MenuEvente)
{
System.out.println(″menuselected″);
}
publicvoidmenuDeselected(MenuEvente)
{
System.out.println(″menudeselected″);
}
});
}
}
Test.html:
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
请完成下列程序:用于创建了一个基本的框架,在框架上放置了一个标签,并设置了标签的属性。
注意:请勿改动main主方法和其他已有语句内容,根据"//"后的要求,仅在下划线处填入适当语句。
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassTestlabel
--------------------------------------------------------------------------------
JFrame
{
publicTestlabel()
{
super(″特殊标签″);
ContainercontentPane=getContentPane();
Iconicon=newImageIcon(″pic1.gif″,″这是一个带图片的标签″);
JLabellabel=newJLabel(″标签″,icon,SwingConstants.CENTER);
contentPane.add(
--------------------------------------------------------------------------------
);//添加标签并将标签置于框架的中央。
}
publicstaticvoidmain(Stringargs[])
{
finalJFramef=newTestlabel();
f.setBounds(100,100,300,250);
f.setVisible(true);
f.setDefaultCloseOperation(DISPOSE-ON-CLOSE);
f.addWindowListener(newWindowAdapter())
{
publicvoidwindowClosed(WindowEvente)
{
System.exit(0);
}
});
}
}
logoutButton.addActionListener(newLogoutAction());
selection==JOptionPane.OK-OPTION
thrownewMyException(″thesecondconstructor!″);
catch(MyExceptione)
intbuttonNumber=Integer.parseInt(buttonString);
ContainercontentPane=getContentPane();
publicvoidpaintComponent(Graphicsg)
g.drawString(″我已经绘制了字体!″,x,y);
setResizable(false);
Imageimg=tk.getImage(″icon.gif″);
url=newURL(″http://www.waterpub.com.cn/images/cwpp-logo1.gif″);
super.paintComponent(g);
BufferedReaderstdin=newBufferedReader(newInputStreamReader(System.in));
intnumber1=Integer.parseInt(stdin.readLine());
myButtonGroup=newButtonGroup();
myLabel.setText(″你选择了:″+showLabel);
PublicclassFileReadAppletextendsJApplet
while((s=in.readLine())!=null)
out1.setEditable(false);P
result.setText(b+″与″+a+″之间共有素数″+k+″个,输出如下:″);
drawString
a<=(b<=c?b:c)?a:(b<=c?b:c);
JApplet
mb.add(fileMenu);
extends
label,BorderLayout.CENTER