2017年计算机二级《C语言》操作题练_2017年计算机二级《JAVA》考前模拟试题答案

副标题:2017年计算机二级《JAVA》考前模拟试题答案

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


  一、选择题

  1.D。解析:数据的存储结构是指数据结构(数据的逻辑结构)在计算机中的表示,又称物理结构。数据的存储结构主要有两种:顺序存储结构和链式存储结构。

  2.D。解析:冒泡排序法首先将第一个记录的关键字与第二个记录的关键字进行比较,若逆序则交换,然后比较第二个与第三个,以此类推,直至第n-1个与第n个记录的关键字进行比较。在最坏情况下,冒泡排序中,若初始序列为”逆序”序列,需要比较n(n-1)/2次。快速排序是对通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字比另一部分记录的关键字小,然后分别对这两部分记录继续进行排序,最终达到整个记录有序。最坏情况下比较次数为n(n-1)/2。

  3.C。解析:栈是只允许在表的一端进行插入和删除的操作,队列是允许在表的一端进行插入,另一端进行删除的操作。

  4.C。解析:二叉树的中序遍历是指先访问左子树。再访问树结点,最后访问右子树;当访问下级左右子树时,也对照此原则。所以C选项正确。

  5.A。解析:”清晰第一,效率第二”,在考虑到程序的执行效率的同时,一定要保证程序清晰、可读;对符号名的命名,除了要符合语法要求外,还要具有一定的含义;程序的注释可以帮助程序员理解程序,不是可有可无的。

  6.C。解析:面向对象的程序设计是用对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。

  7.D。解析:耦合性与内聚性是模块独立性的两个定性标准,一般的程序设计都会尽量做到高内聚、低耦合,有利于提高模块的独立性。

  8.D。解析:数据独立性是数据库系统的一个最重要的目标之一,它使数据能独立于应用程序。数据独立性包括数据的物理独立性和逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。即数据在磁盘上怎样存储由DBMS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,即当数据的逻辑结构改变时,用户程序也可以不变。

  9.C。解析:软件工程是指将工程化的思想应用于软件的开发、应用和维护的过程,包括软件开发技术和软件工程管理。

  10.A。解析:关系的并运算是指由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。

  11.B。解析:顺序存储结构的结点只有自身信息域,没有连接信息的域,因此存储密度大,存储空间利用率高。链式存储结构除了自身域还包括指针域,因此比顺序存储结构的存储密度小,存储空间利用率低。

  12.A。解析:A[8][5]元素存储的位置在第9行第6列,所以A[8][5]之前存储的个数应为8×10+5=85,这些元素占用的空间为85×2字节=170字节,所以A[8][5]的存储位置为400+170=570。

  13.C。解析:操作系统是计算机系统中的一个系统软件,它能有效地组织和管理计算机系统中的各种资源,并且为用户提供良好的界面。没有任何软件支持的计算机称为*机,而实际呈现在用户面前的计算机系统是经过若干层软件改造的计算机,而操作系统位于各种软件的最底层。

  14.C。解析:计算机系统中有限的资源与众多请求分配资源的进程间存在矛盾。当若干进程需求资源的总数大于系统所能提供的资源数时,进程间就会出现抢占资源的现象,如果对进程抢占的资源管理或分配不当就会引起死锁。

  15.B。解析:进程同步是指进程之间一种直接的协同工作关系,这些进程相互合作,共同完成一项任务。进程间的直接相互作用构成进程的同步。

  16.A。解析:本题考查Java语言的特点。Java语言是面向对象的,将客观世界看成由各种对象组成的;机器语言是计算机实际处理时使用的语言,把客观世界都看成由0和1组成;过去的高级语言大多数是面向过程的,比如C语言等,它们是通过数据结构与算法来描述客观世界;汇编语言属于低级语言。考生应注意区分各种语言的区别。本题正确答案为选项A。

  17.B。解析:本题考查Java中的布局管理器。Pane和Applet默认的布局管理器是FlowLayout,构件在容器中放置规律是从上到下、从左到右进行放置;BorderLayout是Window、Frame和Dialog的默认布局管理器,在BorderLayout布局管理器中构件分成5个区域North、South、East、West和Center,每个区域只能放置一个构件。考生应注意区分各个布局管理器的区别和联系,以及各个布局管理器的特点。

  18.B。解析:本题考查Java语言的虚拟机。Java本身的编译器用Java语言编写,运行系统的虚拟机用C语言实现。Java语言的执行模式是半编译和半解释型,程序首先由编译器转换为标准字节代码,然后由Java虚拟机去解释执行,字节代码实际上可以看作是虚拟机的机器代码。考生应当理解Java语言的实现机制,这属于考试重点。正确答案为选项B。

  19.B。解析:本题考查Java的安全性特点。面向网络、分布式的Java语言,对非法入侵的防范是非常重要的,Java语言提供充分的安全保障,在运行程序时,有严格的访问权限检查。对字节代码执行前要检查,不允许使用指针,可防止对内存的非法入侵,它是目前安全性的语言。但是Java并不是对程序执行前检查,而是对字节代码进行检查,Java编写好的程序首先由编译器转换为标准字节代码,然后由Java虚拟机去解释执行。

  20.B。解析:本题考查考生对Java语言概念的理解。属于考试重点内容,考生应注意理解这些基本概念。考生应该明确,Java语言中可以有package语句,用来指定源文件存入所指定的包中,只能有0或1个,所以选项A说法错误;可以有0或多个以上import语句,但必须在所有类定义之前引入标准类,所以选项B说法正确;源文件中最多只能有一个public类,其他类的个数不限,所以选项C和选项D说法错误。

  21.D。解析:本题考查类的声明。选项A错误,abstract用来声明抽象类,final用来声明最终类。这两个修饰词不能同时出现在类声明中;选项B错误,缺少class关键字;选项C错误,类不能声明为protected和private属性,且不以”;”结尾,也缺少class关键字;选项D正确,声明了一个可以公有继承的抽象类。

  22.C。解析:本题考查考生对Java语言中的类和接口的理解。java.lang包提供了构成Java语言、Java虚拟机核心的类和接口。例如,类object、类String和类Thread等。对任何一个Java程序来说,这些类几乎都是必不可少的。java.lang还包含了许多由Java虚拟机发出的异常,这些异常也是”类”的一种。另外,java.lang包还包含一些用于访问系统资源的类,如ClassLoader等。java.lang包具有极其重要的作用,在程序开头可以不必明文编写装载它的代码。

  23.C。解析:本题考查JDK目录结构。bin目录下有编译器、解释器和各种工具,如服务器工具、IDLpackage工具和jdb等。jre目录是Java程序运行环境的根目录,它下面有bin子目录,包括平台所用工具和库的可执行文件和DLL文件;lib子目录包括java运行环境的代码库。lib目录下都是库文件。demo目录下有各种演示例子。include目录下是Win32子目录,都是本地方法文件,选项C错误。

  24.A。解析:本题是考查对文件输入、输出流的理解。通过类File的实例或者一个表示文件名称的字符串可以生成文件输入/输出流,在流对象生成的同时,文件被打开,然后就可以进行文件读/写,选项B说法错误。对于InputStream和OutputStream来说,它们的实例都是顺序访问流,即只能进行顺序的读/写,选项C说法错误。当从标准输入流读取数据时,从键盘输入的数据被缓冲,按键时,程序才会得到输入数据,选项D说法错误。

  25.D。解析:本题考查类的声明。选项A中m没有被声明过,不能使用;选项B中虽然b是类Teacher的public成员变量,但在静态方法中,不能使用类中的非静态成员;选项C中a是类Person的private成员,在类外不能直接引用;选项D中change(intm)方法是pubtic方法,并且返回一个int型值,可以通过类的实例变量P引用并赋值给一个int型变量。

  26.A。解析:本题考查Java类实现ZIP数据压缩方式。ZIP压缩文件结构:一个ZIP文件由多个Entry组成,每个Entry有一个的名称,Entry的数据项存储压缩数据。ZiplnputStream实现了ZIP压缩文件的读输入流,支持压缩和非压缩Entry.题目程序中FileInputStreallD_fis=new FilelnputStream("test/file.zip")构造了一个文件输入 流,ZiplnputStream zis=new ZiplnputStream(fis)语句利用文件输入流fis构造了一个ZIP输入流,zis.getNextEntry()语句返回ZIP文件中的下一个Entry,并将输出流定位在此entry数据项的起始位置.

  27.B。解析:本题考查容器的嵌套。将一个容器Panel1放到容器framel中的方法和在容器上添加部件是一样的,使用add()方法即可。

  28.C。解析:本题考查Java中的运算符。首先要清楚程序里面涉及的运算符的含义。"<<"是按位左移运算符,”&”是按位与运算符,"|"是按位或运算符,"^"是按位异或运算符。题目中整型变量n=7相当于二进制中的111,n<<=3语句执行后,n值为lll000。相当于十进制的56,而语句n=n&n+1|n+2^n+3执行后,n值为57,n>>=2语句执行恬,n的值为14,所以选项C正确。

  29.A。解析:本题考查文件操作。seek(long pos)是随机文件记录的查找,满足题意。lengh()方法是求随机文件字节长度的方法,不符合题意;Java中没有find()方法;skipBytes(int n)方法是使随机文件访问跳过指定字节,不符合题意。

  30.B。解析:本题考查压缩文件流的概念。当输入一个ZIP文件时要将ZIP文件作为FilelnputStream构造方法的参数,所以选项B正确。而FilelnputStream对象又作为ZiplnputStream构造方法的参数出现。这里的ZipInputStream对象在将压缩文件内的输入项作为字符文本读出时即作为InputStreamReader的构造方法参数出现。最后,InputStreamReader对象作为BufferedReader的构造方法的参数,并且使用readLine()方法将压缩文件输入项作为文本读出。

  31.C。解析:本题考查考生对Java中InputStream非字符输入流的掌握。所有的字节输入流都是从InputStream继承的,包括:ByteArraylnputStre8m,以字节数组作为输入流FilelnputStream,可对一个磁盘文件设计的数据进行处理;PipedInputStream,实现线程之间通信的一个类;FilterInputStream,过滤器输入流;SequenceInputStream,将多个输入流首尾相接;ObjectlnputStream,实现ObjeetInPut接15/。选项D中压缩文件输入流ZiplnputStream是InflaterInputStream的子类,而InflaterInputStream是FilterInputStream的子类,只有选项C中字符输入流CharInputStream类是字符流。本题涉及内容较多,要求对整个输入输出流有所了解。

  32.C。解析:本题考查考生对创建线程的使用。创建线程有两种方法:通过实现Runnable接口创建线程和通过继承Thread类创建线程。通过实现Runnable接口创建线程,当实现Runnable接口的类的对象用来创建线程以后,该线程的启动将使得对象的run()方法被调用。通过继承Thread类创建线程,可以通过继承Thread类,并重写其中的run()方法定义线程体,然后创建该子类的对象创建线程。线程创建是考试重点内容,请务必掌握。

  33.C。解析:本题考查JavaApplication与Applet的区别。Applet与Application的主要区别在执行方式上,Applieation以main()方法为入口点运行,Applet要在浏览器或appletviewer中运行,运行过程比Application更复杂。两者都是通过”javac”命令编译,所以只有选项C说法正确.

  34.B。解析:本题考查Applet程序的运行方式。在Applet运行时,首先由浏览器调用init()方法,所以选项B正确。初始化完成后,将调用start()方法使Applet成为激活状态。当Applet被覆盖时.可用stop()方法停止线程。关闭浏览器时调用destroy(),彻底终止Applet,从内存中卸载并释放该Applet的所有资源。Applet的生命周期及其运行方式是考试重点,应该牢记。

  35.C。解析:本题考查线程优先级的概念。首先应该了解Java的线程是有优先级的,并且可以控制其优先级,可以排除选项A;选项B和选项C本身就矛盾,故选项D是错器的,B和C不能同时选择。线程的优先级在创建线程时可以设置,也可以通过getPriority()方法来获得线程的优先级,通过setPriority()方法来设定线程的优先级。线程的优先级属于考试重点内容,应该重点掌握。

  36.B。解析:本题考查Java中的数据类型,应该掌握Java中的简单数据类型,以及相关运算。floatf=0.0这个语句,想要定义一个浮点型变量f,并且初值为0.0,但由于Java认为如果数字后没有任何字母,则默认为double类型,而double是不能转换为float的,所以该语句错误,如果改 为floatf=0.0f,即可正确运行。

  37.A。解析:本题考查考生对Applet获取参数的掌握。Applet被下载时,在Applet的init()方法中使用getParameter()方法获取参数,所以选项A正确。而且要注意getParameter()方法只能在init()方法中。getParameter()方法的入口参数所取参数的名字,必须与标记中的name指示的名字相同,这一点务必注意,返回值是参数的值。

  38.C。解析:本题考查线程的生命周期。线程一旦创建,就开始了它的生命周期。线程的声明周期主要分为:新建状态(new),线程创建后处于该状态;可运行状态(Runnable),新建的线程调用start()方法,将使线程的状态从New转换为Runnable,所以选项C正确;运行状态(Running),运行状态使线程占有CPU并实际运行的状态;阻塞状态(Blocked),导致该状态的原因很多,注意区别;终止状态(Dead),线程执行结束的状态,没有任何方法可改变它的状态。

  39.B。解析:本题考查多线程的并发控制机制。Java中对共享数据操作的并发控制采用传统的加锁技术,也就是给对象加锁,选项A说法正确。线程之间的交互,提倡采用wait()和notify()方法,这两个方法是java.lang.object类的方法,是实现线程通信的两个方法,不提倡使用suspend()和resume()方法,它们容易造成死锁,所以选项B说法错误。共享数据的访问权限都必须定义为private,不能为public或其他,选项C说法正确。Java中没有提供检测与避免死锁的专门机制,因此完全由程序进行控制,但程序员可以采用某些策略防止死锁的发生,选项D说法正确。

  40.D。解析:本题考查Applet的安全限制。为了保护本地主机,很多浏览器对Applet作了安全限制:Applet不能运行任何本地可运行程序;禁止加载本地库或方法;禁止读、写本地计算机的文件系统;禁止与提供Applet之外的任何主机建立网络连接;不能读取某些系统信息。但Applet是可以与同一个页面中的Applet进行通信的,所以选项D不属于Applet安全限制。

  二、基本操作题

  第1处:year=Integer.parseInt(s)

  第2处:catch

  第3处:year%4= =0&&year0 !=0 ||year@0

  = =0

  解析:第1处是将String型的s转换成整型;第2处是捕获异常的catch子句,用来处理由try所抛出的异常事件;第3处是判断是否为闰年的条件,即能被4整除且不能被100整除的或能被400整除的就是闰年。

  三、简单应用题

  第1处:implements ActionListener

  第2处:evt.getSource()

  解析:第1处是实现ActionListener接口,程序中有窗口监听器的注册;第2处返回ActionEvent动作事件的最初发生对象。

  四、综合应用题

  第1处:setLayout(new FlowLayout(FlowLayout.LEFT))

  第2处:button.addActionListener(this)

  一第3处:s=ta.getSelectedText()

  解析:第1处是设置构件的对齐方式为左对齐的且纵横间隔都是5个像素的布局管理器;第2处是为按钮注册监听器;第3处是在文本域ta中得到选中文本,将其赋给String类型的s。

2017年计算机二级《JAVA》考前模拟试题答案.doc

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