2017年计算机二级考试时间,2017年计算机二级考试JAVA练习试题及答案1

副标题:2017年计算机二级考试JAVA练习试题及答案1

时间:2023-09-07 02:54:01 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。


  一、选择题(每小题1分,共40小题,共40分)
  1.线性表L=(al,a2,a3,…ai,…an),下列说法正确的是( )。
  A.每个元素都有一个直接前件和直接后件
  B.线性表中至少要有一个元素
  C.表中诸元素的排列顺序必须是由小到大或由大到小
  D.除第一个元素和最后一个元素外,其余每个元素都有且只有一个直接前继和直接后继
  2.下列关于完全二叉树的叙述中,错误的是( )。
  A.除了最后一层外,每一层上的结点数均达到值
  B.可能缺少若干个左右叶子结点
  C.完全二叉树一般不是满二叉树
  D.具有结点的完全二叉树的深度为[log2n]+1
  3.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。
  A.125
  B.n/2
  C.n
  D.n+1
  4.下列选项中不属于结构化程序设计方法的是( )。
  A.自顶向下
  B.逐步求精
  C.模块化
  D.可复用
  5.软件需求分析阶段的工作,可以分为4个方面:需求获取、需求分析、编写需求规格说明书以及( )。
  A.阶段性报告
  B.需求评审
  C.总结
  D.都不正确
  6.下列叙述中,不属于测试的特征的是( )。
  A.测试的挑剔性
  B-完全测试的不可能性
  C.测试的可靠性
  D.测试的经济性
  7.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的( )。
  A.抽象和信息隐蔽
  B.局部化和封装化
  C.内聚性和耦合性
  D.激活机制和控制方法
  8.下列关于软件测试的描述中正确的是( )。
  A.软件测试的目的是证明程序是否正确
  B.软件测试的目的是使程序运行结果正确
  C.软件测试的目的是尽可能多地发现程序中的错误
  D.软件测试的目的是使程序符合结构化原则
  9.下列工具中为需求分析常用工具的是( )。
  A.PAD
  B.PFD
  C.N-S
  D.DFD
  10.下列特征中不是面向对象方法的主要特征的是( )。
  A.多态性
  B.继承
  C.封装性
  D.模块化
  11.下列与数据元素有关的叙述中,不正确的是( )。
  A.数据元素是数据的基本单位,即数据集合中的个体
  B.数据元素是有独立含义的数据最小单位
  C.数据元素又称为结点
  D.数据元素又称为记录
  12.栈S最多能容纳4个元素,现有6个元素按A、B、C、D、E、F的顺序进栈,下列( )序列不是可能的出栈序列。
  A.C、B、E、D、A、F
  B.C、D、B、F、E、A
  C.A、D、E、C、B、F
  D.A、F、E、D、C、B
  13.在电子邮件程序向邮件服务器中发送邮件时,使用的是简单邮件传输协议,下列( )是简单邮件传输协议。
  A.POP3
  B.IMAP
  C.HTTP
  D.SMTP
  14.对一个由n个关键码组成的序列,借助排序过程选出其中的关键码,要求关键码比较次数和移动次数最少,则排序方法是( )。
  A.归并排序
  B.直接插入排序
  C.直接选择排序
  D.快速排序
  15.对线性表进行二分法查找,其前提条件是( )。
  A.线性表以顺序方式存储,并已按关键码值排好序
  B.线性表以顺序方式存储,并已按关键码值的查找频率排好序
  C.线性表以有序方式存储,并已按关键码值排好序
  D.线性表以有序方式存储,并已按关键码值的查找频率排好序
  16.Java的核心包中,提供编程应用的基本类的包是( )。
  A.java.lang
  B.java.util
  C.java.applet
  D.java.rmi
  17.下列关于Java对import语句规定自叙述中,错误的是( )。
  A.在Java程序中import语句可以有多个
  B.在Java程序中import语句可以没有
  C.在Java程序中import语句必须有一个
  D.在Java程序中import语句必须引入在所有类定义之前
  18.在编译Java程序时,用于指定生成.class文件位置的选项是( )。
  A.-9
  B.-d
  C.-verbose
  D.-nowarn
  19.下列方法中,不属于WindowListener接口的是( )。
  A.windowOpened()
  B.windowClosed()
  C.windowActivated()
  D.mouseDragged()
  20.运行Java程序需要的工具软件所在的目录是( )。
  A.JDK的bin目录
  B.JDK的demo目录
  C.JDK的lib目录
  D.JDK的ire目录

  21.下列关于Java语言特点的叙述中,错误的是( )。
  A.Java是面向过程的编程语言
  B.Java支持分布式计算
  C.Java是跨平台的编程语言
  D.Java支持多线程
  22.可以使当前同级线程重新获得运行机会的方法是( )。
  A.Sleep()
  B.join()
  C.yield()
  D.interrupt()
  23.下列语句中,属于多分支语句的是( )。
  A.if语句
  B.for语句
  C.switch语句
  D.do while语句
  24.阅读下列代码
  public class Test2005{
  public static void main(String args[]){
  String s="Test";
  switch(s){
  case"Java":System.out.print("Java");
  break;
  case"Language":System.out.print("Lan-
  guage");
  break;
  case"Test":System.out.print("Test");
  break;
  }
  }
  }
  其运行结果是( )。
  A.Java
  B.Language
  C.Test
  D.编译时出错
  25.在程序读入字符文件时,能够以该文件作为直接参数的类是( )。
  A.FileReader
  B.BufferedReader
  C.FilelnputStream
  D.ObjectlnputStream
  26.下列描述中,正确的是( )。
  A.在Serializable接口中定义了抽象方法
  B.在Serializable接口中定义了常量
  C.在Serializable接口中没有定义抽象方法,也没有定义常量
  D.在Serializable接口中定义了成员方法
  27.请阅读下面程序,说明该程序创建线程使用的方法是( )。
  public class ThreadTest
  {
  public static void main(String args[])
  {
  Thread tl=new Thread(new HolloWorld());
  Thread t2=new Thread(new HolloWorld());
  tl.start();
  t2.Start();
  }
  }
  class HolloWorld implements Runnable
  {
  int i;
  public void run()
  {
  while(true)
  {
  System.out.println("HolloWorld"+i++);
  if(i= =5)break;
  }
  }
  }
  A.继承Thread类
  B.实现Runnable接口
  C.tl.start()
  D.t2.start()
  28.java.io包的File类是( )。
  A.字符流类
  B.字节流类
  C.对象流类
  D.非流类
  29.为保护本地主机,对Applet安全限制中正确的是( )。
  A.Applet可加载本地库或方法
  B.Applet可读、写本地计算机的文件系统
  C.Applet可向Applet之外的任何主机建立网络连接
  D.Applet不能运行任何本地可执行程序
  30.请阅读下面程序
  public class ExampleStringBuffer{
  public static void main(String[]args){
  StringBuffer sb=new StringBuffer("test");
  System.OUt.println("buffer="+sb);
  System.OUt.println("length="+sb.length
  ());}}
  程序运行结果中在"length="后输出的值是( )。
  A.10
  B.4
  C.20
  D.30

  31.每个Java小应用程序必须定义为( )。
  A.Applet类或JApplet类的子类
  B.JFrame类的子类
  C.Frame的子类
  D.Window的子类
  32.若特快订单是一种订单,则特快订单类和订单类的关系是( )。
  A.使用关系
  B.包含关系
  C.继承关系
  D.无关系
  33.下列关于Applet的安全限制的叙述中,错误的是( )。
  A.通常情况下,禁止Applet读、写本地文件系统
  B.通常情况下,禁止Applet向Applet源主机之外的任何主机建立网络连接
  C.通常情况下,禁止Applet读取系统信息
  D.通常情况下,禁止Applet加载本地库或方法
  34.Swing的选项面板是( )。
  A.JTabbedPane
  B.JLayeredPane
  C.JScrollPane
  D.JSplitPane
  35.提供showDocument()方法,使Applet能够请求浏览器访问特定URL的类是( )。
  A.Applet
  B.AppletContext
  C.JApplet
  D.URL
  36.阅读下面程序
  1 public class Try extends Thread{
  2 public static void main(String args[]){
  3Try t=new Try();
  4 t.start();
  5}
  6
  7 public void run(intj){
  8 inti=0;
  9 while(i<5){
  10 System.out.println("祝你成功!");
  11 i++:
  12}
  13}
  14}
  该程序要求打印5行"祝你成功!",必须改正程序中的某行代码,程序才能完成。选择正确的修改是( )。
  A.将第1行的extendsThread改为implementsRunnable
  B.将第3行的newTry()改为newThread()
  C.将第4行t.start()改为start(t)
  D.将第7行的public void run(intj)改为public void run()
  37.若数组a定义为int[][]a=new int[3][4],则a是( )。
  A.一维数组
  B.二维数组
  C.三维数组
  D.四维数组
  38.下列标识符(名字)命名原则中,正确的是( )。
  A.类名的首字母小写
  B.变量和方法名的首字母大写
  C.接口名的首字母小写
  D.常量完全大写
  39.Java语言使用的字符码集是( )。
  A.ASCII
  B.BCD
  C.DCB
  D.Unicode
  40.下列事件监听器中,无法对TextField对象进行事件监听和处理的是( )。
  A.ActionListener
  B.FocusListener
  C.MouseMotionListener
  D.ChangeListener

  一、选择题
  1.D。【解析】线性表可以为空表;第一个元素没有直接前驱,最后一个元素没有直接后继;线性表的定义中,元素的排列并没有规定大小顺序。
  2.B。【解析】满二叉树指除最后一层外,每一层上所有结点都有两个子结点的二叉树。完全二叉树指除最后一层外,每一层上的结点数均达到值,在最后一层上只缺少右边的若干叶子结点的二叉树。由定义可知,满二叉树肯定是完全二叉树,而完全二叉树一般不是满二叉树。
  3.C。【解析】对线性表进行顺序查找时,最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。
  4.D。【解析】结构化程序设计的主要原则概括为自顶向下,逐步求精,模块化。
  5.B。【解析】需求分析是软件定义时期的最后一个阶段。可以概括为四个方面:需求获取;需求分析;编写需求规格说明书;需求评审。
  6.C。【解析】软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。软件测试有3个重要特征:测试的挑剔性、完全测试的不可能性及测试的经济性。
  7.C。【解析】模块的独立性是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。
  8.C。【解析】软件测试是为了尽可能多地发现程序中的错误,尤其是至今尚未发现的错误。
  9.D。【解析】需求分析常用工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。问题分析图(PAD)、程序流程图(PFD)、金式图(N-S)都是详细设计的常用工具,不是需求分析的工具。
  10.D。【解析】模块化是结构化程序设计的特点。面向对象设计方法使用现实世界的概念抽象地思考问题从而自然地解决问题。他的特点包括:分类性、封装性、模块独立性、继承和多态性等。
  11.B。【解析】数据元素是数据的基本单位,即数据集合中的个体。有些情况下也把数据元素称为结点、记录、表目等。一个数据元素可由一个或多个数据项组成,数据项是有独立含义的数据最小单位,其值能确定一个数据元素的数据项。
  12.D。【解析】栈的特性为后进先出,而栈S只能容纳4个元素。当F进栈时,说明栈中有已有B、C、D、E四个元素,所以F无法进栈。
  13.D。【解析】在电子邮件程序向邮件服务器中发送邮件时,使用的是简单邮件传输协议(SMTP),而在电子邮件程序从邮件服务器中读取邮件时,可以使用邮局协议(POP3)。
  14.C。【解析】直接选择排序第一遍扫描就可以把的关键码找出来(不必等到排序结束),而其他几种排序方法都必须等到排序完成才能找到关键码。
  15.A。【解析】二分法查找是一种效率较高的线性表查找方法。要进行二分法查找,则线性表结点必须是按关键码值排好序的,且线性表以顺序方式存储。
  16.A。【解析】Java的核心包一共有l2个,其中:java.lan9包中封装了所有编程应用的基本类;java.util包提供实用程序类和集合类,如系统特性定义和使用、日期函数类、 集合等常用工具;java.applet包为Applet提供执行需要的所有类,主要是访问Applet内容的通信类;java.rmi包提供程序远程方法调用所需的类。因此,本题的正确答案是A。
  17.C。【解析Java程序中使用import关键字导入一个包中的类。在一个Java源程序中,可以有0个或多个import语句,但是必须在所有类定义之前引入标准类。因此,本题中选项C的说法是错误的。
  18.B。【解析】javac.exe是Java编译器,能将源程序代码编译成字节码,以.class扩展名存入Java工作目录中。它的命令格式为:javac[选项]文件名。其中[选项]包括以下几个:-g。输出文件中加行号以及局部变量信息,为调试程序时用。-o对类文件进行优化编译。-nowarn 关闭警告信息,只显示错误信息。-verbose 显示源代码文件和字节码文件的相关信息。-d<目录> 指定存放生成的类(.class)文件的位置根据上述介绍可知,在编译Java程序时,可以通过选项-d来指定生成的.class文件的位置。因此,本题的正确答案是B。
  19.D。【解析】WindowListener接口包含的方法是:①Window Activated(WindowEvent);②WindowOlpened(WindowEvent);③WindowClosed(WindowEvent);④WindowClosing(WindowEvent);⑤WindowDeactivated(WindowEvent);⑥WindowDeiconified(WindowEvent)⑦windowlconified(WindowEvent)。所以D选项错误。
  20.A。【解析】运行Java的JDK一共包含五个目录,分别是:bin目录,该目录包含Java编译器、解释器和许多工具(如服务器工具、IDL、package工具等);lib目录,该目录包含Java库文件;jre目录,该目录是Java程序运行环境的根目录,它下面包含bin子目录,包括平台所用工具和库的可执行文件以及DLL文件;demo目录,该目录包含源代码的程序示例;include目录,该目录包含Win32子目录,都是本地方法的文件。
  21.A。【解析】Java是新一代编程语言,具有很多特点:简单易学;利用面向对象技术;分布式计算;健壮性(鲁棒性);安全性;跨平台(即体系结构中立);可移植性;解释执行;高性能;多线程;动态性。因此,本题的正确答案是A。
  22.C。【解析】本题考查线程的基本控制。Thread类提供的基本线程控制方法包括:sleep()——使比其低的优先级线程运行,可以让一个线程暂停运行一段固定的时间;yield()——使具有与当前线程相同优先级的线程有运行的机会;join()——使当前线‘程暂停执行,等待调用该方法的线程结束后,再恢复执行;interrupt()——中断线程的阻塞状态,并且线程接收到InterruptException异常。根据上述介绍可知,只有yield()方法可以使当前同级线程重新获得运行机会。因此,本题的正确答案是C。
  23.C。【解析】do while语句和for语句是循环语句;it语句和switch语句是分支语句。而if语句称为条件语句, switch语句称为多分支语句。
  24.D。【解析】本题考查switch语句的用法。switch语句是多分支语句,即根据表达式的值来执行多个操作中的一个。在switch语句中,”表达式”的返回值类型必须是这几种类型
  之一:int、byte、char、short。本题中,switch的表达式s是一个字符串Strin9类型的值,它不是int、byte、char、short中的任意一个。因此表达式s的类型不对,编译时
  出错。
  25.A。【解析】FileReader、BufferedReader是字符类输入流。FileInputStream是字节输入流。对象串行化时,需要使用ObjectlnputStream类中提供的方法从对象流中读取对象。所以,在程序读入字符文件时,要使用字符流FileReader或BufferedReader。但是FileReader的参数是读入的文件,而BufferedReader的参数是FileReader流的一个对象。因此,本题的正确答案是A。
  26.C。【解析】在java.i0包中,接口Serializable是实现对象串行化的工具。实际上,Serializable接口是一个空接口,它里面既没有定义抽象方法,也没有定义常量。Serializable接口的目的只是简单地标识一个类的对象是可以被串行化的。
  27.B。【解析】本题考查线程的创建。在Java中,创建线程有两种方法:①通过实现Runnable接口创建线程。Runnable接口中只定义了一个run()方法作为线程体。②通过继承Thread类创建线程,Thread类本身实现了Runnable接口。创建的新的线程不会自动运行,必须调用start()方法才能运行。本题中HolloWorld类实现了Runnable接口。
  28.D。【解析】Java.io包中的类可以处理不同类型的流,比如字节流、字符流、对象流、非流类等。File类就是一个重要的非流类,它是以一种系统无关的方式表示一个文件对象的属性。
  29.D。【解析】Java平台为了防范恶意程序的攻击,保护本地主机,对Applet作了如下安全限制:①Applet不能运行任何本地可执行程序。②禁止加载本地库或方法。③禁止读、写本地计算机的文件系统。④禁止向提供Applet之外的任何主机建立网络连接。⑤不能读取某些系统信息。⑥由一个Applet弹出的窗口外观上与一个Application弹出的窗口不同,Applet弹出的窗口中会有警告提示信息,帮助用户区分Applet窗口与可信的Application窗口。
  30.B。【解析】本题对StringBuffer(String str)构造方法,用str给出字符串的初始值,并分配16个字符的缓存。因此,字符串sb的初始值是”test”,并且包含l6个字符的缓存。length()方法用来获得字符串长度,不包含缓存。故程序运行结果中在”length=”后输出的值应该是字符串sb的长度,即4。
  31.A。【解析】本题考查Applet的基本知识。Applel类定义了小应用程序(Applet)与其运行环境之间的一个接口;JApplet是Applet类的扩展,它继承了Applet的方法和执行机制,同时也增加了对Swing构件的支持。每个Jaw小应用程序都必须是Applet类或JApplet类的子类。因此,本题的正确答案是A。
  32.C。【解析】继承是允许将一个类定义为一个更通用类的特例。特殊类称为子类,通用类称为父类。除了订单类的属性外,特快订单类可能还有其他一些特殊属性。显然,订单类是通用类,即父类;而特快订单类是定单类的一个特例,是子类。订单类和特快订单类是继承关系。
  33.C。【解析】本题考查Applet的安全限制。许多浏览器为了保护本地主机,一般情况下,对Applet作了如下安全限制:Applet不能运行任何本地可执行程序;禁止Applet读、写本地计算机的文件系统;禁止加载本地库或方法。Applet只能使用自身的代码或Applet浏览器提供的JavaAPl;禁止向提供Applet之外的任何主机建立网络连接;不能读取某些系统信息。除了Java版本号、操作系统名等一些简单信息外,Applet不能获得与本地计算机有关的任何信息。根据上述介绍可知,Applet只能读取有限的系统信息,但不是一点儿都不能读取。因此,本题的正确答案是C。
  34.A。【解析】本题考查Swing的容器面板。在Swing的容器面板中:选项板(JTabbedPane)提供一组可供用户选择的带有标签或图标的选项,每个选项下面都可以显示一个构件;Swing提供两种分层面板:JLayeredPane和JDesktopPane。JDesktopPane是JLayeredPane的子类,专门为容纳内部框架(JInternalFrame)而设计;滚动窗口(JScrollPane)是带滚动条的面板,主要是通过移动JViewport(视口)来实现的;分隔板(JSplitPane)用于分隔两个构件,这两个构件可以按照水平方向分隔,也可以按照垂直方向分隔。根据上述介绍可知,Swing中的选项面板是JTabbedPane。因此,本题的正确答案是A。
  35.B。【解析】AppletContext类是一个接口类,Applet通过AppletContext接口与环境进行通信。可以利用这个类从Applet环境获取信息,而这个环境一般是指浏览器。Applet使用AppletContext类的showDocument()方法可以通知浏览器在指定窗口中显示另一个URL的内容。因此,本题的正确答案是B。
  36.D。【解析】本题考查线程的创建。Java语言中提供两种创建线程的方法,一种是通过实现Runnable接口来创建线程,另一种是通过继承Thread类创建线程。显然,题目中的程序是使用第二种方法来创建线程。Thread类中定义了run()方法,所以通过继承Thread类来创建线程时还要重写Thread类中的run()方法。而run()方法的定义如下:
  public void run(){}
  题目中的代码比较简单,就是创建了一个线程,这个线程完成的操作就是打印5行"祝你成功"。仔细阅读程序,不难发现第7行有错。在run()方法的定义中是没有参数的,而题目程序中的run方法却带有一个参数。因此,要把第7行的代码改为"public void run()"。因此,本题的正确答案是D。
  37.B。【解析】二维数组有两种定义方式:①type arrayName[][];②type[][]arrayName;从题目中的语句可以看出,本题定义了一个二维数组。
  38.D。【解析】Java命名的基本原则包括如下几条:_、$不作为变量名、方法名的开头;变量名、方法名首单词小写,其余单词只有首字母大写;接口名、类名首单词第一个字母大写;常量完全大写。根据上述命名规则,选项D的说法是正确的。
  39.D。【解析】Java语言使用的是Unicode字符集。而ASCIl是国际上使用最广泛的字符编码;BCD是一种数字压缩存储编码方法。
  40.D。【解析】本题考查AWT事件处理。事件就是发生在用户界面上的用户交互行为所产生的一种效果。每类事件都有对应的事件监听器,监听器就是接口。在单行文本输入区(TextField)构件上可能发生的事件包括:FocusEvent焦点事件——焦点的获得和丢失,这类事件所对应的事件监听器是FocusListener;ActionEvent动作事件——按钮按下、TextField中按键,这类事件所对应的事件监听器是ActionListener;MouseEvent鼠标事件——鼠标单击、释放、拖动、移动,这类事件所对应的事件监听器是MousetMotionListener。虽然还包括其他一些监听器,但是在所有事件及其所对应的事件监听器中,并不包括ChangeListener这样一个事件监听器。因此,本题的正确答案是D。

2017年计算机二级考试JAVA练习试题及答案1.doc

本文来源:https://www.wddqw.com/Ub5n.html