Java二级操作题第42套

基本操作

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

程序的功能是:提示用户输入大于0的整数n,利用近似公式计算自然数e的近似值:e=1+(1/1!)+(1/2!)+…+(1/n!),并打印出该近似值
例如输入10时,输出结果为e的近似值为:
2.7182818011463845

import java.lang.*;
import java.util.*;
public class Java_1 {
    public static void main(String[] args){
        int n;
        double e = 1.0;
        System.out.print("请输入n:  ");
        //***************************Found*********************    
        Scanner scan = new Scanner (__________);
        String nstr = scan.next(); 
        //***************************Found*********************    
        n = Integer.______(nstr);
        double t = 1.0;
        for(int i=1;i<=n;i++){
            //***************************Found*********************    
            t =  _________;
            e = e + t;
        }
        System.out.print("e 的近似值为: "+e);
    }		
}

本题着重考查考生对Java语言基本数据类型的掌握情况。
本题中的第一个空格:根据题干获取用户输入的值,创建 Scanner 对象的基本语法为Scanner s = new Scanner(System.in),因此此处填入System.in;
本题中的第二个空格:scanner获取的数据类型为string,将其强制转换为int,因此此处填入parseInt;
本题中的第三个空格:结合题干,1除以n,n自增,因此此处填入t/i;(牛呀,我真没想到还可以这样操作(๑•̀ㅂ•́)و✧)

本评析仅作参考。

import java.lang.*;
import java.util.*;
public class Java_1 {
    public static void main(String[] args){
        int n;
        double e = 1.0;
        System.out.print("请输入n:  ");
        //***************************Found*********************    
        Scanner scan = new Scanner (System.in);
        String nstr = scan.next(); 
        //***************************Found*********************    
        n = Integer.parseInt(nstr);
        double t = 1.0;
        for(int i=1;i<=n;i++){
            //***************************Found*********************    
            t =  t/i;
            e = e + t;
        }
        System.out.print("e 的近似值为: "+e);
    }		
}

简单应用

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

程序的功能是:将一个字符串数组中指定序号后的元素全部输出,如果指定的序号小于0,则序号被赋予0;如果指定的序号大于数组元素的最大序号,则序号被赋予最大的序号。程序的运行结果如下:
one two three four five

//***************************Found********************* 
class PrintStrings implements ________{   
   int ind = 0 ;
   //***************************Found********************* 
   ______ strings = { "one", "two", "three", "four", "five"};

   public PrintStrings( int n) {
      if( n < 0)
	 n = 0;
      else if ( n >= strings.length)
         //***************************Found********************* 
	 n = ___________ ;
      ind = n;
   }
   //***************************Found********************* 
   public void ____( ){
      while(ind < strings.length){
	 System.out.print(strings[ind] + "  ");
        //***************************Found********************* 
	 _____________;

      }
      System.out.println();
   }
}

public class Java_2{
   public static void main(String[] args){
      PrintStrings p = new PrintStrings(-1);
      //***************************Found********************* 	
      _________;
      t.start( ); 
   }
}

本题着重考查考生对Java语言线程的掌握情况。
本题中的第一个空格:根据Java_2类可以看出此处用线程的方式来实现,一般情况下我们使用实现Runnable接口来实现线程,此处填入Runnable;
本题中的第二个空格:strings是一个字符串型的数组,对strings的类型定义应该为String[],此处填入String[];
本题中的第三个空格:结合题干,如果指定的序号大于数组元素的最大序号,则序号被赋予最大的序号,此处填入strings.length-1;
本题中的第四个空格:线程要实现run方法,因此此处填入run;
本题中的第五个空格:结合题干,需要打印strings数组,因此要对ind进行自增,此处填入ind++;
本题中的第六个空格:t作为新开的线程,需要定义,p作为已经新建的对象可以作为参数传递,此处填入Thread t = new Thread( p );

本评析仅作参考。

//***************************Found********************* 
class PrintStrings implements Runnable{   
   int ind = 0 ;
   //***************************Found********************* 
   String[] strings = { "one", "two", "three", "four", "five"};

   public PrintStrings( int n) {
      if( n < 0)
	 n = 0;
      else if ( n >= strings.length)
         //***************************Found********************* 
	 n = strings.length - 1 ;
      ind = n;
   }
   //***************************Found********************* 
   public void run( ){
      while(ind < strings.length){
	 System.out.print(strings[ind] + "  ");
        //***************************Found********************* 
	 ind++;

      }
      System.out.println();
   }
}

public class Java_2{
   public static void main(String[] args){
      PrintStrings p = new PrintStrings(-1);
      //***************************Found********************* 	
      Thread t = new Thread(p);
      t.start( ); 
   }
}

综合应用

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

程序釆用Swing组件完成了四叶玫瑰线图形的绘制。三个单选按钮实现了按选定的颜色绘制四叶玫瑰线。
四叶玫瑰线的极坐标方程为:

程序的运行结果如下图所示:

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

//**************found*****************
public class Java_3 extends Frame ____________ ItemListener{
   Color color = Color.blue; 
   CheckboxGroup cg;
   Checkbox cb1,cb2,cb3;
	
