天天看點

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次後每個面出現的頻率(起始面是随機的),某次程式結果如下: 

Java二級操作題第27套
//*********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個同心圓。

程式運作結果如下: 

Java二級操作題第27套
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);
   }
}