try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
a[i]=Integer.parseInt(br.readLine());//输入一个整数
}catch(IOExceptione){};
For(i=n-1;i>=0;i--)
"");
);
}
}
3、
importjava.awt.*;
publicclassabc{
publicstaticvoidmain(Stringargs[]){newFrameOut();}
}
classFrameOutextendsFrame//Frame为系统定义的窗框类
{Buttonbtn;
FrameOut()
{
super("JUST”);
btn=newButton("MIS");
setLayout(newFlowLayout());
add(btn);
setSize(300,200);
show();
}
}
4、importjava.io.*;
publicclassabc
{publicstaticvoidmain(Stringargs[])
{SubClasssb=newSubClass();
));
}
}
classSuperClass
{inta=25,b=70;}
classSubClassextendsSuperClass
{intmin()
{return((a
a:
b);}
}
四、写出下面程序的运行结果(每小题10分,共30分)
1、importjava.io.*;
publicclassabc
{publicstaticvoidmain(Stringargs[])
{ABs=newAB("Hi!
","Nicetomeetyou.");
));
}
}
classAB{
Strings1;
Strings2;
AB(Stringstr1,Stringstr2)
{s1=str1;s2=str2;}
publicStringtoString()
{returns1+s2;}
}
2、
importjava.io.*;
publicclassabc
{publicstaticvoidmain(Stringargs[]){
inti,s=0;
inta[]={10,20,30,40,50,60,70,80,90,100,110,120,130,140,150};
for(i=0;i"s="+s);
}
}
3、importjava.io.*;
publicclassabc{
publicstaticvoidmain(Stringargs[]){
SubSubClassa1=newSubSubClass(40,50,60);
a1.show();
SuperClassa2=newSuperClass(70,80);
a2.show();
}
}
classSuperClass{
inta,b;
SuperClass(intaa,intbb){
a=aa;b=bb;
}
publicvoidshow(){
"a="+a+"\nb="+b);
}
}
classSubClassextendsSuperClass
{intc;
SubClass(intaa,intbb,intcc)
{super(aa,bb);
c=cc;
}
}
classSubSubClassextendsSubClass
{inta;
SubSubClass(intaa,intbb,intcc)
{super(aa,bb,cc);
a=aa+bb+cc;
}
publicvoidshow()
{"a="+a+"\nb="+b+"\nc="+c);}
}
五、使用Java语言编写程序(共20分).
创建类Computer,该类中有一个计算两个数的最大公约数的方法。
如果向该方法传递负整数,该方法就会抛出用户自定义异常。
要求:
用户自定义的异常类名为MyException。
《Java程序设计》练习测试参考答案及评分标准
一、单选择题(共10分,每小题2分)
1
2
3
4
5
A
A
D
B
C
二、填空题(共20分,每空格1分)
⑴编辑源程序⑵编译生成字节码⑶解释运行字节码
⑷Applet⑸MyApplet
⑹javac.exe⑺4⑻.class
⑼2⑽2⑾0⑿true⒀false
⒁抽象或abstract⒂最终或final
⒃packageMyPackage;⒄应该在程序第一句
⒅180⒆单⒇多
三、程序功能。
(共20分,每小题5分)
⒈sum=1-1/3+1/5-1/7+1/9-1/11+…+1/49
⒉从标准输入(即键盘)读入20个整数存入整型数组a中,然后逆序输出这10个整数。
⒊创建一个标题为"JUST"的窗框,窗框中显示有"MIS"字样的按钮。
⒋求两个数的最小值。
四、程序运行结果(共30分,每小题10分)
⒈Hi!
Nicetomeetyou.
⒉s=450
⒊a=150
b=50
c=60
a=70
b=80
五、用Java语言编程(共20分)
//MyException.java
publicclassMyExceptionextendsException{
Stringmessage;
publicMyException(StringErrorMessagr){
message=ErrorMessagr;
}
publicStringgetMessage(){
returnmessage;
}
}
//Computer.java
publicclassComputer{
publicstaticintgetMaxComm(intm,intn)throwsMyException{
if(m<=0||n<=0){
thrownewMyException("传递的参数不是正整数");
}
if(minttemp=0;
temp=m;
m=n;
n=temp;
}
intr=m%n;
while(r!
=0){
m=n;
n=r;
r=m%n;
}
returnn;
}
publicstaticvoidmain(String[]args){
try{
intm=122,n=0;
intresult=getMaxComm(m,n);
"和"+n+"的最大共约数是:
"+result);
}
catch(MyExceptione){
e.printStackTrace();
}
}
}
第二部分
Java练习题及参考答案:
一、选择题:
(1)用于设置组件大小的方法是B。
A)paint()B)setSize()C)getSize()D)repaint()
(2)单击窗口内的按钮时,产生的事件是C。
A)MouseEventB)WindowEventC)ActionEventD)KeyEvent
(3)AWT中用来表示对话框的类是D。
A)FontB)ColorC)PanelD)Dialog
(4)下列运算符中,优先级最高的是D。
A)+=B)==C)&&D)++
(5)下列运算结果为1的是B。
A)8>>1B)4>>>2C)8<<1D)4<<<2
(6)下列语句中,可以作为无限循环的语句是A。
A)for(;;){}B)for(inti=0;i<10000;i++){}C)while(false){}D)do{}while(false);
(7)下列表达式中,类型可以作为int的是C。
A)”abc”+”efg”B)“abc”+’efg’C)‘a’+’b’D)3+”4”
(8)阅读下列程序:
publicclassTestimplementsRunnable{
privateintx=0;
privateinty=0;
booleanflag=true;
publicstaticvoidmain(String[]args){
Testr=newTest();
Threadt1=newThread(r);
Threadt2=newThread(r);
t1.start();
t2.start();
}
publicvoidrun(){
while(flag){
x++;
y++;
"("+x+","+y+")");
if(x>=10)
flag=false;
}
}
}
下列对程序运行结果描述的选项中,正确的是D。
A)每行的(x,y)中,可能有x≠y;每一对(x,y)值都出现两次
B)每行的(x,y)中,可能有x≠y;每一对(x,y)值都出现一次
C)每行的(x,y)中,可能有x=y;每一对(x,y)值都出现两次
D)每行的(x,y)中,可能有x=y;每一对(x,y)值都出现一次
(9)如果线程正处于运行状态,则它可能到达的下一个状态是C。
A)只有终止状态B)只有阻塞状态和终止状态
C)可运行状态,阻塞状态,终止状态D)其他所有状态
(10)在下列程序的空白处,应填入的正确选项是B。
importjava.io.*;
publicclasswriteInt{
publicstaticvoidmain(String[]args){
int[]myArray={10,20,30,40};
try{
DataOutputStreamdos=newDataOutputStream(newFileOutputStream("ints.dat"));
for(inti=0;idos.writeInt(myArray[i]);
dos.;
"Havewrittenbinaryfileints.dat");}
catch(IOExceptionioe){
"IOException");
}
}
}
A)startB)closeC)readD)write
(11)在一个线程中调用下列方法,不会改变该线程运行状态的是B。
A)yield方法B)另一个线程的join方法C)sleep方法D)一个对象的notify方法
(12)在关闭浏览器时调用,能够彻底终止Applet并释放该Applet所有资源的方法是B。
A)stop()B)destroy()C)paint()D)start()
(13)为了将HelloApplet(主类名为HelloApplet.class)嵌入在greeting.html文件中,应该在下列greeting.html文件的横线处填入的代码是C。
Greetings
A)HelloApplet.class
B)CODE=”HelloApplet.class”
C)CODE=”HelloApplet.class”WIDTH=150HEIGHT=25
D)CODE=”HelloApplet.class”VSPACE=10HSPACE=10
(14)下列变量名的定义中,符合Java命名约定的是A。
A)fieldnameB)superC)IntnumD)$number
(15)自定义异常类的父类可以是C。
A)ErrorB)VirtualMachineErrorC)ExceeptionD)Thread
(16)阅读下列程序片段:
publicvoidtest(){
try{
sayHello();
"Hello");
}
catch(ArrayIndexOutOfBoundExceptione){
"ArrayIndexOutOfBoundException");
}
catch(Exceptione){
"Exception");
}
finally{
"finally");
}
}
如果sayHello()方法正常运行,则test()方法的运行结果将是D。
A)HelloB)ArrayIndexOutOfBoundException
C)ExceptionD)Hello
Finallyfinally
(17)为使Java程序独立于平台,Java虚拟机把字节码与各个操作系统及硬件A。
A)分开B)结合C)联系D)融合
(18)Java中的基本数据类型int在不同操作系统平台的字长是B。
A)不同的B)32位C)64位D)16位
(19)String、StringBuffer都是C类,都不能被继承。
A)staticB)abstractC)finalD)private
(20)忽略
(21)构造方法必须与A相同,它没有返回值,用户不能直接调用它,只能通过new调用。
A)类名B)对象名C)包名D)变量名
(22)在多线程并发程序设计中,能够给对象x加锁的语句是B。
A)x.wait()B)synchronized(x)C)x.notify()D)x.synchronized()
(23)Java中类ObjectOutputStream支持对象的写操作,这是一种字节流,它的直接父类是C。
A)WriterB)DataOutputC)OutputStreamD)ObjectOutput
(24)略
A)B)C)D)
(25)Class类的对象由A自动生成,隐藏在.class文件中,它在运行时为用户提供信息。
A)Java编译器B)Java解释器C)Javanew关键字D)Java类分解器
(26)在Java中,实现用户界面功能的包是D。
A)java.appletB)java.transactionC)java.utilD)java.awt
(27)”++”运算符的操作数个数是A。
A)1个B)2个C)3个D)4个
(28)在switch(expression)语句中,expression的数据类型不能是A。
A)doubleB)charC)byteD)short
(29)下列叙述中,错误的是D。
A)父类不能替代子类B)子类能够替代父类C)子类继承父类D)父类包含子类
(30)已知:
int[]a=newint[100];在下列给出的数组元素中,非法的是D。
A)a[0]B)a[1]C)a[99]D)a[100]
二、简单应用题—填空(24分)
本题要求:
创建了一个线程,连续输出6行字符中“Hello!
”
完善程序。
publicclassJava_2{
publicstaticvoidmain(String[]args){
Helloh=newHello();
Threadt=newThread(h);
t.start();
}
}
classHelloimplementsRunnable{
inti=0;
publicvoidrun(){
while(true){
"Hello!
");
if(i++==5)break;
}
}
}
四、综合应用题—填空(18分,每空6分)
以下程序的功能是单击“黄色”按钮,使图形用户界面窗口的背景色变为黄色,运行结果如下:
请完善程序。
importjava.awt.*;
import;
importjavax.swing.*;
publicclassJava_3{
publicstaticvoidmain(String[]args){
ButtonFrameframe=newButtonFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
classButtonFrameextendsJFrame{
publicButtonFrame(){
setTitle("测试按钮");
setSize(DEFAULT_WIDTH,DEFAULT_HEYGHT);
ButtonPanelpanel=newButtonPanel();
ContainercontentPane=getContentPane();
contentPane.add(panel);
}
publicstaticfinalintDEFAULT_WIDTH=200;
publicstaticfinalintDEFAULT_HEYGHT=100;