JAVA程序的设计练习测试题与参考答案Word文档格式.docx
《JAVA程序的设计练习测试题与参考答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《JAVA程序的设计练习测试题与参考答案Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
i<
a.length;
i++)
if(i%4==0)s+=a[i];
System.out.println(s);
10、在Java程序中,通过类的定义只能实现⒆重继承,但通过接口的定义可以实现⒇重继承关系。
三、写出下列程序完成的功能。
(每小题5分,共20分)
1、
publicclassSum
{publicstaticvoidmain(Stringargs[])
{doublesum=0.0;
intsign=-1.0;
for(inti=1;
=50;
i+=2){
sign*=-1;
sum+=sign/(double)i;
}
System.out.println("
sum="
+sum);
}
2、
importjava.io.*;
publicclassReverse
{publicstaticvoidmain(Stringargs[])
{inti,n=10;
inta[]=newint[20];
for(i=0;
n;
i++)
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
a[i]=Integer.parseInt(br.readLine());
//输入一个整数
}catch(IOExceptione){};
For(i=n-1;
i>
=0;
i--)
System.out.print(a[i]+"
"
);
System.out.println();
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();
System.out.println(sb.min());
}
classSuperClass
{inta=25,b=70;
classSubClassextendsSuperClass
{intmin()
{return((a<
b)?
a:
b);
}
}
四、写出下面程序的运行结果(每小题10分,共30分)
1、importjava.io.*;
publicclassabc
{publicstaticvoidmain(Stringargs[])
{ABs=newAB("
Hi!
"
"
Nicetomeetyou."
System.out.println(s.toString());
classAB{
Strings1;
Strings2;
AB(Stringstr1,Stringstr2)
{s1=str1;
s2=str2;
publicStringtoString()
{returns1+s2;
{publicstaticvoidmain(Stringargs[]){
inti,s=0;
inta[]={10,20,30,40,50,60,70,80,90,100,110,120,130,140,150};
i++)if(a[i]%3==0)s+=a[i];
System.out.println("
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(){
System.out.println("
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()
{System.out.println("
+b+"
\nc="
+c);
五、使用Java语言编写程序(共20分).
创建类Computer,该类中有一个计算两个数的最大公约数的方法。
如果向该方法传递负整数,该方法就会抛出用户自定义异常。
要求:
用户自定义的异常类名为MyException。
《Java程序设计》练习测试参考答案及评分标准
1
2
3
4
5
A
A
D
B
C
⑴编辑源程序⑵编译生成字节码⑶解释运行字节码
⑷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"
的窗框,窗框中显示有"
字样的按钮。
⒋求两个数的最小值。
四、程序运行结果(共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(m<
n){
inttemp=0;
temp=m;
m=n;
n=temp;
intr=m%n;
while(r!
n=r;
r=m%n;
returnn;
publicstaticvoidmain(String[]args){
intm=122,n=0;
intresult=getMaxComm(m,n);
System.out.println(m+"
和"
+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<
(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;
D)每行的(x,y)中,可能有x=y;
(9)如果线程正处于运行状态,则它可能到达的下一个状态是C。
A)只有终止状态B)只有阻塞状态和终止状态
C)可运行状态,阻塞状态,终止状态D)其他所有状态
(10)在下列程序的空白处,应填入的正确选项是B。
importjava.io.*;
publicclasswriteInt{
int[]myArray={10,20,30,40};
try{
DataOutputStreamdos=newDataOutputStream(newFileOutputStream("
ints.dat"
));
for(inti=0;
myArray.length;
i++)
dos.writeInt(myArray[i]);
dos.;
System.out.println("
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。
HTML>
HEAD>
TITLE>
Greetings<
/TITLE>
/HEAD>
BODY>
APPLET>
APPLET>
/BODY>
/HTML>
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{
Helloh=newHello();
Threadt=newThread(h);
t.start();
classHelloimplementsRunnable{
inti=0;
while(true){
Hello!
if(i++==5)break;
四、综合应用题—填空(18分,每空6分)
以下程序的功能是单击“黄色”按钮,使图形用户界面窗口的背景色变为黄色,运行结果如下:
请完善程序。
importjava.awt.event.*;
importjavax.swing.*;
publicclassJava_3{
ButtonFrameframe=newButtonFrame();
frame.setD