1、国家二级( JAVA)机试模拟试卷 90及答案与解析 一、基本操作题( 30分) 1 在程序中,用户使用 JOptionPane输入一个二维数组的行数,程序随机生成每一行的列数,并对其赋值。最后显示这个二维数组。请填写横线处的内容。 注意:请勿修改 main()主方法和其他已有语句内容,仅在横线处填入适当语句。 import javax.swing.*; public class basic public static void main(String args) String sDimU=JOptionPane.showInputDialog(“请输入数组的行数 “); int iDimU=
2、_(sDimU); int . numbers=new intiDimU ; for(int i=0; i iDimU; i+) int k=(int) (Math.random()*5+1); numbersi=_; for(int i=0; i iDimU; i+) for(int j=0;_; j+) numbersi j=(int) (Math.random()*l00); System.out.print(numbersi j+“ “); System.out.println (); System.exit(O) 二、简单应用题( 40分) 2 请完成 Java程序:本题是一个冒泡排
3、序程序的实例。冒泡排序的含义是将相邻的两个数作比较,如果是升序排列的话,如果前边的数大,则将两个数交换。从第一个数开始两两比较一次,就可以将最大的数移动到最后。 注意:请勿修改 main()主方法和其他已有语句内容,仅在横线处填入适当语句。 import java.io.*; public class simple public static intData=new int10; public static void main(String args) int i; int Index; Index=0; InputStreamReader ir; BufferedReader in; ir=
4、new InputStreamReader(System.in); in=new BufferedReader(ir); try do System.out.println(“Please input the number“+ Index+“you want to sort(Exit for 0):“); String s=in.readLine(); DataIndex=Integer.parseInt(s); Index+; while(DataIndex-1!=0); catch(IOException e) System.out.println(e.getMessage(); Syst
5、em.out.print(“Before bubble sorting:“); for(i=0; i Index-1; i+) System.out.print(“ “+Datai+“ “); System.out.println(“ “); BubbleSort(Index-1); System.out.print(“After Bubble Sorting:“); for(i=0; i Index-1;i+) System.out.print(“ “+Datai+“ “); System.out.println(“ “); public static void BubbleSort(int
6、 Index) int i, j, k; boolean Change; int Temp; for(j=Index; j 1;j-) Change=false; for(i=0; i j-1;i+) if(Datai+1 Datai) Temp=Datai+1; Datai+1=Datai; _; _; if(Change) System.out.print(“Current Sorting Result:“); for(k=0; k Index; k+) System.out.print(“ “+Datak+“ “); System.out.println(“ “); 三、综合应用题( 3
7、0分) 3 下面是一个 Applet程序,其功能是建立两个文本区域,一个为编辑区,一个为只读区;建立两个按钮,一个实现将编辑区中被鼠标选定的文本内容复制到只读区中,一个实现将只读区的全部文本内容清空。请更正题中带下划线的部分。 注意:不改变程序的结构,不得增行或删行。 import java.awt.*; import java.applet.*; /* applet code=“exl4_3.class“ width=800 height=400 /applet */ public class exl4_3 extends Applet private Button okBtn, clear
8、Btn; private String strMessage; private TextArea tArea1, tArea2; public void init() strMessage=“Hello! Welcome to the test! n“ +“Wish you good luck!“; tArea1=new TextArea(10,25); tArea1.setText(strMessage); tArea2=new TextArea(10,25); tArea2.setEditable(true); okBtn=new Button(“Copy“); clearBtn=new
9、Button(“Clear“); add(tArea1); add(tArea2); add(okBtn); add(clearBtn); public boolean action(Event e,Object o) if(e.target= =okBtn) tArea1.setText(tArea2.getSelectedText(); else if(e.target= =clearBtn) tArea1.setText(“); return ture; exl4_3.html HTML HEAD TITLE exl4_3 /TITLE /HEAD BODY applet code=“e
10、xl4_3.class“width=800 height=400 /applet /BODY /HTML 国家二级( JAVA)机试模拟试卷 90答案与解析 一、基本操作题( 30分) 1 【正确答案】 Integer.parseInt new intk j numberi.length 【试题解析】 本题考查知识点:基本数据类型包装类的使用,数组的使用。解题思路:首先, JOptionPane显示了一个可以输入数据的对话框,用户通过该对话框输入对话框的行数。第一个循环是对每一行分配存储空间,第二个循环是对已经分配好空间的 二维数据进行赋值,并在赋值的过程中将数组显示出来。第 1个空考查字符串
11、和数值之间的相互转换。每一种基本数据类型的包装类都有各自的方法将字符串转换为相应的基本数据类型,转换为 int型的方法是Integer.parseInt()。第 2个空考查多维数组的基本概念,多维数组的高维标识低维的名字,但是低维必须分配自己的存储空间。因此,此处需要用 new关键字对每一行动态分配列空间。第 3个空,由于多维数组的高维标识低维的名字,所以高维可以直接用来表示低维部分,使用方法跟普通数组一样。如本题中 number0就表示一个用 number0命名的一维数组。所以此处应该填写 j numberi.length。 二、简单应用题( 40分) 2 【正确答案】 Datai=Temp
12、 Change=true 【试题解析】 本题考查知识点:基本排序算法。冒泡排序是最常用的交换排序方式,其核心算法就是比较和交换。交换的最简单方法是用一个中间变量作交换中介。先把其中一个值存入临时变量,然后将另一个值赋给第一个值,最后将临时变量赋给另一个值 (第 1个空 )。另外,为加快速度,如果排序已经完成了,就可以直接返回,而不必等待循环 结束 (第 2个空,将标志变量设为真 )。 三、综合应用题( 30分) 3 【正确答案】 tArea2.setEditable(false) tArea2.setText(tArea1.getSelectedText() tArea2.setText(“)
13、 【试题解析】 本题主要考查 Applet窗口、其事件处理机制以及对文本区域的相关操作。解题关键是熟悉 TextArea的基本方法,如 setEditable()方法就是用来确定编辑模式的一个重要的方法,并且需要明确题目要求的两个文本区域的区 别和联系,根据不同的事件,来对这两个文本区域进行操作。本题中,第 1个空,将第 2个文本区域 tArea2的编辑模式设定为只读,注意参数为 false,因为默认的编辑模式设定为可编辑的,用 true表示,所以参数应该是 false;第 2个空,响应单击 Copy按钮事件的语句应该将第 1个丈本区 tArea1的被选择的文本内容取出放入第 2个文本区 tArea2中;第 3个空,响应单击 Clear按钮事件的语句应该将第2个文本区 tArea2中的所有文本内容清空。