Java二级操作题第45套

基本操作

在考生文件夹中存有文件名为Java_1.java的文件,该程序是不完整的,请在注释行"//Found*"下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。

下列程序的功能是:提示用户输入大于0的整数n,计算6+66+666+…的前n项的值,并打印出该值。

import java.lang.*;
import java.util.*;

public class Java_1 {
    public static void main(String [] args){
        System.out.print("请输入n: ");
        //**********Found**********
        Scanner scan = new Scanner (_________);
        String nstr = scan.next(); 
        //**********Found**********
        int n = Integer._________(nstr);
        int b = 6;
        long sum=0,item=b;
        for(int i=1;i<=n;i++){
            sum += item;
            //**********Found**********
            item = item * 10 + _________;
        }
        System.out.print(n + "项的和为 " + sum);
    }		
}

本题中的第一空:Scanner类扫描控制台的输入,System.in读取键盘输入的数据,此处填写System.in。
本题中的第二空:将字符串nstr转换成整型n,使用Integer类提供的parseInt方法或valueOf方法,此处填写parseInt或valueOf
本题中的第三空:由题意可知,不管for循环执行多少次,item的个位数总是6,也就是变量b的值,此处填写6或b。

本评析仅作参考。

import java.lang.*;
import java.util.*;

public class Java_1 {
    public static void main(String [] args){
        System.out.print("请输入n: ");
        //**********Found**********
        Scanner scan = new Scanner (System.in);
        String nstr = scan.next(); 
        //**********Found**********
        int n = Integer.parseInt(nstr);
        int b = 6;
        long sum=0,item=b;
        for(int i=1;i<=n;i++){
            sum += item;
            //**********Found**********
            item = item * 10 + b;
        }
        System.out.print(n + "项的和为 " + sum);
    }		
}

简单应用

在考生文件夹中存有文件名为Java_2.java的文件,该程序是不完整的,请在注释行"//Found*"下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。

下列程序的功能是:图形的抽象类Figure,提供了计算图形面积的方法,并派生了圆和矩形的类,生成了三个图形的实例:半径分别为1.0和2.0的两个圆,及边长为2.0和3.0的矩形,输出它们各自的面积。运行后的输出如下所示:
The area of figure 0 is:3.141592653589793
The area of figure 1 is:12.566370614359172
The area of figure 2 is:6.0

import java.lang.*;
abstract class Figure {
    //**********Found**********
    public _______ double area();
}

class Circle extends Figure{
    double r;
    
    Circle(double r){ 
        this.r=r;
    }
    
    public double area(){
        //**********Found**********
        return Math.PI*_________;
    }
}

class Rectangle extends Figure{
    double a,b;
    Rectangle(double a,double b) {
        this.a=a;
        this.b=b;
    }

    public double area() {
        //**********Found**********
        return _________ ;
    }
}
	
public class Java_2 {

    public static void main(String[] args){
        Figure[] fig=new Figure[3];
        fig[0]=new Circle(1.0);
        fig[1]=new Circle(2.0);
        //**********Found**********
        ___________________________ ;
        for(int i=0;i<3;i++)
        //**********Found**********
            System.out.println("The area of figure "+i+" is:"+ _________ );
    }
}

本题中的第一空:抽象类Figure中的area方法只有方法名,没有方法体,而方法的具体实现需要由该类的子类确定,可知是用关键字abstract声明的抽象方法area,所以此处填写abstract;
本题中的第二空:圆形类Circle继承父类Figure,重写了area()方法,这里的返回值是圆形的面积,已经定义了圆形的半径为r,所以此处填写rr;
本题中的第三空:矩形类Rectangle继承父类Figure,重写了area()方法,这里的返回值是矩形的面积,已经定义了矩形的长宽分别为a和b,所以此处填写ab;
本题中的第四空:在main函数中定义了有三个元素的数组变量fig,分别代表半径为1的圆形、半径为2的圆形和边长为2.0和3.0的矩形,代表半径为1的圆形和半径为2的圆形已初始化,所以此处填写fig[2]=new
Rectangle(2.0,3.0);
本题中的第五空:for循环执行结束后,分别输出半径为1的圆形、半径为2的圆形和边长为2.0和3.0矩形的面积,需要调用area()方法,所以此处填写fig[i].area()。

import java.lang.*;
abstract class Figure {
    //**********Found**********
    public abstract double area();
}

class Circle extends Figure{
    double r;
    
    Circle(double r){ 
        this.r=r;
    }
    
    public double area(){
        //**********Found**********
        return Math.PI*r*r;
    }
}

class Rectangle extends Figure{
    double a,b;
    Rectangle(double a,double b) {
        this.a=a;
        this.b=b;
    }

    public double area() {
        //**********Found**********
        return a*b ;
    }
}
	
public class Java_2 {

