Java二级操作题第36套

基本操作

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

本题的要求是:
该程序的功能是找出三个数中值的大小位于中间的数,并输出该值。程序运行结果为: median = 15

import java.io.*;

public class Java_1
{
    public static void main(String args[])
    {
        int a=15,b=25,c=5,m;
        
        if(a>b){
        //*********Found**********
            if(_____________)
                m=b;
            else
               //*********Found**********
               m=(a>c)? _____________;
        }else{
           if(a>c)
               //*********Found**********
               _____________;
           else
               m=(b>c)? c:b;
        }
        //*********Found**********
        System.out.println("median = " + ______);
        
    }
}

本题着重考察考生对Java语言判断数字大小的掌握情况。
本题中的第一个空格:在a>b时,要想m=b,则b必须大于c,因此此处空格填入"b>c";
本题中的第二个空格:在java语言中,"?:"为三目运算符,由题干意思可以看出,a>c则m=c,否则m=a,因此此处空格填入c:a;
本题中的第三个空格:由程序可知a<b,a>c,a为中间数,因此m=a,因此此处空格填入m=a;
本题中的第四个空格:程序最终要输出中间值,m存储的即为中间值,因此此处空格填入m。

本评析仅作参考。

import java.io.*;

public class Java_1
{
    public static void main(String args[])
    {
        int a=15,b=25,c=5,m;
        
        if(a>b){
        //*********Found**********
            if(b>c)
                m=b;
            else
               //*********Found**********
               m=(a>c)? c:a;
        }else{
           if(a>c)
               //*********Found**********
               m=a;
           else
               m=(b>c)? c:b;
        }
        //*********Found**********
        System.out.println("median = " + m);
        
    }
}

简单应用

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

下面程序的功能是:给出一些学生的若干门课的成绩,计算所有成绩的中的最高分,及每个同学所有各门课的平均成绩。
程序运行结果如下:

import java.awt.*;
import javax.swing.*;

public class Java_2{
    int grades[][] = { { 77, 68, 86, 73 },
                        { 96, 87, 89, 81 },
                        { 70, 90, 86, 81 } };
    int students, exams;
    String output;
    JTextArea outputArea;
    
    public Java_2(){    
        students = grades.length;
        exams = grades[ 0 ].length;
        
        JFrame f = new JFrame();
        f.setSize(300,300);
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //*********Found**********
        outputArea = new ________________();
        Container c = f.getContentPane();
        //*********Found**********
        c.add( ________________ );
        
        output = "数组是:";
        buildString();
        output += "\n\n最高分: " + maximum() + "\n";
         //*********Found**********
        for ( int i = 0; i < ________________; i++ )
            output += "\n第" + (i+1) + "个学生的平均分是: " +
                    average( grades[ i ] );
         //*********Found**********
        outputArea.________________( output );
    }
    
    
    //找最高分
    public int maximum(){
        int highGrade = 0;
        for ( int i = 0; i < students; i++ )
            for ( int j = 0; j < exams; j++ )
                if ( grades[ i ][ j ] > highGrade )
                     //*********Found**********
                    highGrade = ________________;
        return highGrade;
    }
    //对各组学生确定平均分
    public int average( int setOfGrades[] ){
        int total = 0;
        for ( int i = 0; i < setOfGrades.length; i++ )
             //*********Found**********
            total += ________________;
       
        return total /exams;
    }
    //输出格式
    public void buildString(){
        output += "        ";
        for ( int i = 0; i < exams; i++ )
            output += "[" + i + "]   ";
        for ( int i = 0; i < students; i++ ) {
            output += "\ngrades[" + i + "]   ";
            for ( int j = 0; j < exams; j++ )
                output += grades[ i ][ j ] + "   ";
        }
    }
    
    public static void main(String[ ]args){
        new Java_2();
    }
}

本题着重考察考生对Java语言数组和文本框绘制的掌握情况。
本题中的第一个空格:由程序运行结果可以看出最终显示为文本区域,因此此处空格填入JTextArea;
本题中的第二个空格:容器初始化完成后要加入具体展示的内容,此处为创建好的JTextArea对象,因此此处空格填入outputArea;
本题中的第三个空格:要算出每个学生的平均分,需要以学生人数为最大值进行循环,因此此处空格填入students;
本题中的第四个空格:新建好的JTextArea对象需要设置显示的内容,使用setText方法,因此此处空格填入setText;
本题中的第五个空格:所有的成绩放在二维数组grades中,因此要对每个二维数组的值进行比较后将最大值存入highGrade,当二维数组值大于highGrade时则将该值存入,因此此处空格填入grades[i ][ j ];
本题中的第六个空格:计算平均分之前需要算好总分,要将每个学生的所有成绩相加,因此此处空格填入setOfGrades[ i ]。