   public Java_3(){
      cg = new CheckboxGroup();
      setSize(300,300);
      cb1 = new Checkbox("blue",cg,true);
      cb2 = new Checkbox("red",cg,true);
      cb3 = new Checkbox("green",cg,true);
      cg.setSelectedCheckbox(cb1);
      add(cb1);  add(cb2);  add(cb3);
      cb1.addItemListener(this);
      cb2.addItemListener(this);
      //**************found*****************
      ____________.addItemListener(this);
   }
	
   public void itemStateChanged(ItemEvent e){ 
      if(e.getSource()==cb1) 
         color=Color.blue;
      if(e.getSource()==cb2) 
         color=Color.red;
      if(e.getSource()==cb3) 
         color=Color.green;
      repaint();
   } 
	
   class MyEvent1 extends WindowAdapter { 
      public void windowClosing(WindowEvent e){ 
         System.exit(0); 
     }
   } 
	
   class MyEvent2 extends ComponentAdapter { 
      public void componentResized(ComponentEvent e){ 
         repaint(); 
      }
   }
	
   //**************found*****************
   public void ____________(Graphics g) { 
      int w = getWidth(),h=getHeight();
      int x0 = w/2,y0 = h/2; 
      g.setColor(color);
      g.drawLine(x0,0,x0,h);
      g.drawLine(0,y0,w,y0);
      double pi = 3.1415926,angle,rou;
      int r,i,x,y;
      for(r=10;r<200;r+=20){ 
         for(i=0;i<1023;i++){ 
				
            angle = i * pi/512; 
            rou = r * Math.sin(2*angle);
            x = (int)Math.round(rou*Math.cos(angle));
            y = (int)Math.round(rou*Math.sin(angle));
            g.drawOval(x0+x,y0+y,1,1);
          }
       }
   }
	
   public static void main(String[] args){  
      Java_3 f = new Java_3(); 
      MyEvent1 me1 = f.new MyEvent1();
      MyEvent2 me2 = f.new MyEvent2();
      //**************found*****************
      f.____________("四叶玫瑰线");  
      f.setLayout(new FlowLayout());  
      f.addWindowListener(me1);
      f.addComponentListener(me2);
      //**************found*****************
      f.____________(true);
   }	
}

本题着重考查考生对Java语言Swing组件中Frame的掌握情况。
本题中的第一个空格:ItemListener是一个标准接口,要使用implements关键字实现接口,此处填入implements;
本题中的第二个空格:cb1和cb2都是Checkbox类型,都添加了addItemListener监听,cb3也是checkboxgroup的一部分,也要添加addItemListener监听,此处填入cb3;
本题中的第三个空格:绘制的基本逻辑都应该写在paint函数中,当有改变时会通过repaint函数隐式调用paint重绘,此处填入paint;
本题中的第四个空格:四叶玫瑰线是frame标题,使用setTitle方法设置标题,此处填入setTitle;
本题中的第五个空格:frame定义完成后需要显示,使用setVisible方法,此处填入setVisible;

本评析仅作参考。

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

//**************found*****************
public class Java_3 extends Frame implements ItemListener{
   Color color = Color.blue; 
   CheckboxGroup cg;
   Checkbox cb1,cb2,cb3;
	
   public Java_3(){
      cg = new CheckboxGroup();
      setSize(300,300);
      cb1 = new Checkbox("blue",cg,true);
      cb2 = new Checkbox("red",cg,true);
      cb3 = new Checkbox("green",cg,true);
      cg.setSelectedCheckbox(cb1);
      add(cb1);  add(cb2);  add(cb3);
      cb1.addItemListener(this);
      cb2.addItemListener(this);
      //**************found*****************
      cb3.addItemListener(this);
   }
	
   public void itemStateChanged(ItemEvent e){ 
      if(e.getSource()==cb1) 
         color=Color.blue;
      if(e.getSource()==cb2) 
         color=Color.red;
      if(e.getSource()==cb3) 
         color=Color.green;
      repaint();
   } 
	
   class MyEvent1 extends WindowAdapter { 
      public void windowClosing(WindowEvent e){ 
         System.exit(0); 
     }
   } 
	
   class MyEvent2 extends ComponentAdapter { 
      public void componentResized(ComponentEvent e){ 
         repaint(); 
      }
   }
	
   //**************found*****************
   public void paint(Graphics g) { 
      int w = getWidth(),h=getHeight();
      int x0 = w/2,y0 = h/2; 
      g.setColor(color);
      g.drawLine(x0,0,x0,h);
      g.drawLine(0,y0,w,y0);
      double pi = 3.1415926,angle,rou;
      int r,i,x,y;
      for(r=10;r<200;r+=20){ 
         for(i=0;i<1023;i++){ 
				
            angle = i * pi/512; 
            rou = r * Math.sin(2*angle);
            x = (int)Math.round(rou*Math.cos(angle));
            y = (int)Math.round(rou*Math.sin(angle));
            g.drawOval(x0+x,y0+y,1,1);
          }
       }
   }
	
   public static void main(String[] args){  
      Java_3 f = new Java_3(); 
      MyEvent1 me1 = f.new MyEvent1();
      MyEvent2 me2 = f.new MyEvent2();
      //**************found*****************
      f.setTitle("四叶玫瑰线");  
      f.setLayout(new FlowLayout());  
      f.addWindowListener(me1);
      f.addComponentListener(me2);
      //**************found*****************
      f.setVisible(true);
   }	
}
posted @   槑孒  阅读(398)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示