《Java语言程序设计》上机练习题2及答案.pdf
《《Java语言程序设计》上机练习题2及答案.pdf》由会员分享,可在线阅读,更多相关《《Java语言程序设计》上机练习题2及答案.pdf(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java语言程序设计上机练习题2一、java语言基础和面向对象练习1 (4)掌握:各种数据类型变量的定义和访问,各种数据类型常量的使用,数据类型转换。1.编写A pplet,其功能为:取两个小于1000的正随机数,若两个数均小于1 0,先将它们都放大50倍,否则不改变这两个数。最后,求这两个数的和并将结果输出。要求这些功能在主类的方法init()中实现,并使输出结果仅保留小数点后4 位(不需四拾五入)。程序import java.awt.*;import java.applet.*;public class Applet 1 extends Applet(public void init()(
2、Label outl=new Label();Label out2=new Label。);double x,y;add(outl);add(out2);x=Math.random()*1000;y=Math.random()*1000;if(x10&y10)x*=50;y*=50;outl.setText(H,+x+4-,+y+n 约 等 于 );out2.setText(,H+(int)(x+y)*10000)/10000.0);)2.请编写一个A pplet,其功能为:取一个小于10000的正随机整数,并输出该数的平方根。要求这些功能在主类的方法paint()中实现,并使输出结果在四拾五
3、入后保留小数点后4 位。程序import java.awt.*;import java.applet.*;public class Applet!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.编写一个A pplet,其功能为:取一个50-200之间的正随机整数,如果该数为奇数则求它的平方根并转换成float型数后再输出;如果该数为偶数
4、则求它的平方并输出。程序import java.awt.*;import java.applet.*;public class Applet 1 extends Appletpublic 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);elseg.drawString(+k+的平方等于+k*k,20,20);)4.请编写一个Application,其功能为:取一个小于800的正随机整数,将其以如下形式输出
5、:所取随机数为:*它的百位数字为:*它的十位数字为:*它的个位数字为:*程序/import java.io.*;public class Classi(public static void main(Stringf 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.rea
6、d();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类型的数组,功能是将参数各元素的平方做为
7、返回数组的元素的值。请在方法paim()中分别以a 和 b 为实在参数调用方法square(),并将返回值输出在屏幕上。要求调用square(a)的返回数组输出在Applet的一行上,数组的第一个元素的输出坐标为(20,2 0),其后的每个元素间隔4 0 个像素。调 用 square(b)的返回数组输出在Applet的一列上,即下标为i+l(i=0,2,3,)的元素的值,在下标为i 的元素的值的正下方,其返回数组的第一个元素的输出坐标为(20,4 0),行隔为20像素。程序import java.awt.*;import java.applet.*;public class Applet 1
8、extends Applet(double a=1.223,3.4,4.5,5.6;doublet b=9.8,8.7,7.6,6.5,54,4.3;public void paint(Graphics g)(float J x=new floata.lengthj;float y=new floatb.length;x=square(a);y=square(b);fbr(int i=0;ix.length;i+)g.drawString(n+xi,20+i*40,20);for(int i=0;iy.length;i+)g.drawString(n+yi,20,40+i*20);Ifloat
9、 square(double x)float y=new floatx.length;for(int i=0;i x.length;i+)yi=(float)(xi*xi);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
10、()中分别以a 和 b 为实在参数调用方法sqrt.sum(),并将返回值输出在屏幕上。程序/import java.io.*;public class Classi(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
11、char c=(char)System.in.read();catch(IOException e)static float sqrt_sum(double x)(double y=0.0;fbr(int i=0;ix.length;i+)y+=Math.sqrt(xi);return(float)y;)3.请编写一个Application实现如下功能:在主类中定义方法fl(int n)和方法f2(int n),它们的功能均为求n!,方法f l()用循环实现,方法f2()用递归实现。在主方法m ain()中,以4 为实在参数分别调用方法f l()和方法&(),并输出调用结果。程序/import
12、 java.io.*;public class Classi(public static void main(StringlJ args)(System.out.println(用循环实现求 n!的结果(n=4):+fl(4);System.out.println(用递归实现求 n!的结果(n=4):+f2(4);/try char c=(char)System.in.read();catch(IOException e)static long fl(int n)long k=l;fbr(int i=l;i=3)(x=Float.valueOf(args0),floatValue();y=Fl
13、oat.valueOf(args 1 J).floatValue();op=args2.charAt(0);switch(op)(caseSyslem.out.prinUn(x+y+”=+(x+y);break;case System.out.println(x+n-n+y+,-n+(x-y);break;case System.out.println(x+n*,+y+,=+(x*y);break;case 7:System.out.println(x+,7+y+n=,+(x/y);break;default:System.out.println(非法运算符!”);)else System.o
14、ut.println(命令行参数错!”);System.exit(-l);5.编 写 Application,主类中包含以下两个自定义方法:void printA(int array)和 intmyArray(int n)o 方 法 printA(int array)的功能是把参数数组各元素在屏幕的一行中输出。方法myArray(int n)的功能是生成元素值是50100之间的随机值的int型数组,数组元素的个数由参数n指定。在应用程序的main()方法中,用命令行传入的整数作为myArray(int n)方法调用时的实际参数,生成一个整型数组,并调用方法printA()输出该数组的所有元素。
15、程序public class Classi(static int n;public static void main(String args)(if(args.length 0)(n=Integer.parseInt(argsO);int a=new intln;a=myArray(n);printA(a);)else System.oul.println(缺命令行参数!”);System.exit(-l);)static void printA(int J x)(fbr(int i=0;i x.length;i+)System.out.print(xi+);System.out.printl
16、n();return;)static int myArray(int k)(int x=new intfkl;fbr(int i=0;i k;i+)xi=50+(int)(Math.random()*50);return x;)练习3(3)掌握:方法的重载。1.请编写一个A pplet,其主类名为Apple”,其中包含两个同名方法arrayMin(),它们都只有一个参数,其中一个arrayMin()方法的参数为int型数组,返回值类型为int型数;另一个arrayMin()方法的参数为double型数组,返回值类型为double型数;这两个方法的功能均为返回参数数组元素的最小值。通过paint
17、()方法调用上述两个同名方法arrayM in(),求数组a(其元素的值依次为26,82,-3,65,18,9)和数组b(其元素的值依次为3.6,57.2,8.5,78.8)的最小元素的值并输出。程序import java.awt.*;import java.applet.*;public class Applet 1 extends Applet(int a=26,82,-3,65,18,9);double b=3.6,57.2,8.5,78.8;public void paint(Graphics g)(g.drawString(数组 a 的最小元素的值为:arrayMin(a),20,2
18、0);g.drawString(”数组 b 的最小元素的值为:“+arrayMin(b),20,40);)int arrayMin(int x)(int y=x0;for(int i=l;ixi)y=xi;return y;)double arrayMin(double x)(double y=x0;fbr(int i=1;ixi)y=xi;return y;)2.请编写一个Application,其主类名为C lassi,其中包含三个同名方法mySqrt。,它们都只有一个参数,参数的类型分别为int型、float型和double型,它们的功能均为返回参数的平方根,返回值的类型与参数的类型相同
19、。在主方法m ain()中调用上面的三个方法,这三个方法的参数均来自命令行参数,最后将计算结果输出在屏幕上。程序public class Classi(static int n;public static void main(String args)(if(args.length=3)(int n;float f;double d;n=Integer.parseInt(argsO);f=Float.valueOf(args 1 ).floatValue();d=Double.valueOf(args2).doubleValue();System.out.println(n+”的平方根为:H+m
20、ySqrt(n);System.out.println(f+”的平方根为:+mySqrt(f);System.out.println(d+”的平方根为:n+mySqrt(d);else System.out.println(缺命令行参数!);System.exit(-l);static int mySqrt(int x)return(int)Math.sqrt(x);static float mySqrt(float x)return(float)Math.sqrt(x);static double mySqrt(double x)return Math.sqrt(x);)3.请编写一个App
21、let,其主类名为Applet 1,其中包含三个同名方法addM(int x,byte y)addM(floatx,double y)、addM(double x,double y),它们的功能均为求两个参数之和,返回值类型与第一个参数的类型相同。在 主 类 Applet 1 中,通 过 paint()方法调用上面的三个方法,实 现 12345+67、89.6f+6.9e-8、0.987654321+32.1,然后将计算结果输出,输出位置分别为坐标(20,40)、(20,60)、(20,80)o 程序import java.awt.*;import java.applet.*;public c
22、lass Applet 1 extends Applet(public void paint(Graphics g)(g.drawString(n 12345+67=+addM(12345,67),20,40);g.drawString(89.6+6.9e-8=+addM(89.6f,6.9e-8),20,60);g.drawString(n0.987654321+32.1=+addM(0.987654321,32.1),20,80);)int addM(int x,byte y)return x+y;float addM(float x,double y)return(float)(x+y)
23、;double addM(double x,double y)return x+y;)练习4(3)掌握:(D(2)(3)类的继承。在子类中如何操作父类中的私有属性。变量的作用域。1.请编写A pplet,它由三个类定义组成,类名分别为A、B 和 Appletl:类 A 中定义了一个类型为float的属性f 和一个类型为byte的私有属性k;类 A 还定义了一个带有一个参数的构造函数(用于初始化f),和两个公共方法setk()和 getk(),其中selk()的功能为给私有属性k 赋值,getk()的功能为返回私有属性k 的值。类 B 是类A 的子类,其中仅定义了一个类型为boolean的属性b
24、 和一个带两个参数的构造函数(用来为父类中的变量f 和本类的变量b 做初始化)。主类Appletl中定义了一个初值为123的 int型变量n 和一个B 类的对象x,请通过创建x 为上述f 和 b 赋值(f的值为68.963,b的值为true);在 paint()方法中,给 A 类的私有属性k 赋值6 6,然后显示f,k,b,n 的值。程序import java.awt.*;import java.applet.*;public class Applet!extends Applet(int n=123;B x=new B(68.963f,true);public void paint(Grap
25、hics g)(x.setk(byte)66);g.drawString(f=+x.f+k=+x.getk()+b=+x上+n=u+n,10,20);)class A(float f;private byte k;A(float fl)f=fl;public byte getk()return k;public void setk(byte m)k=m;)class B extends A(boolean b;B(float ff,boolean bb)super(ff);b=bb;)2.请按如下要求定义两个类A 和 B,类 A 中定义一个double类型变量d(将其赋值为8.8)和一个方 法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java语言程序设计 Java 语言程序设计 上机 练习题 答案
限制150内