1、二级 JAVA 机试-91 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:33.00)1._(分数:33.00)_二、2简单应用题(总题数:1,分数:33.00)2.请完成下列 Java 程序:实现换算 GPA,对于学生学习的每一门课程,都输入两个数据:考试成绩和学分,考试成绩按如下公式换算:90100:57589: 46074: 34059: 240 以下:1GPA 等于换算后每门课的成绩的学分加权平均值(成绩学分)/学分)。要求用图形用户界面实现上述功能,用户窗口包括 2 个文本区域,一个输入成绩,一个输入学分,一个文本面板用作输出 GPA 的换
2、算结果,一个按钮,点击实现换算。注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运行结果如下:(分数:33.00)_三、3综合应用题(总题数:1,分数:34.00)3.下面是一个 Applet 程序,其功能是在图形用户界面中实现打印任意行数的杨辉三角形,编写一个含有整型形式参数的方法,此方法打印杨辉三角形,打印的行数由形式参数指定。编写 Applet 程序接受用户输入的整数,作为实际参数传递并调用上面的方法,要求图形用户界面上包含一个文本区作为输入参数的入口,一个带有纵向滚动条的文本面板作为输出打印结果的区域,一个按钮,点击则完成打印。请改正程序中的错误(
3、有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:(分数:34.00)_二级 JAVA 机试-91 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:33.00)1._(分数:33.00)_正确答案:(import javaapplet*;Graphics ggdrawLine(10,20,10,100);)解析:解析本题考查 Java Applet 小程序。Applet 是能够嵌入到 HTML 页面中,并能够在浏览器中运行的 Java 类。定义用户的 Applet 时,必须继承 javaapple 包中的
4、 Applet 类。另外,Graphics 类在 javaawt 包中,它是 Applet 运行绘制的关键类。Graphics 类中提供的绘图方法分为两类:一类是绘制图形,如drawLine()画直线,drawRect()画矩形等等;一类是绘制文本,如 drawstring()绘制字符串,drawChars()绘制字符等等。解答此类问题必须掌握以上知识点。在本题中 import javaapplet*;语句是导入 javaapplet 包,g.drawLine(10,20,10,100);方法中(10,20)是所画横线的起点坐标,(10,100)是横线的终点坐标。二、2简单应用题(总题数:1,
5、分数:33.00)2.请完成下列 Java 程序:实现换算 GPA,对于学生学习的每一门课程,都输入两个数据:考试成绩和学分,考试成绩按如下公式换算:90100:57589: 46074: 34059: 240 以下:1GPA 等于换算后每门课的成绩的学分加权平均值(成绩学分)/学分)。要求用图形用户界面实现上述功能,用户窗口包括 2 个文本区域,一个输入成绩,一个输入学分,一个文本面板用作输出 GPA 的换算结果,一个按钮,点击实现换算。注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。程序运行结果如下:(分数:33.00)_正确答案:(dTol += nt*
6、n2nCount +)解析:解析本题主要考查简单应用 swing 基本构件和布局管理器实现图形用户界面的设计,并能按题目要求设计换算GPA 的算法。解题关键是熟悉熟悉 swing 的基本构件库,包括JTextField,JFrame,JTextPane,JButton,swing 的事件机制以及 GridLayout 布局管理器的使用,还需要理解题干中的信息,并根据信息给出解决问题的算法。本题中,第 1 个空,计算(成绩学分);第 2 个空,对课程计数器 nCount 做累加。三、3综合应用题(总题数:1,分数:34.00)3.下面是一个 Applet 程序,其功能是在图形用户界面中实现打印任
7、意行数的杨辉三角形,编写一个含有整型形式参数的方法,此方法打印杨辉三角形,打印的行数由形式参数指定。编写 Applet 程序接受用户输入的整数,作为实际参数传递并调用上面的方法,要求图形用户界面上包含一个文本区作为输入参数的入口,一个带有纵向滚动条的文本面板作为输出打印结果的区域,一个按钮,点击则完成打印。请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。程序运行结果如下:(分数:34.00)_正确答案:(n=IntegerparseInt(jtfgetText()int j=i;jn;i+jtpgetText()+s+”/n“)解析:解析本
8、题主要考查 swing 图形用户界面设计和 Applet 窗口相结合解决一些实际问题的综合应用。解题关键是熟悉 swing 的基本构件库,包括 JFrame,JTextPane,JButton 以及 swing 的事件机制,还需要熟悉swing 和 Applet 应用相结合的程序设计方法,并且要会设计一些解决简单问题的算法,杨辉三角形就是一例。本题中,第一处,对象 jd 调用方法 getText()得到的是文本面板中的字符串类型的数据,而 n 是整形数据类型,因此需要做数据类型转换;第二处,循环变量 j 应该从外层循环变量 i 开始一直到 n,否则输出的“*”数目不变;第三处,应该在已有的输出结果之上在输出一行新的串,因此需要加上jip.getText()。