基本操作

在考生文件夹中存有文件名为Java_1.java的文件,该程序是不完整的,请在注释行“//Found”下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
程序的功能是计算一组学生成绩的等级,运行结果如图所示。 

在这里插入图片描述

public class Java_1{
public static void main(String[] args){
//Found*
________ scores = {90,80,75,67,53};
int best = 0;
char grade;
// 找出这组成绩中的最高分
//Found*
for (int i=0;__; i++){
//Found*
if (
)
best = scores[i];
}
//求各分数的等级并显示
for (int i=0; i<scores.length; i++){
if (scores[i] >= best - 10)
grade = ‘A’;
//Found*
__________ (scores[i] >= best - 20)
grade = ‘B’;
else if (scores[i] >= best - 30)
grade = ‘C’;
else if (scores[i] >= best - 40)
grade = ‘D’;
else
grade = ‘F’;
System.out.println("Student " + i + " score is " + scores[i] +
" and grade is " + grade);
}
}
}

本题考查的是数组的定义及操作。
首先,程序定义并初始化一维数组scores,在Java中定义并创建一个数组对象的方式是:type[] arrayName=new type[arraySize];所以第一空填"int[]"。
然后,程序通过一个for循环来找出数组scores中的最大值,因为数组scores的数组元素有5个,元素下标最大值为4(即:scores[0]、scores[1]、scores[2]、scores[3]、scores[4]),所以第二空填"i<=4";由程序可知,变量best用于存放这组成绩中的最高分,所以通过if语句进行比较,第三空填"scores[i]>best"。
第四空所在的for循环的作用是根据分数判断等级,等级A:最高分-10;等级B:最高分-20;等级C:最高分-30;等级D:最高分-40;其余的是等级F。由程序可知,第四空填else
if。
具体程序如下:

public class Java_1{
  public static void main(String[] args){
    //*********Found**********
    int[]  scores = {90,80,75,67,53}; 
    int best = 0; 
    char grade; 

    // 找出这组成绩中的最高分
    //*********Found**********
    for (int i=0;i<=4; i++){
      //*********Found**********
      if (scores[i]>best)
        best = scores[i];
    }
 
    //求各分数的等级并显示
    for (int i=0; i<scores.length; i++){
      if (scores[i] >= best - 10)
        grade = 'A';
      //*********Found**********
      else if (scores[i] >= best - 20)
        grade = 'B';
      else if (scores[i] >= best - 30)
        grade = 'C';
      else if (scores[i] >= best - 40)
        grade = 'D';
      else
        grade = 'F';
      System.out.println("Student " + i + " score is " + scores[i] +
        " and grade is " + grade);
    }
  }
}

简单应用

在考生文件夹中存有文件名为Java_2.java的文件,该程序是不完整的,请在注释行“//Found”下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
本题的要求是:
运行程序后,输出结果为(2,3)

public class Java_2 {
public static void main(String[ ] args) {
Point pt;
//Found*
pt = _____________ Point(2, 3);
System.out.println(pt);
}
}

class Point {
//Found*
private _____________;
private int y;
//Found*
public _____________ (int a, int b) {
x = a;
y = b;
}
int getX( ) {
return x;
}
int getY( ) {
return y;
}
void setX(int a) {
x = a;
}
void setY(int b) {
y = b;
}
//Found*
public String _____________ ( ) {
return "( " + x + “,” + y + " ) ";
}
}

本题重点考查了方法参数的传递和对象的实例化。
对象实例化的一般格式是先定义一个对象变量,再用关键字new生成一个对象,并对对象中的变量赋初值。如下所示:type objectName=new type([参数]),其中type
objectName声明是定义对象的类型;new关键字的作用是实例化一个对象,给对象分配内存,它调用对象的构造方法,返回该对象的引用,所以第一空填"new"。
private修饰符修饰的类变量在类内可访问,其他类不能进行访问。根据语句"private int y;“可知,第二空填"int x;”。
构造方法用来初始化对象,其方法名必须与类名相同且只能通过new自动调用,第三空所在的方法是Point类的构造方法,所以,第三空填"Point"。
只要是一个类而且继承自object,那么这个类就会继承Object的toString方法,功能是将对象转换为其字符串表现形式,使它适合于显示。第四空重写toString方法以(x,y)的格式返回点的位置,所以填"toString"。
具体程序如下:

