尚择优选JAVA习题集.docx
- 文档编号:9131956
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:18
- 大小:128.43KB
尚择优选JAVA习题集.docx
《尚择优选JAVA习题集.docx》由会员分享,可在线阅读,更多相关《尚择优选JAVA习题集.docx(18页珍藏版)》请在冰豆网上搜索。
尚择优选JAVA习题集
习题二
一、判断题
1.一个类定义了一个或多个构造方法,则Java不提供默认的构造方法。
()
2.如果定义的类中没有给出构造方法,系统也不会提供构造方法。
()
3.可以通过类名直接访问类变量。
()
4.非static修饰的方法既能被对象调用,又能用类名直接调用。
()
5.static修饰的类方法既能被对象调用,又能用类名直接调用。
()
6.一个类的所有对象共享static修饰的类变量。
()
7.类由两部分组成,一部分是变量的定义,一部分是方法的定义。
()
8.方法的定义由方法的声明和方法体等两部分组成。
()
9.方法中的形参可以和方法所属类的属性(域)同名。
()
10.package语句只能放到Java源程序除注释之外的第一行位置。
()
11.Java应用程序的人口main方法只有一种定义。
()
12.静态成员域具有全局作用域范围。
()
13.类成员变量可无须初始化,由系统自动进行初始化。
()
14.在类体部分定义时,类的构造方法、成员域和成员方法的出现顺序在语法上有严格限制。
()
15.类的实例对象的生命周期包括实例对象的创建、使用、废弃、垃圾的回收。
()
二、选择题
1.下述哪个说法是不正确的?
()
A.局部变量在使用之前无须初始化,因为有该变量类型的默认值
B.类成员变量由系统自动进行初始化
C.参数的作用域就是所在的方法
D.for语句中定义的变量,当for语句执行完时,该变量就消亡了
2.下述哪一个关键字不是类及类成员的访问控制符?
()
A.publicB.privateC.staticD.protected
3.考虑以下的方法头声明:
publicvoidmyMethod(intnum,charletter)
下列哪个描述是正确的?
()
A.这个方法有个int型的参数,它的形式参数是letter
B.这个方法有个int型的参数,它的形式参数是num
C.这个方法有个char型的参数,它的实际参数是myMethod
D.这个方法是一个构造方法
4.假设有个类已经定义了下述的变量:
intnum1=10;
intnum2=20;
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){
name=n;
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;
publicclassRectangle{//doingsomething'"}
C.importjava.io.*;
classCircle{//doingsomething".}
publicclassRectangle{//doingsomething...}
D.importjava.io.*;
importjava.awt.*;
publicclassRectangle{//doingsomething...}
12.下列选项中,用于声明包名的关键字是()。
A.importB.packageC.interfaceD.protected
13.下列各种Java类的定义,哪些是错误的?
()
A.classMyClass{
privateintVal;
publicintgetVal(){
returnVal;
}
}
B.classMyClass{
privatestaticintVal;
publicintgetVal(){
returnval;
}
}
C.classMyClass{
privateintVal;
publicstaticintgetVal(){
returnVal;
}
}
D.classMyClass{
privatestaticintVal;
publicstaticintgetVal(){
returnVal;
}
}
14.某类的成员方法只能被自己调用,修饰该方法的是()。
A.publicB.protectedC.privateD.无修饰符
15.另外的类要获取以下MyClass类中的member的值,采用的语句是()。
publicclassMyClass{
privatestaticintmember=1;
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{
publicvoidmethod(){
System.out.println(A.i);
}
}
C.classA{
publicinti=0;
publicstaticvoidmethod(){
System.out.println(newA().i);
}
}
D.classA{
publicstaticinti=0;
publicstaticvoidmethod(){
System.out.println(i);
)
}
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=1;
inty;
StaticTest(){
y++;
}
publicstaticvoidmain(Stringargs[]){
StaticTestst=newStaticTest();
System.out.println("x="+x);
System.out.println("st.y="+st.y);
st=newStaticTest();
System.out.println("x="+x);
System.out.println("st.y="+st.y);
}
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);
System.out.println("Ptvalueis:
"+pt.ptValue);
}
}
5.写出下列程序代码的运行结果:
classTest{
publicstaticStringss="杭州电子科技大";
publicStringms="计算机学院";
publicvoidprintInfo(){
System.out.println("ss="+ss+"ms="+ms);
}
publicstaticvoidmain(String[]args){
Testobj1,obj2;
obj1=newTest();
obj2=newTest();
obj1.ss="浙江工业大学";
obj1.ms="软件学院";
obj1.printInfo();
obj2.printInfo();
}
}
6.阅读以下程序,回答问题。
packagepackage1;
classClassA{
publicvoidprintInfo(){
System.out.println("IamClassA.");
}
}
packagepackage2;
importpackage1.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;
12.}
13.}
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个数,输出构造的三角形面积。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 择优 JAVA 习题集