收藏 分销(赏)

java练习题答案.doc

上传人:仙人****88 文档编号:12010342 上传时间:2025-08-27 格式:DOC 页数:26 大小:212.41KB 下载积分:10 金币
下载 相关 举报
java练习题答案.doc_第1页
第1页 / 共26页
java练习题答案.doc_第2页
第2页 / 共26页


点击查看更多>>
资源描述
第1章java语言概述习题 一、 填空题 1、面向对象程序的主要特征:继承,__封装___,___多态 _____。 2、java中的继承机制之所以能够降低程序的复杂性,提高程序的效率,主要是 因为它使代码可以__重用或复用___. 3、java语言中,为将源代码翻译成 __字节码__文件时产生的错误称为编译错误,而将程序在运行中产生的错误称为运行错误。 4、javac是java语言中的编译器,基本语法是:javac[选项] __文件名__,java是java语言中的解释执行器,基本语法是:java[选项]___类名___. 5、java语言的主要贡献者是谁 James gosling 二、 单选题 1、 编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B)。 A、java B、.class C、html D、.exe 2、main方法是Java Application程序执行的入口点,关于main方法的方法首部, 以下(B)项是合法的。 A、public static void main() B、public static void main(String args[]) C、public static int main(String[] arg) D、public void main(String arg[]) 三、判断 1、Java语言具有较好的安全性和可移植性及与平台无关等特性。√ 2、Java语言的源程序不是编译型的,而是编译解释型的。√ 四、问答题 1、编写、运行java程序需要经过哪些主要步骤? 答:1.编写源文件,扩展名必须是.java 2.编写java源程序,使用java编译器编写源文件,得到字节码文件 3.运行java程序,使用javaSE平台只不过的java解释器来解释执行字节码文件。 2、阅读下列java源代码文件,并回答问题 public class Speak{ void speakHello(){ System.out.println("I'm glad to meet you"); } } class Xiti8{ public static void main(String args[]){ Speak sp=new Speak(); sp.speakHello(); } } (1)上述源文件的名字是什么?Speak.java (2)上述源文件编译后生成几个字节码文件,这些字节码文件的名字分别是什么?Speak.class Xiti8.class 第2章(1)基本数据类型练习题 一、填空题 1、java基本数据类型中整型,字符型分别占用字节数为___4___,___2____. 2、java语言中的浮点数根据数据存储长度和数值精度的不同,进一步分为_ float__和__double__两种具体类型。 3、 Java中的浮点类型有两类,分别是float和double类型,其中float取7___位有 效数据,double取_15__位有效数据。 4、布尔类型常量只有两个__true___和__false____,其中前者表示逻辑真,后者表示逻辑假。 5、浮点型常量又称实型常量,用于表示有小数部分的十进制数,它有两种表示形式:__小数形式____和__指数形式______。 6、java语言中的各种数据类型之间提供自动转换,如第一种操作数为byte,而第二种操作数为float,则其结果是__float___类型。 7、java语言的各种数据类型之间提供两种转换,分别是__自动转换__和_强制转换____。 8、开发与运行Java程序需要经过的三个主要步骤为 编写源程序 、编译生成字节码文件 和 解释运行字节码文件 。 9、 Java程序中的单行注释符是(// ),多行注释符是( /* */ )。 10、Java中布尔类型的常量有两种,它们是( true )和(false)。 11、Java中用于定义小数的关键字有两个:( float ) 和 ( double ),后者精度高于前者。 二、多选 1、下面有关char类型数据的定义中,正确得是_BE_______? A. char ch = “a”; B. char ch = ‘\’ ‘; C. char ch = ‘cafe’; D. char ch = “cafe”; E. char ch = ‘\ucafe’; F. char ch = ‘\u10100’; G. char ch = (char) true; 三、判断 1、Java语言使用的是Unicode字符集,每个字符在内存中占8位。 ×,16位 2、Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。√ 四、单选 1、以下哪个不是Java的基本数据类型( B) A、int B、Boolean C、float D、char 2、如下哪个是Java中有效的关键字( c ) A、name B、hello C、false D、good 第2章(2)数组练习题 一、填空题 1、当声明一个数组int arr[] = new int[5]; 时,这代表这个数组所保存的变量类型是(int),数组名是(arr),数组的大小为(5),数组元素下标的使用范围是(0-4)。 二、多选 1、定义如下的二维数组b,下面的说法正确的是(ACD )。 int b[][]={{1, 2, 3}, {4, 5},{6, 7, 8}}}; A) b.length的值是3。 B)b[1].length的值是3。 B) C)b[1][1]的值是5。 D) 二维数组b的第一行有3个元素 三、单选 1、以下哪项是main方法的正确形参?( B) A、String args B、String ar[] C、Char arg D、StringBufferargs[] 2、 有整型数组:int[] x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x中的元 素值依次是(A ). A) 2 7 8 12 35 B) 12 35 8 7 2 C) 35 12 8 7 2 D) 8 7 12 35 2 3、 应用程序Test.java的源程序如下,在命令行键入:java Test aaa bb c,回车后输出的结果是 ( A)。 public class Test { public static void main(String args[]) { int k1=args.length; int k2=args[1].length(); System.out.print(k1+" "+k2); } } A) 3 2 B)1 2 C) 1 3 D) 3 3 4、 关于下面代码的说法(C)是正确的? public class Example{ public static void main(String[] args){ int[] arr= new int[10]; System.out.println(arr[1]); } } A、 编译时产生错误 B、编译时正确,运行时将产生错误 C、输出零 D、输出空(null) 第3章(1)运算符&表达式&if语句练习题 一、填空 1、Java中,除了_字符型____和___布尔型__外,其他的所有的基本数据类型都支持加,减,乘,除四则运算。 2、短路逻辑运算符包括___&&___和___||___。 3、Java提供了&,&&和|,||运算符,除了一点外,&运算符和&&运算符在使用中 完全相同,|运算符和||运算符也相同。它们的不同点在于:__&__运算符和___| 运算符中的两个运算对象都要运算。 4、顺序执行以下两个语句的输出结果是:__10_____。 String s=”我喜欢学习java!”; System.out.println(s.length()); 5、 下面代码定义了两个整型变量和一个字节型变量,则将num1+num2的值赋给 num3变量的语句是______num3=(byte)(num1+num2)_______。 int num1 = 53; int num2=47; byte num3; 6、下面代码中,“Type”应该换成什么类型__double______? public class ReturnIt { return Type methodA(byte x, double y) { return (long)x / y * 2; } } 7、Java语言提供了两条基本的分支选择语句:_if___语句和switch____语句 8、以下程序段的输出结果为Message four int x=0,y=4, z=5; if ( x>2){ if (y<5){ System.out.println("Message one"); } else { System.out.println("Message two"); } } else if(z>5){ System.out.println("Message three"); } else { System.out.println("Message four"); } 二、单选 1、下面选项中,__D___的值与3*4的值相等? A. 3/2 B. 3<2 C. 3*2^2 D. 3<<2 2、 下面选项中,D_____的值与16/2^12的值相等? A. 16>4 B. 16/2 C. 16*4 D. 16>>2 E. 16>>>2 3、 有以下方法的定义,请选择该方法的返回类型( D)。 ReturnType method(byte x, double y) { return (short) x/y*2; } A、byte B、short C、int D、double 第3章(2)switch&循环语句练习题 一、填空题 1、设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是 120 。 int s = 0 ; for (int i = 0 ; i < MyIntArray.length ; i + + ) if ( i % 2 = = 1 ) s += MyIntArray[i] ; System.out.println(s); //s=20+40+60 2、 下面程序段的执行结果是( 6 5 4 3 2 ) int a[] = { 2, 3, 4, 5, 6 }; for (int i = a.length - 1; i >= 0; i--) System.out.print(a[i] + ""); //从大到小排序 3、以“java Sub 3”运行以下程序的结果是:3th season __。 public class Sub{ public static void main(String[] args) { int i=Integer.parseInt(args[0]); switch(i) { case 1: System.out.println("First season"); break; case 2: System.out.println("Second season"); break; case 3: System.out.println("3th season"); break; case 4: System.out.println("Last season"); break; } } } 4.switch(X)中,X可以接受的类型有_byte____,____char___,short,int。 5、以下程序段的输出结果为 _value is two_ value is three ______。 int j=2; switch ( j ) { case 2: System.out.print(“Value is two.”); case 2+1 : System.out.println(“Value is three.”); break; default: System.out.println(“value is “+j); break; } 6.如果x=2;则下面程序执行后的结果是_34_____? switch (x) { case 1: System.out.println(1); case 2: case 3: System.out.print(3); case 4: System.out.println(4); } 7、 下面代码执行结束后l和j的值分别是___5,6___? public static void main(String[] args) { int j=10; int l=1; do{ if(l++>--j) continue; }while(l<5); } 8、 下面程序序的运行结果为( 20) class test{ public static void main(String args[]){ int sum=0; for(int i=0;i<10;i++){ if(i%2==0) sum+=i; else continue; } System.out.println(sum); } } 二、单选 1、应用程序的main方法中有以下语句,则输出的结果是 (B )。 int b[][]={{1}, {2,2}, {2,2,2}}; int sum=0; for(int i=0;i<b.length;i++) { for(int j=0;j<b[i].length;j++) { sum+=b[i][j]; } } System.out.println("sum="+sum); A) 32 B)11 C) 2 D) 3 2、 应用程序的main方法中有以下语句,则执行后输出的结果是 (D) int[] x={125,21,5,168,98}; int max=x[0]; for(int i=1;i<x.length;i++){ if(x[i]> max) max =x[i]; } System.out.println(max); A) 125 B) 5 C) 98 D) 168 第4章(1)类和对象练习题 一、填空 1、面向对象程序的主要特征:继承,____封装___________,___多态___________。 2、____构造方法_是类中的一种特殊方法,用来定义对象的初始状态。 3、构造方法在__创建对象__时被调用。 4、系统类Math的random()方法可用来产生0-1.0之间的实数,则产生一个50 -100之间的整数的程序语句是_(int)Math.random()*50+50______。 5、下面代码执行结束之后,打印出来的结果是__4____? public class Happy { public static void main(String args[]) { int i=4; int j=2; methodA(i,j); } System.out.println(i); } static public void methodA(int i,int j) { i<<=j; } } ☆6、在java语言中,有一个类是所有类和接口的父类,这个类的名称是java.lang.Object(Object)_____。 7、构造方法在__创建对象__时被调用。 8、java运行系统通过垃圾回收机制/GC____周期性的释放无用对象所占用的内存,以完成对象的消除。 9、阅读以下程序,输出结果为_1.23___。 class Q1{ public static void main(String args[ ]){ double d=1.23; Dec dec=new Dec( ); dec.decrement(d); System.out.println(d); } } class Dec{ public void decrement(double decMe){ decMe = decMe -0.1; } } 10、阅读程序 public class Test{ int x=12; public void method1(int x){ x+=x; System.out.println(x); } } 如果有如下的代码段: Test t=new Test(); t.method1(5); 程序执行到这个地方,代码输出结果是__10___? 11、定义在类中的变量为_成员变量___,它不需要进行显式的初始化,定义在方法中的变量为__局部变量__,它需要进行显式的初始化。 12、面向对象的模型中,最基本的概念是__类_和_对象__。 二、多选题 13、下面选项中,__AC_______是合法的构造方法的重载?//无返回值 public class ConstOver { public ConstOver (int x, int y, int z) { } } A. ConstOver ( ) { } B. Protected int ConstOver ( ) { } C. Private ConstOver (int z, int y, byte x) { } D. Public Object ConstOver (int x, int y, int z) { } E. Public void ConstOver (byte x, bytey, byte z) { } 14、下面说法中___AC___是对方法setVar()重载的方法。 public class MethodOver { public void setVar (int a, int b, float c) { } } A. Private void setVar (int a, float c, int b) { } B. Protected void setVar (int a, int b, float c) { } C. Public int setVar (int a, float c, int b) {return a;} D. Public int setVar (int a, int b, float c) {return a;} E. Protected float setVar (int a, int b, float c) {return c;} 第4章(2)可变参数,static与this练习题 一、填空题 1、在下面程序划线处填入适当的内容。 class MyClass{ static int var=100; ____static public static___ int getVar() { return var; } } 2、 以下程序段的输出结果为int version______ 。 class Cruncher{ void crunch( int i ){ System.out.println(“int version”); } void crunch(String s){ System.out.println(“String version”); } public static void main(String args[ ]){ Cruncher crun=new Cruncher ( ); char ch=’p’; crun.crunch(ch); } } 3、 以下程序段的输出结果为 _Integer String____。 class IntORString{ void iosM( int i ){ System.out.print(“Integer ”); } void iosM(String s){ System.out.print(“String ”); } public static void main(String args[ ]) { IntORString ios=new IntORString ( ); ios.iosM(‘a’); ios.iosM(“1”); } } 4、如果有个类A,该类中有成员变量b和成员方法c(),则在创建该类得对象a 后,对该对象的成员变量和成员方法的调用方式分别是a.b___,__a,c()__。 5、以下代码段创建了__2_个对象,声明了_3____个变量。 Thing item, stuff; item = new Thing(); Thing entity = new Thing(); 6、 通过类MyClass中的不含参数的构造函数象obj,可通过 以下语句实现:_MyClass obj=new MyClass()________。 7、下面____AD_____情况下,系统会为类A自动产生构造函数? A. class A { } B. class A { public A() {} } C. class A { public A(int x) {} } D. class Z {} class A extends Z { void A() {} } 8、 请问构造函数、成员变量初始化以及静态成员变量初始化三者的先后顺序是__静态成员变量初始化,成员变量初始化,构造函数_____。 9、划线处应填的一句代码:_ this (a) _______。 public class Example{ int x,y; public Example(int a){ x = a; } public Example(int a, int b){ _this (a) __________;//调用上面的一个参数的构造方法 y = b; } } 10. 关键字___final____表明一个对象或变量在初始化后不能被修改。 11、类是对象的抽象,是属性和操作的封装体,其中属性是事物静态特征的抽象,在程序中用数据成员描述,操作是事物动态特征的抽象,在程序中用成员方法描述。 第4章(3)包_访问权限_基本数据类型封装练习题 一、填空题 1、请填出在java.lang包中与下列基本数据类型相对应的封装类: float:java.lang.Float, char:_java.lang.Character________ , boolean:_java.lang.Boolean __________. 2、 java中提供了四种访问控制符,分别是:public__________,___protected________,_private________,____缺省(friendly)________ 3、以下程序段的输出结果为 _true ,false_________。 public class EqualsMethod { public static void main(String[] args) { Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.print(n1= =n2); System.out.print(“,”); System.out.println(n1! =n2); } } 4、 在java中,将具有相同属性的对象抽象成_类___。然后将它按照程序设计所需要的常用方法和接口封装成__包_。 5、创建一个名为 MyPackage 的包的语句是 package Mypackage , 该语句应该放在程序的位置为: 放在程序的第一句 。 6、 导入mypackage包中的所类的命令是 import mypackage.*; 二、 单选题 1、 不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected 2、 为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 3、下列修饰符中与访问控制无关的是( D ) A. private B.Public C.protected D.final 4、 void的含义:( A ) A. 方法没有返回值 B.方法体为空 C.没有意义 D. 定义方法时必须使用 5、关于对象成员占用内存的说法哪个正确?( B ) A. 同一个类的对象共用同一段内存 B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间 C.对象的方法不占用内存 D.以上都不对 6、 定义一个类,必须使用的关键字是( B ) A、public B、class C、interface D、static 第5章(1)继承与多态练习题答案 一、 选择题 1、关于继承的说法正确的是:( B ) A、子类将继承父类所有的属性和方法。 B、子类将继承父类的非私有属性和方法。 C、子类只继承父类public方法和属性 D、子类只继承父类的方法,而不继承属性 2、this和super:( B ) A、都可以用在main()方法中 B、都是指一个内存地址 C、不能用在main()方法中 D、意义相同 3、关于super的说法正确的是:( B ) A、是指当前对象的内存地址 B、是指当前对象的父类对象的内存地址 C、是指当前对象的父类 D、可以用在main()方法中 4、覆盖与重载的关系是 ( A ) A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中 B.覆盖方法可以不同名,而重载方法必须同名 C.final修饰的方法可以被覆盖,但不能被重载 D.覆盖与重载是同一回事 5、定义一个类,必须使用的关键字是( B ) A、public B、class C、interface D、static 6、如果有如下这样一段代码 class A { A() { } } class B extends A { } 请在下面项中,正确的说法是:____________ B D A、类B的构造函数的访问权限是public B、类B的构造函数没有参数 C、类B的构造函数中包含this()方法的调用; D、类B的构造函数中包含super()的调用 7、下面(AD)情况下,系统会为类A自动产生构造函数? A. class A { } B.class A { public A() {} } C. class A { public A(int x) {} } D. class Z {} class A extends Z { void A() {} } 二、填空题 1、java中提供了两种用于多态的机制 重载,覆盖. 2、this代表了当前对象的引用,super表示的是当前对象的父类 对象。 3、 如果子类中覆盖了父类中的同名方法,则在子类中调用父类中的同名方法是使用关键字super。 在一个类的内部可以直接调用本类的对象,也可以使用关键字this来调用。 4.子类可以继承父类的成员变量 和成员方法,但是不能继承父类的构造函数。 5、下面代码执行后的结果是2 class Super { public int i = 0; public Super(String text) { i = 1; } } public class Sub extends Super { public Sub(String text) { super(text); i = 2; } public static void main(String args[]) { Sub sub = new Sub("Hello"); System.out.println(sub.i); } } 6、 如果在一个文件中有package,import以及class的定义,请给出三者在文件中的先后顺序。package,import ,class . 7.父类的final方法可以被子类重写吗?答案:不可以 第5章(2)接口练习题答案 一、选择题 1、定义一个接口必须使用的关键字是( C ) A、public B、class C、interface D、static 2、抽象方法:( C ) A、可以有方法体 B、可以出现在非抽象类中 C、是没有方法体的方法 D、抽象类中的方法都是抽象方法 3、 关于接口哪个正确?( A ) A、实现一个接口必须实现接口的所有方法 B.一个类只能实现一个接口 C.接口间不能有继承关系 D.接口和抽象类是同一回事 二、填空题 1、抽象方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。final方法是不能被当前类的子类重新定义的方法。 2、在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。 3、接口由两部分组成接口声明以及接口体。 4、接口可以看作是仅容纳抽象法以及常量,而又不能直接生成对象的特殊类。 5、用于将一个类修饰为最终类的关键字是final。用于声明一个类为抽象类的关键字是abstract。 6、abstract不能和final 共同修饰一个类。 7、 java中用extends 关键字指明继承关系.用implements关键字指明对接口的实现。 8、如果Alpha类继承Beta类,Alpha类被称为子(基)类,Beta类被称为父(超)类。 9、子类可以继承父类的成员变量 和成员方法,但是不能继承父类的构造函数。 10、下面程序的输出结果是:_ Art constructor , Drawing constructor , Cartoon constructor 。 class Art { Art() { System.out.println("Art constructor"); } } class Drawing extends Art { Drawing() { super(); System.out.println("Drawing constructor"); } } class Cartoon extends Drawing { Cartoon() { super(); System.out.println("Cartoon constructor"); } public static void main(String[] args) { Cartoon x = new Cartoon(); } } 11、 写出以下程序的运行结果__4 ____ import java.io.*; public class ATest{ public static void main(String args[]) { SubClass sb = new SubClass( ); System.out.println(sb.fun( )); } } class SuperClass{ int a =24 , b =5 ; } class SubClass extends SuperClass{ int fun( ) { return a%b;} } 三、多项选择题 1、与第2行等价的定义方式是_____。A B 1. public interface Foo { 2. int k = 4; 3. } A. final int k = 4; B. public int k = 4; C. abstract int k = 4; D. volatile int k = 4;
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服