Java技术:Java期末综合练习题

更新时间:2024-03-05 21:10:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Java技术:Java期末综合练习题

一、选择题。

1.编译Java Applet 源程序文件产生的字节码文件的扩展名为( )。 A、java B、class C、html D、exe

2.main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( )?

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[] )

3.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。

A、static void method( ) B、public void method( ) C、final void method( ) D、abstract void method( ) 4.下列哪个是合法的Java标识符?( )

A、Tree&Glasses B、FirstJavaApplet C、_$theLastOne D、273.5

5.Java Application源程序的主类是指包含有( )方法的类。 A、main方法 B、toString方法

C、init方法 D、actionPerfromed方法

6.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用(比特位。

A、8 B、16 C、32 D、64

7.设 a = 8,则表达式 a >>> 2 的值是( )。 A、1 B、2 C、3 D、4

8.若a的值为3时,下列程序段被执行后,c的值是多少?( ) c = 1;

if ( a>0 ) if ( a>3 ) c = 2; else c = 3; else c = 4; A、1 B、2 C、3 D、4

9.在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上( )语句。

A、import java.awt.* ; B、import java.applet.Applet ; C、import java.io.* ; D、import java.awt.Graphics ; 10.对于构造函数,下列叙述正确的是( )。

A、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 B、构造函数的返回类型只能是void型。

C、构造函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。

11.下面的是关于类及其修饰符的一些描述,正确的是:( )。 A、abstract类只能用来派生子类,不能用来创建abstract类的对象。 B、final类不但可以用来派生子类,也可以用来创建final类的对象。 C、abstract不能与final同时修饰一个类。 D、abstract方法必须在abstract类中声明,但abstract类定义中可以没有 )个 abstract

方法。

12.若需要定义一个类域或类方法,应使用哪种修饰符?( ) A、static B、package C、private D、public 13.若在某一个类定义中定义有如下的方法: abstract void performDial( );该方法属于( )。

A、本地方法 B、最终方法 C、解态方法 D、抽象方法 14.下列关于静态初始化器的叙述中,哪一个是正确的?( ) A、静态初始化器是在构造函数之前加上static修饰符。 B、静态初始化器是对类自身进行初始化。 C、静态初始化器在同一个类中只能有一个。

D、静态初始化器是在其所属的类加载内存时由系统自动调用执行。

15.不使用static修饰符限定的方法称为对象(或实例)方法,下列哪一个说法是正确的?( )

A、实例方法可以直接调用父类的实例方法。 B、实例方法可以直接调用父类的类方法。 C、实例方法可以直接调用其他类的实例方法。 D、实例方法可以直接调用本类的类方法。 16.设有下面两个类的定义:

