Java程序上机练习题库(含答案) .doc

上传人:laozhun 文档编号:2386941 上传时间:2023-02-17 格式:DOC 页数:67 大小:232.50KB
返回 下载 相关 举报
Java程序上机练习题库(含答案) .doc_第1页
第1页 / 共67页
Java程序上机练习题库(含答案) .doc_第2页
第2页 / 共67页
Java程序上机练习题库(含答案) .doc_第3页
第3页 / 共67页
Java程序上机练习题库(含答案) .doc_第4页
第4页 / 共67页
Java程序上机练习题库(含答案) .doc_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《Java程序上机练习题库(含答案) .doc》由会员分享,可在线阅读,更多相关《Java程序上机练习题库(含答案) .doc(67页珍藏版)》请在三一办公上搜索。

1、上机练习题(共包括四部分、16个练习、共96个练习题,请使用“视图”中的“文档结构图”查看)一、java语言基础和面向对象(教材内容的第1、2、3章)练习1(4)掌握:各种数据类型变量的定义和访问,各种数据类型常量的使用,数据类型转换。1. 编写Applet,其功能为:取两个小于1000的正随机数,若两个数均小于10,先将它们都放大50倍,否则不改变这两个数。最后,求这两个数的和并将结果输出。要求这些功能在主类的方法init( ) 中实现,并使输出结果仅保留小数点后4位(不需四捨五入)。程序import java.awt.*;import java.applet.*;public class

2、Applet1 extends Appletpublic 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(x10&y10) x*=50; y*=50; out1.setText(+x+y+ 约等于 ); out2.setText(+(int)(x+y)*10000)/10000.0);2. 请编写一个Applet,其功能为:取一个小于10000的正随机整数,并输出

3、该数的平方根。要求这些功能在主类的方法paint( ) 中实现,并使输出结果在四捨五入后保留小数点后4位。程序import java.awt.*;import java.applet.*;public class Applet1 extends Appletpublic 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,其功能为:取一个50200之间的

4、正随机整数,如果该数为奇数则求它的平方根并转换成float型数后再输出;如果该数为偶数则求它的平方并输出。程序import java.awt.*;import java.applet.*;public class Applet1 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);else g.drawString(+k+ 的平方等于 +k*k,20,20);4

5、. 请编写一个Application,其功能为:取一个小于800的正随机整数,将其以如下形式输出: 所取随机数为:* 它的百位数字为:* 它的十位数字为:* 它的个位数字为:*程序/import java.io.*;public class Class1public 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);

6、 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;

7、方法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

8、 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 floata.length;float y=new floatb.length;x=square(a);y=square(b);for(int i=0; ix.length;i+)g.drawString(+xi,20+i*40,20);for(int

9、i=0; iy.length;i+)g.drawString(+yi,20,40+i*20);float 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 (

10、)的参数为double类型的数组,返回值类型为float型,功能是求参数各元素的平方根之和。请在主方法main()中分别以a和b为实在参数调用方法sqrt_sum ( ),并将返回值输出在屏幕上。程序/import java.io.*;public class Class1static 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);Sy

11、stem.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; ix.length; i+) y+=Math.sqrt(xi);return (float)y;3. 请编写一个Application实现如下功能:在主类中定义方法f1(int n) 和方法f2(int n),它们的功能均为求 n!,方法f1( ) 用循环实现,方法f2( )用递归实

12、现 。在主方法main( ) 中,以4为实在参数分别调用方法f1( ) 和方法f2( ),并输出调用结果。程序/import java.io.*;public class Class1public 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)lon

13、g k=1;for(int i=1;i= 3)x=Float.valueOf(args0).floatValue( );y=Float.valueOf(args1).floatValue( );op=args2.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

14、+/+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)的功能是生成元素值是50100之间的随机值的int型数组,数组元素的个数由参数n指定。在应用程序的main( )方

