Java二级操作题第27套

基本操作

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

本题的要求是:
计算并打印1,3,5,7的阶乘以及这些阶乘的和。
完成程序,使程序输出结果如下:
1!=1
3!=6
5!=120
7!=5040
sum=5167

public class Java_1
{
   
   public static void main(String[] args)
   {
      long sum;
      //*********Found**********
      ___________________;
      for(int i=1;i<8;i+=2){
          long b=1;
          //*********Found**********
          for(int j=1; j<=___________; j++) 
          //*********Found**********  
              __________________;
          System.out.println( i + "!= " + b);
          sum+=b;
      }
      System.out.println("sum=" + sum);
      
   }
}

本题考查的是变量初始化。
Long sum;这段代码中,并没有给sum赋值,而后面的代码中却将sum进行了计算,这样一来则会报错,所以第一空填写"sum = 0"。
本例中要求的是阶乘,第一层循环中定义了b = 1,第二层循环中定义了j小于等于i,所以第二空填空"i",b为阶乘结果,所以第三空填写"b = b * j"。

具体程序如下:

public class Java_1
{
   
   public static void main(String[] args)
   {
      long sum;
      //*********Found**********
      sum=0;
      for(int i=1;i<8;i+=2){
          long b=1;
          //*********Found**********
          for(int j=1; j<=i; j++) 
          //*********Found**********  
              b*=j;
          System.out.println( i + "!= " + b);
          sum+=b;
      }
      System.out.println("sum=" + sum);
      
   }
}

简单应用

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

本题的要求是:
统计骰子旋转500次后每个面出现的频率(起始面是随机的),某次程序结果如下: 

//*********Found**********
import javax.________________.*;
public class Java_2{
   public static void main( String args[] ){
      int frequency1 = 0, frequency2 = 0,
          frequency3 = 0, frequency4 = 0,
          frequency5 = 0, frequency6 = 0, face; 
      //骰子旋转500次的代码
      for ( int roll = 1; roll <= 500; roll++ ) {
         face = 1 + (int) ( Math.random() * 6 );
//*********Found**********
         switch ( __________________ ) {
            case 1:
               ++frequency1;
               break;
            case 2:
               ++frequency2;
               break;
            case 3:
               ++frequency3;
               break;
            case 4:
               ++frequency4;
               break;
            case 5:
               ++frequency5;
               break;
            case 6:
               ++frequency6;
               break;
         }
      }
//*********Found**********
      JTextArea outputArea = _____________________ JTextArea( 7, 10 );
      outputArea.setText(
         "面\t频率" +
         "\n1\t" + frequency1 +
         "\n2\t" + frequency2 +
         "\n3\t" + frequency3 +
         "\n4\t" + frequency4 +
         "\n5\t" + frequency5 +
         "\n6\t" + frequency6 );
//*********Found**********
      JOptionPane.showMessageDialog( null, ___________________,
         "骰子旋转500次",
         JOptionPane.INFORMATION_MESSAGE );
//*********Found**********
      System.____________________( 0 );
   }
}

本题考查的是JavaSwing。
由代码上下文可知。本题将用到javax.swing相关包,所以第一空填写"swing"。
由题意得知需要判断骰子每一面出现的次数,在本例中,循环内的face变量即为随机骰子数是几,在之后的switch中可看出,能够根据变量对相应的出现面数的变量做加法操作,所以switch里应判断face变量,所以第二空填写"face"。
JTextArea是一个文本域对象,需要new关键字来实例化,所以第三空填写"new"。
JOptionPane.showMessageDialog是创建一个提示框窗口,第二个参数是加入其中的组件,根据题意得知,需要加入的是outputArea文本域对象,所以第四空填写"outputArea"。
最后程序退出,所以第五空填写"exit"。

具体程序如下:

//*********Found**********
import javax.swing.*;
public class Java_2{
   public static void main( String args[] ){
      int frequency1 = 0, frequency2 = 0,
          frequency3 = 0, frequency4 = 0,
          frequency5 = 0, frequency6 = 0, face; 
      //骰子旋转500次的代码
      for ( int roll = 1; roll <= 500; roll++ ) {
         face = 1 + (int) ( Math.random() * 6 );
//*********Found**********
         switch ( face ) {
            case 1:
               ++frequency1;
               break;
            case 2:
               ++frequency2;
               break;
            case 3:
               ++frequency3;
               break;
            case 4:
               ++frequency4;
               break;
            case 5:
               ++frequency5;
               break;
            case 6:
               ++frequency6;
               break;
         }
      }
//*********Found**********
      JTextArea outputArea = new JTextArea( 7, 10 );
      outputArea.setText(
         "面\t频率" +
         "\n1\t" + frequency1 +
         "\n2\t" + frequency2 +
         "\n3\t" + frequency3 +
         "\n4\t" + frequency4 +
         "\n5\t" + frequency5 +
         "\n6\t" + frequency6 );
//*********Found**********
      JOptionPane.showMessageDialog( null, outputArea,
         "骰子旋转500次",
         JOptionPane.INFORMATION_MESSAGE );
//*********Found**********
      System.exit( 0 );
   }
}

综合应用

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

本题的要求是:
利用D0/While循环语句编写Applet程序,实现画10个同心圆。
程序运行结果如下: 

import java.awt.Graphics;
import javax.swing.JApplet;

//*********Found**********
public class Java_3 extends __________________ {
//*********Found**********
   public void paint(________________ g){
      int counter = 1;
      do {
//*********Found**********
         ___________.drawOval( 110 - counter * 10, 110 - counter * 10,
                     counter * 20, counter * 20 );
//*********Found**********
         ___________________;
      } while (counter<=10);
   }
}

本题考查的是画板。
根据题意得知,需要创建的是Applet程序,所以第一空填写"JApplet"。
Paint方法是绘制容器的画布方法,Graphics是其参数,表示画笔,所以第二空填写"Graphics"。
drawOval是画圆方法,为画笔对象下的方法,所以第三空填写"g"。
根据题意得知需要画同心圆,而每一个同心圆是越来越小的,那么counter根据代码上下文可看出,是每一次画圆后减去的长度继续画下一个圆,所以这里让counter每次循环都增加一次即可,所以第四空填写"counter++"。

具体程序如下:

import java.awt.Graphics;
import javax.swing.JApplet;

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