class Person { class Student extends Person { long id; // 身份证号 int score; // 入学总分 String name; // 姓名 int getScore(){ } return score; } }

问:类Person和类Student的关系是( )。 A、包含关系 B、继承关系

C、关联关系 D、无关系,上述类定义有语法错误 17. 设有下面的两个类定义: class AA {

void Show(){ System.out.println(\我喜欢Java!\ }

class BB extends AA {

void Show(){ System.out.println(\我喜欢C++!\ }

则顺序执行如下语句后输出结果为:( ) AA a; BB b; a.Show(); b.Show();

A、我喜欢Java! B、我喜欢C++! 我喜欢C++! 我喜欢Java! C、我喜欢Java! D、我喜欢C++! 我喜欢Java! 我喜欢C++! 18.设有下面的一个类定义: class AA {

static void Show( ){ System.out.println(\我喜欢Java!\

}

class BB { void Show( ){ System.out.println(\我喜欢C++!\

若已经使用AA类创建对象a和BB类创建对象b,则下面哪一个方法调用是正确的:( )

A、a.Show( ) B、AA.Show( ); b.Show( ) BB.Show( ); C、AA.Show( ); D、a.Show( ); b.Show( ); BB.Show( );

19.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为( )。

A、隐藏 B、覆盖 C、重载 D、Java不支持此特性20.对于构造函数,下列叙述正确的是( )。 A、构造函数也允许重载。

B、子类无条件地继承父类的无参构造函数。 C、子类不允许调用父类的构造函数。

D、在同一个类中定义的重载构造函数可以相互调用。21.在使用interface声明一个接口时,只可以使用( A、private B、protected C、private protected D、public 22.设有下面两个赋值语句: a = Integer.parseInt(\

b = Integer.valueOf(\ 下述说法正确的是( )。

A、a是整数类型变量,b是整数类对象。 B、a是整数类对象,b是整数类型变量。

C、a和b都是整数类对象并且它们的值相等。 D、a和b都是整数类型变量并且它们的值相等。

23.在Java Applet程序用户自定义的Applet子类中,常常重载Applet的界面中显示文字、图形和其它界面元素。 A、start( ) B、stop( ) C、init( ) D、paint( ) 24.下面的语句的作用是:( )。

Vector MyVector = new Vector(100,50);

A、创建一个数组类对象MyVector,有100个元素的空间,50。

B、创建一个向量类对象MyVector,有100个元素的空间,50。

C、创建一个数组类对象MyVector,有100个元素的空间,若空间使用完时,以50个元素空间单位递增。

D、创建一个向量类对象MyVector,有100个元素的空间,若空间使用完时,以50个元素空间单位递增。

25.在Java中,存放字符串常量的对象属于( )类对象。 A、Character B、String

( )方法在

)修饰符修饰该接口。 每个元素的初值为每个元素的初值为 C、StringBuffer D、Vector

26.在Java中,开发图形用户界面的程序需要使用一个系统提供的类库,这个类库就是( )包。

A、java.io B、java.awt

C、java.applet D、java.awt.event

27.在Java图形用户界面编程中,若显示一些不需要修改的文本信息,一般是使用( )类的对象来实现。 A、Label B、Button C、TextArea D、TextField

28.创建一个标识有\关闭\按钮的语句是( )。 A、TextField b = new TextField(\关闭\ B、Label b = new Label(\关闭\

C、Checkbox b = new Checkbox(\关闭\ D、Button b = new Button(\关闭\

29.在编写异常处理的Java程序中,每个catch语句块都应该与( )语句块对应,使得用该语句块来启动Java的异常处理机制。 A、if - else B、switch C、try D、throw

30.在编写Java Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上( )语句。

A、import java.awt.* ; B、import java.applet.* ; C、import java.io.* ; D、import java.awt.event.* ;

31.对于子类的构造函数说明,下列叙述中不正确的是( )。 A、子类无条件地继承父类的无参构造函数。

B、子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句。

C、在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行自己的构造函数。 D、子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。 32.Java语言是( )。

A.面向问题的解释型高级编程语言 B.面向机器的低级编程语言

C.面向过程的编译型高级编程语言 D.面向对象的解释型高级编程语言 33.下列的变量定义中,错误的是( )。

A) int i; B) int i=Integer.MAX_VALUE; C) static int i=100; D) int 123_$; 34.以下的变量定义语句中,合法的是( )。 A) float $_*5= 3.4F; B) byte b1= 15678; C) double a =Double. MAX_VALUE; D) int _abc_ = 3721L;

35. 以下字符常量中不合法的是( )。

A) '|' B) '\\'' C) \ D) '我' 36.下列程序段执行后t5的结果是( )。 int t1 = 9, t2 = 11, t3=8;

int t4,t5;

t4 = t1 > t2 ? t1 : t2+ t1; t5 = t4 > t3 ? t4 : t3;

A) 8 B) 20 C) 11 D) 9

37.设 a, b, c, d 均为 int 型的变量,并已赋值,下列表达式的结果属于非逻辑值的 是( )。

A) a!=b & c%d < a B) a++ = =a+b+c+d C) ++a*b--+d D) a+b>=c+d

38.以下由do-while语句构成的循环执行的次数是( )。 int k = 0;

do { ++k; }while ( k < 1 );

A) 一次也不执行 B) 执行1次 C) 无限次 D) 有语法错,不能执行

39.下列语句序列执行后,k的值是( )。 int j=8, k=15;

for( int i=2; i!=j; i++ ) { j-=2; k++; }

A) 18 B)15 C)16 D) 17 40.下列语句序列执行后,j 的值是( )。 int j=3, i=2; while( --i!=i/j ) j=j+2;

A)2 B) 4 C)6 D) 5 41.下列语句序列执行后,k 的值是( )。 int x=6, y=10, k=5; switch( x%y ) { case 0: k=x*y; case 6: k=x/y; case 12: k=x-y; default: k=x*y-x; }

A) 60 B) 54 C) 0 D) 5 42.下列语句序列执行后,a的值是( )。 int a=13; a%=a/5;

A) 3 B) 13 C) 1 D) 169

