面向对象程序设计JAVA语言程序设计期末考试试题及部分答案.docx
《面向对象程序设计JAVA语言程序设计期末考试试题及部分答案.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计JAVA语言程序设计期末考试试题及部分答案.docx(10页珍藏版)》请在冰点文库上搜索。
面向对象程序设计JAVA语言程序设计期末考试试题及部分答案
面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案2
一、单选择题(每小题2分,共10分)
1、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。
A. .java B. .class
C. .html D. .exe
2、设x=1,y=2,z=3,则表达式y+=z--/++x的值是(A )。
A. 3 B. 3.5
C. 4 D. 5
3、在JavaApplet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。
A. start() B. stop()
C. init() D. paint()
4、不允许作为类及类成员的访问控制符的是( C )。
A. public B. private
C. static D. protected
5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A)。
A.staticvoidmethod() B.publicvoidmethod()
C.finalvoidmethod() D.abstractvoidmethod()
二、填空题(每空格1分,共20分)
1、开发与运行Java程序需要经过的三个主要步骤为 编辑源程序 、
编译生成字节码、 和 解释运行字节码 。
2、如果一个JavaApplet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是 Applet、 类的子类并且存储该源程序文件的文件名为 MyApplet 。
3、如果一个JavaApplet程序文件中定义有3个类,则使用Sun公司的JDK编译
器 编译该源程序文件将产生 3 个文件名与类名相同而扩展名为 .class 的字节码文件。
4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占
用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占
用 2 字节内存空间。
5、设x=2,则表达式(x++)/3的值是 0 。
6、若x=5,y=10,则x=y的逻辑值分别为 true 和 false 。
7、 抽象(abstract)方法 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
最终(final)方法 方法是不能被当前类的子类重新定义的方法。
8、创建一个名为MyPackage的包的语句是package MyPackage; ,
该语句应该放在程序的位置为:
应该在程序第一句 。
9、设有数组定义:
int MyIntArray[]={10,20,30,40,50,60,70}; 则执行以下几个语句后的输出结果是 120 。
ints=0;
for(inti=0;i<;i++)
if(i%2==1) s+=MyIntArray[i];
s);
10、在Java程序中,通过类的定义只能实现 单 重继承,但通过接口的定义可以实现 多 重继承关系。
三、写出下列程序完成的功能。
(每小题5分,共20分)
1、publicclass Sum
{publicstaticvoid main(Stringargs[])
{ double sum=;
for(inti=1;i<=100;i++)
sum+=(double)i;
"sum="+sum);
}
}
2、import.*;
publicclassReverse
{ publicstaticvoid main(Stringargs[])
{ int i,n=10;
inta[]=newint[10];
for(i=0;i try{
BufferedReaderbr=newBufferedReader(
newInputStreamReader);
a[i]=());;
public class abc
{public static void main(Stringargs[])
{ newFrameOut(); }
}
class FrameOut extends Frame ;
public class abc
{ public static void main(Stringargs[])
{ SubClass sb=new SubClass();
));
}
}
class SuperClass
{ inta=10,b=20;}
classSubClassextendsSuperClass
{ intmax(){return ((a>b)?
a:
b);}}
四、写出下面程序的运行结果(每小题10分,共30分)
1、import .*;
publicclassabc
{ publicstaticvoidmain(Stringargs[])
{ ABs=newAB("Hello!
","IloveJAVA.");
));
}
}
class AB{
String s1;
String s2;
AB(Stringstr1,Stringstr2)
{s1=str1;s2=str2;}
public String toString()
{returns1+s2;}
}
2、import .*;
public classabc
{
public static void main(Stringargs[])
{ int i,s=0;
inta[]={10,20,30,40,50,60,70,80,90};
for(i=0;i<;i++)
if(a[i]%3==0)s+=a[i];
"s="+s);
}
}
3、import .*;
publicclassabc
{
publicstaticvoid main(Stringargs[])
)
{"a="+a+"\nb="+b);}
}
class SubClass extends SuperClass
{intc;
SubClass(intaa,intbb,intcc)
{ super(aa,bb);
c=cc;
}
}
class SubSubClass extends SubClass
{ inta;
SubSubClass(intaa,intbb,intcc)
{ super(aa,bb,cc);
a=aa+bb+cc;
}
voidshow()
{"a="+a+"\nb="+b+"\nc="+c);}
}
五、使用Java语言编写程序。
(每小题10分,共20分)
1、编写一个字符界面的JavaApplication程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。
2、编写一个完整的JavaApplet程序使用复数类Complex验证两个复数1+2i和3+4i相加产生一个新的复数4+6i。
复数类Complex必须满足如下要求:
(1)复数类Complex的属性有:
RealPart:
int型,代表复数的实数部分
ImaginPart:
int型,代表复数的虚数部分
(2)复数类Complex的方法有:
Complex():
构造函数,将复数的实部和虚部都置0
Complex(intr,inti):
构造函数,形参r为实部的初值,i为虚部的初值。
ComplexcomplexAdd(Complexa):
将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者。
StringToString():
把当前复数对象的实部、虚部组合成a+bi的字符串形式,其中a和b分别为实部和虚部的数据。
《JAVA语言程序设计》期末考试模拟试题
参考答案及评分标准
一、单选择题(每小题2分,共10分)
1、B 2、A 3、D 4、C 5、A
二、填空题(每空格1分,共20分)
1、编辑源程序、编译生成字节码、解释运行字节码
2、Applet、MyApplet
3、、3、.class
4、2、2
5、0
6、true、false
7、抽象(abstract)方法、最终(final)方法
8、package MyPackage; 应该在程序第一句。
9、120
10、单、多
三、写出下列程序完成的功能。
(每小题5分,共20分)
1、计算1/1+1/2+1/3+...+1/100的值。
2、从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数。
3、创建一个标题为"按钮"的窗框,窗框中显示有"按下我"字样的按钮。
4、求两个数的最大值。
四、写出下面程序的运行结果(每小题10分,共30分)
1、Hello!
IloveJAVA.
2、s=180
3、a=60
b=20
c=30
五、使用Java语言编写程序。
(每小题10分,共20分)
1、参考程序如下:
import .*;
public class abc
{
publicstaticvoid main(Stringargs[])
{int i,n=10,max=0,min=0,temp=0;
try{
BufferedReaderbr=newBufferedReader(
newInputStreamReader);
max=min=());
}catch(IOExceptione){};
for(i=2;i<=n;i++){
try{
BufferedReaderbr=newBufferedReader(
newInputStreamReader);
temp=());
if(temp>max)max=temp;
if(temp }catch(IOExceptione){};
}
"max="+max+"\nmin="+min);
}
}
2、参考程序如下:
import.*;
import.*;
publicclassabcextendsApplet
{
Complexa,b,c;
publicvoidinit()
{
a=newComplex(1,2);
b=newComplex(3,4);
c=newComplex();
}
publicvoidpaint(Graphicsg)
{
c=(b);
("第一个复数:
"+(),10,50);
("第二个复数:
"+(),10,70);
("两复数之和:
"+(),10,90);
}
}
classComplex
{
intRealPart; //复数的实部
intImaginPart;//复数的虚部
Complex(){RealPart=0;ImaginPart=0;}
Complex(intr,inti)
{RealPart=r; ImaginPart=i; }
ComplexcomplexAdd(Complexa)
{
Complextemp=newComplex();//临时复数对象
=RealPart+;
=ImaginPart+;
returntemp;
}
publicStringtoString()
{ return(RealPart+"+"+ImaginPart+"i"); }
}
(完)