2013年9月全国计算机等级《二级JAVA》命题预测试卷五
-
本题的功能是对图形进行操作,包括旋转、移位、放大和剪切。窗口中有4个单选按钮和一个图形面板,图形面板中有一个矩形和该矩形移位操作后的图形,任选其中一个单选按钮,则图形面板中将显示该操作后的图形。
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
import javax.swing.*;
public class java3
{
public static void main(String[]args)
{
JFrame. frame=new TransformTestFrame;
frame.setDefaultCloseOperation(JFrame.EXIT_
0N_CLoSE);
frame.show;
}
}
class TransformTest extends JFrame
{
public TransformTestFrame
{
setTitle("java3");
setSize(WIDTH,HEIGHT);
Container contentPane=getContentPane;
canvas=new TransformPanel;
contentPane.add(canvas,BorderLayout.CEN-
TER);
JPanel buttonPanel=new JPanel:
ButtonGroup group=new ButtonGroup;
JRadioButton rotateButton
=new JRadioButton("旋转",true);
buttonPanel.add(rotateButton);
group.add(rotateButton);
rotateButton.addActionListener(new
ActionListener
{
public void actionPerformed(ActionEvent event)
{
canvas.setRotate;
}
});
JRadioButton trans|ateButton
=new JRadioButton("移位",false);
buttonPanel.add(translateButton);
group.add(translateButton);
translateButton.addActionListener(new
ActionLiatener
public void actionPerformed(ActionEvent event)
{
canvas.setTranslate;
}
});
JRadioButton scaleButton
=new JRadioButton("放大",false);
buttonPanel.add(scaleButton):
group.add(scaleButton);
scaleButton.addActionListener(new
ActionListener
{
public void actionPerformed(ActionEvent event)
{
canvas.setScale;
}
});
JRadioButton shearButton
=new JRadioButton("剪切",false);
buttonPanel.add(shearButton):
group.add(shearButton);
shearButton.addActionListener(new
ActionListener
{
public void actionPerformed(ActionEvent event)
{
canvas.setShear;
}
});
contentPane.add(buttonPanel,BorderLayout.
NORTH):
}
private TransformPanel canvas;
private static final int WIDTH=300;
private static final int HEIGHT=300;
}
class TransformPanel extend JPanel
{
public TransformPanel
{
square=new Rectangle2D.Double(-50,-50,
100,100);
t = new AffineTransform;
setRotate;
}
public void paintComponent
{
super.paintComponent(g);
Graphics2D g2=(Graphies2D)g;
g2.translate(getWidth/2,getHeight/2):
g2.setPaint(Color.gray);
g2.draw(square);
g2.transform(t);
g2.setPaint(Color.black);
g2.draw(square);
}
public void setRotate
{
t.setToRotation(Math.toRadians(30));
repaint;
}
public void setTranslate
{
t.setToTranslation(20,1 5);
repaint;
}
public void setScale
{
t.setToScale(2.0,1.5):
repaint;
}
public void setShear
{
t.setToShear(-0.2,O);
repaint;
}
private Rectangle2D square;
private AffineTransform. t;
}
-
下面的程序中,有两个文本框,Input和Output,用户在Input文本框中输入字符串后回车,字符串会在Output文本框中出现。
import java.awt.*;
import java.awt.event.*;
public class java2 extends Frame{
public static void main(String args[]){
java2 f=new java2("java2");
Panel pan=new Panel;
f.init;
}
pubhc java2(String str){
super(str);
}
public void init{
addWindowListener(new WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(O);
}
}};
setSize(200,200);
setLayout(new FlowlLayout);
final TextField tfl=new TextField(20):
final TextField tf2=new TextField(20);
final Label hi—new Label("Input:");
final Label la2一new Label("Output:");
tfl.addActionListener( {
public void actionPerformed(ActionEvent e){
tf2.setText( );
}
});
add(la1);
add(tfl);
add(la2);
add(tf2);
setVisible(true);
}
}
-
在程序的下画线处应填入的选项是( )。
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
-
本题的功能是计算二维数组各个元素的和。程序中定义了二维数组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);
}
}
-
执行下面程序段后,2值为( )。
int x=1,y=2,z=3;
z=z/(float)(x/y):
- A.编译无法通过
- B.6
- C.3
- D.2
-
当一个Applet被加载,后续对Applet生命周期方法的调用中,可能存在的次序是( )。
- A.start,stop,destroy
- B.init,start,stop,start,stop,destroy
- C.start,init,stop,destroy
- D.init,start,destroy
-
用鼠标单击菜单项(Menultem)产生的事件是( )。
- A.MenuEvent
- B.ActionEvent
- C.KeyEvent
- D.MouseEvent
-
下列叙述中正确的是( )。
- A.一个算法的空间复杂度大,则其时间复杂度必定大
- B.一个算法的空间复杂度大,则其时间复杂度必定小
- C.一个算法的时间复杂度大,则其空间复杂度必定小
- D.上述3种说法都不对
-
用鼠标点击菜单项(Menultem)产生的事件是( )。
- A.MenuEvent
- B.ActionEvent
- C.KeyEvent
- D.MouseEvent
-
某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是( )。
- A.10
- B.8
- C.6
- D.4
-
有三个关系R,S和T如下:
其中关系T由关系R和S通过某种操作得到,该操作为( )。
- A.选择
- B.投影
- C.交
- D.并
-
Swing的选项面板是( )。
- A.JTabbedPane
- B.JLayeredPane
- C.JScrollPane
- D.JSplitPane
-
下列程序实现对ZIP文件file.zip的检索,在横线处
填入正确的语句( )。
package test;
importjava.io.*;
import java.util.*;
import java.util.zip.*;
public class Exam
{
public static void main(String[]args){
try{
FileInputStream fis=new FileInputStream("test/file.
zip");
ZipInputStream zis=new ZiplnputStream(fis);
ZipEntry an;
while(( )!=null){
en.getName;
zis.closeEntry;
}
zis.close:
}
catch(Exception e){
printStackTrace;
}
}
}
- A.en=zis.getNextEntry
- B.en= =zis.getNextEntry
- C.en=zis.getEntry
- D.zis.getNextEntry
-
下列程序的输出结果是( )。
public class Test
{
void printValue(int m)
{
do{
System.out.println("The value is"+m)
}
while(--m>10)
}
public static void main(String args[])
{
int i=10;
Test t=new Test:
t.printValue(i);
}
}
- A.The value is 8
- B.The value is 9
- C.The value is 10
- D.The value is 11
-
请阅读下列程序代码,然后将程序的执行结果补充完整。横线处应填写的内容是( )。
程序代码:
public class throwsExeeption{
static void Proc(intsel)
throws Arithmetic Exception,Array Index Out Of
Bounds Exception{
System.out.println("InSituation"+sel);
if(sel= =0){
System.OUt.println("noException caught");
return;
}
else if(sel= =l){
int iArray[]=newint[4];
iArray[1]=3;
}
}
public static void main(String args[]){
try{
Proe(O);
Proc(1);
}
catch(Array Index Out Of Bounds Exception e){
System.out.println("Catch"+e);
}
finally{
System.out.println("inProcfinally"):
}
}
}
执行结果:
In Situation 0
no Exception caught
in Proc finally
- A.In Situation l
- B.In Situation
- C.with Catch
- D.int iArray l
-
下列选项中为单精度数的是( )。
- A.2
- B.5.2
- C.0.2f
- D.023
-
下列与其他选项不相等的是( )。
- A.15
- B.0xF
- C.015
- D.0XF
-
下列排序方法中,最坏情况下比较次数最少的是( )。
- A.冒泡排序
- B.简单选择排序
- C.直接插入排序
- D.堆排序
-
阅读下面程序
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
-
数据流程图(DFD图)是( )。
- A.软件概要设计的工具
- B.软件详细设计的工具
- C.结构化方法的需求分析工具
- D.面向对象方法的需求分析工具
-
下列方法中,不属于Throwable类的方法是( )。
- A.printMessage
- B.getMessage
- C.toString
- D.fillStackTrace
-
相对于数据库系统,文件系统的主要缺陷有数据依赖、数据不一致性和( )。
- A.可重用性差
- B.安全性差
- C.非持久性
- D.冗余性
-
当一个Applet被加载,后续对Applet生命周期方法的调用中,可能存在的次序是( )。
- A.start,stop,destroy
- B.init,start,stop,start,stop,destroy
- C.start,init,stop,destroy
- D.ink,start,destroy
-
设a=8,则表达式a>>>1的值是( )。
- A.1
- B.2
- C.3
- D.4
-
下列关于Applet的叙述中,正确的是( )。
- A.Applet不仅可以嵌入到浏览器中运行,还可以独立运行
- B.Applet的主类要定义为Applet类或JApplet类的子类
- C.同一个页面中的Applet之间不能通信
- D.Applet不支持多线程
-
为使下列代码正常运行,应该在下画线处填入的选
项是( )。
int[]numbers=new int[n];
for(int i=0;i
;i++) numbers[i]=i+1:
- A.size
- B.length
- C.dimension
- D.measurement
-
鼠标在窗口中移动时,产生的事件是( )。
- A.ActionEvent
- B.PrintEvent
- C.KeyEvent
- D.MouseEvent
-
下列关于完全二叉树的叙述中,错误的是( )。
- A.除了最后一层外,每一层上的结点数均达到最大值
- B.可能缺少若干个左右叶子结点
- C.完全二叉树一般不是满二叉树
- D.具有结点的完全二叉树的深度为[log2n]+1
-
一棵二叉树有10个度为1的结点,7个度为2的结点,则该二叉树共有结点个数为( )。
- A.8
- B.25
- C.17
- D.7
-
阅读下列代码
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.编译时出错
-
在数据管理技术发展的三个阶段中,数据共享最好,的是( )。
- A.人工管理阶段
- B.文件系统阶段
- C.数据库系统阶段
- D.3个阶段相同
-
当Applet需要更新显示内容时,应该调用的方法是( )。
- A.paint
- B.update
- C.start
- D.repaint
-
下列Java语句从指定网址读取html文件,在下画线处应填上的选项是( )。
Reader in=new (new URL(urlString).
openStream);
- A.Reader
- B.DataOutputStream
- C.ByteArray InputStream
- D.InputStreamReader
-
一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。
- A.一对一
- B.一对多
- C.多对一
- D.多对多
-
使下列程序正常运行并且输出“Hello!”,横线处应填写的内容是( )。
class Test {
public static void main(string[]args){
Test t=new Test;
start;
}
Public void run{
System.out.println("Hello!¨);
)
- A.extends Thread
- B.extends Float
- C.extends Iostream
- D.extends Stdio
-
一个Java Application运行后,在系统中是作为一 个( )。
- A.线程
- B.进程
- C.进程或线程
- D.不确定
-
对于循环队列,下列叙述中正确的是( )。
- A.队头指针是固定不变的
- B.队头指针一定大于队尾指针
- C.队头指针一定小于队尾指针
- D.队头指针可以大于队尾指针,也可以小于队尾指针
-
Java为移动设备提供的平台是( )。
- A.J2ME
- B.J2SE
- C.J2EE
- D.JDK 5.0
-
阅读下列代码片段
class InterestTest——ActionListener{
public"void actionPerformed(ActionEvent event){
double interest=balance*rate/1 00 ;
balance+=interest;
NumberFormat format=NumberFormat.getCur-
rencyInstance;
System.OUt.print]b("balance="+formatter.
format(balance));
}
Private double rate;
}
在下画线处,应填的正确选项是( )。
- A.Implementation
- B.Inheritance
- C.implements
- D.extends
-
下列叙述中,错误的是( )。
- A.JavaApplication与Applet所用编译命令相同
- B.通常情况下JavaApplication只能有一个main方法
- C.JavaApplet必须有HTML文件才能运行
- D.JavaApplet程序的.class文件可用Java命令运行
-
以下程序计算1+1/3+1/5+…+1/(2N+1),直至1/(2N+1)小于0.00001,横线处应补充的程序是( )。
public class Sun{
public static void main(String args[]){
int n=1:
double term,sum=1.0:
do{
n=__;
term=1.0/n;
sum=sum+term;
}
while(term>=0.00001);
System.out.println(n);
System.out.println(sum);
}
}
- A.2n
- B.2n+1
- C.2*n
- D.2*n+1
-
下面的( )关键字通常用来对对象加锁,从而使得对对象的访问是排他的。
- A.serialize
- B.transient
- C.synchronized
- D.static
-
为保护本地主机,对Applet安全限制中正确的是( )。
- A.Applet可加载本地库或方法
- B.Applet可读、写本地计算机的文件系统
- C.Applet可向Applet之外的任何主机建立网络连接
- D.Applet不能运行任何本地可执行程序