15、法中,用命令行传入的整数作为myArray(int n) 方法调用时的实际参数,生成一个整型数组,并调用方法printA( )输出该数组的所有元素。程序public class Class1static int n;public static void main (String args)if(args.length 0)n=Integer.parseInt(args0); int a=new intn; a=myArray(n); printA(a);else System.out.println(缺命令行参数!); System.exit(-1); static void printA(i

16、nt x)for(int i=0; i x.length; i+) System.out.print(xi+ );System.out.println( );return;static int myArray(int k)int x =new intk;for(int i=0; i k; i+) xi=50+(int)(Math.random( )*50);return x;练习3(3)掌握: 方法的重载。1. 请编写一个Applet,其主类名为Applet1,其中包含两个同名方法arrayMin( ),它们都只有一个参数,其中一个arrayMin( )方法的参数为int型数组,返回值类型为i

17、nt型数;另一个arrayMin( )方法的参数为double型数组,返回值类型为double型数;这两个方法的功能均为返回参数数组元素的最小值。通过paint( )方法调用上述两个同名方法arrayMin( ),求数组a (其元素的值依次为26,82,-3,65,18,9)和数组b (其元素的值依次为3.6,57.2,8.5,78.8) 的最小元素的值并输出。程序import java.awt.*;import java.applet.*;public class Applet1 extends Applet int a =26,82,-3,65,18,9;double b =3.6,57.

18、2,8.5,78.8;public void paint(Graphics g)g.drawString(数组a 的最小元素的值为: + arrayMin(a),20,20); g.drawString(数组b 的最小元素的值为: + arrayMin(b),20,40); int arrayMin(int x )int y=x0;for(int i=1; ixi) y=xi;return y;double arrayMin(double x )double y=x0;for(int i=1; ixi) y=xi;return y;2. 请编写一个Application,其主类名为Class1

