1、国家二级( JAVA)机试模拟试卷 80及答案与解析 一、基本操作题( 30分) 1 将下面的程序补充完整。 注意:不改动程序结构,不得增行或删行。 import java.appplet.Applet; import java.awt.Graphics; public class ex1 extends Applet public void paint(Graphics_) int i=682; gap.drawstring(Integer._(i),20, 60); 二、简单应用题( 40分) 2 请完成下列 Java程序:运行 3个线程有自己的标志,用 a,b,c表示,每个线程显示一个
2、“Start”信息和一个 “End”信息并且间隔地显示 2个 “Loop”信息 (间隔变化为0.5 2秒之间的随机延迟 )。 程序运行结果如下 (注:由于事件间隔为随机数,所以,运行结果的顺序不唯一 ): a Start b Start c Start b Loop a Loop b Loop b End c Loop a Loop a End c Loop c End 注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 public class ex5_2 implements Runnable static char flag5_2=a; public st
3、atic void main(String args) ex5_2 obj5_2=new ex5_2(); Thread thread5_2=new Thread(obj5_2); Thread5_2.start(); thread5_2=new Thread(obj2_2); thread5_2.start(); thread5_2=new Thread(obj2_2); thread5_2.start(); public void run() char myflag5_2; synchronized(this) _; System.out.println(myflag5_2+“Start“
4、); for(int i=0;i 2;i+) try Thread.sleep(rand(500,2000); System.out.println(myflag5_2+“Loop“); catch(InterruptedException ie) System.out.println(ie); System.out.println(myflag5_2+“End“); final private iht rand(int low,int high) return(_); 三、综合应用题( 30分) 3 下列程序的功能是对两个整数进行比较,由考生通过输入窗口分别输入两个整数,程序 比较出结果。例
5、如:输入第 1个整 数为 12,第 2个整数为 33。比较结果显示: 12!=33 12 33 12 =33 程序有多个遗漏和错误。本题要求改一个错,填三个空。 注意:不改动程序结构,不得增行或删行。 import javax.swing.JOptionPane; public class ex3 public static void main(String args) String firstNumber, /用户输入第 1个字 符串 secondNumber, /户输入第 2个字符串 result; / a string containing the output int number1,
6、 /较的第 1个数 number2; /的第 2个数 /读用户输入的第 1个字符串 read first number from user as a string firstNumber= JOptionPane.showlnputDialog(“Enter first integer:“); /用户输入的第 2个字符串 read second number from user as a string secondNumber= JOptionPane.showInputDialog(“Enter second integer:“); /字符串类型转换成整数类型 number1=Integer
7、.parseInt(firstNumber); number2=Integer.parseInt(secondNumber); result=“; if(String.valueOf(numberl)=String.valueOf(number2) result=String.valueOf(numberl)+“= =“+String.valueOf(number2); if(String.valueOf(number1)!=String.valueOf(number2) result=String.valueOf(number1)+“ !=“+String.valueOf(number2);
8、 if(String.valueOf(numberl) String.valueOf(number2) result=result+“n“ +String.valueOf(numberl)+“ “ +String.valueOf(number2); if(String.valueOf(numberl) String.valueOf(number2) result=result+“n“ +String.valueOf(numberl)+“ “ +String.valueOf(number2); if(String.valueOf(numberl) =String.valueOf(number2)
9、 result=result+“n“+String.valueOf(numberl)+“ =“ +String.valueOf(number2); if(String.valueOf(numberl) =String.valueOf(number2) result=result+“n“+String.valueOf(numberl)+ “ =“ +String.valueOf(number2); _(null,result, “比较结果 “, _INFORMATION_MESSAGE); /程序正常 退出 _; 国家二级( JAVA)机试模拟试卷 80答案与解析 一、基本操作题( 30分) 1
10、 【正确答案】 gap toString 【试题解析】 本题考查图形用户界面和字符串的使用。 paint()方法有一个参数gap是 Graphics类的实例,当然 gap是程序员自己起的名字,你也可以定义为abc,这都无妨,该实例由浏览器生成,它包含了 Applet图形上下文信息,通过它向 Applet中显示信息,该对象相当于 Applet的画笔。在调用 paint()方法时,由浏览器将该对象传给 paint()方法。由于在方法 drawstring()前程序已经给出了对象名gap,因此,第 1空填写 gap。 toString()方法是 Object自带的一个方法,用于返回该对象 (在本题中
11、是 gap)信息的字符串,该字符串与对象相同类型。 二、简单应用题( 40分) 2 【正确答案】 myflag5_2=flag5_2+ (int)(high-low+1)*(Math.random()+low 【试题解析】 本题主要考查线程的创建与同步和控制随 机数产生范围的算法。解题关键是,熟悉线程的概念和使用、线程的同步控制、 char类型数据的操作,以及熟悉随机数产生的方法 Math.random(),并且能够进一步根据需要控制随机数产生的范围。在本题中, main()方法中创建 3个线程,这 3个线程使用。 obj5_2对象。线程调用 start()方法来中断,使一个新的线程开始执行,
12、并且调用 run()方法。第 1个空, run()方法为自己设置一个线程的标志,并为下一个线程的使用增加这个标志值,由于此时线程正在处理中,因此在同步块中完成修改标志的语句放在同步块中。第 2个 空,通过 low和 high两个参数,控制产生随机数的范围,将基本的数学思想应用于程序设计中。 三、综合应用题( 30分) 3 【正确答案】 if(String.valueOf(number1= =String.valueOf(number2) JOptionPane.showMessageDialog JOptionPane System.exit(0) 【试题解析】 本题综合考查 Java语言的数
13、据类型及运算、基本语句和图形用户界面。 if(String.valueOf(number1)=String.valueOf(number2)是题中的错误。两个变量进行比较应该使用双等号,正确的语句是if(String.valueOf(numberl)=String.valueOf(number2)。第 1空填写 JOptionPane.showMessageDialog。调用 JOptionPane类的 showMessageDialog方法显示信息。第 2空填写 JOptionPane。JOptionPane.INFORMATION_MESSAGE是 JOptionPane自带的参数,用来控制 显示在信息框上的图标。要显示惊叹号的图标应使用INFORMATION_MESSAGE参数。第 3空应填写 System.exit(0)。 Java中退出程序使用 System的 exit方法,该方法需要一个整数参数。