1、计算机二级 JAVA-140 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下面的程序的功能是将数组 array 下标为奇数的元素相乘(数组的位置是从 0 开始的),并将乘积存放到变量 total 中。请在程序的每条横线处填入适当的语句,使程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 public class JiShuJi public static void main(String args ) int array =1,2,3,5,7,9; long total= _; f
2、or(int i=1;i=_ i+) _ i+; System.out.println(total); (分数:30.00)_二、2简单应用题(总题数:1,分数:40.00)2.请完成下列 Java 程序:制作一个图形用户界面,上方包含一个 TextField 和 Button 构件,实现输入字符串,点击 Button 获取文本区的字符:中间显示 Label 的内容:下方是 4 个按钮,分别实现控制 Label在最左边,在中间,在右边和退出程序的功能。 注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 程序运行结果如下: (分数:40.00)_三、3综合应用题
3、(总题数:1,分数:30.00)3.本题程序的功能是用表格的形式列出当前目录所有的文件属性,包括是否是文件夹、文件名称、是否可读、是否可写、文件大小以及最后修改时间。程序中存在若干错误,请找出并改正(注意:不得改动程序的结构,不得增行或删行)。 import java.awt.*; import javax.swing.*; import java.util.Date; import java.io.File; import javax.swing.table.*; public class advance extends Jframe public advance() super(“adva
4、nce“); setSize(500,400); setDefaultCloseOperation(EXIT_ON_CLOSE); FileModel fm = new FileModel(); JTable jt = new JTable(fm); jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); jt.setColumnSelectionAllowed(true); jt.setDefaultRenderer(Number.class,new BigRenderer(1000); JScrollPane jsp = new JScrollPane(
5、jt); getContentPane().add(jsp,BorderLayout.CENTER); public static void main (String args) advance ft : new advance(); ft.setVisible(true); class BigRenderer extends DefaultTableCellRenderer double threshold; public BigRenderer(double t) threshold = t; setHorizontalAlignment(JLabel.RIGHT); setHorizon
6、talTextPosition(SwingConstants.RIGHT); public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int col) return super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,col); class FileModel extends AbstractTableModel String
7、titles = new String “目录“,“文件名“,“可读?“,“可写?“,“大小“,“最后修改时间“ ; Class types = new Class Boolean.class,String.class,Boolean.class,Boolean.class, Number.class,Date.class ; Object data; public FileModel() this(“.“); public FileModel(String dir) File pwd = new File(dir); setFileStats (pwd); public int getRow
8、Count() return data.length; public int getColumnCount() return titles.length; public String getColumnName(int c) return titles c; public Class getColumnClass(int c) return typesc; public void getValueAt(int r,int c) return datar c; public void setFileStats(File dir) String files = dir.list; Data = n
9、ew Objectfiles.length titles.length; for (int i = 0; ifiles.length; i+) File tmp = new File(filesi); datai 0 = new Boolean(tmp.isDirectory(); datai 1 = tmp.getName(); datai 2 = new Boo lean(tmp.canRead(); datai 3 = new Boolean(tmp.canWrite(); datai 4 = new Long(tmp.length(); datai 5 = new Date(tmp.l
10、astModified(); fireTableDataChanged (); (分数:30.00)_计算机二级 JAVA-140 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:30.00)1.下面的程序的功能是将数组 array 下标为奇数的元素相乘(数组的位置是从 0 开始的),并将乘积存放到变量 total 中。请在程序的每条横线处填入适当的语句,使程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 public class JiShuJi public static void main(Stri
11、ng args ) int array =1,2,3,5,7,9; long total= _; for(int i=1;i=_ i+) _ i+; System.out.println(total); (分数:30.00)_正确答案:()解析:1 arraylength-1; total*=arrayi; 解析 本题主要考查 for 循环语句和数组的知识。解答本题的关键是熟练掌握 for 循环语句和数组的知识。一个for 循环语句一般应包含 4 部分内容:(1)初始化部分:用来设置循环控制的一些初始条件,如设置计数器等。(2)循环体部分:这是反复执行的一段代码,可以是单一的一条语句,也可以是
12、复合语句(代码块)。(3)迭代部分:用来修改循环控制条件。常常在本次循环结束,下一次循环开始前执行。例如,使计数器递增或递减。(4)判断部分:也称终止部分。是一个关系表达式或布尔逻辑表达式,其值用来判断是否满足循环终止条件。每执行一次循环都要对该表达式求值。解答循环语句题要抓住这四个部分。二、2简单应用题(总题数:1,分数:40.00)2.请完成下列 Java 程序:制作一个图形用户界面,上方包含一个 TextField 和 Button 构件,实现输入字符串,点击 Button 获取文本区的字符:中间显示 Label 的内容:下方是 4 个按钮,分别实现控制 Label在最左边,在中间,在右
13、边和退出程序的功能。 注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 程序运行结果如下: (分数:40.00)_正确答案:()解析:add(”South”,p) 1setAlignment(LabelLEFT) 解析 本题主要考查 AWT 基本构件 Button,Pane,Label 和 TextField 结合的简单应用。解题关键是熟悉这几种基本构件一般用法,会设置 Label 在窗口中的位置。本题中,第 1 个空,将面板构件放在窗口的最下方;第 2 个空,根据 Button 事件调用 1 对象的 setAlignment()方法,设置 Label 在面板
14、中的位置。三、3综合应用题(总题数:1,分数:30.00)3.本题程序的功能是用表格的形式列出当前目录所有的文件属性,包括是否是文件夹、文件名称、是否可读、是否可写、文件大小以及最后修改时间。程序中存在若干错误,请找出并改正(注意:不得改动程序的结构,不得增行或删行)。 import java.awt.*; import javax.swing.*; import java.util.Date; import java.io.File; import javax.swing.table.*; public class advance extends Jframe public advance(
15、) super(“advance“); setSize(500,400); setDefaultCloseOperation(EXIT_ON_CLOSE); FileModel fm = new FileModel(); JTable jt = new JTable(fm); jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); jt.setColumnSelectionAllowed(true); jt.setDefaultRenderer(Number.class,new BigRenderer(1000); JScrollPane jsp = new
16、 JScrollPane(jt); getContentPane().add(jsp,BorderLayout.CENTER); public static void main (String args) advance ft : new advance(); ft.setVisible(true); class BigRenderer extends DefaultTableCellRenderer double threshold; public BigRenderer(double t) threshold = t; setHorizontalAlignment(JLabel.RIGHT
17、); setHorizontalTextPosition(SwingConstants.RIGHT); public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int col) return super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,col); class FileModel extends AbstractTable
18、Model String titles = new String “目录“,“文件名“,“可读?“,“可写?“,“大小“,“最后修改时间“ ; Class types = new Class Boolean.class,String.class,Boolean.class,Boolean.class, Number.class,Date.class ; Object data; public FileModel() this(“.“); public FileModel(String dir) File pwd = new File(dir); setFileStats (pwd); publ
19、ic int getRowCount() return data.length; public int getColumnCount() return titles.length; public String getColumnName(int c) return titles c; public Class getColumnClass(int c) return typesc; public void getValueAt(int r,int c) return datar c; public void setFileStats(File dir) String files = dir.l
20、ist; Data = new Objectfiles.length titles.length; for (int i = 0; ifiles.length; i+) File tmp = new File(filesi); datai 0 = new Boolean(tmp.isDirectory(); datai 1 = tmp.getName(); datai 2 = new Boo lean(tmp.canRead(); datai 3 = new Boolean(tmp.canWrite(); datai 4 = new Long(tmp.length(); datai 5 = new Date(tmp.lastModified(); fireTableDataChanged (); (分数:30.00)_正确答案:()解析:第 48 行的“Class types=new Class“改为“Class types=new Class“。 第 79 行的“public void getValueAt(int r,int c)“改为“public Object getValueAt(int r,int c)“。 第 85 行的“String files=dir.list“改为“String files=dir.list()“。