43. 既能作为类的修饰符, 也能作为类成员的修饰符的是( )。 A) public B) extends C) Float D) static 44.下列选项中,用于定义接口的关键字是( )。

A)import B) implements C) interface D) protected 45.下列类头定义中,错误的是( )。 A) class x { .... }

B) public x extends y { .... }

C) public class x extends y { .... }

D) class x extends y implements y1 { .... }

46.下列选项中,用于在定义类头时声明父类名的关键字是( )。 A)return B) interface C) extends D) class

47.设 i,j 为类 x 中定义的 double 型变量名,下列 x 类的构造函数中不正确的是( )。

A) double x(double k ){ i=k; return i; } B) x(double m, double n ){ i=m; j=n; } C) x( ){i=0;j=0 }

D) x(double k ){ i=k; }

48.下列方法定义中,不正确的是( )。 A) public int x( ){ ... }

B) public static int x( double y ){ ... } C) void x( double d ) { ... }

D) public static x( double a ){ ... }

49.能从循环语句的循环体中跳出的语句是( )。

A) for 语句 B) break 语句 C) while 语句 D) continue语句50. 若有循环: int x=5,y=20; do{

y-=x; x++;

}while(++x<--y);则循环体将被执行( )。

A.0次 B.1次 C.2次 D.3次 51. 定义类头时,不可能用到的关键字是( )。

A) private B)class C)extends D)implements

52.在一个应用程序中有如下定义:int a[]={1,2,3,4,5,6,7,8,9,10};,数组a的最后一个元素,下面正确的代码是( )。 A) System.out.println(a[10]); B) System.out.println(a[9]);

C) System.out.println(a[a.length]); D) System.out.println(a(8));

53.若一个类中对某个方法进行了重载,能够区分这些重载方法的手段是A) 它们的返回值类型的不同 B) 它们的名称的不同C) 它们的参数表的不同 D) 它们的修饰符不同54.下面是有关子类继承父类构造函数的描述,其中正确的是( )。 A) 创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数。B) 子类无条件地继承父类不含参数的构造函数。 C) 子类必须通过super关键字调用父类的构造函数。 D) 子类无法继承父类的构造函数。

( )。 为了打印输出 55.下面说法正确的是( )。

A) final 可修饰类、属性、方法。 B) abstract可修饰类、属性、方法。

C) 定义抽象方法需有方法的返回类型、名称、参数列表和方法体。 D) 用final修饰的变量,在程序中可对这个变量的值进行更改。 56.下列哪个选项是合法的标识符?

A)123 B)_name C)class D)1first

57.下列哪个选项是Java调试器,如果编译器返回程序代码的错误,可以用它对程序进行调试?

A)java.exe B)javadoc.exe C)jdb.exe D)javaprof.exe 58.下列的哪个选项可以正确用以表示八进制值8? A)0x8 B)0x10 C)08 D)010 59.下列的哪个赋值语句是不正确的?

A)float f = 11.1; B)double d = 5.3E12; C)float d = 3.14f ; D)double f=11.1E10f; 60.下列的哪个赋值语句是正确的?

A)char a=12; B)int a=12.0; C)int a=12.0f; D)int a=(61.给出下列的代码,哪行在编译时可能会有错误? ① public void modify(){ ② int i, j, k; ③ i = 100;

④ while ( i > 0 ){ ⑤ j = i * 2;

⑥ System.out.println (\); ⑦ k = k + 1; ⑧ } ⑨ }

A)line 4 B)line 6 C)line 7 D)line 8 62.下列关于继承的哪项叙述是正确的? A)在java中允许多重继承

B)在java中一个类只能实现一个接口

C)在java中一个类不能同时继承一个类和实现一个接口 D)java的单一继承使代码更可靠

63.下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?

A)private B)无修饰符 C)public D)protected

64. 给出下列代码,如何使成员变量m 被方法fun()直接访问? class Test {

private int m;

public static void fun() { ... }

int)12.0; }

A)将private int m 改为protected int m B)将private int m 改为 public int m C)将private int m 改为 static int m D)将private int m 改为 int m

65. 已知有下列类的说明,则下列哪个语句是正确的? public class Test {

private float f = 1.0f; int m = 12; static int n=1;

public static void main(String arg[]) {

Test t = new Test(); } }

A)t.f; B)this.n; C)Test.m; D)Test.f;66. 给出下列代码,则数组初始化中哪项是不正确的? byte[] array1,array2[]; byte array3[][]; byte [][] array4; A)array2 = array1 B)array2=array3 C)array2=array4 67. 下列代码的执行结果是 public class Test

