javaSE基础试题doc.docx
《javaSE基础试题doc.docx》由会员分享,可在线阅读,更多相关《javaSE基础试题doc.docx(12页珍藏版)》请在冰豆网上搜索。
javaSE基础试题doc
一、判断题,共17分,每题1分
1、Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字
free。
(错)
2、对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与
赋值对象相同的新对象。
(错)
3、
有的类定义时可以不定义构造函数,所以构造函数不是必需的。
(错)
4、
类及其属性、方法可以同时有一个以上的修饰符来修饰。
(对)
5、
抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。
(错)
6、
final类中的属性和方法都必须被final修饰符修饰。
(错)
7、
最终类不能派生子类,最终方法不能被覆盖。
(对)
8、
子类要调用父类的方法,必须使用super关键字。
(错)
14、如果p是父类Parent的对象,而c是子类Child的对象,则语句c=p是正确的。
(错)
15、当一个方法在运行过程中产生一个异常,则这个方法会终止,但整个程序不一定终止运行。
(对)
16、用+可以实现字符串的拼接,用■可以从一个字符串中去除一个字符子
串。
(错)
17、设String对象s=,^Hello,,,运行语句System.out.p「intln(s.concat(“wo「ld!
”));
后String对象s的内容为”Helloworld!
”,所以语句输出为:
Helloworld!
(错)
二、单选题,共21分,每题1.5分
1、关于被私有访问控制符private修饰的成员变量,以下说法正确的是(B)
A、可被三种类引用:
该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B、只能被该类自身所访问和修改C、只能被同一个包中的类访问
D、可被两种类访问和引用:
该类本身、该类的所有子类2、下列关于修饰符混用的说法,错误的是(A)
A、static方法中能处理非static的属性B、abstract方法必须在abstract
类中C、abstract类中不可以有private的成员D、abstract不能与final并
列修饰同一个类
3、main方法是Application的入口点,以下main方法的方法头合法的是(C)
A、publicstaticvoidmain()
B、publicstaticintmain(String[]args)
C、publicstaticvoidmain(String[]arg)
D、publicvoidmain(Stringarg[])
4、以下代码段执行后的输出结果为(B)
intx=3;inty=10;
System.out.println(y%x);
A、0B、1C、2D、3
5、编译运行以下程序后,关于输出结果的说明正确的是(C)
publicclassConditional
publicstaticvoidmain(Stringargs[])(intx=4;
System.out.printlnfvalueis“+((x>4)?
99.9:
9));
})
A、输出结果为:
valueis99.99B、输出结果为:
valueis9
C、输出结果为:
valueis9.0D、编译错误
6、以下声明合法的是(A)
A、publicfinalstaticnativeintw();
B、defaultStrings;
C、abstractfinaldoublehyperbolicCosine();
D、abstractdoubled;
7、关于以下程序代码的说明正确的是(C)
1.classHasStatic(
2.privatestaticintx=100;
3.publicstaticvoidmain(Stringargs[])(
4.HasStatichs1=newHasStatic();
5.hs1.x++;
6.HasStatichs2=newHasStatic();
7.hs2.x++;
8.hs1=newHasStatic();
9.hs1.x++;
10.HasStatic.x-
11.System.out.println(Hx=,,+x);
12.}
13.}
A、5行不能通过编译,因为引用了私有静态变量
B、10行不能通过编译,因为x是私有静态变量
C、程序通过编译,输出结果为:
x=102
D、程序通过编译,输出结果为:
x=103
8、类Testi定义如下:
1.publicclassTesti(
2.publicfloataMethod(floata,floatb)()
3.
4.将以下哪种方法插入行3是不合法的(B)
A、publicfloataMethod(floata,floatb,floatc)(
B、publicfloataMethod(floatc,floatd){
}
C、publicintaMethod(inta,intb){
)
D、privatefloataMethod(inta,intb,intc)()
9、关于以下程序段,正确的说法是(C)
1.Strings1=”abc”+”def';
2.Strings2=newString(s1);
3.if(s1==s2)
4.System.out.println(5.if(s1.equals(s2))
6.System.out.println(a.equals()succeeded”);
A、行4与行6都将执行B、行4执行,行6不执行
C、行6执行,行4不执行D、行4、行6都不执行
10、被私有保护访问控制符privateprotected修饰的成员变量,以下说法正确的是
(B)
A.可被三种类引用:
该类自身、与它在同一个包中的其他类、在其他包中的该
类的子类
B.可被两种类访问和引用:
该类本身、该类的所有子类
C.只能被该类自身所访问和修改
D.只能被同一个包中的类访问
11、以下标识符中哪项是不合法的(C)
A、BigMeaninglessNameB、$intC、3kuD、$1
12、执行完以下代码int[]x=newint[25];以下哪项说明是正确的(A)
A、x[24]为OB、x[24]未定义C、x[25]为0D、x[0]为空
13、以下哪个表达式是不合法的(B)
A、Stringx=”Hello”;inty=9;x+=y;
B、Stringx=”Hello”;inty=9;if(x==y)(}
C、Stringx=,,Hello,^;inty=9;x=x+y;
D、Stringx=null;inty=(x!
=null)&&(x.length>O)?
x.length:
O
14、一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型
或顺序各不相同,传回的值也可不相同。
这种面向对象程序特性称为(D)
A、隐藏B、覆盖C、重复D、重载
三、填空题,共32分,每题2分
2、在Java中定义一个字符串类型的变量str的语句是Stringstr;
4、Java采用Unicode编码方案,每个Unicode码占2个字节内存。
5、运算符=的功能是赋值,比较两个数相等的运算符是=。
6、下面程序段的执行结果是6,543,2,。
inta[]={2,3,4,5,6);
for(inti=a.length-1i>=0;i-)System.out.print(a[i]+M,n);
7、导入mypackage包中的所有类的命令是importmypackage.*。
8、若程序中定义一个public类C1和一个友好类C2,则源程序的主文件名应为
C1.javao
9、一个一维数组有10个元素,则该数组可用的下标范围是_0・-9—o
10、gbstract(抽象)类必须派生出子类才能使用;与此相反,final(最终)_类不能有子类。
所以,二者不能同时修饰同一个类。
11、—构造方法—是对每个新创建的具体对象进行初始化,而—静态代码块
13、—抽象—将行为相似的对象放到同一个类中,并为其命名,形成类,是一种由下而上扩充类的方法,是OOP的重要特色。
14、所有的Java异常类都是—Exception类的子类。
15、Java使用的字符集是—Unicode,Java的标识符不能
(填“能”或“不能”)以数字开头Java是(填“是”或“不是”)
区分大小写的语言。
16、在Java语言中
进行信息隐藏的基本手段是使用关键字
private
protected—、_public或_privateprotected—对用户能够访问一个标识
符的可访问性进行限制。
18、结构化程序设计的三种基本流程分别是顺序_结构、—分支结构和循环结构。
四、程序填空题,共9分,每题3分
1、写出以下程序的运行结果:
noException
finally
Catch
finally。
publicdassTry{
staticvoidProc(intsei)(
try(
if(sel==0)(
System.out.printlnC'noException”);
return;
)elseif(sel==1)(
inti=0;
intj=4/i;
}
)catch(ArithmeticExceptione){
System.out.println(HCatch”);
catch(Exceptione)(
System,out.printin(/zWillnotbeexecuted");}
finally(System.out.println(nfinally");})
publicstaticvoidmain(Stringargs[])(
Proc(0);
Proc
(1);
}
)
2、以下程序段的输出结果为_1;2;3;4;5;o
publicclassArray(
publicstaticvoidmain(Stringargs[]){
inti,j;
inta[]={4,2,3,1,5);
for(i=0iintk=i;
for(j=ijif(a[j]va[k])
k=j;
intt=a[i];
a[i]=a[k];
a[k]=t;
)
for(i=0iSystem.out.print(a[i]+
System.out.println();
}
}
4、执行以下程序的输出结果为姓名:
李四;年龄:
15;家庭住址:
黄岛区;
学校:
中国石油大学
classFather{
Stringname;
intage;
publicFather(Stringname,intage)(
this.name=name;
this.age=age;
voidout()(
System.out.printf1姓名:
”+name);
System.out.printf*;年龄:
”+age);
publicclassSonextendsFather{
Stringaddress;
Stringschool;
publicSon(Stringname,intage)(
super(name,age);
voidout()(
super.out();
System.out.printf*;家庭住址:
"+address);
System.out.println(";学校:
”+school);
)
publicstaticvoidmain(StringargsQ)(
Sonson=newSon(”李四”,15);
son.address-*黄岛区”;
son.school-*中国石油大学";
son.out();)
五、简答题,共9分,每题3分
1、简述关键字this与super的区别。
参考答案:
this代表了当前对象的一个引用,super表示的是当前对象的直接父类对象的引用。
2、简述多态性中重载(overioad)与重写(override)的区别。
答:
参考答案:
重载是类对自身中同名方法的重新定义的机制,重写是子类对父类中同名方法的重新定义的机制;
重载一般采用不同的形参列表、返回值来区别同名方法,重写必须与父类有完全相同的形参列表、返回值。
3、简述if/else与switch/case语句的区别。
参考答案:
if/else语句只能实现双分支‘switch语句可实现多分支;if/else中的表达式是条件表达式,switch中的表达式是螭或字符型表达式,且应与case分支的判断值的类型相一致。
六、编程题共12分每题6分
1、请编写一个Application,翊如下功能:
比较从main的参数中输入的2个整瞻否相等,并栖剧垸隆果显示“相等”或“不相等”。
参考程序:
classCompare(
publicstaticvoidmain(Stringargs[]){
intx=0,y=0;
try(
x=lnteger.parselnt(args[O]);
y=lnteger.parselnt(args[1]);
)
catch(NumberFormatExceptione)
(
System.out.printlnC'if输入两个整型参数!
”);)
if(x==y)System.out.println(Hffi等”);elseSystem.out.println("不相等”);})
2,利用数组求出Hello、Java、Program这3个字符串的平均长度。
参考程序:
publicclassAverage(
publicstaticvoidmain(Stringargs[]){
Stringarray[]=newString[3];
array[0]=“Hello”;
array[1]="Java";
array[2]=“Program”;
inttotal=array[O].length();
total+=array[1].length();
total+=array[2].length();
System.out.p「intln(”平均字符串长度为:
"+total/3);)
)