JAVA程序设计2复赛A卷.docx
《JAVA程序设计2复赛A卷.docx》由会员分享,可在线阅读,更多相关《JAVA程序设计2复赛A卷.docx(12页珍藏版)》请在冰豆网上搜索。
JAVA程序设计2复赛A卷
第二届全国ITAT教育工程就业技能大赛复赛试题
Java程序设计(A卷)
姓名:
____________________准考证号:
_______________________
题号
一
二
三
四
总分
得分
注意:
在指定的路径下创建以姓名和准考证号命名的文件夹,并将试题答案存放在以题号命名的子文件夹中。
凡未按照要求将试题存放在相应文件夹中的考生成绩一律作废。
一.选择题(每道题3分,共30分)
1
2
3
4
5
6
7
8
9
10
1、使用以下哪个保留字可以使只有在定义该类的包中的其他类才能访问该类?
A)abstractB)private
C)protectedD)不使用保留字
2、下列选项中哪一个是表达式1+2+"aa"+3的值()?
A)"12aa3"B)"3aa3"C)"12aa"D)"aa3"
3、考虑下面的类:
1.classTest{
2.voidtest(inti){
3.System.out.println(“Iamanint.”);
4.}
5.voidtest(Strings){
6.System.out.println(“Iamastring.”);
7.}
8.
9.publicstaticvoidmain(Stringargs[]){
10.Testt=newTest();
11.charch=“y”;
12.t.test(ch);
13.}
14.}
下列哪一个结论是正确的
A)第5行不能通过编译,因为void方法不能被重载。
B)第12行不能通过编译,因为没有将一个将char类型作为参数的test()方法。
C)代码不能通过编译但是会在第12行抛出异常。
D)代码能通过编译并会产生如下输出:
Iamanint.
E)代码能通过编译并会产生如下输出:
IamaString.
4、下列哪些代码编译时没有错误
A)inti=0;
if(i){
System.out.println(“Hi”);
}
B)booleanb=true;
booleanb2=true;
if(b==b2){
System.out.println(“Sotrue”);
}
C)inti=1;
intj=2;
if(i==1||j==2)
System.out.println(“OK”);
D)inti=1;
intj=2;
if(i==1&|j==2)
System.out.println(“OK”);
5、如果floatf=4.2F;
Floatg=newFloat(4.2F);
Doubled=newDouble(4.2);
则下列哪些表达式值为真?
A)f==g
B)g==g
C)d==f
D)d.equals(f)
E)d.equals(g)
F)g.equals(4.2)
6、publicclassTest{
publicstaticvoidadd3(Integeri){
intval=i.intValue();
val+=3;
i=newInteger(val);
}
publicstaticvoidmain(Stringargs[]){
Integeri=newInteger(0);
add3(i);
System.out.println(i.intValue());
}
}
以上代码的结果会是以下哪个选项?
A)编译出错。
B)输出"0"
C)输出"3"
D)编译成功但运行时会在第3行出现异常
7、下面程序标记处应该插入哪个选项的代码?
classEnclosingOne{
publicclassInsideOne{}
}
publicclassInnerTest{
publicstaticvoidmain(Stringargs[]){
EnclosingOneeo=newEnclosingOne();
//insertcodehere
}
}
A)InsideOneei=eo.newInsideOne();
B)eo.InsideOneei=eo.newInsideOne();
C)InsideOneei=EnclosingOne.newInsideOne();
D)InsideOneei=eo.newInsideOne();
E)EnclosingOne.InsideOneei=eo.newInsideOne();
8、publicclassSychTest{
privateintx;
privateinty;
publicvoidsetX(inti){x=i;}
publicvoidsetY(inti){y=i;}
publicSynchronizedvoidsetXY(inti){
setX(i);
setY(i);
}
publicSynchronizedbooleancheck(){
returnx!
=y;
}
}
在下列哪种情况下,check()方法在被另一个不同的类调用时会返回true?
A)check()永远也不会返回true。
B)当通过多线程调用setXY()时check()能够返回true。
C)当通过多线程单独调用setX()和setY()时check()能够返回true。
D)只有当SychTest被改为允许x和y单独设值时check()才能够返回true。
9、importjava.awt.*;
publicclassXextendsFrame{
publicstaticvoidmain(String[]args){
Xx=newX();
x.pack();
x.setVisible(true);
}
publicX(){
setLayout(newGridLayout(2,2));
Panelp1=newPanel();
add(p1);
Buttonb1=newButton("One");
p1.add(b1);
Panelp2=newPanel();
add(p2);
Buttonb2=newButton("Two");
p2.add(b2);
Buttonb3=newButton("Three");
p2.add(b3);
Buttonb4=newButton("Four");
add(b4);
}
}
当frame改变大小时,
A)所有都会改变高度
B)所有都会改变宽度
C)Button"One"改变高度
D)Button"Two"改变高度
E)Button"Three"改变宽度
F)Button"Four"改变高度和宽度
10、String或StringBuffer类的对象在调用以下哪个方法时其自身会发生更改?
A)String类的charAt()方法。
B)String类的toUpperCase()方法。
C)String类的replace()方法。
D)StringBuffer类的reverse()方法。
E)StringBuffer类的length()方法。
二.简答题(每题5分,共10分)
1、说明final,finally,finalize的区别?
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出信的子类,不能作为父类被继承。
因此一个类不能既被声明为abstract的,又被声明为final的。
将变量或方法声明为final,可以保证它们在使用中不被改变。
被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
被声明为final的方法也同样只能使用,不能重载。
finally—再异常处理时提供finally块来执行任何清除操作。
如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块(如果有的话)。
finalize—方法名。
Java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。
这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。
它是在Object类中定义的,因此所有的类都继承了它。
子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。
finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。
finally是异常处理语句结构的一部分,表示总是执行。
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。
2、线程类的方法中sleep()和wait()有什么区别?
sleep()是线程类的方法,wait()方法是Object方法。
wait是等待资源线程处于已激活状态直到有资源分配给该线程时该线程继续运行
sleep的线程是非激活状态
三.写出下列程序的输出结果(第1题5分,第2题10分,共15分)
1、以下程序段的输出结果为
Valueistwo.Valueisthree.。
intj=2;
switch(j){
case2:
System.out.print(“Valueistwo.”);
case2+1:
System.out.println(“Valueisthree.”);
break;
default:
System.out.println(“valueis“+j);
break;
}
2、阅读以下程序段:
classParent
{
voidprintMe()
{
System.out.println(“parent”);
}
}
classChildextendsParent
{
voidprintMe()
{
System.out.println(“child”);
}
voidprintAll()
{
super.printMe();
this.printMe();
printMe();
}
}
publicclassTest_this
{
publicstaticvoidmain(String