19、,其中包含三个同名方法mySqrt(),它们都只有一个参数,参数的类型分别为int型、float型和double型,它们的功能均为返回参数的平方根,返回值的类型与参数的类型相同。在主方法main( ) 中调用上面的三个方法,这三个方法的参数均来自命令行参数,最后将计算结果输出在屏幕上。程序public class Class1static int n;public static void main (String args)if(args.length = 3)int n;float f;double d;n=Integer.parseInt(args0);f=Float.valueOf(ar

20、gs1).floatValue( );d=Double.valueOf(args2).doubleValue( );System.out.println(n+的平方根为: +mySqrt(n);System.out.println(f+的平方根为: +mySqrt(f);System.out.println(d+的平方根为: +mySqrt(d); else System.out.println(缺命令行参数!); System.exit(-1); static int mySqrt(int x)return (int)Math.sqrt(x); static float mySqrt(flo

21、at x) return (float)Math.sqrt(x); static double mySqrt(double x) return Math.sqrt(x); 3. 请编写一个Applet,其主类名为Applet1,其中包含三个同名方法addM(int x, byte y)、addM(float x,double y)、addM(double x,double y),它们的功能均为求两个参数之和,返回值类型与第一个参数的类型相同。在主类Applet1中,通过paint( )方法调用上面的三个方法,实现12345+67、89.6f+6.9e-8、0.987654321+32.1,然后

22、将计算结果输出,输出位置分别为坐标(20,40)、(20,60)、(20,80)。程序import java.awt.*;import java.applet.*;public class Applet1 extends Applet public void paint(Graphics g)g.drawString(12345+67 = + addM(12345,67),20,40); g.drawString(89.6+6.9e-8 = + addM(89.6f,6.9e-8),20,60); g.drawString(0.987654321+32.1 = + addM(0.9876543

23、21,32.1),20,80); int addM(int x, byte y)return x+y; float addM(float x,double y)return (float)(x+y); double addM(double x,double y)return x+y; 练习4(3)掌握: (1) 类的继承。 (2) 在子类中如何操作父类中的私有属性。 (3) 变量的作用域。1. 请编写Applet,它由三个类定义组成,类名分别为A、B和Applet1:类A中定义了一个类型为float的属性f和一个类型为byte的私有属性k;类A还定义了一个带有一个参数的构造函数(用于初始化f)

24、,和两个公共方法setk( )和getk( ), 其中setk( ) 的功能为给私有属性k赋值,getk( )的功能为返回私有属性k的值。类B是类A的子类,其中仅定义了一个类型为boolean的属性b和一个带两个参数的构造函数(用来为父类中的变量f和本类的变量b做初始化)。主类Applet1中定义了一个初值为123的int型变量n和一个B类的对象x,请通过创建x为上述f和b赋值(f的值为68.963,b的值为true); 在paint()方法中, 给A类的私有属性k赋值66,然后显示f,k,b,n的值。程序import java.awt.*;import java.applet.*;publi

25、c class Applet1 extends Applet int n=123;B x=new B(68.963f,true);public void paint(Graphics g)x.setk(byte)66);g.drawString(f=+x.f+ k=+x.getk( )+ b=+x.b+ n=+n,10,20); class Afloat f;private byte k;A(float f1) f=f1; public byte getk( ) return k; public void setk(byte m) k=m; class B extends Aboolean b

26、;B(float ff,boolean bb) super(ff); b=bb; 2. 请按如下要求定义两个类A和B, 类A中定义一个double 类型变量d(将其赋值为8.8)和一个方法int_d(double dd ),该方法的功能是返回参数dd的整数部分。类B是类A的子类,其中定义一个float 类型变量f(将其赋值为18.3)和一个方法int_f(float ff ),该方法的功能是返回参数ff的整数部分。编写一个Application,创建类B的对象b,在主方法main( ) 中先显示d和f的值,然后分别以d和f为实在参数调用int_d( )方法和int_f( )方法,并将它们的返回

27、值显示在屏幕上。程序public class Class1public static void main (String args)B b=new B( );System.out.println(d=+b.d+ f=+b.f);System.out.println(d的整数部分=+b.int_d(b.d)+ f的整数部分=+b.int_f(b.f);class Adouble d=8.8;int int_d(double dd) return (int)dd; class B extends Afloat f=18.3f; int int_f(float ff) return (int)ff;

28、 3. 请编写一个Application ,在其主类中定义一个int 类型变量i ,并令其初值为123 ;主类中还定义了 m1( )和m2( )等两个方法。在主方法main( ) 和方法m1( )中也各定义一个int 类型变量i ,它们的初值分别为456和789 ;方法m1( )的功能是输出它的局部变量i的值;方法m2( )的功能是先输出类变量i 的值 ,然后使类变量i 增加值 6后再次输出其值 ;主方法main( ) 的功能是先输出它的局部变量i的值,然后先后调用m1( )和m2( )实现它们的功能。程序public class Class1static int i=123;public s

29、tatic void main (String args) int i=456; System.out.println(main( ) 中的 i=+i);m1( );m2( );static void m1( )int i=789;System.out.println(m1( ) 中的 i=+i);static void m2( )System.out.println(类变量 i=+i);i+=6;System.out.println(加 6后的类变量 i=+i);练习5(5)掌握:(1)方法的参数为类对象、方法的返回值为类对象。 (2)方法覆盖:在子类中调用被子类覆盖了的父类的同名方法。 (

30、3)属性隐藏:在子类中访问被子类隐藏了的父类的同名属性。 (4)构造函数的重载。1. 请编写一个Applet,它由两个类定义组成:类A中定义了short型变量i和char型变量ch,及一个带两个参数的构造函数(为变量i和ch做初始化)。主类Applet1中创建了两个A类的对象x1(i的初始值为12,ch的初始值为6)和x2(i的初始值为62,ch的初始值为65),还定义了一个方法b,b的参数和返回值均为A类的对象,功能为将参数对象的属性i加3,属性ch也加3,使返回结果为另一个A类的对象(即不破坏实在参数的值)。请在paint()方法中先输出x1、x2的属性值,然后再分别以x1、x2为实在参数

31、调用方法b( ),并输出调用结果,最后再次输出x1、x2的属性值。程序import java.awt.*;import java.applet.*;public class Applet1 extends Applet A x1,x2;public void init( )x1=new A(short)12,6);x2=new A(short)62,(char)65);public void paint(Graphics g)A a1=new A(short)0, );A a2=new A(short)0, );g.drawString(对象x1的属性值: i= + x 1.i+ ch=+ x

32、 1.ch,20,20); g.drawString(对象x1的属性值: i= + x 2.i+ ch=+ x 2.ch,20,40); a1=b(x1);a2=b(x2); g.drawString(以x1为实参调用方法b( ) 生成的新的A类对象的属性值: i= +a1.i+ ch=+a1.ch,20,60); g.drawString(以x2为实参调用方法b( ) 生成的新的A类对象的属性值: i= +a2.i+ ch=+a2.ch,20,80); g.drawString(调用后,对象x1的属性值: i= + x 1.i+ ch=+ x 1.ch,20,100); g.drawStri

