淘小兔

一、选择题(每小题1分,共40小题,共40分) 

1.下列叙述中正确的是()。 
  A.对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n 
  B.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/Z) 
  C.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n) 
  D.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n) 

2.算法的时间复杂度是指()。 
  A.算法的执行时间 
  B.算法所处理的数据量 
  C.算法程序中的语句或指令条数 
  D.算法在执行过程中所需要的基本运算次数 

3.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件),下面属于系统软件的是()。 
  A.编辑软件 
  B.操作系统 
  C.教务管理系统 
  D.浏览器 

4.软件(程序)调试的任务是()。 
  A.诊断和改正程序中的错误 
  B.尽可能多地发现程序中的错误 
  C.发现并改正程序中的所有错误 
  D.确定程序中错误的性质 

点击进入>>全国计算机等级考试真题题库全套最新考试资料

5.数据流程图(DFD图)是()。 
  A.软件概要设计的工具 
  B.软件详细设计的工具 
  C.结构化方法的需求分析工具 
  D.面向对象方法的需求分析工具 

6.软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于()。 
  A.定义阶段 
  B.开发阶段 
  C.维护阶段 
  D.上述三个阶段 

7.数据库管理系统中负责数据模式定义的语言是()。 
  A.数据定义语言 
  B.数据管理语言 
  C.数据操纵语言 
  D.数据控制语言 

8.在学生管理的关系数据库中,存取一个学生信息的数据单位是()。 
  A.文件 
  B.数据库 
  C.字段 
  D.记录 

9.数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的()。 
  A.需求分析阶段 
  B.逻辑设计阶段 
  C.概念设计阶段 
  D.物理设计阶段 

10.有两个关系R和T如下:

2021年计算机二级考试JAVA专家预测试卷(2) 
  则由关系R得到关系T的操作是()。 
  A.选择 
  B.投影 
  C.交 
  D.并

11.破坏死锁的4个必要条件之一就可以预防死锁。假如规定一个进程在请求新资源之前首先释放已占有的资源,则是破坏了哪个条件?() 
  A.互斥使用 
  B.部分分配 
  C.不可剥夺 
  D.环路等待 

12.下列关于数据存储结构的叙述中,不正确的是()。 
  A.数据的存储结构是逻辑结构在计算机存储器中的实现 
  B.数据的运算是在数据的存储结构实现的 
  C.数据的存储结构即是数据在计算机内的物理结构 
  D.数据运算是定义在数据的存储结构上的 

13.对一组记录的关键码(25,38,48,52,63,74)采用二分法查找52时,第()次会查找成功。 
  A.4 
  B.3 
  C.2 
  D.1 

14.在一个单链表中,若要删除P结点的后续结点,则执行()。 
  A.P↑.next:=P↑.next↑.next; 
  B.P:=P↑.next;P↑.next:=P↑.next↑.next; 
  C.free(P↑.next); 
  D.P:=P↑.next↑.next; 

点击进入>>全国计算机等级考试真题题库全套最新考试资料

15.下列关于链式存储结构的叙述中,不正确的是()。 
  A.结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构 
  B.逻辑上相邻的结点物理上不必相邻 
  C.可以通过计算确定第i个结点的存储地址 
  D.插入、删除运算操作方便,不必移动结点 

16.Java中定义常量的保留字是()。 
  A.const 
  B.final 
  C.finally 
  D.native 

17.下列关于Java布尔类型的描述中,正确的是()。 
  A.一种基本的数据类型,它的类型名称为boolean 
  B.用int表示类型 
  C.其值可以赋给int类型的变量 
  D.有两个值,1代表真,0代表假 

18.Java中所有类的父类是()。 
  A.Father 
  B.Dang 
  C.Exception 
  D.Object 

19.下列程序段的输出结果是()。 
  intdata=0; 
  chark=’a’,P=’f’; 
  data=P-k: 
  System.OUt.println(data); 
  A.0 
  B.a 
  C.f 
  D.5 

