java练习题答案.doc_第1页
java练习题答案.doc_第2页
java练习题答案.doc_第3页
java练习题答案.doc_第4页
java练习题答案.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章java语言概述习题 1、 填空题 1、面向对象程序的主要特征:继承,_封装_,_多态 _。 2、java中的继承机制之所以能够降低程序的复杂性,提高程序的效率,主要是因为它使代码可以_重用或复用_. 3、java语言中,为将源代码翻译成 _字节码_文件时产生的错误称为编译错误,而将程序在运行中产生的错误称为运行错误。 4、javac是java语言中的编译器,基本语法是:javac选项 _文件名_,java是java语言中的解释执行器,基本语法是:java选项_类名_. 5、java语言的主要贡献者是谁 James gosling 2、 单选题 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.编写源文件,扩展名必须是.java2.编写java源程序,使用java编译器编写源文件,得到字节码文件3.运行java程序,使用javaSE平台只不过的java解释器来解释执行字节码文件。2、阅读下列java源代码文件,并回答问题 public class Speakvoid speakHello() System.out.println(Im 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、BooleanC、float D、char 2、如下哪个是Java中有效的关键字( c ) A、name B、hello C、false D、good 第2章(2)数组练习题一、填空题 1、当声明一个数组int arr = new int5; 时,这代表这个数组所保存的变量类型是(int),数组名是(arr),数组的大小为(5),数组元素下标的使用范围是(0-4)。 二、多选 1、定义如下的二维数组b,下面的说法正确的是(ACD )。 int b=1, 2, 3, 4, 5,6, 7, 8; A) b.length的值是3。 B)b1.length的值是3。B) C)b11的值是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=args1.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 int10; System.out.println(arr1); 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 fourint x=0,y=4, z=5;if ( x2)if (y5)System.out.println(Message three); else System.out.println(Message four); 二、单选 1、下面选项中,_D_的值与3*4的值相等? A. 3/2 B. 32 C. 3*22 D. 34 B. 16/2 C. 16*4 D. 162 E. 162 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 = 0; i-) System.out.print(ai + ); /从大到小排序 3、以“java Sub 3”运行以下程序的结果是:3th season _。 public class Subpublic static void main(String args) int i=Integer.parseInt(args0); 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(l5); 8、 下面程序序的运行结果为( 20) class test public static void main(String args) int sum=0; for(int i=0;i10;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;ib.length;i+) for(int j=0;jbi.length;j+) sum+=bij; 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=x0; for(int i=1;i max) max =xi; 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 Q1public 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.*; 2、 单选题 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 BPublic Cprotected Dfinal 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、 选择题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覆盖方法可以不同名,而重载方法必须同名 Cfinal修饰的方法可以被覆盖,但不能被重载 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 SuperClassint a =24 , b =5 ; class SubClass extends SuperClassint 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; E. protected int k = 4;2、下面几个方法中,_可以放在接口(interface)中。A B A.void methoda(); B. public double methoda(); C. public final double methoda(); D. static void methoda(double d1); E. protected void methoda(double d1); 3、 请问如下选项中,_可以使得以上代码编译没有错误。E 1. public abstract class Test 2. public abstract void methodA(); 3. 4. public abstract void methodB() 5. 6. System.out.println(“Hello”); 7. 8. A 给methodA加上方法体; B 将第5-7行的代码用“;”代替 C 将类Test前面的修饰符abstract去掉 D 将方法methodA前面的修饰符abstract去掉 E 将方法methodB前面的修饰符abstract去掉 4、 下面选项中,_可以是合法的方法重写的形式。BD class BaseClass private float x = 0f; protected float getVar() return x; class SubClass extends BaseClass private float x = 0f; _ A. float getVar() return x; B. public float getVar() return x; C. public double getVar() return x; D. protected float getVar() return x; E. public float getVar(float f) return f; 5、如果有如下这样一段代码 class A A() class B extends A 请在下面项中,正确的说法是:B D A.类B的构造函数的访问权限是public B、 类B的构造函数没有参数 C、 类B的构造函数中包含this()方法的调用; D、 类B的构造函数中包含super()的调用 三、课后习题答案 3什么类中可以有abstract方法? 答案:abstract类。 4什么叫对象的上转型对象? 答案:假设B类是A类子类或间接子类,当我们用子类B创建一个对象,并把这个对象的引用放到A类的对象中时,称这个A类对象是子类对象的上转型对象。父引用指向子对象。 5什么叫接口的回调? 答案:可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法。 6下列叙述哪些是正确的?AD A. final类不可以有子类 B. abstract类中只可以有abstract方法。 C. abstract类中可以有非方法,但该方法不可以用final修饰。 D. 不可以同时用final和abstract修饰一个方法。 9.写一个类A,该类创建的对象可以调用方法f输出英文字母表,然后再编写一个该类的子类B,要求子类B必须继承A类的方法f(不允许重写),子类创建的对象不仅可以调用方法f输出英文字母表,而且可以调用子类新增的方法g输出希腊字母表。class A public final void f() char cStart = a, cEnd = z; for (char c = cStart; c = cEnd; c+) System.out.print( + c); class B extends A public void g() char cStart = , cEnd = ;for (char c = cStart; c = cEnd; c+) System.out.print( + c);public class Xiti9 public static void main(String args) B b = new B();b.f(); b.g(); 10.写一个类,该类有一个方法public int f(int a,int b),该方法返回a和b的最大公约数。然后再编写一个该类的子类,要求子类重写方法f,而且重写的方法将返回a和b的最小公倍数;要求在重写的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将乘积(a*b)/m返回;要求在应用的程序的主类中分别使用父类和子类创建对象,并分别调用方法f计算两个正整数的最大公约数和最小公倍数。class A public int f(int a, int b) if (b a) int temp = 0; temp = a;a = b; b = temp; int r = b % a; while (r != 0) b = a; a = r;r = b % a; return a; class B extends A public int f(int a, int b) int division = super.f(a, b); return (a * b) / division;public class Xiti9 public static void main(String args) A a = new A();B b = new B();System.out.println(最大公约数 : + a.f(36, 24);System.out.println(最小公倍数 : + b.f(36,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论