本评析仅作参考。

import java.awt.*;
import javax.swing.*;

public class Java_2{
    int grades[][] = { { 77, 68, 86, 73 },
                        { 96, 87, 89, 81 },
                        { 70, 90, 86, 81 } };
    int students, exams;
    String output;
    JTextArea outputArea;
    
    public Java_2(){    
        students = grades.length;
        exams = grades[ 0 ].length;
        
        JFrame f = new JFrame();
        f.setSize(300,300);
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //*********Found**********
        outputArea = new JTextArea();
        Container c = f.getContentPane();
        //*********Found**********
        c.add( outputArea );
        
        output = "数组是:";
        buildString();
        output += "\n\n最高分: " + maximum() + "\n";
         //*********Found**********
        for ( int i = 0; i < grades.length; i++ )
            output += "\n第" + (i+1) + "个学生的平均分是: " +
                    average( grades[ i ] );
         //*********Found**********
        outputArea.setText( output );
    }
    
    
    //找最高分
    public int maximum(){
        int highGrade = 0;
        for ( int i = 0; i < students; i++ )
            for ( int j = 0; j < exams; j++ )
                if ( grades[ i ][ j ] > highGrade )
                     //*********Found**********
                    highGrade = grades[ i ][ j ];
        return highGrade;
    }
    //对各组学生确定平均分
    public int average( int setOfGrades[] ){
        int total = 0;
        for ( int i = 0; i < setOfGrades.length; i++ )
             //*********Found**********
            total += setOfGrades[i];
       
        return total /exams;
    }
    //输出格式
    public void buildString(){
        output += "        ";
        for ( int i = 0; i < exams; i++ )
            output += "[" + i + "]   ";
        for ( int i = 0; i < students; i++ ) {
            output += "\ngrades[" + i + "]   ";
            for ( int j = 0; j < exams; j++ )
                output += grades[ i ][ j ] + "   ";
        }
    }
    
    public static void main(String[ ]args){
        new Java_2();
    }
}

综合应用

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

程序的功能是:当正整数x,y,z的值小于某一界限值时,计算满足关系xx+5yy=zz的元素组(x,y,z)的个数,并将满足上述关系的值最小的一组元素及总的元素个数打印出来。程序中界限值设置为100时,运行结果如下:
The first conq>onent: (1, 4,9)
Total number is: 95

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

public class Java_3{
    
    public static void main(String[ ]args){
        int bound=100;
        int i=0,j=0,counter=0,k=0;
        int temp=0;
        boolean first=true;
        for(i=1;i<bound;i++){
            for(j=1;j<bound;j++){
                //*********Found**********
                temp=___________ +5*j*j;
                k=(int)Math.sqrt(temp);
                //*********Found**********
                if(k<bound && ___________ ){
                    if(first){
                        System.out.println("The first component: ("+i+", "+j+", "+k+")");
                        //*********Found**********
                        first=___________;
                    }
                    //*********Found**********
                    ___________;
                }
            };
        }
        System.out.print("Total number is: "+counter);     
        System.exit(0);     
    }
}

本题着重考察考生对程序逻辑的理解情况。
本题中的第一个空格:先将关系式左边xx+5yy计算出来存入变量中,因此此处空格填入ii;
本题中的第二个空格:k经过开根号后强制转换为int,k的值有可能由于不为整数发生了变化,因此必须确保kk=temp,因此此处空格填入kk==temp;
本题中的第三个空格:由于只需要满足条件的最小一组元素,为了确保不会再打印更多满足条件的数据,必须要使first为假,因此此处空格填入false;
本题中的第四个空格:程序要求输出满足条件的总的元素个数,且程序中打印的总数使用的是counter变量,因此此处空格填入counter++。

本评析仅作参考。

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

public class Java_3{
    
    public static void main(String[ ]args){
        int bound=100;
        int i=0,j=0,counter=0,k=0;
        int temp=0;
        boolean first=true;
        for(i=1;i<bound;i++){
            for(j=1;j<bound;j++){
                //*********Found**********
                temp=i*i +5*j*j;
                k=(int)Math.sqrt(temp);
                //*********Found**********
                if(k<bound && k*k==temp ){
                    if(first){
                        System.out.println("The first component: ("+i+", "+j+", "+k+")");
                        //*********Found**********
                        first=false;
                    }
                    //*********Found**********
                    counter++;
                }
            };
        }
        System.out.print("Total number is: "+counter);     
        System.exit(0);     
    }
}
posted @   槑孒  阅读(424)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示