2004《Java程序设计》
上机练习题
(共包括四部分、16个练习、共96个练习题,请使用“视图”中的“文档结构图”查看)
一、java语言基础和面向对象(教材内容的第1、2、3章)
练习1(4)
掌握:各种数据类型变量的定义和访问,各种数据类型常量的使用,数据类型转换。
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){ }
}
}
练习2(5)
掌握:(1)数组的定义、创建和初始化。executebatch使用
(2)方法的定义和调用。vba命令大全
(3)方法的参数是数组、方法的返回值是数组的编程。
(4)方法的递归调用。
(5)在应用程序中,接受并处理命令行参数。
1.请编写一个Applet,其中定义了两个double类型数组a和b,还定义了一个方法square( )。数组a各元素的初值依次为1.2、2.3、3.4、4.5、5.6, 数组b各元素的初值依次为9.8、8.7、7.6、6.5、5.4、4.3;方法square( )的参数为double类型的数组,返回值为float类型的数组,功能是将参数各元素的平方做为返回数组的元素的值。请在方法paint()中分别以a和b为实在参数调用方法square( ),并将返回值输出在屏幕上。要求调用square( a )的返回数组输出在Applet的一行上,数组的第一个元素的输出坐标为(20,20),其后的每个元素间隔40个像素。调用square( b )的返回数组输出在Applet的一列上,即下标为i+1(i=0,1,2,3,......)的元素的值,在下标为i的元素的值的正下方,其返回数组的第一个元素的输出坐标为(20,40),行隔为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类型数组a和b,再定义一个方法sqrt_sum( )。数组a各元素的初值依次为1.2、2.3、3.4、4.5、5.6, 数组b各元素的初值依次为9.8、下拉框优化8.7、7.6、6.5、5.4、4.3;方法sqrt_sum ( )的参数为double类型的数组,返回值类型为float型,功能是求参数各元素的平方根之和。请在主方法main()中分别以a和b为实在参数调用方法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小时内删除。
发表评论