第二届复赛试题A卷 联系客服

发布时间 : 星期六 文章第二届复赛试题A卷更新完毕开始阅读8e86c31b10a6f524ccbf8575

教育部教育管理信息中心

第二届全国ITAT教育工程就业技能大赛复赛试题

Java程序设计(A卷)

姓名:____________________ 准考证号:_______________________

题号 得分 一 二 三 四 总分 注意:在指定的路径下创建以姓名和准考证号命名的文件夹,并将试题答案存放在以题号命名的子文件夹中。凡未按照要求将试题存放在相应文件夹中的考生成绩一律作废。

一.选择题(每道题3分,共30分) 1 2 3 4 5 6 7 8 9 10

1、 使用以下哪个保留字可以使只有在定义该类的包中的其他类才能访问该类?

A)abstract

B)private D)不使用保留字

C)protected

2、下列选项中哪一个是表达式1+2+\aa\+3的值()?

A)\12aa3\ B) \3aa3 \ C) \12aa\ D) \aa3\ 3、考虑下面的类: 1. class Test {

2. void test(int i) {

3. System.out.println(“I am an int.”); 4. }

5. void test(String s) {

6. System.out.println(“I am a string.”); 7. } 8.

9. public static void main(String args[]) {

10. Test t=new Test(); 11. char ch=“y”; 12. t.test(ch); 13. } 14. }

下列哪一个结论是正确的

A)第5行不能通过编译,因为void方法不能被重载。

B)第12行不能通过编译,因为没有将一个将char类型作为参数的test() 方法。 C)代码不能通过编译但是会在第12行抛出异常。

D)代码能通过编译并会产生如下输出:I am an int.

教育部教育管理信息中心

E)代码能通过编译并会产生如下输出:I am a String.

4、下列哪些代码编译时没有错误 if语句中条件只能为boolean,不能是int

A) int i=0;

if (i) {

System.out.println(“Hi”); }

B) boolean b=true;

boolean b2=true; if(b==b2) {

System.out.println(“So true”);

} so true C) int i=1;

int j=2;

if(i==1|| j==2)

System.out.println(“OK”); D) int i=1;

int j=2;

if (i==1 &| j==2)

System.out.println(“OK”);

5、 如果float f=4.2F;

Float g=new Float(4.2F);

Double d=new Double(4.2);

则下列哪些表达式值为真? 对象和值不能比较 A)f==g

B)g==g true C)d==f

D)d.equals(f) E) d.equals(g) false F) g.equals(4.2) 6、public class Test{

public static void add3(Integer i){ int val=i.intValue(); val+=3;

i=new Integer(val);

}

public static void main(String args[]){ Integer i=new Integer(0);

add3(i);

System.out.println(i.intValue()); } }

以上代码的结果会是以下哪个选项? A) 编译出错。 B) 输出 \

ok

教育部教育管理信息中心

C) 输出 \

D) 编译成功但运行时会在第3行出现异常 7、下面程序标记处应该插入哪个选项的代码?

class EnclosingOne{ public class InsideOne{} }

public class InnerTest{

}

public static void main(String args[]){ EnclosingOne eo=new EnclosingOne(); //insert code here }

A) InsideOne ei=eo.new InsideOne(); B) eo.InsideOne ei=eo.new InsideOne(); C) InsideOne ei=EnclosingOne.new InsideOne(); D) InsideOne ei=eo.new InsideOne();

E) EnclosingOne.InsideOne ei=eo.new InsideOne(); 8、public class SychTest{ private int x;

private int y;

public void setX(int i){ x=i;}

public void setY(int i){ y=i;}

public Synchronized void setXY(int i){ setX(i); setY(i);

}

public Synchronized boolean check(){ return x!=y; } }

在下列哪种情况下,check()方法在被另一个不同的类调用时会返回true? A) check() 永远也不会返回true。

B) 当通过多线程调用setXY () 时check() 能够返回true。

C) 当通过多线程单独调用setX() 和setY()时check() 能够返回true。 D) 只有当SychTest 被改为允许x和y单独设值时check() 才能够返回true。 9、import java.awt.*;

public class X extends Frame{

public static void main(String[] args){ X x=new X(); x.pack();

x.setVisible(true);

}

public X(){

setLayout(new GridLayout(2,2));

教育部教育管理信息中心

Panel p1=new Panel();

add(p1);

Button b1=new Button(\p1.add(b1);

Panel p2=new Panel(); add(p2);

Button b2=new Button(\

p2.add(b2);

Button b3=new Button(\ p2.add(b3); } }

当frame改变大小时,直接加在Frame上的组件会改变宽度和高度,加在面板上的组件不会 A) 所有都会改变高度 B) 所有都会改变宽度

C) Button \改变高度 D) Button \改变高度 E) Button \改变宽度 F) Button \改变高度和宽度

10、String或StringBuffer类的对象在调用以下哪个方法时其自身会发生更改? A) String类的charAt()方法。

B) String类的toUpperCase()方法。 C) String类的replace()方法。 D) StringBuffer类的reverse ()方法。 E) StringBuffer类的length ()方法。

二. 简答题(每题5分,共10分)

1、 说明final, finally, finalize的区别?

2、 线程类的方法中sleep() 和 wait() 有什么区别?

三. 写出下列程序的输出结果(第1题5分,第2题10分,共15分) 1、以下程序段的输出结果Value is two.Value three. 。 int j=2;

switch ( j ) { case 2:

System.out.print(“Value is two.”); case 2+1 : System.out.println(“Value is three.”); }

break;

System.out.println(“value is “+j); break; default:

is

Button b4=new Button(\ add(b4);

教育部教育管理信息中心

2、阅读以下程序段: class Parent { void printMe() {

}

System.out.println(“parent”);

}

class Child extends Parent { }

public class Test_this { public static void main(String args[ ]) {

Child myC=new Child(); myC.printAll(); }

void printMe() { }

System.out.println(“child”);

void printAll() {

super.printMe(); this.printMe(); printMe();

} }

输出结果为: parent child child

四. 编程题(共65分)

1、用LinkedList实现一个stack,实现其中的push(),top()和pop()方法;其中push()实现向栈中加入一个元素,top()实现得到栈的最顶元素,pop()实现删除最顶元素。(25分) 2、为Thread撰写两个子类,其中一个的run()在启动后取得第二个Thread object reference,然后调用wait()。另一个子类的run()在过了数秒之后调用notifyAll(),唤醒第一个线程,使第一个线程可以印出消息。(40分)