public class Java_2 {
    public static void main(String[ ] args) {
        Point pt;
        //*********Found**********
        pt = new Point(2, 3);
        System.out.println(pt);
    }
}

class Point {

    //*********Found**********
    private int x;
    private int y;

    //*********Found**********
    public Point (int a, int b) {
        x = a;
        y = b;
    }

    int getX( ) {
        return x;
    }

    int getY( ) {
        return y;
    }

    void setX(int a) {
        x = a;
    }

    void setY(int b) {
        y = b;
    }

    //*********Found**********
    public String toString ( ) {
        return "( " + x + "," + y + " ) ";
    }
}

综合应用

在考生文件夹中存有文件名为Java_3.java的文件,该程序是不完整的,请在注释行“//Found”下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或改动其他已有语句内容。
存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
本题的要求是:
程序中用Swing编写了一个窗体,窗体内含有两个按钮"New"和"Close all"。
当"New"按钮被按下后,就生成一个新的窗体。当"Close all"按钮被按下后,就关闭所有现在已经打开的窗体。程序运行如下图所示。 

在这里插入图片描述

import java.awt.;
import java.awt.event.
;
//Found*
import ________________.swing.*;

//Found*
public class Java_3 ___________ JPanel{

private int counter = 0;

private JButton closeAllButton;

public Java_3() {
JButton newButton = new JButton(“New”);
//Found*
add(______________);
newButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
CloseFrame f = new CloseFrame();
counter++;
f.setTitle("窗体 " + counter);
f.setSize(200, 150);
f.setLocation(30 * counter, 30 * counter);
//Found*
____________.setVisible(true);
closeAllButton.addActionListener(f);
}
});
closeAllButton = new JButton(“Close all”);
add(closeAllButton);
}

public static void main(String[ ] args) {
JFrame frame = new JFrame();
frame.setTitle(“多窗体测试”);
frame.setSize(300, 200);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
Container contentPane = frame.getContentPane();
contentPane.add(new Java_3());
frame.setVisible(true) ;
}
}

//Found*
class CloseFrame extends JFrame implements ________________ {
public void actionPerformed(ActionEvent evt) {
setVisible(false);
}
}

本题考查的是Swing构件和AWT中的事件处理。
下面语句导入Swing包:import javax.swing.*;所以第一空填"javax"。
extends关键字代表了所谓的继承关系,新类Java_3开始于JPanel类的现有成员(数据和方法)。Java_3继承的类,即JPanel,显示在关键字extends右边。这种继承关系下,JPanel称为超类,Java_3称为子类。所以第二空填"extends"。
增加一个新的按钮控件,所以第三空填"newButton"。
setVisible()方法的作用是使可视化组件f(如窗口、面板等)可见,根据语句"CloseFrame f = new CloseFrame(); “可知,第四空填"f”。
第五空的作用是定义事件响应接口,根据语句"public void actionPerformed(ActionEvent evt)“可知,所以第五空填"ActionListener”。
具体程序如下:

import java.awt.*;
import java.awt.event.*;    
//*********Found**********
import javax.swing.*;
   
//*********Found**********
public class Java_3 extends JPanel{     
   
  private int counter = 0;    
   
  private JButton closeAllButton;    
   
  public Java_3() {    
    JButton newButton = new JButton("New");    
    //*********Found**********
    add(newButton);
    newButton.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent evt){
        CloseFrame f = new CloseFrame();    
        counter++;    
        f.setTitle("窗体 " + counter);    
        f.setSize(200, 150);    
        f.setLocation(30 * counter, 30 * counter);    
        //*********Found**********
        f.setVisible(true);    
        closeAllButton.addActionListener(f); 
      }  
    });
        
    closeAllButton = new JButton("Close all");    
    add(closeAllButton);    
  }      
   
  public static void main(String[ ] args) {    
    JFrame frame = new JFrame();    
    frame.setTitle("多窗体测试");    
    frame.setSize(300, 200);    
    frame.addWindowListener(new WindowAdapter() {    
      public void windowClosing(WindowEvent e) {    
        System.exit(0);    
      }    
    });    
   
    Container contentPane = frame.getContentPane();    
    contentPane.add(new Java_3());   
  
    frame.setVisible(true) ;    
  } 
} 
   
//*********Found**********
class CloseFrame extends JFrame implements ActionListener {    
  public void actionPerformed(ActionEvent evt) {     
    setVisible(false);    
  }
}
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