33、ng(调用后,对象x1的属性值: i= + x 2.i+ ch=+ x 2.ch,20,120); A b(A y)A a=new A(short)0, );a.i=(short)(y.i+3); a.ch=(char)(y.ch+3);return a;class Ashort i;char ch;A(short i1,char c1) i=i1; ch=c1; 2. 请按如下要求定义两个类A和B, 类A中定义一个char类型属性x(将其赋值为65)和一个在小程序窗口中输出x值的方法myPrint()。类B是类A的子类,其中定义一个int 类型属性y(将其赋值为16)和String类型的属性

34、s(将其赋值为“java program!”); 类B中 也定义了一个名为myPrint的方法,其功能为在小程序窗口中输出y和s值;类B中还有一个方法printAll( ),该方法中分别调用父类和子类的myPrint()方法做输出。编写一个Applet,在主类Applet1中创建类B的对象b,调用printAll( )方法输出对象b 的属性值。程序import java.awt.*;import java.applet.*;public class Applet1 extends Applet B b=new B( );public void paint(Graphics g)b.printA

35、ll( g);class Achar x=65; void myPrint(Graphics g)g.drawString(x=+x,20,20);class B extends Aint y=16;String s=java program!;void myPrint(Graphics g)g.drawString(y=+y+ s=+s,20,40); void printAll( Graphics g)super.myPrint(g);myPrint(g); 3. 请按如下要求定义两个类A和B, 类A中定义一个方法area(float r), 其返回值类型为float型,该方法的功能是返回

36、半径为r的圆的面积(圆的面积公式为:pr2,其中 r是圆的半径)。类B是类A的子类,其中也定义了一个名为area的方法area(float r),该方法的功能是返回半径为r的球的表面积(球的表面积的计算公式为:4r2,其中r为球的半径),返回值类型也为float型;在类B中还定义了另一个方法myPrint(float r),功能是分别调用父类和子类的方法area( )计算半径相同的圆的面积和球的表面积并输出调用结果。编写一个Application,创建类B的对象b,在主方法main( )中调用myPrint(float r), 输出半径为1.2的圆的面积和半径为1.2的球的表面积。程序publ

37、ic class Class1public static void main (String args) B b=new B( );b.myPrint(1.2f ); class A float rear(float r)return (float)Math.PI*r*r; class B extends Afloat rear(float r)return 4*(float)Math.PI*r*r; void myPrint(float r)System.out.println(半径为 +r+的圆的面积=+super.rear(r) + 同半径的球的表面积=+rear(r);4. 请编写Ap

38、plet,它由三个类定义组成: 类A中只定义了一个类型为String的对象x和带有一个参数的构造函数(用来初始化x);类B是类A的子类,其中定义了一个int类型的变量x和一个带两个参数的构造函数(用来为父类中的对象x和类B中的变量x做初始化),还定义了一个方法myPrint( ),功能为输出父类A中的x和其子类B 中的x的值;主类Applet1中定义了B类的对象b,请通过创建b为上述两个x赋值(类A中的x的值为“这是父类的x.”, 类B中的x的值为68),通过paint()方法在坐标(20,30)处显示两个x的值。程序import java.awt.*;import java.applet.*

39、;public class Applet1 extends Applet B b=new B(这是父类的x.,68 );public void paint(Graphics g)b.myPrint(g); class A String x;A(String x1)x=x1;class B extends Aint x;B(String x1,int x2)super(x1); x=x2;void myPrint(Graphics g)g.drawString(父类A中x的值=+super.x+ 子类B中x的值=+x,20,30); 5. 请编写Applet,它由三个类定义组成, 类名分别为A、B和Applet1:类A中定义了类型为int的变量i、类型为float的变量f和类型为char的变量ch;类A还定义了三个构造函数,其中,第一个构造函数带有一个int类型的参数(用于初始化i),第二个构造函数带有两个参数(参数类型分别为int和float,用于初始化i和f), 第三个构造函数带有三个参数(参数

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号