全国计算机等级考试二级笔试样卷Java语言程序设计
2009-03-03来源:教育部考试中心

  一、选择题((1)~(35)每小题2分,共70分)

  下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

  (1)下列选项中不符合良好程序设计风格的是

  A)源程序要文档化       B)数据说明的次序要规范化

  C)避免滥用goto语句    D)模块设计要保证高耦合、高内聚

  (2)从工程管理角度,软件设计一般分为两步完成,它们是

  A)概要设计与详细设计   B)数据设计与接口设计

  C)软件结构设计与数据设计   D)过程设计与数据设计

  (3)下列选项中不属于软件生命周期开发阶段任务的是

  A)软件测试     B)概要设计 C)软件维护 D)详细设计

  (4)在数据库系统中,用户所见的数据模式为

  A)概念模式 B)外模式   C)内模式   D)物理模式

  (5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和

  A)编码设计 B)测试阶段 C)运行阶段 D)物理设计

  (6)设有如下三个关系表


    下列操作中正确的是

  A)T=R∩S      B)T=R∪S

  C)T=R×S      D)T=R/S

  (7)下列叙述中正确的是

  A)一个算法的空间复杂度大,则其时间复杂度也必定大

  B)一个算法的空间复杂度大,则其时间复杂度必定小

  C)一个算法的时间复杂度大,则其空间复杂度必定小

  D)上述三种说法都不对

  (8)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为

  A)63   B)64   C)6    D)7

  (9)数据库技术的根本目标是要解决数据的

  A)存储问题 B)共享问题 C)安全问题        D)保护问题

  (10)对下列二叉树

  进行中序遍历的结果是

  A)ACBDFEG  B)ACBDFGE  C)ABDCGEF  D)FCADBEG

  (11)运行Java程序需要的工具软件所在的目录是

  A)JDK的bin目录        B)JDK的demo目录

  C)JDK的lib目录        D)JDK的jre目录

  (12)下列关于Java语言特点的叙述中,错误的是

  A)Java是面向过程的编程语言

  B)Java支持分布式计算

  C)Java是跨平台的编程语言  

  D)Java支持多线程

  (13)Java的核心包中,提供编程应用的基本类的包是

  A)java.lang    B)java.util    C)java.applet  D)java.rmi

  (14)下列关于Java对import语句规定的叙述中,错误的是

  A)在Java程序中import语句可以有多个

  B)在Java程序中import语句可以没有

  C)在Java程序中import语句必须有一个

  D)在Java程序中import语句必须引入在所有类定义之前

  (15)在编译Java程序时,用于指定生成.class文件位置的选项是

  A)-g   B)-d   C)-verbose D)-nowarn         

  (16)阅读下面程序

  import  java.io.*;

  public class TypeTransition{

  public static void main(String args[]){

  char a = 'h';

  int i = 100;

  int j = 97;

  int aa = a + i;

  System.out.println("aa="+aa);

  char bb = (char)j;

  System.out.println("bb="+bb);

  }

  }

  如果输出结果的第二行为bb=a,那么第一行的输出是

  A)aa=I B)aa=204   C)aa=v D)aa=156      

  (17)阅读下面程序

  public class OperatorsAndExpressions {

  void equalsMethod1(){

  String s1=new String("how are you");

  String s2=new String("how are you");

  System.out.println(s1==s2);

  }

  public static void main(String args[]){

  OperatorsAndExpressions OperAndExp=new OperatorsAndExpressions();

  //用于复合类型数据的“==”运算符

  OperAndExp. equalsMethod1();

  }

  }

  程序运行结果是

  A)==   B)true C)false    D)equal

  (18)阅读下面代码

  if(x==0){System.out.println("冠军");}

  else if (x>-3){System.out.println("亚军");}

  else { System.out.println("季军");}

  若要求打印字符串“季军”,则变量x的取值范围是

  A)x=0 & x<=-3  B)x>0 C)x>-3 D)x<=-3   

  (19)下列关于构造方法的叙述中,错误的是

  A)Java语言规定构造方法名与类名必须相同

  B)Java语言规定构造方法没有返回值,但不用void声明 

  C)Java语言规定构造方法不可以重载

  D)Java语言规定构造方法只能通过new自动调用

  (20)阅读下面程序

  import javax.swing.JOptionPane;

  public class Comparison {

  public static void main( String args[] ){

  String firstNumber,    //用户输入第1个数据变量

  secondNumber,  //用户输入第2个数据变量

  result;         //输出结果变量

  int number1,         //用于比较的第1个数

  number2;         //用于比较的第2个数

  //用户输入第1个数据的字符串

  firstNumber = JOptionPane.showInputDialog( "输入第1个整数:" );

  //用户输入第2个数据的字符串

  secondNumber = JOptionPane.showInputDialog( "输入第2个整数:" );         

  //将字符串转换为整数类型

  number1 = Integer.parseInt( firstNumber );

  number2 = Integer.parseInt( secondNumber );

  //初始化结果变量

  ______________________;

  //比较两个数据

  if ( number1 == number2 )

  result += number1 + " == " + number2;

  if ( number1 != number2 )

  result += number1 + " != " + number2;

  if ( number1 < number2 )

  result = result + "\n" + number1 + " < " + number2;

  if ( number1 > number2 )

  result = result + "\n" + number1 + " > " + number2;

  if ( number1 <= number2 )

  result = result + "\n" + number1 + " <= " + number2;

  if ( number1 >= number2 )

  result = result + "\n" + number1 + " >= " + number2;

  //显示结果

  JOptionPane.showMessageDialog(null,result,"比较结果",

  JOptionPane.INFORMATION_MESSAGE );

  System.exit( 0 );

  }

  }

  为使程序能正确运行并得到合理的输出结果,初始化结果变量语句(下划线处)应是

  A)result = ""      B)result = null   

  C)result = number1     D)result = number2 

  (21)阅读下面程序

  public class Increment {

  public static void main( String args[] ){

  int c;

  c = 5;

  System.out.println( c );  

  System.out.println( c++ );

  System.out.println( c );  

  }

  }

  程序运行结果是

  A)5  B)5    C)6    D)6

  6   5                  7         6

  6   6   7        6

  (22)下列叙述中,错误的是

  A)Java Application与Applet所用编译命令相同

  B)通常情况下Java Application只能有一个main()方法

  C)Java Applet必须有HTML文件才能运行

  D)Java Applet程序的.class文件可用java命令运行    

  (23)下列关于Java语言中线程的叙述中,正确的是

  A)线程是由代码、数据、内核状态和一组寄存器组成

  B)线程间的数据是不共享的

  C)用户只能通过创建Thread类的实例或定义、创建Thread子类的实例建立和控制自己的线程

  D)因多线程并发执行而引起的执行顺序的不确定性可能造成执行结果的不确定

  (24)阅读下面程序

  import javax.swing.JOptionPane;

  public class BreakLabelTest {

  public static void main( String args[] ){

  String output = "";

  stop: {  

  for ( int row = 1; row <= 10; row++ ) {

  for ( int column = 1; column <= 5 ; column++ ) {

  if ( row == 5 )

  break stop;

  output += "*  ";

  }

  output += "\n";

  }

  output += "\nLoops terminated normally";

  } 

  JOptionPane.showMessageDialog(

  null, output,"用一个标志测试break语句",

  JOptionPane.INFORMATION_MESSAGE );

  System.exit( 0 );

  }

  }

  程序运行结果是

  A)窗口中有5行* * * * *   

  B)窗口中有5行* * * * 

  C)窗口中有4行* * * * *   

  D)窗口中有6行* * * * *

  (25)处理对象传输的接口是

  A)Serializable B)Cloneable    C)ItemListener D)ActionListener

  (26)在读取二进制数据文件的记录时,为了提高效率常常使用一种辅助类

  A)InputStream      B)FileInputStream  C)StringBuffer D)BufferedReader

  (27)可以使当前同级线程重新获得运行机会的方法是

  A)sleep()  B)join()   C)yield()  D)interrupt()

  (28)阅读下面程序

  1  public class Try extends Thread{

  2      public static void main(String args[ ]){

  3       Try t = new Try( );

  4       t.start( );

  5  }

  6

  7     public void run( int j){

  8        int i = 0;

  9       while(i<5){

  10          System.out.println("祝你成功!");

  11              i++;

  12      }

  13    }

  14  }

  该程序要求打印5行“祝你成功!”,必须改正程序中的某行代码,程序才能完成。选择正确的修改是

  A)将第1行的extends Thread改为implements Runnable

  B)将第3行的new Try()改为new Thread()

  C)将第4行t.start()改为start(t)

  D)将第7行的public void  run( int j) 改为public void  run()

  (29)下列事件监听器中,无法对TextField对象进行事件监听和处理的是

  A)ActionListener       B)FocusListener

  C)MouseMotionListener  D)ChangeListener

  (30)Swing的选项面板是

  A)JTabbedPane  B)JLayeredPane C)JScrollPane  D)JSplitPane

  (31)每个Java小应用程序必须定义为

  A)Applet类或JApplet类的子类   B)JFrame类的子类

  C)Frame的子类      D)Window的子类

  (32)在Applet的init()方法被调用后,接下来最先被调用的方法是

  A)run()    B)start()  C)stop()   D)destroy()

  (33)下列关于Applet的安全限制的叙述中,错误的是

  A)通常情况下,禁止Applet读、写本地文件系统       

  B)通常情况下,禁止Applet向Applet源主机之外的任何主机建立网络连接

  C)通常情况下,禁止Applet读取系统信息

  D)通常情况下,禁止Applet加载本地库或方法

  (34)下列标识符(名字)命名原则中,正确的是

  A)类名的首字母小写 B)变量和方法名的首字母大写

  C)接口名的首字母小写   D)常量完全大写

  (35)提供showDocument()方法,使Applet能够请求浏览器访问特定URL的类是

  A)Applet   B)AppletContext    C)JApplet  D)URL

  二、填空题(每空2分,共30分)

  请将每一个空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。注意:以命令关键字填空的必须拼写完整。

  (1)下列软件系统结构图

  的宽度为  【1】  。

  (2)  【2】 的任务是诊断和改正程序中的错误。

  (3)一个关系表的行称为   【3】    。

  (4)按“先进后出”原则组织数据的数据结构是   【4】   。

  (5)数据结构分为线性结构和非线性结构,带链的队列属于  【5】   。

  (6)若想在程序中使用JLabel类,则该程序可以使用import   【6】  .JLabel;语句引入JLabel类。

  (7)在Java中,3.14156D表示的是  【7】  数。

  (8)阅读下列代码

  public class Test2{

  public static void main(String args[]){

  System.out.println(5/2);}}

  其执行结果是  【8】  。

  (9)阅读下列代码段

  int x=3;

  while (x<9)

  x+=2;

  x++;

  while语句成功执行的次数是  【9】  。

  (10)Java不直接支持多继承,但可以通过  【10】  实现多继承。

  (11)在下列程序的下划线处,填入适当语句使程序能正确执行并输出异常栈信息。

  public class ThrowableException{

  public static void main(String args[]){

  try{

  throw new Throwable("这里是本人定义的异常");

  }catch(Throwable e){

  System.out.println("Caught Throwable");

  System.out.println("e.getMessage(): "+e.getMessage());

  System.out.println("e.toString(): "+e.toString());

  System.out.println("e.printStackTrace(): ");

  【11】  ;}}}  

  (12)在java.io包中有某个类同时实现了DataInput接口和DataOutput接口,这个类

  是  【12】  。

  (13)在Java程序中,主线程一般具有  【13】  优先级。

  (14)当实现Runnable接口时,要实现的方法是  【14】  。

  (15)mouseDragged()方法是MouseMotionListener接口中的抽象方法,该方法的参数

  是  【15】  类。