欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

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

    • 资源ID:2386941       资源大小:232.50KB        全文页数:67页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    上机练习题(共包括四部分、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 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(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 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之间的正随机整数,如果该数为奇数则求它的平方根并转换成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. 请编写一个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); 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 floata.length;float y=new floatb.length;x=square(a);y=square(b);for(int i=0; i<x.length;i+)g.drawString(""+xi,20+i*40,20);for(int i=0; i<y.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 ( )的参数为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);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(xi);return (float)y;3. 请编写一个Application实现如下功能:在主类中定义方法f1(int n) 和方法f2(int n),它们的功能均为求 n!,方法f1( ) 用循环实现,方法f2( )用递归实现 。在主方法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)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 Class1public static void main (String args)float x,y;char op; if(args.length >= 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+"/"+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( )方法中,用命令行传入的整数作为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(int 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型数组,返回值类型为int型数;另一个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.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; i< x.length; i+)if(y>xi) y=xi;return y;double arrayMin(double x )double y=x0;for(int i=1; i< x.length; i+)if(y>xi) y=xi;return y;2. 请编写一个Application,其主类名为Class1,其中包含三个同名方法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(args1).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(float 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,然后将计算结果输出,输出位置分别为坐标(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.987654321,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),和两个公共方法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.*;public 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;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( )方法,并将它们的返回值显示在屏幕上。程序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; 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 static 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)方法覆盖:在子类中调用被子类覆盖了的父类的同名方法。 (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为实在参数调用方法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 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.drawString("调用后,对象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类型的属性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.printAll( 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型,该方法的功能是返回半径为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的球的表面积。程序public 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. 请编写Applet,它由三个类定义组成: 类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.*;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), 第三个构造函数带有三个参数(参数

    注意事项

    本文(Java程序上机练习题库(含答案) .doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开