[计算机类试卷]国家二级(JAVA)机试模拟试卷89及答案与解析.doc

上传人:孙刚 文档编号:503626 上传时间:2018-11-29 格式:DOC 页数:7 大小:37KB
下载 相关 举报
[计算机类试卷]国家二级(JAVA)机试模拟试卷89及答案与解析.doc_第1页
第1页 / 共7页
[计算机类试卷]国家二级(JAVA)机试模拟试卷89及答案与解析.doc_第2页
第2页 / 共7页
[计算机类试卷]国家二级(JAVA)机试模拟试卷89及答案与解析.doc_第3页
第3页 / 共7页
[计算机类试卷]国家二级(JAVA)机试模拟试卷89及答案与解析.doc_第4页
第4页 / 共7页
[计算机类试卷]国家二级(JAVA)机试模拟试卷89及答案与解析.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、国家二级( JAVA)机试模拟试卷 89及答案与解析 一、基本操作题( 30分) 1 在程序中,随机产生 100个学生的成绩,并计算出他们的平均成绩。学生的成绩按照五级打分制, “A”表示 4分、 “B”表示 3分、 “C”表示 2分、 “D”表示 1分、 “E”表示 0分。平均成绩用浮点数表示。请填写横线处的内容。 注意:请勿修改 main()主方法和其他已有语句内容,仅在横线处填入适当语句。 import java.math.*; public class basic public static void main(String args) float aver=0; int a=0, b

2、=0, c=0, d=0, e=0, f=0; for(_; i 100; i+) double sd= Math.random()*5+A; char score=_; _(score) caseA: aver+=4;a+;break; caseB: aver+=3;b+;break; caseC: aver+=2;c+;break; caseD: aver+=1;d+;break; caseE: aver+=0;e+;break; default: break; aver/=100; System.out.println(“平均分数为 “+aver+“,学生人数 100“); System

3、.out.println(“得 A的学生有 “+a+“人 “); System.out.println(“得 B的学生有 “+b+“人 “); System.out.println(“得 C的学生有 “+c+“人 “); System.out.println(“得 D的学生有 “+d+“人 “); System.out.println(“得 E的学生有 “+e+“人 “); 二、简单应用题( 40分) 2 本程序的功能是读取用户输入的整数 a、 b,单击按钮 “计算 ”,则计算出 a和 b数的和,并显示计算的结果。请将程序补充完整。 注意:请勿修改 main()主方法和其他已有语句内容,仅在横

4、线处填入适当语句。 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class simple public static void mainString args) ExampleFrame frame=new ExampleFrame(); frame._(JFrame.EXIT_ON_CLOSE); frame.show(); class ExampleFrame extends JFrame private JPanel panel; public static final int DEFA

5、ULT_WIDTH=250; public static final int DEFAULT_HEIGHT=250; public ExampleFrame() Init(); setTitle(“welcome“); setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT); Container contentPane=getContentPane(); contentPane.add(panel); private void init() JLabel la1=new JLabel(“输入整数 a:“); JLabel la2=new JLabel (“输入整数 b:“)

6、; final JTextField num1=new JTextField(10); final JTextField num2=new JTextField(10); JButton but=new JButton(“计算 “); final JLabel res=new JLabel(“结果 :“); but.addActionListener(_ public void actionPerformed(ActionEvent event) String str=new String(); String s1=num1.getText(); String s2=num2.getText(

7、); try int a=Integer.parseInt(s1); int b=Integer.parseInt(s2); str=String.valueOf(a +b); catch(Exception e) str=e.getMessage(); res.setText (“结果 :“+str); ); panel=new JPanel(); panel.setLayout(new FlowLayout(FlowLayout.LEFT); panel.add(la1); panel.add(num1); panel.add(la2); panel.add(hum2); panel.ad

8、d(but); panel.add(res); 三、综合应用题( 30分) 3 本程序的目的是在屏幕上显示当前目录下的文件信息。文件信息通过表格 JTable的实例显示。请更正题中带下划线的部分,使程序能输出正确的结果。 注意:不改变程序的结构,不得增行或删行。 import java.awt.*; import javax.swing.*; import java.util.Date; import javax.swing.table.*; import java.applet.*; import java.io.*; public class advance extends JApplet

9、, JFrame public void init() FileModel fm=new FileModel(); JTable jt=new JTable(); jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); jt.setColumnSelectionAllowed(true); JScrollPane jsp=new JScrollPane(jt); getContentPane().add(jsp, BorderLayout.CENTER); public static void main(String args) advance ft=new

