1、国家二级( JAVA)机试模拟试卷 67及答案与解析 一、基本操作题( 30分) 1 下列程序中,定义了一个 3行 4列的数组 A,并将 A的内容转换为 ASCII码值,并复制到数组 B中,然后打印出来。 注意:请勿改动 main()主方法和其他已有语句内容,仅在横线处填入适当语句。 public class Example1_4 private char A = a, b, c, d, e, f, g, h, i, j, k, l; public int _; /生成一个空的 3行 4列的数组 B public void copy() for(int i = 0; i 3; i+) for(
2、int j = 0; j 4; j+) _; public static void main(_ argv) Example1_4 example = new Example1_4(); example.copy(); for(int i = 0; i 3; i +) for(int j = 0; j 4; j+) System.out.print(example. Bi j *+“ “); System.out.println (); 二、简单应用题( 40分) 2 请完成下列 Java程序:计算下列级数之和,直到该项之绝对值小于 0.001为止。 S=1/1!-1/2!+1/3!-1/4!
3、+ 注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运行结果如下: i=1 s=1.0 i=2 s=0.5 i=3 s=0.6666666666666666 i=4 s=0.625 i=5 s=0.6333333333333333 i=6 s=0.6319444444444444 public class ex1_1 public static void main(String args) double s=0.0,sign=-1.0,t,f=1.0; for (int i=1;i+) f=f*i; _; t=sign/f; if(_) break; s=
4、s+t; System.out.println( “i= “+i+“ s=“+s); 三、综合应用题( 30分) 3 以下程序是一个简单文本处理器,菜单项可以打开、编辑、保存一个文件。文件内容显示在下面的文本区域中 (提示,打开文件通过文件选择器来完成 )。请改正程序中的错误 (有下划线的语句 ),使程序能输出正确的结果。运行结果如下图所示。 注意:不改动程序的结构,不得增行或删行。 import java.awt.*; import java.awt.event.*; import java.io.* ; import javax.swing.*; class FileFrame exten
5、ds JFrame File file; JTextPane textpane; FileInputStream readStream; JScrollPane scroll; public FileFrame() super (“文件浏览 “); JMenu fileM = new JMenu(“文件 “); OpenAction open = new OpenAction (); SaveAction clear = new SaveAction (); ExitAction exit = new ExitAction(); JMenuBar mb = new JMenuBar(); fi
6、leM.add(open); fileM.add(clear); fileM.add(exit); mb.add(fileM); textpane=new JTextPane(); scroll=new JScrollPane(textpane); getContentPane().add(scroll); getContentPane().addJMenuBar(mb); class OpenAction extends AbstractAction public OpenAction () super(“打开 “); public void actionPerformed( ActionE
7、vent e ) JFileChooser chooser=new JFileChooser(); int state=chooser.showOpenDialog(null); file=chooser.selectedFile(); if(file!=null textpane.read(readStream, this); readStream.close(); catch(IOException ioE) class SaveAction extends AbstractAction public SaveAction() super(“保存 “); public void actio
8、nPerformed( ActionEvent e ) if(file=null) return; try FileWriter out = new FileWriter(file); out.read(textpane.getText(); out.close(); catch (IOException ioE) class ExitAction extends AbstractAction public ExitAction() super(“退出 “); public void actionPerformed( ActionEvent e ) System.exit(0); public
9、 static void main(String argv) FileFrame f = new FileFrame(); f.setDefaultCloseOperation(JFrame. EXIT ON CLOSE); f.setSize(300,400); f.show(); 国家二级( JAVA)机试模拟试卷 67答案与解析 一、基本操作题( 30分) 1 【正确答案】 B=new int34 Bij=Aij String 【试题解析】 本题主要考查考生对数组的掌握情况,以及数据类型之间的转换。 Java语言中,数组必须使用 “new”关键字对其分配存储空间,因此第一个空需要填写 “
10、new int34”。 main函数的参数列表必须是字 符串数组,但是作为参数,是动态获取的,所以没有数组长度,而仅仅写成 Stringargv,由此得到了第 3个空。第 2空是考查数据自动转换。 Java的基本数据类型可以按照一定的规则自动转换,而不需要特殊处理。故第 2个空可以直接用等号赋值。 二、简单应用题( 40分) 2 【正确答案】 sign=-sign Math abs(t) 0.001 【试题解析】 本题主要考查 for循环和条件语句控制程序流程。解题关键是会根据公式写出相应的算法解决问题。本题中,第 1个空,由于公式里每一项的符号都是交替变 化的,所以这里需要改变符号;第 2个
11、空,判断是否中断循环的条件,需要用 Math.abs()方法来进行绝对值的比较。 三、综合应用题( 30分) 3 【正确答案】 setJMenuBar(mb) file=chooser.getSelectedFile() out.write(textpane.getText() 【试题解析】 构造方法 FileFrame()中初始化了程序界面,菜单 “fileM”中添加了3个菜单项 “打开 ”、 “保存 ”和 “退出 ”,并为这 3个菜单项添加了相应的事件。“textpane”是一个文本编辑面板,其上可以显示和修改文本。 openAction类定义了用户选择 “打开 ”菜单的事件。用户选择 “
12、打开 ”,程序向用户显示文件选择器“chooser”,使用户通过图形化的方式选择文件。根据用户选择的结果,生成 File类的实例 “file”。语句 “textpane.read(readStream,this)”读取文件内容并显示在“textpane”中。 SaveAction定义了用户选择 “保存 ”菜单的事件。在 SaveAction类中,程序调用 FileWriter的写文件方法将 “textpane”中 的内容输出到文件中。 玻璃面板 (glassPane)、内容面板 (contentPane)、菜单条 (JMenuBar)共同组成根面板。 getContentPane()获得的是顶层容器的内容面板而不是根面板,所以不能在其中添加菜单条。因此第 1 条下划线处应该改为 setJMenuBar(mb),将 “mb”设置为根面板的菜单条。 第 2处和第 3处改错,主要考查对文件选择和文件输出的基本操作的掌握情况。这些常用的类和常用的方法只有在多次练习之后才能熟练掌握。