    public static void main(String[] args){
        Figure[] fig=new Figure[3];
        fig[0]=new Circle(1.0);
        fig[1]=new Circle(2.0);
        //**********Found**********
        fig[2]=new Rectangle(2.0,3.0) ;
        for(int i=0;i<3;i++)
        //**********Found**********
            System.out.println("The area of figure "+i+" is:"+ fig[i].area() );
    }
}

综合应用

在考生文件夹中存有文件名为Java_3.java的文件,该程序是不完整的,请在注释行"//Found*"下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。

该程序的功能是统计素数个数:当用户在“N值”后面输入一个正整数(大于等于5)时,点击按钮“计算”后,计算出小于等于该值的所有素数,并在下方的区域中显示出素数的个数(注意该区域不能进行编辑)。下图所示的是可能的运行的界面显示:

程序的实现中使用了性质:一个整数的因子小于或等于其平方根。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Java_3  extends JFrame implements ActionListener{
    JTextField nval = new JTextField(10);
    //**********Found**********
    JButton calcBtn = _________ ;
    JTextArea result = new JTextArea(10,20);
    void initFrame(){
        Container content = getContentPane();
        JPanel calcPanel = new JPanel();				
        calcPanel.add(new JLabel("N值"));
        //**********Found**********
        calcPanel._________;
        calcPanel.add(calcBtn)          ;
        content.add(calcPanel,"North");
        //**********Found**********
        calcBtn._________;       
        content.add(result,"Center");
        result. setEditable(false)  ;    
    }

    public Java_3(){
        super("计算素数");
        setSize(500,200);
        initFrame();		
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
    }

    public void actionPerformed(ActionEvent e){
        if(e.getSource()==calcBtn){
            int N=Integer.parseInt(nval.getText());
            int [] prime=new int[N/3+2];
            prime[0]=2;prime[1]=3;
            int k=2;
            for(int m=5;m<=N;m+=2){
                int j=1,isprime=1;
                int kk=Math.round((float)Math.sqrt(m));
                while(prime[j]<=kk){
                    if(m%prime[j]==0){
			//**********Found**********
                        _________=0;    
                        break;
                    }else    
                        //**********Found**********
                        ___________  ;
                }
                if(isprime==1) prime[k++]=m;
            }
            //**********Found**********
            String str="Total prime number: "+_________ ;
            result.setText("");
            result.append(str );   
        }
    }

    public static void main(String[] args){
        new Java_3();
    }
}

本题中的第一空:由题面中给出的"点击按钮"计算"后",将JButton类的对象calcBtn初始化,所以此处填写new JButton(“计算”);
本题中的第二空:使用add方法将组件添加到面板calcPanel中,这里需要将JTextField类的对象nval添加到面板中,此处填写add(nval);
本题中的第三空:为按钮calcBtn添加监听事件,而类Java_3中实现了接口ActionListener,所以此处填写addActionListener(this);
本题中的第四空:使用if选择结构判断一个数是否是素数,当这个数不是素数的时候,将0赋值给变量isprime,即isprime=0,所以此处填写isprime。
本题中的第五空:使用if选择结构判断一个数是否是素数,当这个数是素数的时候,将变量j加1,所以此处填写j++;
本题中的第六空:程序执行完成后输出的是表示小于等于输入的整数n的素数的总数,代码中的定义的整型变量k表示素数的个数,所以此处填写k。

本评析仅作参考。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Java_3  extends JFrame implements ActionListener{
    JTextField nval = new JTextField(10);
    //**********Found**********
    JButton calcBtn = new JButton("计算");
    JTextArea result = new JTextArea(10,20);
    void initFrame(){
        Container content = getContentPane();
        JPanel calcPanel = new JPanel();				
        calcPanel.add(new JLabel("N值"));
        //**********Found**********
        calcPanel.add(nval);
        calcPanel.add(calcBtn)          ;
        content.add(calcPanel,"North");
        //**********Found**********
        calcBtn.addActionListener(this);       
        content.add(result,"Center");
        result. setEditable(false)  ;    
    }

    public Java_3(){
        super("计算素数");
        setSize(500,200);
        initFrame();		
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
    }

    public void actionPerformed(ActionEvent e){
        if(e.getSource()==calcBtn){
            int N=Integer.parseInt(nval.getText());
            int [] prime=new int[N/3+2];
            prime[0]=2;prime[1]=3;
            int k=2;
            for(int m=5;m<=N;m+=2){
                int j=1,isprime=1;
                int kk=Math.round((float)Math.sqrt(m));
                while(prime[j]<=kk){
                    if(m%prime[j]==0){
			//**********Found**********
                        isprime=0;    
                        break;
                    }else    
                        //**********Found**********
                        j++  ;
                }
                if(isprime==1) prime[k++]=m;
            }
            //**********Found**********
            String str="Total prime number: "+ k ;
            result.setText("");
            result.append(str );   
        }
    }

    public static void main(String[] args){
        new Java_3();
    }
}
posted @   槑孒  阅读(650)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示