我的JAVA习题集2Word文件下载.docx
《我的JAVA习题集2Word文件下载.docx》由会员分享,可在线阅读,更多相关《我的JAVA习题集2Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
Stringword=newString("
exam"
);
doubleanswer=25.5;
另外定义了下列方法头:
publicintstuff(Strings,intx,inty)
以下哪个是正确的方法调用?
A.num1=stuff(”hello”,num1,num1);
B,answer=stuff(word,answer,num2);
C.num2=stuff(”hello”,num1,answer);
D.num1=stuff(num1,num2,word);
5.下面哪一项不是构造方法的特点?
A.构造方法名必须与类名相同
B.构造方法不具有任何返回类型
C.任何一个类都含有构造方法
D.构造方法修饰词只能是public
6.假设已声明了一个类A的两个对象a1、a2,为了初始化a1和a2,下面语句正确的是()。
A.a1,a2=newA()B.a1=A.new();
a2=A.new()
C.a1=new();
a2=new()D.a1=newA();
a2=newA()
7.以下程序的运行结果为()。
publicclassTest(
intvalue;
publicstaticvoidmain(Stringargs[]){
Testt=newTest();
if(t==null)(
System.out.println("
NoObject"
);
}
else{
System.out.println(t.value);
}
A.0B.nullC.NoObjectD.编译出错
10.给定如下代码:
classCircle{
Stringname,radius;
intr;
publicCircle(Stringn)
name=n;
publicCircle(Stringn,inta){
r=a;
)
publicCircle(Stringn,Stringd,inta){
radius=d;
要在第三个构造方法的空白处填上一行代码使之能够调用第二个构造方法,这行代码应该是()。
A.Circle(n,a);
B.this(Circle(n,a));
C.this(n,a);
D.this(name,a);
11.下面哪个代码片段是错误的?
A.packagemypackage;
publicclassRectangle{//doingsomething'
..}
B.importjava.io.*;
packagemypackage;
"
C.importjava.io.*;
classCircle{//doingsomething"
.}
publicclassRectangle{//doingsomething...}
D.importjava.io.*;
importjava.awt.*;
12.下列选项中,用于声明包名的关键字是()。
A.importB.packageC.interfaceD.protected
13.下列各种Java类的定义,哪些是错误的?
A.classMyClass{
privateintVal;
publicintgetVal(){
returnVal;
B.classMyClass{
privatestaticintVal;
returnval;
C.classMyClass{
privateintVa!
;
publicstaticihtgetVal(){
D.classMyClass{
publicstaticintgetVal(){
14.某类的成员方法只能被自己调用,修饰该方法的是()。
A.publicB.protectedC.privateD.无修饰符
15.另外的类要获取以下MyClass类中的member的值,采用的语句是()。
publicclassMyClass{
privatestaticintmember=l;
publicstaticintgetMember(){
returnmember;
};
A.myClass.memberB.newmyClass().member
C.myClass.getMember()D.myClass().getMember()
16.下面关于变量的说法,哪个是不正确的?
A.实例变量是类的成员变量
B.实例变量用关键字static声明
C.在方法中定义的局部变量在该方法被执行时创建
D.局部变量在使用前必须被初始化
17.在Java中,以下哪一个关键字使类不能派生出子类?
A.finalB.publicC.privateD.volatile
18.关于publicstaticvoidmain方法的参数描述不正确的是()。
A.Stringargs[]B.String[]argsC.Stringa[]D.Stringargs
19.下列整型的最终属性i的定义中,正确的是()。
A.finalB.staticinti;
C.staticfinalinti=234;
D.finalfloati=3.14f;
20.类方法的修饰符是()。
A.staticB.classC.publicD.void
22.类Line的定义如下:
classLine{
privateinta,b;
publicLine(intx,inty){
this.x=x;
this.y=y;
其中的this代表()。
A.类名LineB.父类的对象
C.Line类实例的当前对象引用D.this指针
23.以下程序片段,下列哪个选项插入到第2行将引起编译错误?
1.packagemypackage;
2.
3.classMyClass{
4.//dosomething
5.}
A.publicclassMainClass{}B.packagemypackage1;
C.classB{}D.importjava.util.*;
24.以下程序代码,无法通过编译的是()。
A.classA{
inti=O;
publicvoidmethod(){
System.out.println(i);
B.classA{
inti=0;
classB{
System.out.println(A.i);
C.classA{
publicinti=0;
publicstaticvoidmethod(){
System.out.println(newA().i);
D.classA{
publicstaticinti=0;
25.下列代码在编译时会发生错误,下面哪种修改可以更正错误?
classTest{
privateintm;
publicstaticvoidfun(){
System.out.println(m);
}
A.将privateintm改为protectedintm
B.将privateintm改为publicintm
C.将phvateintm改为staticintm
D.将privateintm改为intm
三、程序阅读题
1.阅读下面的程序,程序保存为Test.java:
1.publicclassTest{
2.shortmValue;
3.publicstaticvoidmain(String[]args){
4.inta=32;
5.intb=56;
6.Testos=newTest(a+b);
7.os.Show();
8.}
9.protectedTest(shortaValue){
10.mValue=aValue;
11.}
12.publicvoidShow(){
13.System.out.println(mValue);
14.}
15.}
上面的程序编译是否成功?
如果编译出错,指出哪行出错,并说明理由;
如果编译正确,运行结果是什么?
2.阅读下面的程序:
1publicclassTest{
2publicstaticvoidmain(Stringargv[]){
3Birdb=newBird();
4b.fly(3);
5}
6}
7classBird{
8.staticintType=2;
9.privatevoidfly(intan_Type){
10.Type=an_Type;
11.System.out.println("
Flying.--"
+Type);
12.}
13.}
如果编译正确,
运行结果是什么?
3.仔细阅读下面的程序代码,若经编译和运行后,请写出打印结果。
classStaticTest{
staticintx=l;
inty;
StaticTest(){
y++;
StaticTestst=newStaticTest();
System.out.println("
x="
+x);
System.out.println("
st.y="
+st.y);
st=newStaticTest();
x='
'
static{
x++;
4.写出下列程序代码的运行结果。
publicclassPassTest{
floatptValue;
publicvoidchangeInt(intvalue){
value=il;
publicvoidchangeStr(Stringvalue){
value=newString("
hey"
publicvoidchangeObjValue(PassTestref){
ref.ptValue=22;
publicstaticvoidmain(Stringargs[]){
Stringstr;
intval;
PassTestpt=newPassTest();
val=33;
pt.changeInt(val);
System.out.println("
Intvalueis:
"
+val);
str=newString("
Hi"
pt.changeStr(str);
System.out.println("
Strvalueis:
+str);
pt.ptValue=44;
pt.changeObjValue(pt);
Ptvalueis:
+pt.ptValue);
5.写出下列程序代码的运行结果:
publicstaticStringss="
杭州电子科技大"
publicStringms="
计算机学院"
publicvoidprintInfo(){
ss="
+ss+"
ms="
+ms);
publicstaticvoidmain(String[]args){
Testobj1,obj2;
obj1=newTest();
obj2=newTest();
obj1.ss="
浙江工业大学"
obj1.ms="
软件学院"
obj1.printInfo();
obj2.printInfo();
6.阅读以下程序,回答问题。
packagepackagel;
classClassA{
publicvoidprintInfo(){
IamClassA."
packagepackage2;
importpackagel.ClassA;
publicclassClassB{
publicstaticvoidmain(String[]args){
newClassA().printInfo();
(1)上面两个类是在同一个源程序文件中吗?
(2)以上程序编译是否正常?
若编译正常则运行结果是什么?
7.阅读下面程序,修改程序中错误的地方(提示:
共三处)。
1.classPerson{
2.Stringname;
3.intage;
4.Stringsex;
5.publicPerson(Stringname,intage,Stringsex){
6.this.name=name;
7.this.age=age;
8.this.sex=sex;
9.}
10.publicvoidtoString(){
11.return"
name:
+name+"
age:
+age+"
sex:
+sex;
14.publicclassTestPerson{
15.publicstaticvoidmain(Stringargs[]){
16.Personp=newPerson();
17.p.name="
张三"
18.p.age=20;
19.p.sex="
男"
20.System.out.println(Person.tostring());
21.}
22.}
8.写出下列程序代码的运行结果。
publicclassTest(
intx=4;
publicstaticvoidmain(Stringargv[]){
Testt=newTest();
t.x++;
change(t);
System.out.println(t.x);
staticvoidchange(Testm){
m.x+=2;
四、编程题.
1.编写一个Java程序Suansu.java,定义两个整型变量a和b,使用构造方法初始化a为10,b为5,并定义求出a与b的和(方法名为AddAB)、差(方法名为SubAB)、积(方法名为MultiAB)、商(方法名为DivAB)的方法。
用另一个Java程序TestSuansu.java测词Suansu.java定义的方法,并在屏幕上输出结果。
2.创建一个名为Rectangle的类来表示一个使用宽度和高度来改变量的矩形,矩形的宽度和高度由构造方法来确定。
为Rectangle类创建下列方法:
getArea返回矩形的面积,要求长和高的范围为0-50;
getPerimeter返回矩形的周长;
draw使用星号(*)作为描绘字符画出该矩形(假设宽度和高度为整数);
在另一个类TestRectangle中编写main方法来测试Rectangle类。
3.根据以下的设计要求编写Java源代码。
类名:
Student
变量(访问权限均为private):
name,//表示为姓名,类型为String
age,//表示年龄,类型为int
方法如下。
(1)构造方法(没有参数,设置姓名为“无名氏”,年龄为20)。
(2)setName(有一个名为name的String型参数,将name的值设为这个新值)。
(3)getName(没有参数,返回姓名);
(4)setAge(有一个名为age的int型参数,将age的值设为这个新值)。
(5)getAge(没有参数,返回年龄)。
(6)isSameAge(有一个参数s,是另一个Student对象的引用,如果两个Student对象的age相同,则返回true,否则返回false)。
4.编写一个复数类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分别为实部和虚部的数据。
5.编写一个表示二维平面上的点的类MyPoint,满足以下条件。
(1)定义private的成员变量x和y,表示点的x和y坐标,类型为整数。
(2)定义两个MyPoint的构造方法,一个构造方法不带参数,且x和y的初始值为0,另一个构造方法有两个参数,参数名为x和y,类型为整数,用这两个参数分别作为初始x和y的坐标。
(3)定义一个getD方法,功能为返回两个坐标点(由MyPoint定义)距离,值为float类型。
(4)编写main方法,打印坐标点(2,3)到点(4,5)的距离。
6。
编写一个公共(public)类,类名为AccountUtil,该类属于account包,类中包含一个公用静态方法toSeparateNumber,该方法以一个十进制字符串为参数,返回用逗号隔开的数字字符串,分隔从右边开始,每三个数字用一个逗号隔开。
例如,若参数为2367548,则返回2,367,548。
若参数为小数,则分隔从小数点开始,例如,若参数为2367548.85,则返回2,367,548.85。
根据以下说明,编写一个银行账户类Account,并编写一个main方法,对Account类进行测试,在main方法中要调用Account的所有方法,发生异常时,要打印异常信息。
该类的成员变量如下表所示(访问权限均为private)。
7.编写两个类,classA属于包package1,classA中有一个方法methodA();
classB属于包package2,在classB的方法methodB()中调用classA的methodA()方法。
每个方法简单地输出方法名即可。
8.编写一个三角形类,能根据3个实数构造三角形对象,如果3个实数不满足三角形的条件,则自动构造以最小值为边的等边三角形。
输入任意3个数,输出构造的三角形面积。