Java二级操作题第33套

基本操作

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

程序的功能是:先把一组字符写入文件"test.dat"中,再从该文件中读出数据放在数组中,打印输出该数组。执行程序后,输出的结果为:
a b c d e f g h i

import java.io.*;

public class Java_1 {
  public static void main(String[] args) {
    char[] charArray = {'a','b','c','d','e','f','g','h','i'};
    char c  ;
    try{
//*********Found**********
        DataOutputStream out = new ______________________(
               new FileOutputStream("test.dat"));
        for(int i =0; i<charArray.length; i++){
           out.writeChar(charArray[i]);
        }
        out.close();		
        DataInputStream in = new DataInputStream(
//*********Found**********
               new FileInputStream("____________________"));
        while(in.available() != 0){
           c=in.readChar();
           System.out.print(c+" ");
        }
        System.out.println();
//*********Found**********
        in.____________________();
    }catch(IOException e){}
  }
}

本题考查的是IO。
由代码可以得知,out是一个DataOutputStream对象,DataOutputStream非接口而是类,所以第一空填写"DataOutputStream"。
题目要求将字符输入到文件test.dat中,FileInputStream是文件输入流,所以第二空填写"test.dat"。
输入流在操作结束后需要做关闭操作,所以第三空填写"close"。

具体程序如下:

import java.io.*;

public class Java_1 {
  public static void main(String[] args) {
    char[] charArray = {'a','b','c','d','e','f','g','h','i'};
    char c  ;
    try{
//*********Found**********
        DataOutputStream out = new DataOutputStream(
               new FileOutputStream("test.dat"));
        for(int i =0; i<charArray.length; i++){
           out.writeChar(charArray[i]);
        }
        out.close();		
        DataInputStream in = new DataInputStream(
//*********Found**********
               new FileInputStream("test.dat"));
        while(in.available() != 0){
           c=in.readChar();
           System.out.print(c+" ");
        }
        System.out.println();
//*********Found**********
        in.close();
    }catch(IOException e){}
  }
}

简单应用

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

本题的要求是:
在1-n之间的自然数中,每次抽取k个数字来抽奖,计算中奖几率的算法为:
n(n-1)(n-2)…(n-k+1)/(123…k)
完善程序,实现中奖几率的计算。
例如,在输入窗口中输入3, 

然后在如下的显示窗口输入20,

则程序最终的运行结果是:
你中奖的几率是1/1140. Gook luck!

//*********Found**********
import _______________.*;

public class Java_2{
  public static void main(String[] args){
//*********Found**********
    _____________ input = JOptionPane.showInputDialog("你想抽几个数?");
    int k = Integer.parseInt(input);
    input = JOptionPane.showInputDialog("你想在自然数中抽的最大数是几?");
    int n = Integer.parseInt(input);
    int lotteryOdds = 1;
//*********Found**********
    for (int i = 1; i <= _________; i++)
       lotteryOdds = lotteryOdds * (n - i + 1)/i;
//*********Found**********
    System.out.println("你中奖的几率是1/" + __________________ + ". Good luck!");
    System.exit(0);
  }
}

本题考查的是JavaSwing。
JOptionPane属于javax.swing包下的类,所以第一空填写"javax.swing"。
JOptionPane.showInputDialog(“你想抽几位数?”)返回的是一个字符串,所以第二空填写"String"。
循环的次数是共有几个数,所以第三空填写"k"。
lotteryOdds即中奖概率,所以第四空填写"lotteryOdds"。

具体程序如下:

//*********Found**********
import javax.swing.*;

public class Java_2{
  public static void main(String[] args){
//*********Found**********
    String input = JOptionPane.showInputDialog("你想抽几个数?");
    int k = Integer.parseInt(input);
    input = JOptionPane.showInputDialog("你想在自然数中抽的最大数是几?");
    int n = Integer.parseInt(input);
    int lotteryOdds = 1;
//*********Found**********
    for (int i = 1; i <= k; i++)
       lotteryOdds = lotteryOdds * (n - i + 1)/i;
//*********Found**********
    System.out.println("你中奖的几率是1/" + lotteryOdds + ". Good luck!");
    System.exit(0);
  }
}

综合应用

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

本题的要求是:
用阶乘函数的递归定义:n!=n*(n-1)!计算0至10的阶乘的值,使小程序结果如下: 

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

//*********Found**********
public class Java_3 extends _____________________{
   JTextArea outputArea;
   public void init(){
      outputArea = new JTextArea();
//*********Found**********
      Container c = ____________________();
//*********Found**********
      c.add( __________________ );
      //计算0至10的阶乘
      for ( long i = 0; i <= 10; i++ )
         outputArea.append(
            i + "! = " + factorial( i ) + "\n" );
   }  
   //阶乘的递归定义
   public long factorial( long number ){                  
      if ( number <= 1 ) 
         return 1;
      else
         return number * factorial( number - 1 );
   }  
}

本题考查的是Applet。
根据题意所需要的是启动一个小程序,所以第一空填写"JApplet"。
Container接收的是一个全局上下文的Panel,所以第二空填写"getContentPane"。
根据题意需要将文本域加入到小程序中,所以第三空填写"outputArea"。

具体程序如下:

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

//*********Found**********
public class Java_3 extends JApplet{
   JTextArea outputArea;
   public void init(){
      outputArea = new JTextArea();
//*********Found**********
      Container c = getContentPane();
//*********Found**********
      c.add( outputArea );
      //计算0至10的阶乘
      for ( long i = 0; i <= 10; i++ )
         outputArea.append(
            i + "! = " + factorial( i ) + "\n" );
   }  
   //阶乘的递归定义
   public long factorial( long number ){                  
      if ( number <= 1 ) 
         return 1;
      else
         return number * factorial( number - 1 );
   }  
}
posted @   槑孒  阅读(343)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示