收藏 分销(赏)

全国计算机等级考试二级Java语言程序设计试题及答案.doc

上传人:精*** 文档编号:9747886 上传时间:2025-04-05 格式:DOC 页数:16 大小:62.50KB 下载积分:8 金币
下载 相关 举报
全国计算机等级考试二级Java语言程序设计试题及答案.doc_第1页
第1页 / 共16页
全国计算机等级考试二级Java语言程序设计试题及答案.doc_第2页
第2页 / 共16页


点击查看更多>>
资源描述
 一、选择题(每小题1分,共40小题,共40分)   1.下列叙述中正确的是( )。   A.对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n   B.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/Z)   C.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n) D.对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n) C。【解析】二分法查找只适用于顺序存储的有序表,对于长度为n的有序线性表,最坏情况只需比较log2n次。   2.算法的时间复杂度是指( )。   A.算法的执行时间   B.算法所处理的数据量   C.算法程序中的语句或指令条数   D.算法在执行过程中所需要的基本运算次数 D。【解析】算法的时间复杂度是指算法需要消耗的时间资源。一般来说,计算机算法是问题规模n的函数f(n),算法的时间复杂度也因此记做T(n)=O(f(n))因此,问题的规模n越大,算法执行的时间的增长率与f(n)的增长率正相关,称作渐进时间复杂度(Asymptotic Time Cornplexity)。简单来说就是算法在执行过程中所需要的基本运算次数。   3.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件),下面属于系统软件的是( )。   A.编辑软件   B.操作系统   C.教务管理系统   D.浏览器 B。【解析】编辑软件和浏览器属于工具软件,教务系统是应用软件。    4.软件(程序)调试的任务是( )。   A.诊断和改正程序中的错误   B.尽可能多地发现程序中的错误   C.发现并改正程序中的所有错误   D.确定程序中错误的性质 A。【解析】调试的目的是发现错误或导致程序失效的错误原因,并修改程序以修正错误。调试是测试之后的活动   5.数据流程图(DFD图)是( )。   A.软件概要设计的工具   B.软件详细设计的工具   C.结构化方法的需求分析工具   D.面向对象方法的需求分析工具 C。【解析】数据流程图是一种结构化分析描述模型,用来对系统的功能需求进行建模。   6.软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于( )。   A.定义阶段   B.开发阶段   C.维护阶段   D.上述三个阶段 B。【解析】开发阶段在开发初期分为需求分析、总体设计、详细设计3个阶段了,在开发后期分为编码、测试两个子阶段。   7.数据库管理系统中负责数据模式定义的语言是( )。   A.数据定义语言   B.数据管理语言   C.数据操纵语言   D.数据控制语言 A。【解析】数据模式是由数据定义语言(Data Deftnition Language,DDL)来描述、定义的,体现、反映了数据库系统的整体观。   8.在学生管理的关系数据库中,存取一个学生信息的数据单位是( )。   A.文件   B.数据库   C.字段   D.记录 D。【解析】一个数据库由一个文件或文件集合组成。这些文件中的信息可分解成一个个记录。   9.数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的( )。   A.需求分析阶段   B.逻辑设计阶段   C.概念设计阶段   D.物理设计阶段 C。【解析】E-R(Entity-Relationship)图为实体一联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。   10.有两个关系R和T如下:   则由关系R得到关系T的操作是( )。   A.选择   B.投影   C.交   D.并 A。【解析】选择是建立一个含有与原始关系相同列数的新表,但是行只包括那些满足某些特定标准的原始关系行。  11.破坏死锁的4个必要条件之一就可以预防死锁。假如规定一个进程在请求新资源之前首先释放已占有的资源,则是破坏了哪个条件?( )   A.互斥使用   B.部分分配   C.不可剥夺   D.环路等待 B。【解析】若一个进程请求新资源之前首先释放已占有的资源,这破坏了部分分配条件。   12.下列关于数据存储结构的叙述中,不正确的是( )。   A.数据的存储结构是逻辑结构在计算机存储器中的实现   B.数据的运算是在数据的存储结构实现的   C.数据的存储结构即是数据在计算机内的物理结构   D.数据运算是定义在数据的存储结构上的 D。【解析】数据的存储结构是逻辑结构在计算机存储器中的实现,又称为物理结构。数据运算是定义在数据的逻辑结构上的,在存储结构上实现。   13.对一组记录的关键码(25,38,48,52,63,74)采用二分法查找52时,第( )次会查找成功。   A.4   B.3   C.2   D.1 B。【解析】根据二分查找法的基本思想,第一次找到的是48,52大于48,再向右查找,第二次找到的是63,第三次找到的是52,至此查找完成。   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; A。【解析】在一个单链表中,若要删除P结点的后续结点,只要将P的指针域指向P的后继的后继即可,即 P↑.next=P↑.next↑.next。   15.下列关于链式存储结构的叙述中,不正确的是( )。   A.结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构   B.逻辑上相邻的结点物理上不必相邻   C.可以通过计算确定第i个结点的存储地址   D.插入、删除运算操作方便,不必移动结点 C。【解析】链式存储结构的主要特点有:①结点中除自身信息外,还有表示链接信息的指针域,因此存储密度小、存储空间利用率低;②逻辑上相邻的结点物理上不必相邻;③插入、删除操作灵活方便。线性存储结构可以通过计算确定第i个结点的存储地址,但链式存储结构不能。   16.Java中定义常量的保留字是( )。   A.const   B.final   C.finally   D.native B。【解析】final是最终的修饰符,其修饰的是常量。   17.下列关于Java布尔类型的描述中,正确的是( )。   A.一种基本的数据类型,它的类型名称为boolean   B.用int表示类型   C.其值可以赋给int类型的变量   D.有两个值,1代表真,0代表假 A。【解析】布尔类型数据只有两个值:true(真)、false(假),不对应任何数字,不能与数字进行转换,布尔类型数据一般用于逻辑判别。   18.Java中所有类的父类是( )。   A.Father   B.Dang   C.Exception   D.Object D。【解析】Object是所有类的根。   19.下列程序段的输出结果是( )。   int data=0 ;   char k=’a’,P=’f ’;   data=P-k:   System.OUt.println(data);   A.0   B.a   C.f   D.5 D。【解析】a和f的ASCIl值相差5。   20.下列数中为八进制的是( )。   A.27   B.0x25   C.026   D.028 C。【解析】采用0,1,2,3,4,5,6,7八个数码,逢八进位,并且开头一定要以数字0开头的为八进制。  21.下列方法中,不属于Throwable类的方法是( )。   A.printMessage   B.getMessage   C.toString   D.fillStackTrace C。【解析】toString是Object类的方法,所有类都从Object类继承。   22.下列程序的输出结果是( )。   public class Test{   public static void main(String[]args){   int[]array=(2,4,6,8,lO);   int size=6;   int result =-1:   try{   for(int i=0;i(size 8L&result= = -1;)   if(array[i]= =20)result=i:   }   catch(ArithmeticException e){   System.out.println("Catch- - -l");   }   catch(ArraylndexOutOfBoundsException e){   System.out.println("Catch- - -2");   }   catch(Exception e){   System.out.println("Catch- - -3");)   }   }   A.Catch- - -1   B.Catch- - -2   C.Catch- - -3   D.以上都不对 B。【解析】由题可知先判断i   20,并且i从0开始一直到i=5时发生越界,则输出Cateh= =-2,结果为B。   23.下列包中,包含JOptionPane类的是( )。   A.javax.swing   B.java.lang   C.java.util   D.java.applet A。【解析】Swing中提供了JOptionPane类来实现类似Windows平台下的MessageBox的功能,利用JOptionPane类中的各个static方法来生成各种标准的对话框,实现显示出信息、提出问题、警告、用户输入参数等功能,且这些对话框都是模式对话框。   24.下列选项中,与成员变量共同构成一个类的是( )。   A.关键字   B.方法   C.运算符   D.表达式 B。【解析】在类体中定义的两种成员,数据成员和成员函数,其中数据成员就是成员变量,而成员函数就是通常说的方法。   25.下列程序的功能是将一个整数数组写入二进制文件,在程序的下画线处应填入的选项是( )。   import java.io.*;   public class XieShuzu{   public static void main(String[]a){   int[]myArray=(10,20,30,40);   try{   DataOutputStream dos=   new DataOutputStream(new   FileOutput Stream("ints.dat"));   for(int i=0;i   dos. (myArray[i]);   dos.close();   System.OUt.println("已经将整数数组写入二进   制文件:ints.dat");   }catch(IOException ioe)   {System.OUt.println("IO Exeepr_on");)   }   }   A.writeArray B.writeByte   C.writeInt D.writeDouble C。【解析】向流中写入整数数组,用writeInt方法。   26.Java中的抽象类Reader和Writer所处理的流是( )。   A.图像流   B.对象流   C.字节流   D.字符流 D。【解析]Reader/Writer所处理的流是字符流,InputStream/OutputStream的处理对象是字节流。   27.下列叙述中,错误的是( )。   A.内部类的名称与定义它的类的名称可以相同   B.内部类可用abstract修饰   C.内部类可作为其他类的成员   D.内部类可访问它所在类的成员 A。【解析】内部类与外部类的名称不能相同。   28.用于在子类中调用被重写父类方法的关键字是( )。   A.this   B.super   C.This   D.Super B。【解析]super可用于调用被重写的父类方法,此题须注意Java对大小写敏感。   29.下列Java语句从指定网址读取html文件,在下画线处应填上的选项是( )。   Reader in=new——(new URL(urlString).   openStream());   A.Reader   B.DataOutputStream   C.ByteArray InputStream   D.InputStreamReader A。【解析】创建一个Reader流的对象in。   30.下列不属于表达式语句的是( )。   A.++i;   B.--j;   C.b#a;   D.b*=a; C。【解析】前两项是自加减运算,最后一项是b=b* a。  31.下列为窗口事件的是( )。 ,   A.MouseEvent   B.WindowEvent   C.ActionEvent   D.KeyEvent B。【解析】MouseEvent是鼠标事件,ActionEvent是组件事件,KeyEvent是键盘事件。   32.用鼠标点击菜单项(Menultem)产生的事件是( )。   A.MenuEvent   B.ActionEvent   C.KeyEvent   D.MouseEvent B。【解析】ActionEvent组件事件,当特定于组件的动作(比如被按下)发生时,由组件(比如Button)生成此高级别事件。事件被传递给每一个ActionListener对象,这些对象是使用组件的addActionListener方法注册的,用以接收这类事件。   33.下列不属于逻辑运算符的是( )。   A.!   B.||   C.&&   D.| D。【解析】!是逻辑非,||是逻辑或,&&是逻辑与,︱是按位或。   34.当使用SomeThread t=new SomeThread()创建一个线程时,下列叙述中正确的是( )。   A.SomeThread类是包含run()方法的任意Java类   B.SomeThread类一定要实现Runnable接口   C.SomeThread类是Thread类的子类   D.SomeThread类是Thread类的子类并且要实现Run-   nable接口 C。【解析】由SomeThread t=new SomeThread()可知此题是通过继承Thread类来创建线程的。   35.在程序的下画线处应填入的选项是( )。   public class Test {:   public static void main(String args[]){   Test t=new Test();   Thread tt=new Thread(t);   tt.start();   }   public void run(){   for(int i=0;i<5;i++){   System.out.println("i="+i);   }   }   }   A.implements Runnable   B.extends Thread   C.implements Thread   D.extends Runnable B。【解析】implements是实现接口,extends是继承类。Thread是‘类,Runnable是   接口,所以只有A、B选项语法是正确的。而Runnable是不能返回Static值,所以答案选择B。   36.为了支持压栈线程与弹栈线程之间的交互与同步,   在程序的下画线处依次填入的语句是( )。   public class IntStack{   private int idx=0;   private int[]data=new int[8];   public void push(int i){   data[idx]=i;   idx++;      … …   }   A.synchronized()   notify()   B.synchronized   this.wait()   C.synchronized   this.notify()   D.Serializable    sleep() B。【解析】在Synchronized块中等待共享数据的状态改变时调用wait()方法,这样该线程进入等待状态暂时释放共享数据对象的锁。   37.如果线程正处于阻塞状态,不能够使线程直接进入可运行状态的情况是( )。   A.sleep()方法的时间到   B.获得了对象的锁   C.线程在调t.join()方法后,线程t结果   D.wait()方法结束 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() B。【解析】init()一般用来完成所有必需的初始化操作,start()是在初始化之后Applet被加载时调用,stop()在Applet停止执行时调用,destory()是Applet从系统中撤出时调用。   39.在HTML文件的标志中作为可选属性的是( )。   A.Applet主类的文件名   B.Applet显示区域的宽度   C.Applet主类的路径   D.Applet显示区域的高度 C。【解析】中可使用复了标志,其中的CODEBASE标志(指定URL地址),如果HTML不指定,浏览器使用和HTML文件相同的URL,所以答案选择C。   40.如果应用程序要在Applet上显示输出,则必须重写的方法是( )。   A.Graphics.drawString()   B.repaint()   C.paint()   D.update() C。【解析】paint()是绘制Applet界面的基本方法。  二、基本操作题(共18分)   本题的功能是计算二维数组各个元素的和。程序中定义了二维数组arr,arr有3行4列共l2个元素,程序中采用for循环语句的嵌套来计算数组中各个元素的和,并将结果保存在sum变量中,最后打印输出结果。   public class javal{   public static void main(String[] args){   int arr[][]={{l,2,3,4},{5,6,7,8},{9,10,11,12}};   int sum=0;   int i=0,j=0;   for(i=0; )   for( )    ;   System.OUt.println("sum="+sum);   }   } 第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。   三、简单应用题(共24分)   本题是设计一个窗体,窗口的背景色为系统桌面的颜   色,在窗口中分别画了空心和实心的黑色矩形、深灰色圆角   矩形和浅灰色椭圆形,并且画了白色粗体的“Java二级考   试!”字符串。   Import java.awt.*;   Import javax.swing.*;   Public class java2   {   Public static void main(string[]args)   {   Fillframe frame=new fillframe();   Frame. setdefaultcloseoperatio (jframe. exit_on_   close);   Frame.show();   }   }   Class fillframe extends jframe   {   Public fillframe()   {   Settitle("simple");   Setsize(width,height);   Fillpanel panel=new fillpanel();   Panel.setbackground(systemcolor.desktop);   Container contentpane=getcontentpane();   Contentpane.add(panel);   }   Public static final int width=400;   Public static final int width=250;   }   Class fillpanel extends jpanel   {   Public void paintcomponent(graphics g)   {    ;   g.setcolor(new color(10,10,10));’   g.drawrect(10,10,100,30);   g.seteolor(new color(100,100,l00));   g.drawroundrect(150,10,100,30,15,15);   g.setcolor(new color(150,150,150));   g.drawoval(280,10,80,30);   g.setcolor(new color(10,10,10));   g.fillreet(10,110,100,30);   g.setcolor(new color(100,100,100));   g.drawroundreet(150,110,100,30,15,15);   g.seteolor(new color(150,150,150));   g.filloval(280,110,80,30);   g.setcolor(color.white);   font f=new font("宋体",_ _,20);   g.setfont(f);   g.drawstring("java二级考试!",l50,200);   }   } 第l处:super.paintComponent(g);   第2处:Font.BOLD   【解析】第1处是通过super语句调用父类的构造方法paintComponent(g)。第2处是通过字体对象的构造函数,设置“Java二级考试!”格式,题目要求是粗体,所以大Font.BOLD。  四、综合应用题(共18分)   本题的功能是监听鼠标的操作。鼠标置于窗口中单击时(左键或右键),在单击的地方会画一个小矩形,如果将鼠标置于小矩形上,则鼠标光标状态改为小十字,按下鼠标左键可拖曳,双击鼠标左键(或右键)时,小矩形消失。   import java.awt.*;   import java.awt.event.*;   import java.util.*;   import java.awt.geom.*;   import javax.swing.*;   public class java3   {   public static void main(String[]args)   {   MouseFrame frame=new MouseFrame():   frame.setDefaultCloseOperation(JFrame.EXIT_   oN_CLOSE);   frame.show();   }   }   class MouseFrame extends JFrame   {   public MouseFrame()   {   setTitle("java3");   setSize(DEFAULT WIDTH, DEFAULT   HEIGHT):   MousePanel panel=new MousePanel();   Container contentPane=getContentPane();   contentPane.add(panel);   }   public static final int DEFAULT_WIDTH=300;   public static final int DEFAULT_HEIGHT=200;   }   class MousePanel extends JPanel   {   public MousePanel()   {   squares=new ArrayList();   current=null:   addMouseListener(new MouseHandler());   addMouseMotionListener(new MouseMotionHan-   dler());   }   public void paintComponent(Graphics g)   {   super.paintComponent(g);   Graphics2D g2=(Graphics2D)g;   for(int i=0;i   g2.draw((Rectangle2D)squares.get(i));   }   public void find(Point2D p)   {   for(int i=0;i   {   Rectangle2D r=(Rectangle2D)squares.get(i);   if(r.contains(p))return r;   }   return null:   }   public void add(Point2D p)   {   double x=P.getX();   double Y=P.getY():   current=new Rectangle2D.Double(   x-SIDELENGTH/2.   y-SlDELENGTH/2.   S1DELENGTH,   SIDELENGTH);   squares.add(current);   repaint();   }   public void remove(Rectangle2D s)   {   if(S= =null)return:   if(S= =current)current=null;   squares.remove(s):   repaint();   }   private static final int SIDELENGTH=10:   private ArrayList squares;   private Rectangle2D current;   private class MouseHandter extends MouseAction-   Listener   {   public void mousePressed(MouseEvent event)   {   current=find(event.getPoint());   if(current= =null)   add(event.getPoint());   }   public void mouseClicked(MouseEvent event)   {   current=find(event.getPoint());   if(current!=null&&event.getClickCount()   >=2)   remove(current);   }   }   private class MouseMotionHandler implements Mouse-   MotionListener   {   public void mouseMoved(MouseEvent event)   {   if(find(event.getPoint)= =null)   setCursor(Cursor.getDefaultCursor());   else   setCursor(Cursor.getPredefinedCursor   (Cursor.CROSSHAIR_CURSOR));   }   public void mouseDragged(MouseEvent event)   {   if(current!=null)   {   int x=event.getX():   int Y=event.getY(); 、   current.setFrame(   x-SIDELENGTH/2,   Y-SlDELENGTH/2.   SIDELENGTH,   SIDELENGTH);   repaint();   }   }   }   } 第1处:public Rectangle2D find(Point2D p)   第2处:private class MouseHandler extends MouseAdaopter   第3处:find(event.getPoint())= =null   【解析】第1处定义一个返回类型为Rectangle2D的find函数且有一个Point2D型的形参;第2处定义了继承鼠标适配器MouseAdapt的MouseHandler;第3处判断find函数的返回值是否为空。  
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服