2004Java程序设计》
上机练习题
(共包括四部分、16个练习、共96个练习题,请使用“视图”中的“文档结构图”查看)
一、java语言基础和面向对象(教材内容的第123章)
练习14
掌握:各种数据类型变量的定义和访问,各种数据类型常量的使用,数据类型转换。
1. 编写Applet,其功能为:取两个小于1000的正随机数,若两个数均小于10,先将它们都放大50倍,否则不改变这两个数。最后,求这两个数的和并将结果输出。要求这些功能在主类的方法init( ) 中实现,并使输出结果仅保留小数点后4位(不需四捨五入)。
@程序
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet
{   
    public void init( )
    {
        Label out1=new Label("                              ");
        Label out2=new Label("                              ");
        double x,y;
       
        add(out1); 
        add(out2);
        x=Math.random( )*1000;
        y=Math.random( )*1000;   
        if(x<10&y<10) {  x*=50;    y*=50;    }
        out1.setText(""+x+"+"+y+" 约等于 ");
        out2.setText(""+(int)((x+y)*10000)/10000.0);
    }
}
2. 请编写一个Applet,其功能为:取一个小于10000的正随机整数,并输出该数的平方根。要求这些功能在主类的方法paint( ) 中实现,并使输出结果在四捨五入后保留小数点后4位。
@程序
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet
{   
    public void paint(Graphics g)
    {
        int k;
        k=(int)(Math.random( )*1000);
        g.drawString(""+k+" 的平方根约等于 "+
                    (int)((Math.sqrt(k)+0.00005)*10000)/10000.0,20,20);
    }
}
3. 编写一个Applet,其功能为:取一个50~200之间的正随机整数,如果该数为奇数则求它的平方根并转换成float型数后再输出;如果该数为偶数则求它的平方并输出。
@程序
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet
{   
    public void paint(Graphics g)
    {
        int k;
        k=50+(int)(Math.random( )*150);
        if(k%2!=0)
          g.drawString(""+k+" 的平方根约等于 "+(float)Math.sqrt(k),20,20);
        else
          g.drawString(""+k+" 的平方等于 "+k*k,20,20);   
    }
}
4. 请编写一个Application,其功能为:取一个小于800的正随机整数,将其以如下形式输出:
              所取随机数为:***
              它的百位数字为:*
              它的十位数字为:*
              它的个位数字为:*
@程序
//import java.io.*;
public class Class1
{
    public static void main (String[] args)
    {
        int x=(int)(Math.random( )*800);
        System.out.println("所取随机数为:"+x);
        System.out.println("它的百位数字为:"+x/100);
        System.out.println("它的十位数字为:"+x%100/10);
        System.out.println("它的个位数字为:"+x%10);
        //try{  ad( );  }catch(IOException e){  }
    }
}
练习25
掌握:(1)数组的定义、创建和初始化。executebatch使用
    2)方法的定义和调用。vba命令大全
    3)方法的参数是数组、方法的返回值是数组的编程。
    4)方法的递归调用。
    5)在应用程序中,接受并处理命令行参数。
1.请编写一个Applet,其中定义了两个double类型数组ab,还定义了一个方法square( )。数组a各元素的初值依次为1.22.33.44.55.6 数组b各元素的初值依次为9.88.77.66.55.44.3;方法square( )的参数为double类型的数组,返回值为float类型的数组,功能是将参数各元素的平方做为返回数组的元素的值。请在方法paint()中分别以ab为实在参数调用方法square( ),并将返回值输出在屏幕上。要求调用square( a )的返回数组输出在Applet的一行上,数组的第一个元素的输出坐标为(2020),其后的每个元素间隔40个像素。调用square( b )的返回数组输出在Applet的一列上,即下标为i+1(i=0,1,2,3,......)的元素的值,在下标为i的元素的值的正下方,其返回数组的第一个元素的输出坐标为(2040),行隔为20像素。
@程序
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet
{   
    double a[ ]={1.2,2.3,3.4,4.5,5.6};
    double[ ] b={9.8,8.7,7.6,6.5,5.4,4.3};
   
    public void paint(Graphics g)
    {
        float[ ] x=new float[a.length];
        float[ ] y=new float[b.length];
        x=square(a);
        y=square(b);
        for(int i=0; i<x.length;i++)
            g.drawString(""+x[i],20+i*40,20);
        for(int i=0; i<y.length;i++)
            g.drawString(""+y[i],20,40+i*20);
    }
    float[ ] square(double x[ ])
    {
        float[ ] y=new float[x.length];
        for(int i=0; i< x.length; i++)
            y[i]=(float)(x[i]*x[i]);
        return  y;
    }
}

2. 请编写一个Application实现如下功能:在主类中定义两个double类型数组ab,再定义一个方法sqrt_sum( )。数组a各元素的初值依次为1.22.33.44.55.6 数组b各元素的初值依次为9.8下拉框优化8.77.66.55.44.3;方法sqrt_sum ( )的参数为double类型的数组,返回值类型为float,功能是求参数各元素的平方根之和。请在主方法main()中分别以ab为实在参数调用方法sqrt_sum ( )java为什么要配环境变量,并将返回值输出在屏幕上。
@程序
//import java.io.*;
public class Class1
{
    static double a[ ]={1.2,2.3,3.4,4.5,5.6};
    static double b[ ]={9.8,8.7,7.6,6.5,5.4,4.3};
    public static void main (String[] args)
    {
        System.out.println("数组a各元素的平方根之和为:"+sqrt_sum(a));
        System.out.println("数组b各元素的平方根之和为:"+sqrt_sum(b));
        //try{ char c=(char)ad( );}catch(IOException e){ }
    }
    static float sqrt_sum(double[ ] x)
    {
java经典上机编程题        double y=0.0;
        for(int i=0; i<x.length; i++)
            y+=Math.sqrt(x[i]);
        return (float)y;
    }
}
3. 请编写一个Application实现如下功能:在主类中定义方法f1(int  n) 和方法f2(int  n),它们的功能均为求 n!,方法pascal语言现状f1( ) 用循环实现,方法f2( )用递归实现 。在主方法main( ) 中,以4为实在参数分别调用方法f1( ) 和方法f2( ),并输出调用结果。
@程序
//import java.io.*;
public class Class1
{
    public static void main (String[] args)
    {
        System.out.println("用循环实现求 n! 的结果(n=4):"+f1(4));
        System.out.println("用递归实现求 n! 的结果(n=4):"+f2(4));
        //try{ char c=(char)ad( );}catch(IOException e){ }
    }
    static long f1(int n)
    {
        long k=1;
        for(int i=1;i<=n;i++)
            k*=i;
        return k;
    }
    static long f2(int n)
    {
        if(n==1)  return 1;
        else    return n*f2(n-1);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。