Java基础测试题答案.docx
《Java基础测试题答案.docx》由会员分享,可在线阅读,更多相关《Java基础测试题答案.docx(10页珍藏版)》请在冰豆网上搜索。
Java基础测试题答案
1.有以下程序片段,下列哪个选项不能插入到行1。
(D)
1.
classInteresting{
3.}(只能有一个public修饰的class)
A、import.*;B、packagemypackage;
C、classOtherClass{}D、publicclassMyClass{}
2.以下哪项是接口的正确定义(BD)
A、interfaceB
{voidprint(){};}(接口里的方法都是抽象的,不能有方法体)
B、abstractinterfaceB
{voidprint();}
C、abstractinterfaceBextendsA1,A2口可以声明为public(公共)或默认的访问权限。
接口隐含表明是抽象的(abstract)的。
2.接口的方法默认即为public(公共)且是abstract(抽象)的.3.接口中的变量默认即为public(公共),static(静态)andfinal(最终的)。
接口声明
编译器如何解释呢
publicinterfaceSearchable{}
publicabstractinterfaceSearchable{}
abstractinterfaceSearchable{}
abstractinterfaceSearchable{}
interfaceSearchable{}
abstractinterfaceSearchable{}
voidsearch(StringsearchString);
publicabstractvoidsearch(StringsearchString);
abstractvoidsearch(StringsearchString);
publicabstractvoidsearch(StringsearchString);
publicvoidsearch(StringsearchString);
publicabstractvoidsearch(StringsearchString);
charMATCH_ONLY_ONE=‘’;
publicstaticfinalcharMATCH_ONLY_ONE=‘’;
publiccharMATCH_ONLY_ONE=‘’;
publicstaticfinalcharMATCH_ONLY_ONE=‘’;
staticMATCH_ONLY_ONE=‘’;
publicstaticfinalcharMATCH_ONLY_ONE=‘’;
finalcharMATCH_ONLY_ONE=‘’;
publicstaticfinalcharMATCH_ONLY_ONE=‘’;
finalpubliccharMATCH_ONLY_ONE=‘’;
publicstaticfinalcharMATCH_ONLY_ONE=‘’;
3.下面哪个函数是publicvoidaMethod(){...}的重载函数(D)
A、voidaMethod(){...}
B、publicintaMethod(){...}
C、publicvoidaMethod(){...}
D、publicintaMethod(intm){...}
(重载:
定义同名的方法,方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同)
4.A派生出子类B,B派生出子类C,并且在Java源代码中有如下声明:
1.Aa0=newA();
2.Aa1=newB();
3.Aa2=newC();
问以下哪个说法是正确的(D)
A、只有第1行能通过编译B、第1、2行能通过编译,但第3行编译出错
C、第1、2、3行能通过编译,但第2、3行运行时出错
D、第1行、第2行和第3行的声明都是正确的
(A是B的父类,也算是C的父类)
5.假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的(C)Aa=newA();
classA
{inti;
staticStrings;
voidmethod1(){}
staticvoidmethod2(){}
}
D、();(A是类名,应该调用对象a)
6.有如下代码段:
1)
2){if(unsafe()){Java的字符类型采用的是Unicode编码方案,每个Unicode码占用(C)个比特位。
byte
A、8B、16C、32D、64
8.以下关于继承的叙述正确的是(A)。
A、在Java中类只允许单一继承
B、在Java中一个类只能实现一个接口(可以实现多个接口)
C、在Java中一个类不能同时继承一个类和实现一个接口(可以的)
D、在Java中接口只允许单一继承(可以继承多个接口)
9.给出下面代码,关于该程序以下哪个说法是正确的(C)
publicclassPerson{
staticintarr[]=newint[5];
publicstaticvoidmain(Stringa[]){
}
}
A、编译时将产生错误B、编译时正确,运行时将产生错误
C、输出零D、输出空(输出数组的首地址arr[0],int类型的初始值为0)
10.在使用interface声明一个接口时,只可以使用(D)修饰符修饰该接口。
A、privateB、protectedC、privateprotectedD、public(接口只能和public和abstract关键字连用)
11.编译并运行以下程序,以下描述哪个选项是正确的(D)
1.classA{
2.protectedbooleanequals(){
3.return();
4.}
5.}(只有调用父类非私有属性和方法时才使用到super)
A、编译通过运行无异常B、编译通过但运行时出错
C、行2出错,不能成功编译D、不能成功编译,行3出错
12.有语句Strings=”helloworld”;,以下操作哪个是不合法的(B)
A、inti=();B、s>>>=3;(>>>为无符号右移运算符,去掉“=”号)
C、Stringts=();D、Stringt=s+”!
”;
13.下列关于Java语言的特点,描述错误的是(C)
A.Java是跨平台的编程语言B.Java支持分布式计算
C.Java是面向过程的编程语言(面向对象)D.Java支持多线程
14.下述概念中不属于面向对象方法的是(D)。
A.对象、消息B.继承、多态C.类、封装D.过程调用(过程调用是属于过程方法)
15.结构化程序设计所规定的三种基本控制结构是(C)
A.输入、处理、输出B.树形、网形、环形
C.顺序、选择、循环D.主程序、子程序、函数
16.下列关于构造方法的叙述中,错误的是(C)
A.Java语言规定构造方法名与类名必须相同
B.Java语言规定构造方法没有返回值,但不用void声明
C.Java语言规定构造方法不可以重载
D.Java语言规定构造方法只能通过new自动调用
17.下列哪个类的声明是正确的(D)
A.abstractfinalclassHI{}(final代表常量,但是抽象类不能实例化)
B.abstractprivatemove(){}(这是定义方法的)
C.protectedprivatenumber;(不是定义类,且修饰符重复)
D.publicabstractclassCar{}
18.关于被私有访问控制符private修饰的成员变量,以下说法正确的是(C)
A.可以被三种类所引用:
该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B.可以被两种类访问和引用:
该类本身、该类的所有子类
C.只能被该类自身所访问和修改
D.只能被同一个包中的类访问
19.下列关于for循环和while循环的说法中哪个是正确的(B)
A.while循环能实现的操作,for循环也都能实现
B.while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果
C.两种循环任何时候都可替换
D.两种循环结构中都必须有循环体,循环体不能为空
20.阅读以下代码:
import.*;
import.*;
publicclassfoo{
publicstaticvoidmain(String[]args){
Strings;
}
}
输出结果应该是:
(C)
A.代码得到编译,并输出“s=”(代码不能编译通过)
B.代码得到编译,并输出“s=null”
C.由于Strings没有初始化,代码不能编译通过
D.代码得到编译,但捕获到NullPointException异常
21.编译运行以下程序后,关于输出结果的说明正确的是(C)
publicclassConditional{
publicstaticvoidmain(Stringargs[]){
intx=4;
“valueis“+((x>4):
9));
}
}
A.输出结果为:
valueisB.输出结果为:
valueis9
C.输出结果为:
valueis(判断为false时取“:
”后面的值9,又因为有类型,最后值类型也为double)
D.编译错误
22.执行完以下代码int[]x=newint[10];后,以下哪项说明是正确的(A)
A.x[9]为0
B.x[9]未定义(new出数组后未赋值,则系统默认int类型数据为0)
C.x[10]为0(下标越界,数组下标是从0开始的)
D.x[0]为空(同B)
**23.关于以下程序段,正确的说法是(C)
1.Strings1=“a”+“b”;
2.Strings2=newString(s1);
3.if(s1==s2)
“==issucceeded”);
5.if(s2))
“.equals()issucceeded”);
A.行4与行6都将执行B.行4执行,行6不执行
C.行6执行,行4不执行C.行4、行6都不执行
24.以下程序的运行结果是:
(C)
publicclassIncrement{
publicstaticvoidmain(Stringargs[]){
intc;
c=2;
下列哪一个关键字用于实现接口来定义类(B)
A、extends(继承)B、implements(实现)C、abstract(抽象)D、interface(接口)
判断题
1子类不能继承父类的私有成员变量,因此也没有任何办法可以修改父类的私有成员变量。
F
2.Java语言包括两类变量:
简单变量和引用变量T
3.函数重载时,同名函数的参数类型列表必须不同T
4.一个类可以选择地实现接口的部分函数.F
5.JAVA中的引用变量需要初始化,简单变量可以不进行初始化F
6.Java只支持单继承,也就是说子类只能有一个直接父类T。
7.子类可以继承父类的除私有成员以外的其它所有成员。
F
8.两个浮点数相除,即使除数为0,也不会出现异常退出。
T
9.抽象类不能实例化,也就是说,不能有自己的对象T
类是所有其它类的直接或间接父类T
1.抽象类可以有构造方法,接口中不能有构造方法。
2.抽象类中可以有普通成员变量,接口中没有普通成员变量
3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4.抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然eclipse下不报错,但应该也不行),但接口抽象方法只能是public类型的,并且默认即为publicabstract类型。
5.抽象类中可以包含静态方法,接口中不能包含静态方法
6.抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是publicstaticfinal类型,并且默认即为publicstaticfinal类型。
7.一个类可以实现多个接口,但只能继承一个抽象类。
1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;
2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;
3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;
4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。
1、在使用重载时只能通过不同的参数样式。
例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同一方法内的几个参数类型必须不一样,例如可以是fun(int,float),但是不能为fun(int,int));好像可以这样写啊
2、不能通过访问权限、返回类型、抛出的异常进行重载;
3、方法的异常类型和数目不会对重载造成影响;
4、对于继承来说,如果某一方法在父类中是访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。
listset是map不是
接口可以继承接口。
抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数
水仙花数
是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
源程序
publicclassshuixian{
staticintb,bb,bbb;
publicstaticvoidmain(String[]args){
for(intnum=101;num<1000;num++){
shuixiantnn=newshuixian();
(num);
}
}
publicvoidf(intm){
bbb=m/100;
bb=(m%100)/10;
b=(m%100)%10;
if((bbb*bbb*bbb+bb*bb*bb+b*b*b)==m){
}
}
}
运行结果:
153
370
371
407