20.下列数中为八进制的是()。 
  A.27 
  B.0x25 
  C.026 
  D.028

21.下列方法中,不属于Throwable类的方法是()。 
  A.printMessage 
  B.getMessage 
  C.toString 
  D.fillStackTrace 

22.下列程序的输出结果是()。 
  publicclassTest{ 
  publicstaticvoidmain(String[]args){ 
  int[]array=(2,4,6,8,lO); 
  intsize=6; 
  intresult=-1: 
  try{ 
  for(inti=0;i(size8L&result==-1;) 
  if(array[i]==20)result=i: 
  } 
  catch(ArithmeticExceptione){ 
  System.out.println("Catch---l"); 
  } 
  catch(ArraylndexOutOfBoundsExceptione){ 
  System.out.println("Catch---2"); 
  } 
  catch(Exceptione){ 
  System.out.println("Catch---3");) 
  } 
  } 
  A.Catch---1 
  B.Catch---2 
  C.Catch---3 
  D.以上都不对 

23.下列包中,包含JOptionPane类的是()。 
  A.javax.swing 
  B.java.lang 
  C.java.util 
  D.java.applet 

24.下列选项中,与成员变量共同构成一个类的是()。 
  A.关键字 
  B.方法 
  C.运算符 
  D.表达式 

25.下列程序的功能是将一个整数数组写入二进制文件,在程序的下画线处应填入的选项是()。 
  importjava.io.*; 
  publicclassXieShuzu{ 
  publicstaticvoidmain(String[]a){ 
  int[]myArray=(10,20,30,40); 
  try{ 
  DataOutputStreamdos= 
  newDataOutputStream(new 
  FileOutputStream("ints.dat")); 
  for(inti=0;i  dos.(myArray[i]); 
  dos.close(); 
  System.OUt.println("已经将整数数组写入二进 
  制文件:ints.dat"); 
  }catch(IOExceptionioe) 
  {System.OUt.println("IOExeepr_on");) 
  } 
  } 
  A.writeArray           B.writeByte 
  C.writeInt               D.writeDouble 

26.Java中的抽象类Reader和Writer所处理的流是()。 
  A.图像流 
  B.对象流 
  C.字节流 
  D.字符流 

27.下列叙述中,错误的是()。 
  A.内部类的名称与定义它的类的名称可以相同 
  B.内部类可用abstract修饰 
  C.内部类可作为其他类的成员 
  D.内部类可访问它所在类的成员 

28.用于在子类中调用被重写父类方法的关键字是()。 
  A.this 
  B.super 
  C.This 
  D.Super 

29.下列Java语句从指定网址读取html文件,在下画线处应填上的选项是()。 
  Readerin=new——(newURL(urlString). 
  openStream()); 
  A.Reader 
  B.DataOutputStream 
  C.ByteArrayInputStream 
  D.InputStreamReader 

30.下列不属于表达式语句的是()。 
  A.++i; 
  B.--j; 
  C.b#a; 
  D.b*=a;

31.下列为窗口事件的是()。, 
  A.MouseEvent 
  B.WindowEvent 
  C.ActionEvent 
  D.KeyEvent 

32.用鼠标点击菜单项(Menultem)产生的事件是()。 
  A.MenuEvent 
  B.ActionEvent 
  C.KeyEvent 
  D.MouseEvent 

33.下列不属于逻辑运算符的是()。 
  A.! 
  B.|| 
  C.&& 
  D.| 

34.当使用SomeThreadt=newSomeThread()创建一个线程时,下列叙述中正确的是()。 
  A.SomeThread类是包含run()方法的任意Java类 
  B.SomeThread类一定要实现Runnable接口 
  C.SomeThread类是Thread类的子类 
  D.SomeThread类是Thread类的子类并且要实现Run- 
  nable接口 

35.在程序的下画线处应填入的选项是()。 
  publicclassTest{: 
  publicstaticvoidmain(Stringargs[]){ 
  Testt=newTest(); 
  Threadtt=newThread(t); 
  tt.start(); 
  } 
  publicvoidrun(){ 
  for(inti=0;i<5;i++){ 
  System.out.println("i="+i); 
  } 
  } 
  } 
  A.implementsRunnable 
  B.extendsThread 
  C.implementsThread 
  D.extendsRunnable 

36.为了支持压栈线程与弹栈线程之间的交互与同步, 
  在程序的下画线处依次填入的语句是()。 
  publicclassIntStack{ 
  privateintidx=0; 
  privateint[]data=newint[8]; 
  publicvoidpush(inti){ 
  data[idx]=i; 
  idx++; 
   
  …… 
  } 
  A.synchronized() 
  notify() 
  B.synchronized 
  this.wait() 
  C.synchronized 
  this.notify() 
  D.Serializable 
  sleep() 

37.如果线程正处于阻塞状态,不能够使线程直接进入可运行状态的情况是()。 
  A.sleep()方法的时间到 
  B.获得了对象的锁 
  C.线程在调t.join()方法后,线程t结果 
  D.wait()方法结束 

38.当一个Applet被加载,后续对Applet生命周期方法的调用中,可能存在的次序是()。 
  A.start(),stop(),destroy() 
  B.init(),start(),stop(),start(),stop(),destroy() 
  C.start(),init(),stop(),destroy() 
  D.init(),start(),destroy() 

39.在HTML文件的标志中作为可选属性的是()。 
  A.Applet主类的文件名 
  B.Applet显示区域的宽度 
  C.Applet主类的路径 
  D.Applet显示区域的高度
40.如果应用程序要在Applet上显示输出,则必须重写的方法是()。 
  A.Graphics.drawString() 
  B.repaint() 
  C.paint() 
  D.update()

二、基本操作题(共18分) 

  本题的功能是计算二维数组各个元素的和。程序中定义了二维数组arr,arr有3行4列共l2个元素,程序中采用for循环语句的嵌套来计算数组中各个元素的和,并将结果保存在sum变量中,最后打印输出结果。 
  publicclassjaval{ 
  publicstaticvoidmain(String[]args){ 
  intarr[][]={{l,2,3,4},{5,6,7,8},{9,10,11,12}}; 
  intsum=0; 
  inti=0,j=0; 
  for(i=0;) 
  for() 
  ; 
  System.OUt.println("sum="+sum); 
  } 
  }

三、简单应用题(共24分) 

  本题是设计一个窗体,窗口的背景色为系统桌面的颜 
  色,在窗口中分别画了空心和实心的黑色矩形、深灰色圆角 
  矩形和浅灰色椭圆形,并且画了白色粗体的“Java二级考 
  试!”字符串。 
  Importjava.awt.*; 
  Importjavax.swing.*; 
  Publicclassjava2 
  { 
  Publicstaticvoidmain(string[]args) 
  { 
  Fillframeframe=newfillframe(); 
  Frame.setdefaultcloseoperatio(jframe.exit_on_ 
  close); 
  Frame.show(); 
  } 
  } 
  Classfillframeextendsjframe 
  { 
  Publicfillframe() 
  { 
  Settitle("simple"); 
  Setsize(width,height); 
  Fillpanelpanel=newfillpanel(); 
  Panel.setbackground(systemcolor.desktop); 
  Containercontentpane=getcontentpane(); 
  Contentpane.add(panel); 
  } 
  Publicstaticfinalintwidth=400; 
  Publicstaticfinalintwidth=250; 
  } 
  Classfillpanelextendsjpanel 
  { 
  Publicvoidpaintcomponent(graphicsg) 
  { 
  ; 
  g.setcolor(newcolor(10,10,10));’ 
  g.drawrect(10,10,100,30); 
  g.seteolor(newcolor(100,100,l00)); 
  g.drawroundrect(150,10,100,30,15,15); 
  g.setcolor(newcolor(150,150,150)); 
  g.drawoval(280,10,80,30); 
  g.setcolor(newcolor(10,10,10)); 
  g.fillreet(10,110,100,30); 
  g.setcolor(newcolor(100,100,100)); 
  g.drawroundreet(150,110,100,30,15,15); 
  g.seteolor(newcolor(150,150,150)); 
  g.filloval(280,110,80,30); 
  g.setcolor(color.white); 
  fontf=newfont("宋体",__,20); 
  g.setfont(f); 
  g.drawstring("java二级考试!",l50,200); 
  } 
  }

四、综合应用题(共18分) 

  本题的功能是监听鼠标的操作。鼠标置于窗口中单击时(左键或右键),在单击的地方会画一个小矩形,如果将鼠标置于小矩形上,则鼠标光标状态改为小十字,按下鼠标左键可拖曳,双击鼠标左键(或右键)时,小矩形消失。 
  importjava.awt.*; 
  importjava.awt.event.*; 
  importjava.util.*; 
  importjava.awt.geom.*; 
  importjavax.swing.*; 
  publicclassjava3 
  { 
  publicstaticvoidmain(String[]args) 
  { 
  MouseFrameframe=newMouseFrame(): 
  frame.setDefaultCloseOperation(JFrame.EXIT_ 
  oN_CLOSE); 
  frame.show(); 
  } 
  } 
  classMouseFrameextendsJFrame 
  { 
  publicMouseFrame() 
  { 
  setTitle("java3"); 
  setSize(DEFAULTWIDTH,DEFAULT 
  HEIGHT): 
  MousePanelpanel=newMousePanel(); 
  ContainercontentPane=getContentPane(); 
  contentPane.add(panel); 
  } 
  publicstaticfinalintDEFAULT_WIDTH=300; 
  publicstaticfinalintDEFAULT_HEIGHT=200; 
  } 
  classMousePanelextendsJPanel 
  { 
  publicMousePanel() 
  { 
  squares=newArrayList(); 
  current=null: 
  addMouseListener(newMouseHandler()); 
  addMouseMotionListener(newMouseMotionHan- 
  dler()); 
  } 
  publicvoidpaintComponent(Graphicsg) 
  { 
  super.paintComponent(g); 
  Graphics2Dg2=(Graphics2D)g; 
  for(inti=0;i  g2.draw((Rectangle2D)squares.get(i)); 
  } 
  publicvoidfind(Point2Dp) 
  { 
  for(inti=0;i  { 
  Rectangle2Dr=(Rectangle2D)squares.get(i); 
  if(r.contains(p))returnr; 
  } 
  returnnull: 
  } 
  publicvoidadd(Point2Dp) 
  { 
  doublex=P.getX(); 
  doubleY=P.getY(): 
  current=newRectangle2D.Double( 
  x-SIDELENGTH/2. 
  y-SlDELENGTH/2. 
  S1DELENGTH, 
  SIDELENGTH); 
  squares.add(current); 
  repaint(); 
  } 
  publicvoidremove(Rectangle2Ds) 
  { 
  if(S==null)return: 
  if(S==current)current=null; 
  squares.remove(s): 
  repaint(); 
  } 
  privatestaticfinalintSIDELENGTH=10: 
  privateArrayListsquares; 
  privateRectangle2Dcurrent; 
  privateclassMouseHandterextendsMouseAction- 
  Listener 
  { 
  publicvoidmousePressed(MouseEventevent) 
  { 
  current=find(event.getPoint()); 
  if(current==null) 
  add(event.getPoint()); 
  } 
  publicvoidmouseClicked(MouseEventevent) 
  { 
  current=find(event.getPoint()); 
  if(current!=null&&event.getClickCount() 
  >=2) 
  remove(current); 
  } 
  } 
  privateclassMouseMotionHandlerimplementsMouse- 
  MotionListener 
  { 
  publicvoidmouseMoved(MouseEventevent) 
  { 
  if(find(event.getPoint)==null) 
  setCursor(Cursor.getDefaultCursor()); 
  else 
  setCursor(Cursor.getPredefinedCursor 
  (Cursor.CROSSHAIR_CURSOR)); 
  } 
  publicvoidmouseDragged(MouseEventevent) 
  { 
  if(current!=null) 
  { 
  intx=event.getX(): 
  intY=event.getY();、 
  current.setFrame( 
  x-SIDELENGTH/2, 
  Y-SlDELENGTH/2. 
  SIDELENGTH, 
  SIDELENGTH); 
  repaint(); 
  } 
  } 
  } 
  }

 

参考答案:

一、选择题 
  1.C。【解析】二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次。 
  2.D。【解析】算法的时间复杂度是指算法需要消耗的时间资源。一般来说,计算机算法是问题规模n的函数f(n),算法的时间复杂度也因此记做T(n)=O(f(n))因此,问题的规模n越大,算法执行的时间的增长率与f(n)的增长率正相关,称作渐进时间复杂度(AsymptoticTimeCornplexity)。简单来说就是算法在执行过程中所需要的基本运算次数。 
  3.B。【解析】编辑软件和浏览器属于工具软件,教务系统是应用软件。 
  4.A。【解析】调试的目的是发现错误或导致程序失效的错误原因,并修改程序以修正错误。调试是测试之后的活动 
  5.C。【解析】数据流程图是一种结构化分析描述模型,用来对系统的功能需求进行建模。 
  6.B。【解析】开发阶段在开发初期分为需求分析、总体设计、详细设计3个阶段了,在开发后期分为编码、测试两个子阶段。 
  7.A。【解析】数据模式是由数据定义语言(DataDeftnitionLanguage,DDL)来描述、定义的,体现、反映了数据库系统的整体观。 
  8.D。【解析】一个数据库由一个文件或文件集合组成。这些文件中的信息可分解成一个个记录。 
  9.C。【解析】E-R(Entity-Relationship)图为实体一联系图,分享了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。 
  10.A。【解析】选择是建立一个含有与原始关系相同列数的新表,但是行只包括那些满足某些特定标准的原始关系行。 
  11.B。【解析】若一个进程请求新资源之前首先释放已占有的资源,这破坏了部分分配条件。 
  12.D。【解析】数据的存储结构是逻辑结构在计算机存储器中的实现,又称为物理结构。数据运算是定义在数据的逻辑结构上的,在存储结构上实现。 
  13.B。【解析】根据二分查找法的基本思想,第一次找到的是48,52大于48,再向右查找,第二次找到的是63,第三次找到的是52,至此查找完成。 
  14.A。【解析】在一个单链表中,若要删除P结点的后续结点,只要将P的指针域指向P的后继的后继即可,即P↑.next=P↑.next↑.next。 
  15.C。【解析】链式存储结构的主要特点有:①结点中除自身信息外,还有表示链接信息的指针域,因此存储密度小、存储空间利用率低;②逻辑上相邻的结点物理上不必相邻;③插入、删除操作灵活方便。线性存储结构可以通过计算确定第i个结点的存储地址,但链式存储结构不能。 
  16.B。【解析】final是最终的修饰符,其修饰的是常量。 
  17.A。【解析】布尔类型数据只有两个值:true(真)、false(假),不对应任何数字,不能与数字进行转换,布尔类型数据一般用于逻辑判别。 
  18.D。【解析】Object是所有类的根。 
  19.D。【解析】a和f的ASCIl值相差5。 
  20.C。【解析】采用0,1,2,3,4,5,6,7八个数码,逢八进位,并且开头一定要以数字0开头的为八进制。 
  21.C。【解析】toString是Object类的方法,所有类都从Object类继承。 
  22.B。【解析】由题可知先判断i  20,并且i从0开始一直到i=5时发生越界,则输出Cateh==-2,结果为B。

  23.A。【解析】Swing中分享了JOptionPane类来实现类似Windows平台下的MessageBox的功能,利用JOptionPane类中的各个static方法来生成各种标准的对话框,实现显示出信息、提出问题、警告、用户输入参数等功能,且这些对话框都是模式对话框。 
  24.B。【解析】在类体中定义的两种成员,数据成员和成员函数,其中数据成员就是成员变量,而成员函数就是通常说的方法。 
  25.C。【解析】向流中写入整数数组,用writeInt方法。 
  26.D。【解析]Reader/Writer所处理的流是字符流,InputStream/OutputStream的处理对象是字节流。 
  27.A。【解析】内部类与外部类的名称不能相同。 
  28.B。【解析]super可用于调用被重写的父类方法,此题须注意Java对大小写敏感。 
  29.A。【解析】创建一个Reader流的对象in。 
  30.C。【解析】前两项是自加减运算,最后一项是b=b*a。 
  31.B。【解析】MouseEvent是鼠标事件,ActionEvent是组件事件,KeyEvent是键盘事件。 
  32.B。【解析】ActionEvent组件事件,当特定于组件的动作(比如被按下)发生时,由组件(比如Button)生成此高级别事件。事件被传递给每一个ActionListener对象,这些对象是使用组件的addActionListener方法注册的,用以接收这类事件。 
  33.D。【解析】!是逻辑非,||是逻辑或,&&是逻辑与,︱是按位或。 
  34.C。【解析】由SomeThreadt=newSomeThread()可知此题是通过继承Thread类来创建线程的。 
  35.B。【解析】implements是实现接口,extends是继承类。Thread是‘类,Runnable是 
  接口,所以只有A、B选项语法是正确的。而Runnable是不能返回Static值,所以答案选择B。 
  36.B。【解析】在Synchronized块中等待共享数据的状态改变时调用wait()方法,这样该线程进入等待状态暂时释放共享数据对象的锁。 
  37.D。【解析】wait()方法会使线程放弃对象锁,进入等待此对象的等待锁定池。 
  38.B。【解析】init()一般用来完成所有必需的初始化操作,start()是在初始化之后Applet被加载时调用,stop()在Applet停止执行时调用,destory()是Applet从系统中撤出时调用。 
  39.C。【解析】中可使用复了标志,其中的CODEBASE标志(指定URL地址),如果HTML不指定,浏览器使用和HTML文件相同的URL,所以答案选择C。 
  40.C。【解析】paint()是绘制Applet界面的基本方法。

  二、基本操作题 
  第1处:i<3;i++或i<=2;i++ 
  第2处:j=O;j<4;j++或j=0;j<=3;j++ 
  第3处:sum=sum+arr[i][j] 
  【解析】第1处、第2处是由该数组是3行4列的数组而得出的遍历数组的循环条件;第3处是将数组元素累加并将最终累加结果赋给sum。 
  三、简单应用题 
  第l处:super.paintComponent(g); 
  第2处:Font.BOLD 
  【解析】第1处是通过super语句调用父类的构造方法paintComponent(g)。第2处是通过字体对象的构造函数,设置“Java二级考试!”格式,题目要求是粗体,所以大Font.BOLD。 
  四、综合应用题 
  第1处:publicRectangle2Dfind(Point2Dp) 
  第2处:privateclassMouseHandlerextendsMouseAdaopter 
  第3处:find(event.getPoint())==null 
  【解析】第1处定义一个返回类型为Rectangle2D的find函数且有一个Point2D型的形参;第2处定义了继承鼠标适配器MouseAdapt的MouseHandler;第3处判断find函数的返回值是否为空。

下载仅供下载体验和测试学习,不得商用和正当使用。

下载体验

请输入密码查看内容!

如何获取密码?

 

点击下载