1、国家二级( JAVA)机试模拟试卷 10及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 ( B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 ( C)线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构 ( D)上述三种说法都不对 2 下列叙述中正确的是 ( )。 ( A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化 ( B)在栈中。栈顶指针不变,栈中元素随栈底指针的变化而动态变化 ( C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 ( D)上述三种说法都不对 3 软件测试
2、目的是 ( )。 ( A)评估软件可靠性 ( B)发现并改正程序中的错误 ( C)改正程序中的错误 ( D)发现程序中的错误 4 下面描述中。不属于软件危机表现的是 ( )。 ( A)软件过程不规范 ( B)软件开发生产率低 ( C)软件质量难以控制 ( D)软件成本不断提高 5 软件生命周期是指 ( )。 ( A)软件产品从提出、实现、使用维护到停止使用退役的过程 ( B)软件从需 求分析、设计、实现到测试完成的过程 ( C)软件的开发过程 ( D)软件的运行维护过程 6 面向对象方法中,继承是指 ( )。 ( A)一组对象所具有的相似性质 ( B)一个对象具有另一个对象的性质 ( C)各对
3、象之间的共同性质 ( D)类之间共享属性和操作的机制 7 层次型、网状型和关系型数据库划分原则是 ( )。 ( A)记录长度 ( B)文件的大小 ( C)联系的复杂程度 ( D)数据之间的联系方式 8 一个工作人员可以使用多台计算机而一台计算机可被多个人使用,则实体工作人员与实 体计算机之间的联系是 ( )。 ( A)一对一 ( B)一对多 ( C)多对多 ( D)多对一 9 数据库设计中反映用户对数据要求的模式是 ( )。 ( A)内模式 ( B)概念模式 ( C)外模式 ( D)设计模式 10 有三个关系 R、 S和 T如下: 则南关系 R和 s得到关系 T的操作是 ( )。 ( A)自然
4、连接 ( B)交 ( C)投影 ( D)并 11 下列关于顺序存储结构的叙述中错误的是 ( )。 ( A)存储密度大 ( B)某些非线性结构也可以采用顺序方法存储 ( C)结点中只有 自身信息域。没有链接信息域 ( D)便于进行插入、删除等运算操作 12 有下三角矩阵 A010 , 010 ,按行优先顺序存放其非零元素,每个非零元素占两个字节,存放的基地址为 100,则元素 A5 5的存放地址为 ( )。 ( A) 110 ( B) 120 ( C) 130 ( D) 140 13 设数组 data0m 作为循环队列 sq的存储空间 front为队头指针, rear为队尾指针,则执行出队操作的
5、语句为 ( )。 ( A) sq front;=sq front+1; ( B) sq front;=(sq front+1) maxsize ( C) sq rear: =(sq rear+1) maxsize; ( D) sq,front;=(sq front+1) (maxsize+1); 14 如果人栈序列为 CEDB,以下哪一个是从栈中删除元素的序列 ?( ) ( A) BED ( B) BDE ( C) BEDC ( D) BDEC 15 设待排序关键码序列为 (25, 18, 9, 33 67, 82, 53, 95 12, 70),要按关键码值递增的顺序进行排序,采取以第一个关
6、键码为分 界元素的快速排序法。第一趟排序完成后关键码 95被放到第 ( )个位置。 ( A) 7 ( B) 8 ( C) 9 ( D) 10 16 下列特点中不属于 Java的是 ( )。 ( A)多线程 ( B)多重继承 ( C)跨平台 ( D)动态性 17 Java的反汇编命令是 ( )。 ( A) javap ( B) javac ( C) jdb ( D) java 18 下列变量定义中,不合法的是 ( )。 ( A) intsx; ( B) int_123; ( C) intSummer2010一 grosssalet ( D) int#dim; 19 下列选项中为单精度数的是 (
7、)。 ( A) 2 ( B) 5.2 ( C) 0 2f ( D) 23 20 下列关于 boolean类型的叙述中,正确的是 ( )。 ( A)可以将 boolean类型的数值转换为 int类型的数值 ( B)可以将 boolean类型的数值转换为字符串 ( C)可以将 boolean类型的数值转换为 char类型的数值 ( D)不能将 boolean类型的数值转换为其他基本数据类型 21 若定义 inta=2, b=2,下列表达式中 值不为 4的是 ( )。 ( A) a*(+b) ( B) a*(b+) ( C) a+b ( D) a*b 22 下列可以获得构件前景色的方法是 ( )。
8、( A) getsize( ) ( B) getF0reground( ) ( C) getBackground( ) ( D) paint( ) 23 下列程序的运行结果是 ( )。 publiccIasstest privateStringdata=“10”, ”10 5”; publicvoidfun( ) doubles=0l for(inti=0i ( A) ( B) ( C) ( D) 二、基本操作题 41 本题提示输入年份,然后判断该年份是否为闰年。 importjava io *; publicClaSsjaval publicstaticvoidmain(Stringargs
9、) InputStreamReaderir; BufferedReaderin; ir=newInputStreamReader(System in); in=newBufferedReader(ir); intyear=1900; System out print(”请输入年份: ”); try Strings=in readLine( ); ; (Exceptione) if( ) System out println(year+”是闰年 ”); else System out println(year+”不足闰年 ”); 三、简单应用题 42 本题的功能是通过按钮来选择窗口显示的风格 。
10、窗口中有三个按钮: “Metal”、“Motif”和 “Windows”,单击任何一个按钮就能将窗口的风格改变为按钮名称所对应的风格。 importjava awt *; importjava awt event *; importjavax swing *; classPlafPanelextendsJPanelimplementsActionl, is tener public( ) metalButton=newJButton(“Metal”); motifButton=newJButton(“Motif”); windowsButton=newJButton(“Windows”); a
11、dd(metalButton); add(motifButton); add(windowsButton); metalButton addActionListener(this); motifButton addActionListener(this); windowsButton addActionListener(this); publicvoidactionPerformed(ActionEventevt) Objectsource=evt getSource( ); Stringplaf=“; if(source=metaIButton) plaf=”javax swing plaf
12、 metal MetalLookAnd Feel”; elseif(source=motifButton) plaf=”corn sun java swing plaf motif Moti- fLookAndFeel”; elseif(source=windowsButton) plaf=”corn sun java swing plaf windows Win dowsLookAndFeel”; try UIManager setLookAndFeel(_); SwingUtilities updateComponentTreeUl(this); catch(Exceptione) pri
13、vateJButtonmetalButton; privateJButtonmotifButton; privateJButtonwindowsButton; classPlafFrameextendsJFrame publicPlafFrame( ) setTitle(”simple”); setSize(300,200); addWindowListener(newWindowAdapter( ) publicvoidwindowClosing(WindowEvente) System exit(O); ); ContainercontentPane=getC0ntentPane( );
14、contentPane add(newPlafPanel( ); publicclassjava2 publicstaticvoidmain(Stringargs) JFrameframe=newPlafFrame( ); frame show( ); 四、综合应用题 43 本题的功能是监听鼠标的操作。鼠标置于窗口中单击时 (左键或右键 ),在单击的地方会画一个小矩形如果将鼠标置于小矩形上,则鼠标光标状态改为小十字。按下鼠标左键可拖曳,双击鼠标左键 (或右键 )时,小矩形消失。 importjava awl *; importjava awt event *; importjava util
15、*; importjava awt geom *; importjavax swing *; publicclassjava3 ( publicstaticvoidmain(Stringrargs) MouseFrameframe=newMouseFrame(); frame setDefaultClose()peration(JFrame EXIT一 ()NCLOSE); frame show(); classMouseFrameextendsJFrame publicMouseFrame() setTitle(”java3”); setSize(DEFAULTWIDTH, DEFAULT
16、HEIGHT); MousePanelpanel=newMousePanel(); ContainercontentPane=getContentPane(); contentPane add(panel); publicstaticfinalintDEFAULTWlDTH=300; publicstaticfinalintDEFAUT一 HEIGHT=2001 classMousePaneIextendsJPanel publicMousePanel() squares=newArrayList(); current=null; addMouseListener(newMouseHandle
17、r(); addMouseMotionListener(newMouseMotionHan dler( ); publicvoidpaintComponent(Graphicsg) super paintComponent(g); Graphics2Dg2=(Graphics2D)g; for(inti=0;ipublicvoidfind(Point2Dp) for(inti=0li=2) remove(current); privateclassMouseMotionHandlerimplementsMouse- MotionListener publicvoidmouseMoved(Mou
18、seEventevent) ( if(find(event getPoint)=一 null) setCursor(Cursor getDefauhCursor(); else setCursor(Cursor getPredefinedCursor (Cursor CROSSHAIRCURS()R); publicvoidmouseDragged(MouseEventevent) if(current!=null) intX=event getX(); intY=event getY(); current setFrame( XSIDELENGTH 2。 ySIDELENGTH 2, SID
19、ELENGTH SlDELENGTH); repaint(); 国家二级( JAVA)机试模拟试卷 10答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 与顺序存储结构相比线性表的链式存储结构需要更多的空间存储指针域,因此。线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构。 2 【正确答案】 C 【试题解析】 栈是限制仅在表的一端进行插入和删除的运算的线性表,通常称插入、删除的这一端为栈顶,男一端称为栈底。 3 【正确答案】 D 【试题解析】 软件测试的目的主要是在于发现软件铡误希望在软件开发生命周期内尽可能早的发现尽可能多的 bug 4 【正确答案】 A 【试题解析】 对
20、软件开发的进度和费用估计不准确; 用户对已完成的软件系统不满意的现象时常发生; 软件产品的质量往往靠不住; 软件常常是不可维护的; 软件通常没有适当的文档 I 软件成本在 计算机系统总成本中所占的比例逐年上升; 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 5 【正确答案】 A 【试题解析】 软件生命周期 (SDLC, SystemsDevelopmentLifeCycle)是软件的产生直到退役的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段。 6 【正确答案】 D 【试题解析】 继承;在程序设计中。继承是指
21、子类自动享用父类的属性和方法,并可以增加新的属性和方法的一种机制。 它是实现代码共享的重要手段。可以使软件更具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,也是面向对象的主要优点之一。继承又分为单重继承和多重继承单重继承是指子类只能继承一个父类的属性和操作 ;而多重继承是指子类可以继承了多个父类的属性和操作。 Java是一种单重继承语言而 C+是一种多重继承语言。 7 【正确答案】 D 【试题解析】 层次型、网状型和关系型数据库划分的原则是数据之间的联系方式。 8 【正确答案】 C 【试题解析】 一个工作人员对应多台计算机。一台计算机对应多个工 作人员,则实体工作人员与实体计算机之间
22、的联系是多对多。 9 【正确答案】 C 【试题解析】 外模式,也称为用户模式。在一个数据库模式中,有 n个外模式,每一个外模式对应一个用户。外模式保证数据的逻辑独立性。内模式属于物理模式,因此,一个数据库只有一个内模式。内模式规定了数据的存储方式、规定了数据操作的逻辑、规定了数据的完整性、规定了数据的安全性、规定了数据存储性能。 10 【正确答案】 A 【试题解析】 自然连接是将表中具有相同名称的列自动进行记录匹配。 11 【正确答案】 D 【试题解析】 顺序结构每个结点只包含自身的信息域,且逻辑上相邻的结点物理上也是相邻的。因此其存储密度大。但插入、删除运算操作不方便,需移动大量的结点。 1
23、2 【正确答案】 D 【试题解析】 A55元素存储的位置在第 6行第 6列但由于矩阵 A为下三角矩阵,所以 A55之前的非零元素才计入地址内,因而所存储的非零元素的个数应为 1+2+3+4+5+5=20,这些元素占用的空间为 202=40字节。所以 A85的存储位置为 100+40=140。 13 【正确答案】 B 【试题解 析】 循环队列采用的方法是 ;假设向量 sq datamaxsize是一个首尾相接的圆环,即 sq十 data0接在 sq datamaxslze一 1之后。我们将这种意义下的向量称循环向量,并将循环向量中的队列称为循环队列。若当前尾指针等于向量的上界,则再做入队列操作时
24、令尾指针等于向量的下界,这样就利用到已被删除的元素空间,克服假上溢现泉。因此入队操作时,在循环意义下的尾指针加 1操作可描述为: if(sq rear=maxsize)sq near: =0;elsesq十 rea!+;如果利用 “模运算 ”,上述循环意义下的尾指针加 1操作,可以更简洁地描述为:sq rear=(sq rear+1) maxsize。同样。出队操作时,在循环意义下的头指针加 1操作,也可利用 “模运算 ”来实现: sq from: =(sq front+1) maxsize。 14 【正确答案】 D 【试题解析】 根据栈的先进后出原则,可知从栈中删除的元素的序列为 BDEC。
25、 15 【正确答案】 B 【试题解析】 快速排序 (Quicksort)是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的 数据分割成独立的两部分,其中一部分的所有数据比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序整个排序过程可以递归进行,以此达到整个数据变成有序序列。具体操作如下图: 进行第一趟排序完成后的结果如下: 12, 18,9, 25, 67, 82, 53, 95, 33, 70所以第一趟排序完成后关键码 95被放到第 8个位置。 16 【正确答案】 B 【试题解析】 Java不支持多重继承 (子类只能有一个父类 )。 17 【正确答案】 A
26、 【试题解析】 javap命令是 Java反汇编命令 ;javac命令是 Java语言编译器, jdb是基于文本和命令行的调试工具 java命令是 Java解释器。 18 【正确答案】 D 【试题解析】 Java中标识符的命名规则为: 区分大小写,如 a和 A是两个变量 ; 标识符由字母、下画线、美元符号和数字组成,并且第一个字符不能是数字。 19 【正确答案】 C 【试题解析】 Java中单精度常量以 f或 F结尾。 20 【正确答案】 D 【试题解析】 由于基本数据类型中 boolean类型不是数字型。所以基本数据类型的转换是除了 boolean类 型以外的其他 7种类型之间的转换。 21
27、 【正确答案】 A 【试题解析】 +b,先自加,再计算,即 a*(+b)等价于 b=b+l;a*b。 22 【正确答案】 B 【试题解析】 A是获得控件大小, B是获得构件的前景色, C是获得构件的背景色 D是继承 Applet的子类需要实现的方法。 23 【正确答案】 C 【试题解析】 trycatch块是可以嵌套分层的 .并且通过异常对象的数据类型来进行匹配 ,以找到正确的 catchblock异常错误处理代码。以下是通过异常对象的数据类型来进行 匹配找到正确的 catchblock的过程。 首先在抛出异常的 trycatch块中查找 catchblock,按顺序先与第一个 catchbl
28、ock块匹配,如果抛出的异常对象的数据类型与 catchblock中传入的异常对象的临时变量 (就是 catch语句后面参数 )的数据类型完全相同,或是它的子类型对象,则匹配成功,进入到 catchblock中执行 t否则到第 2步 ; 如果有两个或更多的 catchblock,则继续查找匹配第二个、第三个,直至最后一个 catchblock,如匹配成功,则进入到对应的 catchblock中 执行,否则到第 3步; 返回到上一级的 trycatch块中按规则继续查找对应的 catchblock。如果找到,进入到对应的 catchblock中执行,否则到第 4步; 再到上上级的 trycatc
29、h块中,如此不断递归,直到匹配到顶级的 trycatch块中的最后一 catchblock,如果找到,进入到对应的 catchblock中执行 l否则程序将会执行 terminate()退出。所以本题选 C。 24 【正确答案】 A 【试题解析】 Java中一个类是一个 abstract类的子类,它必须具体实现父类的abstract方法。如果一个类中含有 abstract方法,那么这个类必须用 abstract来修饰 (abstract类也可以没有 abstract方法 )。有 abstract方法的父类只声明,由继承他的子类实现。所以选 A。 25 【正确答案】 C 【试题解析】 接口 Wi
30、ndowListener包括以下方法: windowActivated、windowDeactivated、 windowClosing、 win-dowClosed、 windowlconified、windowDeiconified、 windowOpened方法。所以选 C。 26 【正确答案】 D 【试题解析】 continue语句的作用是不执行循环体后面的语句直接进入循环判断阶段。所以本题选 D。 27 【正确答案】 A 【试题解析】 类变量用 static修饰。 28 【正确答案】 B 【试题解析】 Java中字符串常量由双引号和其中间的字符所组成。 29 【正确答案】 C 【试题
31、解析】 java 1ang包提供 Java编程语言进行程序设计的基础类。java 1ang包是编译器自动导入的。 30 【正确答案】 D 【试题解析】 ObjectlnputStream类和 ObjectOutputStream类分别是lnputStream类和 OutputStream类的子类。 ObjectlnputStream类和ObjectOutputStream类创建的对象被称为对象输入流和对象输出流。对象输入流使用 read()bject()方法读取一个对象到程序中。 31 【正确答案】 A 【试题解析】 ()bject()utputStream类的构造方法是ObieetOutpu
32、tStream()utputStreamout)。 Java中的二进制流全都写入到内存中。 32 【正确答案】 B 【试题解析】 length表示数组的长度。 33 【正确答案】 C 【试题解析】 抽象类中的抽象方法可以只声明,定义延迟到其子类。 34 【正确答案】 D 【试题解析】 用 Thread类的构造方法 Thread(Runnabletarget)创建线程对象时,构造方法中的参数必须是一个具体的对象该对象称作线程的目标对象,创建目标对象的类必须要实现 Runnable接口。 35 【正确 答案】 D 【试题解析】 线程状态转换序列如下图所示:g故选 D。 36 【正确答案】 A 【试
33、题解析】 当一个线程使用的同步方法中用到某个变量,而且需要其他线程修改此变量后才能复合本线程的需要,那么可以使用 wait()方法。 wait()方法的作用是使本线程等待并允许其他线程使用此同步方法。当其他线程使用完后应使用notify()或者 notifyAll()方法允许其他线程使用此同步方法。 Interrupt()方法的作用是在 run方法执行完之前就消灭此线程,而 sleep()方法的作用是延迟一段时 间后执行。因为本题是为了支持压栈线程与弹栈线程之间的交互与同步,所以选 A。 37 【正确答案】 D 【试题解析】 程序正常运行打印 thisisrun()。用 Thread类的构造方
34、法Thread(Runnabletarget)创建线程对象时构造方法中的参数必须是一个具体的对象,该对象称作线程的目标对泉,创建的目标对象的类必须实现 Runnable接口。 38 【正确答案】 B 【试题解析】 Applet不可以单独运行, Applet支持多线程。 39 【正确答案】 B 【试题解析 】 在 JavaApplet的生命周期中,共有 4种状态即 4种方法:init()、 start()、 stop()和 destory()。在 Applet装载时调用 init()通知该 Applet巳被加载到浏览器中,使 Applet执行一些基本初始化操作。 40 【正确答案】 D 【试题解
35、析】 param中 name属性值不可重复, value是绝对路径,必须都用引号引用起来。 二、基本操作题 41 【正确答案】 第 1处: year=Integer parseInt(s)第 2处: catch第 3处 tyear4=0 8f year 1001=0 year 400=0 【试题解析】 第 1处是将 String型的 s转换成整型;第 2处是捕获异常的 catch子旬用来处理由 try所抛出的异常事件;第 3处是判断是否为闰年的条件。即能被 4整除且不能被 100整除的或能被 400整除的就是闰年。 三、简单应用题 42 【正确答案】 第 1处: lafPanel第 2处: p
36、lal 【试题解析】 第一处由题意可知。类 PlafPanel缺少构造函数所以填PlafPanel。第二处是 通过 string类型的对象 plat和 uIManagersetLookAndFeel()方法实现显示风格的切换。 四、综合应用题 43 【正确答案】 第 1处: publicRectangle2Dfind(Point2Dp)第 2处:privateclassMouseandlerextendsMouseAdapter第 3处 ;find(event gelPoint( )=一 null 【试题解析】 第 1处定义一个返回类型为 Rectangle2D的 find函数且有一个Point2D型的形参;第 2处定义了继承鼠标适配器 MouseAdapt的 MouseI-tandler;第 3处判断 find函数的返回值是否为空。