{ public int aMethod() {

static int i=0; i++;

System.out.println(i); }

public static void main(String args[]) {

Test test = new Test(); test.aMethod(); } }

A)编译错误 B)0 C)1 D)运行成功,但不输出68. 下列关于内部类的说法不正确的是

A)内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用B)内部类可以使用它所在类的静态成员变量和实例成员变量C)内部类不可以用abstract修饰符定义为抽象类

D)内部类可作为其他类的成员,而且可访问它所在类的成员69. 顺序执行下列程序语句后,则b的值是 String a=\

D)array3=array4 String b=a.substring(0,2);

A)Hello B)hello C)Hel D)null

70. 在oneMethod()方法运行正常的情况下,程序段将输出什么? public void test() {

try { oneMethod();

System.out.println(\);

} catch (ArrayIndexOutOfBoundsException e) {

System.out.println(\); } catch(Exception e) {

System.out.println(\); } finally {

System.out.println(\); } }

A)condition 1 B)condition 2 C)condition 3 D)condition 1 finally

71. 下列常见的系统定义的异常中,哪个是输入、输出异常? A)ClassNotFoundException B)IOException

C)FileNotFoundException D)UnknownHostException

72. 下列哪个不是nio包的新特点?

A)内存映射技术 B)文件锁定 C)字符及编码 D)阻塞I/O 73. 下列哪个选项是正确计算42度(角度)的余弦值? A)double d=Math.cos(42); B)double d=Math.cosine(42);

C)double d=Math.cos(Math.toRadians(42)); D)double d=Math.cos(Math.toDegrees(42));

74. 下列InputStream类中哪个方法可以用于关闭流?

A)skip() B)close() C)mark() D)reset() 75. 下列方法中哪个是执行线程的方法?

A)run() B)start() C)sleep() D)suspend() 76. 下列关于Frame类的说法不正确的是 A)Frame是Window类的直接子类 B)Frame对象显示的效果是一个窗口 C)Frame被默认初始化为可见

D)Frame的默认布局管理器为BorderLayout 77. 下列Java常见事件类中哪个是鼠标事件类?

A)InputEvent B)KeyEvent C)MouseEvent D)WindowEvent 78. 在Applet的关键方法中,下列哪个方法是关闭浏览器以释放Applet占用的

所有资源?

A)init() B)start() C)paint() D)destroy() 79. 下列哪个是面向大型企业级用容器管理专用构件的应用平台? A)J2EE B)J2ME C)J2SE D)J2DE 80. 下列哪个选项的java源文件代码片段是不正确的? A)package testpackage; public class Test{ } B)import java.io.*; package testpackage; public class Test{ } C)import java.io.*; class Person{ } public class Test{ } D)import java.io.*; import java.awt.*; public class Test{ }

二、写出下列程序完成的功能。 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( \ } }

2.import java.io.* ; public class Reverse

