没有合适的资源?快使用搜索试试~ 我知道了~
Java程序练习100题
5星 · 超过95%的资源 需积分: 35 16 下载量 102 浏览量
2012-01-12
07:56:24
上传
评论 4
收藏 271KB DOC 举报
温馨提示
试读
64页
很好很强大 包括:java语言基础和面向对象 (1)数组的定义、创建和初始化。 (2)方法的定义和调用。 (3)方法的参数是数组、方法的返回值是数组的编程。 (4)方法的递归调用。 (5)在应用程序中,接受并处理命令行参数。
资源推荐
资源详情
资源评论
上机练习题
一、java 语言基础和面向对象
练习 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{ System.in.read( ); }catch(IOException e){ }
}
}
练习 2(5)
掌握:(1)数组的定义、创建和初始化。
(2)方法的定义和调用。
(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 ( ),并将返回值输出在屏幕上。
@程序
//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)System.in.read( );}catch(IOException e){ }
}
static float sqrt_sum(double[ ] x)
{
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!,方法 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)System.in.read( );}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);
}
}
4. 请编写一个 Application 实现如下功能:接受命令行中给出的三个参数 x1、x2 和 op,其中 x1 和
x2 为 float 型数,op 是某个算数运算符(+、 —、*、/ 之一),请以如下形式输出 x1 和 x2 执行 op
运算后的结果(假设 x1 的值为 269,x2 的值为 18,op 为运算符—):
269 – 18=251
@程序
public class Class1
{
public static void main (String[] args)
{
float x,y;
char op;
if(args.length >= 3)
{
x=Float.valueOf(args[0]).floatValue( );
y=Float.valueOf(args[1]).floatValue( );
op=args[2].charAt(0);
switch(op)
{
case '+': System.out.println(x+"+"+y+"="+(x+y)); break;
case '-': System.out.println(x+"-"+y+"="+(x-y)); break;
case '*': System.out.println(x+"*"+y+"="+(x*y)); break;
case '/': System.out.println(x+"/"+y+"="+(x/y)); break;
default : System.out.println("非法运算符!");
}
}
else { System.out.println("命令行参数错!"); System.exit(-1); }
}
}
5. 编写 Application,主类中包含以下两个自定义方法: void printA( int[ ] array )和 int[] myArray(int
n)。方法 printA(int[ ] array)的功能是把参数数组各元素在屏幕的一行中输出。方法 myArray(int n)
的功能是生成元素值是 50~100 之间的随机值的 int 型数组,数组元素的个数由参数 n 指定。在应用
程序的 main( )方法中,用命令行传入的整数作为 myArray(int n) 方法调用时的实际参数,生成
一个整型数组,并调用方法 printA( )输出该数组的所有元素。
@程序
public class Class1
{
static int n;
public static void main (String[] args)
{
if(args.length > 0)
{
n=Integer.parseInt(args[0]);
int[ ] a=new int[n];
a=myArray(n);
printA(a);
剩余63页未读,继续阅读
资源评论
- afaand202014-03-21已经下载了。并且使用了。谢谢分享!
wolf丶
- 粉丝: 20
- 资源: 18
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功