JAVA自测题.docx
《JAVA自测题.docx》由会员分享,可在线阅读,更多相关《JAVA自测题.docx(14页珍藏版)》请在冰豆网上搜索。
JAVA自测题
前四章知识自测
一.填空题
1.已知:
inta=8,b=6;则:
表达式++a-b++的值为__3_。
2.已知:
booleanb1=true,b2;则:
表达式!
b1&&b2||b2的值为___。
3.已知:
inta[]={2,4,6,8};则:
表达式(a[0]+=a[1])+++a[2]值为___。
4.执行intx,a=2,b=3,c=4;x=++a+b+++c++;结果_X=10__。
5.执行下列程序代码的输出结果是___。
inta=10;
inti,j;
i=++a;
j=a--;
System.out.printf("%d,%d,%d",a,i,j);
6.执行完booleanx=false;booleany=true;booleanz=(x&&y)&&(!
y);intf=z==false?
1:
2;
这段代码后,z与f的值分别是___和___。
7.通过类MyClass中的不含参数的构造方法,生成该类的一个对象obj,可通过以下语句实现:
___。
(MyClassobj=newMyClass();)
8.构造方法的方法名与___相同,若类中没有定义任何的构造方法,则运行时系统会自动为该类生成一个___方法。
9.在方法体内定义的变量是___,且必须___。
10.类成员的访问控制符有___、___、___和默认四种。
11.public类型的类成员可被___、同一包中的___和不同包中的___的代码访问引用。
12.protected类型的类成员可被___、同一包中的___和不同包中的___的代码访问引用。
13.default类型的类成员只能被___、同一包中的___的代码访问引用。
14.Java语言中,重载方法的选择是在编译时进行的,系统根据___、___和参数顺序寻找匹配方法。
15.Java不直接支持多继承,但可以通过___实现多继承。
16.没有子类的类称为___。
17.抽象方法只有方法头,没有(方法体)。
18.在方法头用abstract修饰符进行修饰的方法叫做___。
19.Java语言中,表示一个类不能再被继承的关键字是___。
20.被关键字___修饰的方法是不能被当前类的子类重新定义的方法。
21.Java语言中,表示一个类A继承自父类B,并实现接口C的语句是___。
22.在Java中有一种叫___的特殊方法,我们在程序中用它来对类的对象成员进行初始化。
23.声明一个类名为sample的类,属性为public,该类的父类是Exception,没有实现任何接口:
___。
24.定义一个类,其名称为MyClass,它可以被所有的其他类访问:
___。
25.将对象Object1的属性field1在屏幕上显示出来:
___。
26.调用对象Object1的方法method1,把返回值赋值给变量Hold:
___。
27.定义一个整型属性Mine,使得只有这个类本身可以访问它:
___。
28.为类Class1定义一个整型变量field2,使得所有其他类都可以访问它:
___。
29.定义一个无形式参数无返回值的方法method2,使得使用类名Class1作前缀就可以调用它:
___。
30.为类Class2编写构造方法的方法头,该构造函数不接受形式参数:
___。
31.为类Class2编写构造方法的方法头,该构造函数接受两个整型形式参数:
___。
32.为类Class1创建一个静态整型变量s_data:
___。
33.写出抽象类IamAbstract的类头定义语句:
___。
34.定义一个抽象方法abstractMethod,没有形式参数,返回值为布尔型变量:
___。
35.写出定义最终类IamFinal的类头定义语句:
___。
36.定义浮点常量PI,其取值为3.1415926:
___。
二.选择题
1.下列命令中,哪个命令是Java的编译命令?
()
A、javacB、java
C、javadocD、appletviewer
2.编写和运行Javaapplet程序与编写和运行Javaapplication程序不同的步骤是()
A、编写源代码
B、编写HTML文件调用该小程序,以.html为扩展名存入相同文件夹
C、编译过程
D、解释执行
3.Java源文件和编译后的文件扩展名分别为()
A、.class和.javaB、.java和.class
C、.class和.classD、.java和.java
4.下列哪个是合法的Java标识符:
()
A.Tree&Glasses
B.FirstJavaApplet
C._$theLastOne
D.273.5
5.以下声明的变量中,只有()是不合法的。
A、internet_networkB、*number
C、HelloD、_sys_path
6.下面哪些标识符在Java语言中是合法的?
()
A.persons$B.TwoUsers
C.*pointD.end-line
7.Java语言中下面哪个可以用作正确的变量名称()
A、3DB、nameC、extendsD、implements
8.下列变量定义错误的是:
()
A.inta;
B.doubleb=4.5;
C.booleanb=true;
D.floatf=9.8;
9.若x=5,y=8,则表达式x|y的值为()。
A.3B.13C.0D.5
10.以下程序段执行后的K值为()。
intx=20;y=30;
k=(x>y)?
y:
x
A、20B、30C、10D、50
11.若定义有变量floatf1,f2=8.0F,则下列说法正确的是()。
A.变量f1,f2均被初始化为8.0
B.变量f1没有被初始化,f2被初始化为8.0
C.变量f1,f2均未被初始化
D.变量f2没有被初始化,f1被初始化为8.0
12.基本数据类型short的取值范围是()。
A.(-256)-255B.(-32768)-32767
C.(-128)-127D.0-65535
13.dowhile是()
A、循环结构B、分支结构C、顺序结构
14.7.下列()是不能通过编译的语句。
A.doubled=545.0;B.chara1=“c”;
C.inti=321;D.floatf1=45.0f;
15.下列循环语句的循环次数是()。
inti=5;
do{
System.out.println(i--);
i--;
}while(i!
=0);
A.5B.无限C.0D.1
16.6+5%3+2的值是:
()
A.2B.1C.9D.10
17.对于一个三位的正整数n,取出它的十位数字k(k为整型)的表达式是:
()
A.k=n/10%10
B.k=(n-n/100*100)%10
C.k=n%10
D.k=n/10
18.给出下面代码段()
publicclassTest1{
publicstaticvoidmain(Stringargs[]){
intm;
switch(m)
{
case0:
System.out.println("case0");
case1:
System.out.println("case1");break;
case2:
default:
System.out.println("default");
}
}
}
下列m的哪个值将引起“default”的输出?
A、0B、1C、2D、以上答案都不正确
19.下列代码哪几行会出错?
(C)
1)publicvoidmodify(){
2)intI,j,k;
3)I=100;
4)while(I>0){
5)j=I*2;
6)System.out.println("Thevalueofjis"+j);
7)k=k+1;
8)I--;
9)}
10}
A.line4B.line6
C.line7D.line8
20.下列关于Java语言的数组描述中,错误的是()。
A.数组的长度通常用length表示
B.数组下标从0开始
C.数组元素是按顺序存放在内存的
D.数组在赋初值和赋值时都不判界
21.下列代表十六进制整数的是()。
A.012345B.2008
C.0xfa08D.fb05
22.程序:
publicclassT18{
staticintarr[]=newint[10];
publicstaticvoidmain(Stringa[])
{System.out.println(arr[1]);}
}
哪个语句是正确的?
()
A.编译时将产生错误B.编译时正确,运行时将产生错误
C.输出零D.输出空
23.Java用来定义一个类时,所使用的关键字为()
A、classB、public
C、structD、class或struct
24.执行下面的代码段:
switch(m)
{case0:
System.out.println("case0");
case1:
System.out.println("case1");break;
case2:
default:
System.out.println("default");
}
下列m的哪些值将引起"default"的输出?
()
A.0B.1C.2D.3
25.下列类头定义中,错误的是()。
A.publicxextendsy{...}
B.publicclassxextendsy{...}
C.classxextendsyimplementsy1{...}
D.classx{...}
26.对于构造方法,下列叙述不正确的是
A、构造方法是类的一种特殊方法,它的方法名必须与类名相同。
B、构造方法的返回类型只能是void型,且书写格式是在方法名前加void前缀。
C、构造方法的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造方法。
27.一个可以独立运行的Java应用程序()
A、可以有一个或多个main方法
B、最多只能有两个main方法
C、可以有一个或零个main方法
D、只能有一个main方法
28.设数组Array由以下语句定义
intArray=newint[10]
则数组的第一个元素的正确引用方法为()
A、Array[1]B、Array[0]C、Array[]D、Array
29.设数组age由以下语句定义
intage=newint[10];
则数组的最后一个元素的正确引用方法为()
A、age[10]B、Age[9]C、age[]D、age[0]
30.要想定义一个不能被实例化的抽象类,在类定义中必须加上修饰符()。
A、finalB、public
C、privateD、abstract
31.有一个类A,以下为其构造方法的声明,其中正确的是(A)。
A.publicA(intx){...}B.intA(intx){...}
C.publica(intx){...}D.voidA(intx){...}
32.设i、j、k为类X中定义的int型变量名,下列类X的构造方法中不正确的是()。
A.X(intm){...}B.voidX(intm){...}
C.X(intm,intn){...}D.X(inth,intm,intn){...}
33.在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是()。
A.默认packageB.protected
C.privateD.public
34.下列哪些方法与方法publicvoidadd(inta){}为合理的重载方法?
()
A.publicvoidadd(chara)B.publicintadd(inta)
C.publicvoidadd(inta,intb)D.publicvoidadd(floata)
35.MAX_LENGTH是int型public成员变量,变量值保持为常量100,其定义是()。
A.publicintMAX_LENGTH=100;
B.finalpublicintMAX_LENGTH=100;
C.publicfinalintMAX_LENGTH=100;
D.finalintMAX_LENGTH=100;
36.下列选项中,用于实现接口的关键字是()。
A.interfaceB.implementsC.abstractD.class
37.Java语言的类间的继承的关键字是()。
A.implementsB.extendsC.classD.public
38.以下关于Java语言继承的说法错误的是()。
A.Java中的类可以有多个直接父类B.抽象类可以有子类
C.Java中的接口支持多继承D.最终类不可以作为其它类的父类
39.现有两个类M、N,以下描述中表示N继承自M的是()。
A.classMextendsNB.classNimplementsM
C.classMimplementsND.classNextendsM
40.现有类A和接口B,以下描述中表示类A实现接口B的语句是()。
A.classAimplementsBB.classBimplementsA
C.classAextendsBD.classBextendsA
41.下列选项中,定义抽象类的关键字是()。
A.interfaceB.implementsC.abstractD.class
42.下列选项中,定义最终类的关键字是()。
A.interfaceB.implementsC.abstractD.final
43.下列选项中,表示数据或方法只能被本类访问的修饰符是()
A.publicB.protectedC.privateD.final
44.下列选项中,表示终极方法的修饰符是:
()
A.interfaceB.finalC.abstractD.implements
45.关于形参的说法,正确的是()
A.必须有多个;B.至少有一个;
C.可以没有;D.只能是简单变量。
46.下面那个声明的方法强迫它的子类实现它?
()
A.publicdoublemethoda();
B.staticvoidmethoda(doubled1){}
C.publicnativedoublemethoda();
D.abstractpublicvoidmethoda();
E.protectedvoidmethoda(doubled1){}
47.分析下列程序:
A.为methodA增加方法体;
B.将第4—5行改为“;”;
C.将Test类的abstract修饰符去掉;
D.将methodB方法的abstract修饰符去掉;
E.将methodA方法的abstract修饰符去掉;
三.判断题
1.Java语言具有较好的安全性和可移植性及与平台无关等特性。
()
2.JavaApplication程序中,必有一个主方法main(),该方法有没有参数都可以。
()
3.Java程序中不区分大小写字母。
()
4.System类中的println()方法分行显示信息,而print()方法不分行显示信息。
()
5.在运行字节码文件时,使用java命令,一定要给出字节码文件的扩展名.class。
()
6.Java语言会自动回收内存中的垃圾。
()
7.抽象方法是一种只有说明而无具体实现的方法。
()
8.Java语言中,所创建的子类都应有一个父类。
()
9.一个类可以实现多个接口,接口可以实现“多重继承”。
()
10.子类可以继承父类所有的成员变量及成员函数。
()
四.补程序
1.下面是一个类的定义,请将其补充完整。
class__
{Stringname;
intage;
Student(__s,inti)
{name=s;
age=i;}
}
2.下面程序的功能是通过调用方法max()求给定的二个整数的最大值,请将其补充完整。
publicclassClass1
{
publicstaticvoidmain(Stringargs[])
{inta1=1234,a2=456;
intMaxValue;
MaxValue=__;
System.out.println("二个数的最大值:
"+MaxValue);
}
publicstatic__max(intx,inty)
{intmax_value;
max_value=x>y?
x:
y;
returnmax_value;
}
}
五.分析题
1.下列语句序列执行后,k的值是:
()
intx=6,y=10,k=5;
switch(x%y)
{
case0:
k=x*y;
case6:
k=x/y;
case12:
k=x-y;
default:
k=x*y-x;
}
2.下列程序段的输出结果是:
()
publicclassoperatorsandExpressions{
voidstringPlus(){
intx=3,y=4,z=5;
System.out.println(x+y+z);
}
}
3.下列程序的输出结果为:
()
intj=2;
switch(j){
case2:
System.out.println("Valueistwo.");
case2+1:
System.out.println("Valueisthree.");
break;
default:
System.out.println("Valueis"+j);
break;}
4.下面程序运行的结果是:
()
publicclassX
{
privatestaticinta;
publicstaticvoidmain(String[]args)
{modify(a);
System.out.println(a);}
publicstaticvoidmodify(inta)
{a++;}
}
5.应用程序的main方法中有以下语句,则输出的结果是:
()
int[]x={122,33,55,678,-987};
inty=x[0];
for(inti=1;iif(x>y)
y=x;
}
System.out.println(y);