{ public static void main(String args[ ]) { int i , n =10 ;

int a[ ] = new int[10]; for ( i = 0 ; i < n ; i ++ ) try {

BufferedReader br = new BufferedReader( new InputStreamReader(System.in));

a[i] = Integer.parseInt(br.readLine( )); // 输入一个整数 } catch ( IOException e ) { } ; for ( i = n-1 ; i >= 0 ; i ―― ) System.out.print(a[i]+\\ System.out.println( ); } }

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 Class1 {

public static void main(String args[ ]){ int i , Max , Min ;

int a[ ] = { 12,67,8,98,23,56,124,55,99,100 }; Max = Min = a[0];

for ( i = 1 ; i < a.length; i ++ ) { if ( a[i]Max ) Max = a[i]; }

System.out.println( Max+\\ System.out.println( ); } }

5. public class ABC {

public static void main(String args[ ]){ int i , j ;

int a[ ] = { 12,67,8,98,23,56,124,55,99,100 }; for ( i = 0 ; i < a.length-1; i ++ ) { int k = i;

for ( j = i ; j < a.length ; j++ ) if ( a[j]

}

for ( i =0 ; i

6.import java.io.*;

public class Class1 {

public static void main( String args[] ) {

Fact N = new Fact( 4 ); System.out.println( N.fact( ) ); } }

class Fact { int n ;

Fact( int nn ) { n = nn; } int fact( ) {

int i , f = 1;

for ( i=1; i<=n; i++ ) f = f*i; return f; } }

7.import java.awt.*; import java.applet.Applet;

public class DrawMyImage extends Applet {

Image myImage; // 定义一个图像类Image的对象myImage public void init( ) {

myImage = getImage(getDocumentBase( ),\ }

public void paint(Graphics g) {

g.drawImage(myImage,0,0,this); } }

8. import java.io.*; public class Class1 {

public static void main( String args[ ] )

{ SubClass a = new SubClass( 10,3 ); System.out.println( a.exp( )); } }

class SuperClass { float x; int n;

SuperClass( float xx , int nn ) { x = xx ; n = nn; } }

class SubClass extends SuperClass {

SubClass( float xx , int nn ) { super( xx , nn ); } float exp( ) { float s = 1;

for ( int i = 1; i<=n; i++ ) s = s*x; return s; } }

9. import java.awt.*; import java.applet.Applet;

public class Applet1 extends Applet {

public void paint( Graphics g ) {

g.drawLine( 30,5,100,45 ); g.drawRect( 30,50,50,20 ); g.drawOval( 30,80,50,40 );

g.drawString( \are figures!\ } }

10.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 ((a>b)?a:b); } } 三、写出下面程序的运行结果。 1.import java.io.*;

public class abc

{ public static void main(String args[ ])

{ AB s = new AB(\ 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;} }

2.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 ( a[i]%3 = = 0 ) s += a[i] ; System.out.println(\ } }

3. import java.io.* ; public class abc {

public static void main(String args[ ])

{ SubSubClass x = new SubSubClass(10 , 20 , 30); x.show(); } }

class SuperClass { int a,b;

SuperClass(int aa , int bb) { a=aa; b=bb; } void show( )

{ System.out.println(\} }

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(\ }

4. import java.io.*; public class abc {

public static void main(String args[]) {

String s1 = \

String s2 = new String(\ System.out.println(s1.concat(s2)); } }

5. import java.io.* ; public class ABC {

public static void main(String args[ ]) { int i ;

int a[ ] = { 11,22,33,44,55,66,77,88,99 }; for ( i = 0 ; i <= a.length / 2 ; i ++ )

System.out.print( a[i]+a[a.length-i-1]+\\ System.out.println( ); } }

6. import java.io.*; class Parent {

void printMe() {

System.out.println(\ } }

}

class Child extends Parent {

void printMe() {

System.out.println(\ }

void printAll() {

super.printMe(); this.printMe(); printMe(); } }

public class Class1 {

public static void main(String args[ ]) {

Child myC = new Child( ); myC.printAll( ); } }

参考答案

一、选择题。

1.B 2.B 3.A 4.B 、 C 5.A 6.B 7.B 8.C 9.C 10.A、C、D

11.A、C、D 12.A 13.D 14.B、D 15.B、D 16.B 17.A 18.C 19.C 20.A、B、D 21.D 22.D 23.D 24.D 25.B

26.D 27.A 28.D 29.C 30.D 31.D 32.D 33.D 34.B 35.D 36.D 37.C 38.B 39.D 41.B 42.C 43.A 44.C 45.B 47.A 48.D 49.B 50.C 51.A 53.C 54.C 55.A 56.B 57.C 59.A 60.D 61.C 62.D 63.B 65.A 66.A 67.A 68.C 69.C 71.B 72.D 73.C 74.B 75.A 77.C 78.D 79.A 80.B

二、写出下列程序完成的功能。

1.计算 1/1+1/2+1/3+...+1/100 的值。2.从标准输入(即键盘)读入10个整数存入整型数组个整数。

3.创建一个标题为\按钮\的窗框,窗框中显示有4.在数组中查找并输出最大值和最小值。5.使用选择法对数组a的数据进行升序排序,然后输出排序后的结果。6.定义一个计算n!的类Fact,然后主类中创建一个对象求解7.在Applet界面中显示当前文件夹下名为8.定义一个计算xn的类,然后用该类求9.在Applet界面中显示一些由直线、矩形框、椭圆框和文字组成的图形。10.求两个数的最大值。 三、写出下面程序的运行结果。 1.Hello! I love JAVA. 2.s = 180 3.a=60 b=20 c=30

4.Hello! World!

5.110 110 110 110 110 6.parent child child

40.D 46.C 52.B 58.D 64.C 70.D 76.C a中,然后逆序输出这\按下我

\的图像。103的值。

\字样的按钮。4!的值。 10

本文来源:https://www.bwwdw.com/article/vwwa.html

Top