10、 advance(); ft.init(); JFrame f=new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.getContentPane().add(ft.getContentPane(); f.setSize(300,400); f.show(); class FileModel extends AbstractTableModel String columnName=new String “文件名 “,“大小 “, “最后修改时间 “ ; Object data; public FileModel()

11、this(“.“); public FileModel(String dir) File file=new File(dir); String files=file.list(); data=new Objectfiles.length columnName.length; for(int i=0; i files.length; i+) File tmp=new File(filesi); datai 0=tmp.getName(); datai 1=new Long(tmp.length(); datai 2=new Date(tmp.lastModified(); public int

12、getColumnNumber() return columnName.length; public int getRowCount() return data.length; public String getColumnName(int col) return columnNamecol; public Object getValueAt(int row, int col) return datarow col; public Class getColumnClass(int c) return getValueAt(0,c).getClass(); 国家二级( JAVA)机试模拟试卷 8

13、9答案与解析 一、基本操作题( 30分) 1 【正确答案】 int i=0 (char)sd switch 【试题解析】 本题考查知识点: for循环、多分支语句、数据类型之间的转换。解题思路:程序中用一个 for循环控制 100个学生成绩的录入。 sd是随机产生的一个 65到 69之间的数,将其转换为字符型数据以后赋值给 score。使用多分支语句统计分数,最后算出平均值。第 1个空考查 for循环的使用。 for循环的结构是“for(循环初始化语句;循环结束条件;迭代部分 )”,初始化语句中可以声明一个变量,这个变量的作用域是整个 for循环。因 此第 1个空应该声明变量。在本题中, i可

14、以是除布尔型以外的任意数据类型。第 2个空考查数据类型之间的转换,凡是从高优先级次序的数据类型转换为低优先次序的数据类型,都必须使用强制类型转换。所以第 2个空不能填写 sd,只能填写 (char)sd。第 3个空考查多分支语句的使用。 Java语言中的多分支语句为 switch-case语句,由此得到第 3个空的结果。 二、简单应用题( 40分) 2 【正确答案】 setDefaulktCloseOperation new ActionListener() 【试题解析 】 本题考查知识点:图形用户界面、 Swing构件。解题思路:图形用户界面上所有显示的要素都是编程时通过设计添加上去的。本题

15、中主要考查了图形用户界面的关闭按钮事件响应,以及控件事件的监听。关闭按钮是图形用户界面的一个基本组成要素,是一种默认的关闭方式。 ExampleFrame是程序定义的一个内部类,在其构造函数中实现了初始化。 init方法将界面添加到面板中。but.addActionListener为按钮 but添加事件监听器。在监听器中,首先获得用户输入的两个数的值。使用 try-catch的原因是,用户可能输 入的不是数字,这样就需要对异常情况进行处理。然后计算这两个数的和。最后,计算结果通过名为 res的JLabel构件显示给用户。 Java程序中,通过设置 JFrame框架的关闭属性,就可以在界面上对关

16、闭按钮的事件做出响应。即 setDefaultCloseOperation()方法,这样就得到了第 1个空的结果。事件监听是一种专门的开发模式,将事件分为监听源和监听器;事件源是各种构件以及由各类构件继承而生成的新的构件,监听器是对事件做出具体动作的实体,它必须实现某种监听器接口。事件源自身不处理事件,而是通过注册监听器 ,将事件委托给监听器来处理。本题中第 2个空就是通过新建一个 ActionListener的实例来为 but构件注册一个监听器。 三、综合应用题( 30分) 3 【正确答案】 extends JFrame JTable(fm) getColumnCount 【试题解析】 本题

17、考查知识点: JTable构件的使用、小程序的安全机制。解题思路: FileModel定义了一个 JTable的模型,在这个模型中, File file=new File(dir)语句获得当前目录下的文件信息,然后将这些文件信息 存储在模型的 data变量中。 Applet的沙箱模型规定,未授权的小应用程序不能访问本地资源,当然也就不能读、写本地计算机的文件系统。本程序需要获得当前目录的信息,因此本题程序只能作为应用程序运行,所以第 1处下划线应该去掉 JApplet。 JTable的主要功能是将数据以二维表格的方式显示出来。本题采用的是 MVC模式, FileModel实现了表格的模型。第 2条下划线处使用 JTable的构造方法将模型赋予表格“it”。 AbstractTableModel所有的抽象方法都需要实现。第 3条下划线处的方法在功能上与抽 象方法 getColumnCount()相同,但是并没有实现该抽象方法。因此需要更正。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1