JAVA考试复习题2 (含有答案).doc_第1页
JAVA考试复习题2 (含有答案).doc_第2页
JAVA考试复习题2 (含有答案).doc_第3页
JAVA考试复习题2 (含有答案).doc_第4页
JAVA考试复习题2 (含有答案).doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

现代程序设计(JAVA)考试复习题1、 选择题1、关于Java语言叙述错误的是:( C) AJava语言具有跨平台性 BJava是一种面向对象的语言 CJava语言中的类可以多继承DJava的垃圾收集机制自动回收程序已不再使用的对解析:java没有多继承 只能是继承一个类 但是可以实现多个接口 故选C2、以下叙述正确的是:( B)的确台a A构造方法必须是public方法 Bmain方法必须是public方法 CJava应用程序的文件名可以是任意的 D构造方法应该声明为void类型3、关于Java中数据类型叙述正确的是:( B )A、整型数据在不同平台下长度不同 Bboolean类型数据只有2个值,true和falseC数组属于简单数据类型 DJava中的指针类型和C语言的一样4、设 int x=1,float y=2,则表达式 x / y的值是:( D ) A0 B1 C2 D以上都不是5、以下语句有语法错的是:(A ) Aint x=1;y=2;z=3 Bfor (int x=10,y=0;x0;x+); Cwhile (x5); Dfor(; ;);6、关于类和对象的叙述正确的是:( A ) AJava的类分为两大部分:系统定义的类和用户自定义的类 B类的静态属性和全局变量的概念完全一样,只是表达形式不同 C类的成员至少有一个属性和一个方法 D类是对象的实例化7、以下有关构造方法的说法,正确的是:(A ) A一个类的构造方法可以有多个 B构造方法在类定义时被调用 C构造方法只能由对象中的其它方法调用 D构造方法可以和类同名,也可以和类名不同8、以下有关类的继承的叙述中,正确的是:(D ) A子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性 B子类只能继承父类的方法,不能继承父类的属性 C子类只能继承父类的非私有属性,不能继承父类的方法 D子类不能继承父类的私有属性9、void 的含义:( C ) A方法体为空 B定义的方法没有形参 C定义的方法没有返回值 D方法的返回值不能参加算术运算10、关于Java中异常的叙述正确的是:( D )A异常是程序编写过程中代码的语法错误 B异常是程序编写过程中代码的逻辑错误 C异常出现后程序的运行马上中止 D异常是可以捕获和处理的11、所有的异常类皆继承哪一个类?( C ) Ajava.io.Exception Bjava.lang.Throwable Cjava.lang.Exception Djava.lang.Error12、下面哪个不是java语言中的关键字?(B ) Along Bsizeof Cinstanceof Dconst13、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. .java B. .class C. .html D. .exe14、设 x = 1 , y = 2 , z = 3,则表达式 yz/x 的值是( A )。 A. 3 B. 3. 5 C. 4 D. 515、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。 A. start( ) B. stop( ) C. init( ) D. paint( )16、不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected17、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( )18、在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行 ( A )A)init() B)start() C)destroy() D)stop()19、有以下方法的定义,请选择该方法的返回类型( B ) ReturnType method(byte x, double y) return (short)x/y*2;A)byte B)short C)int D)double20、以下哪项可能包含菜单条( B )。A)Panel B)Frame C)Applet D)Dialog21、Java application中的主类需包含main方法,main方法的返回类型是什么?( D )A)int B)float C)double D)void22、Java application中的主类需包含main方法,以下哪项是main方法的正确形参?( B ) A) String args B)String ar C)Char arg D)StringBuffer args23、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A). java B) .class C) . html D) .exe24、设int型变量x = 1 , y = 2 , z = 3,则表达式 yz/x+ 的值是( D )。A)3 B)3. 5 C)4 D)525、不允许作为类及类成员的访问控制符的是( C )。A)public B)private C)static D)protected26、 为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。A)static void method( ) B)public void method( ) C)final void method( ) D)abstract void method( )27、以下哪一个不是JAVA的标准数据流( D )。A)标准输出数据流 B) 标准输入数据流 C)标准错误数据流 D) 标准运算数据流28设有下面两个赋值语句: ( ) a = Integer.parseInt(“123”); b = Integer.valueOf(“123”).intValue();下述说法正确的是(D )。A)、a是整数类型变量,b是整数类对象。B)、a是整数类对象,b是整数类型变量。C)、a和b都是整数类对象并且值相等。 D)、a和b都是整数类型变量并且值相等。29、下列代表十六进制整数的是( D ) A)0123 B)1900 C)fa00 D)0xa230、在Java中,实现用户界面功能的包是 ( D ) A)java.applet B)java.transaction C)java.util D)java.awt31、+运算符的操作数个数是( A ) A)1个 B)2个 C)3个 D)4个32、已知:int a = new int100;在下列给出的数组元素中,非法的是(D ) A)a0 B)a1 C)a99 D)a10033、用于输入压缩文件格式的ZipOutputStream 类所属包是( A ) A)、java.util.zip B)、java.io C)、java.nio D)、java.util34、在Java中,负责对字节代码解释执行的是_ _B_。 A)垃圾回收器 B)虚拟机 C)编译器 D)多线程机制35、下列叙述中,正确的是 A A)Java语言的标识符是区分大小写的 B)源文件名与public类名可以不相同 C)源文件扩展名为.jar D)源文件中public类的数目不限二、填空题1、面向对象程序设计所具有的基本特征是_抽象性 ,封装性,继承性,多态性2、数组x定义如下 int x =new int32 则 x.length 的值为_ _3_, x0.length 的值为_ _2_。3、Java中实现多线程一般使用两种方法,一是_继承Thread类_,二是实现Runnable方法4、Java的图形用户界面设计中,有很多布局管理器用来摆放组件的位置,一般用到的布局管理器有(列出四种即可)_FlowLayout_,GridLayout,BorderLayout,CardLayout_5、Applet常用的方法是:int()、run()、stop()和destroy()。6、开发与运行Java程序需要经过的三个主要步骤为 编辑源程序、编译生成字节码 、和 解释运行字节码。7、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是 Applet 类的子类并且存储该源程序文件的文件名为 MyApplet。8、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器 java.exe 编译该源程序文件将产生 3 个文件名与类名相同而扩展名为 .class 的字节码文件。9、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用 2 字节内存空间。10、设 x = 2 ,则表达式 ( x + + )3 的值是 0 。11、若x = 5,y = 10,则x = y的逻辑值分别为 true 和 false 。12、 抽象 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。 最终 方法是不能被当前类的子类重新定义的方法。13、创建一个名为 MyPackage 的包的语句是 package MyPackage ,该语句应该放在程序的位置为:应在程序第一句14、设有数组定义:int MyIntArray = 10 , 20 , 30 , 40 , 50 , 60 , 70; 则执行以下几个语句后的输出结果是 120 。 int s = 0 ; for ( int i = 0 ; i 10) System.out.print(s) ; elseSystem.out.print(s1) ;19、程序中,若 int x=667;int& p=x;则 p= _ 677 _,20、 继承 是面向对象的语言一个重要的机制,通过这种机制可以在一个一般类的基础上建立新类。21.、如果类Alpha继承了类Beta,则类Alpha称为_ 子 _类,类Beta称为_ 父 类。22、已知int a,b; 则表达式a=2,b=5,a+;b+;a+b;的值为 9 。23、Java技术的三大特征分别是 虚拟机 、 垃圾回收器 、 代码安全 。三、阅读程序,写出程序的输出结果(每题5分,共20分)1、class Aprivate int privateVar; A(int _privateVar) privateVar=_privateVar;boolean isEqualTo(A anotherA)if(this.privateVar = anotherA.privateVar)return true; elsereturn false; public class Bpublic static void main(String args)A a = new A(1); A b = new A(2);System.out.println(a.isEqualTo(b); 程序的输出结果为:_false_ _ 2、class A double f(double x, double y) return x * y; class B extends A double f(double x, double y) return x + y; public class Test public static void main(String args) B obj = new B(); System.out.println(The program output is + obj.f(4, 6); 程序的输出结果为:The program output is 10_3、public class Unchecked public static void main(String args) try method(); catch (Exception e) System.out.println(A); finally System.out.println(B); static void method() try wrench(); System.out.println(C); catch (ArithmeticException e) System.out.println(D); finally System.out.println(E); System.out.println(F); static void wrench() throw new NullPointerException(); 程序的输出结果为: E A B 4、public class Test public static void main(String args) int x; int a = 0, 0, 0, 0, 0, 0 ; calculate(a, a5); System.out.println(the value of a0 is + a0); System.out.println(the value is a5 is + a5); static int calculate(int x, int y) for (int i = 1; i x.length; i+) if (y x.length) xi = xi - 1 + 1; return x0; 程序的输出结果为: the value of a0 is 0 the value is a5 is 5 5、 import java.io.*;public class abc public static void main(String args ) AB s = new AB(Hello!,I love JAVA.); System.out.println(s.toString( ); class AB String s1; String s2; AB( String str1 , String str2 ) s1 = str1; s2 = str2; public String toString( ) return s1+s2;Hello! I love JAVA. 6、 import java.io.* ; public class abc public static void main(String args ) int i , s = 0 ; int a = 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 ; for ( i = 0 ; i a.length ; i + ) if ( ai%3 = = 0 ) s += ai ; System.out.println(s=+s); S=180 7、import java.io.* ; public class abc public static void main(String args ) ) System.out.println(a=+a+nb=+b); class SubClass extends SuperClass int c; SubClass(int aa,int bb,int cc) super(aa,bb); c=cc; class SubSubClass extends SubClass int a; SubSubClass(int aa,int bb,int cc) super(aa,bb,cc); a=aa+bb+cc; void show() System.out.println(a=+a+nb=+b+nc=+c); a=60 b=20 c=30 四 写出下列程序完成的功能。1、public class Sum public static void main( String args ) double sum = 0.0 ; for ( int i = 1 ; i = 100 ; i + + ) sum += 1.0/(double) i ; System.out.println( sum=+sum ); 计算1/1+1/2+1/3+.+1/100的值 2、 import java.io.* ; public class Reverse public static void main(String args ) int i , n =10 ; int a = new int10; for ( i = 0 ; i = 0 ; i ) System.out.print(ai+ ); System.out.println( ); 从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数 3、 import java.awt.*; public class abc public static void main(String args) new FrameOut(); class FrameOut extends Frame / Frame为系统定 Button btn; / 义的窗框类 FrameOut( ) super(按钮); btn = new Button(按下我); setLayout(new FlowLayout( ); add(btn); setSize(300,200); show( ); 创建一个标题为“按钮”的窗框,窗框中显示“按下我”字样的按钮。 4、import java.io.*; public class abc public static void main(String args) SubClass sb = new SubClass( ); System.out.println(sb.max( ); class SuperClass int a = 10 , b = 20 ; class SubClass extends SuperClass int max( ) return (ab)?a:b); 求两个数的最大值 五、使用Java语言编写程序1、编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。import java.io.*;public class abcpublic static void main(String args )int i,n=10,max=0,min=0,temp=0;tryBufferedReader br = new BufferedReader ( new IputStreamReader(System.in);max = min=Integer.parseInt(br.readLine( );catch (IOExceptione);for( i=2;imax) max=temp;If(tempmin) min=temp;catch (IOExceptione);system.out.println(max=+max+/n min=+min);2、编写一个完整的Java Applet 程序使用复数类Complex验证两个复数 1+2i 和3+4i 相加产生一个新的复数 4+6i 。 复数类Complex必须满足如下要求:(1)复数类Complex 的属性有:RealPart : int型,代表复数的实数部分ImaginPart : int型,代表复数的虚数部分(2) 复数类Complex 的方法有:import java.applet.*;import java.awt.*;public class abc extends AppletComplex a,b,c;public void init( )a=new Complex(1,2); b=new Complex(3,4); c=new Complex();public void paint(Graphics g)c=plexAdd(b);g.drawString(第一个复数:+a.toString(),10,50);g.drawString(第二个复数:+b.toString(),10,70);g.drawString(第三个复数:+c.toString(),10,90);class Complexint RealPart;/ int ImaginPart;/Complex()RealPart=0;ImaginPart=0;Complex(int r,int i)RealPart=r;ImaginPart=i;Complex complexAdd(Complex a) Complex temp=new Complex( );/temp.RealPart=RealPart+a.RealPart;temp.ImaginPart=ImaginPart+a.ImaginPart;return temp;Public String toString( )return (RealPart+ImaginPart+i);3. 请写一个程序, 类名叫HelloWorld,类里面有一个成员方法sayHello(),这个方法能向控制台输出HelloWorld. Public class HelloWorldpublic void sayHello()Sydtem.out.println(HelloWorld!)public static void main(String args)HelloWorld hello=new HelloWorld();hello.sayHello六、问答题1、什么叫方法的重载?构造函数可以重载吗? 一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同,构造方法可以重载2、Frame类对象的默认布局是什么?和Panel类对象的默认布局相同吗? Frame容器的默认布局是BorderLayout布局,Pamel容器的默认布局是FlowLayout布局,所以不同3、什么是异常?为什么要进行异常处理? 异常是指由于程序运行时发生错误,从而导致程序错误结束。在进行程序设计时,错误的产生是不可避免,没有异常处理代码的程序,在运行时发生错误则可能非正常结束,引起严重问题。因此Java给程序员提供了处理运行时错误的功能,称为异常处理。4、谈谈final, finally, finalize的区别? final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。 finally再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。 finalize方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。1、简述java语言的特点? 答:Java语言是目前使用最为广泛的网络编程语言之一 ;具有面向对象 与平台无关性多线程性 、动态性等特点 2、简述Java程序的开发过程? (1)使用一个文字编辑器,编写源文件。(2)使用java编译器,编译源文件得到字节码文件。(3)运行java程序,分两种java应用程序必须通过java解释器来解释执行,java小应用程序必须使用解释器和浏览器运行程序。3、java源文件的命名规则是什么? 如果源文件中有多个类,那么只能有一个类是public类 ;如果有一个类是public类,源文件的名字必须与这个类的名字完全相同,扩展名是java ;如果源文件没有public类,源文件的名字只要和某个类的名字相同,并且扩展名是java 4、怎样区分应用程序和小应用程序? 一个java应用程序必须且只有一个类含有main方法,这个类称为应用程序的主类,其main方法必须被说明为public static void ;一个Java Applet小应用程序不再需要main方法,但必须有一个类扩展了Applet类,即它是Applet类的主类。5、Java中共有哪些基本数据类型?基本类型共有8种,分四类分别是:逻辑型 字符型 整型 浮点型 6、Java中数据类型分别用什么符号来表示的? 逻辑型用boolean 表示 ;字符型用char表示 ;整型共有4种分别是 byte、short、long、int ;浮点型共两种float和double 7、简答标示符的概念及定义原则? 标示符是用来标识类名、变量名、方法名、类型名等有效字符序列。 Java语言规定标示符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字,及java中的关键字不能用作标示符。8、简答什么是强制类型转换及转换格式? 当把一种数据类型变量的值赋给另一种数据类型时会用到数据转换。当把在内存中占字节数较少的变量的值赋给占字节较多的变量时,系统自动完成数据类型的转换 格式:(数据类型名)变量名或表达式 9、简答表达式+x和x+的区别 +x表示在使用x之前,先使x的值加1 ;x+表示在使用x之后,使x的值加1 10、Java中常用的运算符按功能分有哪些? Java运算符按功能分6种,具体如下 算术运算符、关系运算符、逻辑运算符 位运算符、赋值运算符、条件运算符 11、Java中结构化程序设计有哪三种基本流程,及分别对应java中那些语句? 结构化程序设计有顺序、分支、循环三种基本流程 java中的分支语句包括if语句、switch语句; 循环语句包括while语句、do-while语句、for语句; 其他如对象、变量定义语句、赋值语句、方法调用语句等都是顺序语句。 13、package语句与import语句分别作用是什么? package语句作为java源程序的第一条语句,指明该源文件定义的类所在的包。 import语句作用是为了能使用java提供的类,可以使用import语句来引入所需要的类。 14、简述编程语言的几个发展阶段? (1)面向机器语言 (2)面向过程语言 (3)结构化程序设计阶段(4)面向对象编程 15、什么是类及类的实现包括什么? 类是组成java程序的基本要素 ; 类封装了一类对象的状态和方法 类是用来定义对象的模板 ;类的实现包括两部分:类声明和类体 16、什么是方法重载? 方法重载是指,一个类中可以有多个方法具有相同的名字和类型但这些方法的参数必须不同或者是参数个数不同,或者是参数类型不同17、什么是构造方法? 构造方法是一种特殊方法 ;它的名字必须与它所在的类的名字完全相同;并且不返回任何数据类型,即它是void型 18、什么是实例变量和类变量及他们的区别? 用修饰符static说明的变量是类变量,其他是实例变量 ;不同对象的实例变量将分配不同的内存空间 ;所有对象的类变量都分配给相同的一处内存,改变其中一个对象的类变量的值,会影响其他对象的这个类变量的值。 19、什么是实例方法和类方法及他们的区别? 用修饰符static说明的方法是类方法,其他是实例方法 当一个类创建了一个对象后,这个对象就可以调用该类的方法区别就在于类方法不仅可以有对象调用而且还可以直接由类名调用而实例方法不能由类名调用。20、创建一个对象包括哪些过程? 创建一个对象分两个步骤 : (1)对象的声明,格式是:类的名字 对象名 (2)为声明的对象分配内存,使用new运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法 21、为什么说构造方法是一种特殊方法及由谁调用? 构造方法的名字和类名相同,且没有任何返回值 ;创建一个对象是执行构造方法,由系统自动调用 22、类及类成员的访问控制符有哪些,并说明私有权限和公有权限的使用方法? 控制符有4种:public protected private privateprotected其中private权限的成员只能在本类中使用,public公有权限的成员不但能在本类中使用,还可在类外使用。23、简述什么是类的继承机制? 继承是一种由已有的类创建新类的机制 利用继承可以创建一个共有属性的一般类,根据该一般类再创建具有特殊属性的新类 新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为 由继承而得到的类称为子类 ;被继承的类称为父类 24、简述如何会发生成员变量的隐藏和方法重写? 当子类中定义的成员变量和父类中的成员变量同名时,则父类中的成员变量不能被继承,此时称子类的成员变量隐藏了父类的成员变量。当子类中定义了一个方法,并且这个方法的名字、返回类型、及参数个数和类型跟父类的某个方法完全相同时,父类方法被隐藏,即重写了父类的方法。25、用final修饰符修饰的类和方法有什么特点用final修饰的类不能被继承,即不能有子类;用final修饰的方法不能被重写 26、用abstract修饰符修饰的类和方法有什么特点? 用abstract修饰的类不能创建对象,必须产生子类,有子类创建对象用abstract修饰的方法只允许声明,而不允许实现。如果一个类是一个abstract类的子类,它必须实现父类的abstract方法。27、关键字super如何使用? 子类继承父类时可能会发生父类的成员变量被隐藏和父类中的成员方法被重写 如果在子类中想使用被子类隐藏的父类的成员变量或方法就可以使用关键字super 用super可以调用父类的构造方法和操作被隐藏的成员变量和方法 28、java是否支持多继承及java中采取什么机制来代替多重继承? Java不支持多继承,即一个类只能有一个父类;单继承性使得java简单,易于管理程序 为了克服单继承的缺点,java使用了接口,一个类可以实现多个接口29、java中如何定义和使用接口?使用关键字interface来定义一个接口,接口的定义和类的定义很相似,分为接口的声明和接口体;一个类通过关键字implements声明自己使用一个或多个接口,如果使用多个接口,则用逗号隔开接口;如果一个类使用某个接口,那么这个类必须实现该接口的所有方法30、一个Java Applet的生命周期包括什么? 一个Java Applet的执行过程称为这个Java Applet的生命周期 一个完整的Java Applet所包含5个方法init( ) 、start( );stop( )、destroy( );paint(Graphics g) 31.、处理选择(Choice)控件上的事件?选择控件的选择情况发生变化会产生HemEvent事件;处理该事件的接口是HemListener 接口中的方法是ItemStateChanged(HemEvent e);事件源获得监视器的方法是addHemListener( ) ;处理该事件时,如果想获得事件源可调用方法getHemSelectable( ) 32、如何处理滚动列表(List)上的事件? 滚动列表可产生两种事件:双击和单击某项 当双击某项时,产生ActionEvent事件,获得事件监视器的方法是addActionListener( ),处理事件的接口是ActionListener ;接口中的方法是ActionPerformed(ActionEvent e),获得该事件的事件源的方法是getSource( ) 当单击某项时,产生HemEvent事件,获得事件监视器的方法是addHemListener( ),

温馨提示

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

评论

0/150

提交评论