当前位置:文档之家› 海南大学java复习题

海南大学java复习题

《java程序设计》复习题(一)

第一,二章java语言基础

1.Java是低级语言还是高级语言

2.Java是面向对象的程序设计语言吗

3. Java是编译型的计算机语言还是解释型的计算机语言

4. Java语言的程序设计包含哪3个步骤

5. Java源程序文件的后缀是什么

6. Java源程序经编译后生成什么文件其后缀是什么

7. Java程序有哪两类

8.类的定义由哪两部分组成

9.方法的定义由哪两部分组成

10.一个Java源程序中可以有多个公共类(主类)吗

11.一个Java源程序中可以有多个类吗若有多个类时,程序文件名是什么

12.一个Java Applet源程序的主类能有多个父类吗

13. Java应用程序(Application)的主类的类头应如何写它的主方法的方法头应如何写Application 的入口在哪

14.Java应用程序(Application)的主类中一定要有主方法(main)吗

15. Java小程序(Applet)的主类的类头应如何写小程序在什么环境下运行

16.Java小程序(Applet)的主类的父类必须是类Applet吗

17.Java中的的字符使用什么编码

18. 在Java语言中,将源代码翻译成____________时产生的错误称为编译错误,而将程序在运行中产生的错误称为运行错误.

19. 为了使包sos中的所有类在当前程序中可见,可以使用的语句是.

A)import sos.*; B)package sos.*;

C)sos import; D)sos package;

20. 在Applet 的坐标系中,(0,0) 代表输出窗口______角的象素点

21.下面是用户程序对Applet 类中方法paint( ) 的重新定义. (public drawString)

__________ void paint(Graphics g)

{ g.____________("你好!",10,20); }

练习二(数据类型)

1.以下的选项中能正确表示Java语言中的一个整型常量的是.

A) 12. B) -20 C) 1,000 D) 4 5 6

2.下列的变量定义中,错误的是

A) int 6_a; B) float a;

C) int i=Integer.MAX_VALUE; D) static int i=100;

3.下列的变量定义中,错误的是

A) int a;b; B) float a,b1=1.23f;

C) char ch1='d',ch2='\''; D) public int i=100,j=2,k;

4.下列的变量定义中,错误的是

A) int _a=123; B) long j=12345678900L;

C) int m,n; D) static i=100; 5.下列的变量定义中,正确的是

A) boolean b1="true"; B) float x=6.6;

C) byte i=200; D) double y;

6.以下字符常量中不合法的是.

A) '@' B) '&' C) "k" D) '整'

7.以下的选项中能正确表示Java语言中的一个整型常量的是.

A) Integer.MAX_VALUE B) 8.8F C) 2.0E16 D)true

8.下列最终属性(常量)i 的定义中,正确的是.

A) static final double i; B) abstract final int i=8;

C) final double i=3.14159; D) float i=1.2f;

9.以下的选项中能正确表示Java语言中的一个double型常量的是

A) Float.MIN_VALUE B) 1.8e-6F C) 2.0 D)'abcf'

10.以下的变量定义语句中,合法的是.

A) float $_*5= 3.4F; B) byte b1= 15678;

C) double a =Double. MAX_VALUE; D) int _abc_ = 3721L;

11.以下字符常量中不合法的是

A) '|' B) '\'' C) "\n" D) '我'

12.定义初值为10的10次方的长整型变量var 的语句是:_________________.

(long var=10000000000L;或long var=(long)1e10;)

13. Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为哪两种具体类型,各占二进制的多少位

(float 32位,double 64位)

15.在Java语言中,逻辑常量只有哪两个值(true,false)

16.字符串"\'a\'" 的长度是几(即有几个字符) (3个字符)

17. Java语言中的逻辑变量可以和整型变量相互强制转换吗(不能)

18. 在程序中可对用final修饰的变量的值进行更改吗(不能)

《java程序设计》复习题(二)

1.已定义a为int类型的变量.以下选项中,合法的赋值语句是( B ).

A) a +1= =2; B) a+=a*6; C) a=8.8f; D) int a=8;

2.以下选项中的变量都已正确定义,不合法的表达式是(C ).

A) a >= 4 = = b3; B)t=!false; C)t=(true|false); D)t=(2= =3)?true:false;

7.以下变量均已正确定义并赋值,下面符合Java语言语法的赋值语句是

(A ).

A) m = n>=5; B) m = k % c=h+y;

C) j=t+ % 100; D) j = y > 2= x + 3;

8.设i, j, k, m为已赋值的int 型变量,下列表达式的结果属于逻辑值的是( A).

A) i==k & j+k >=m B) i+k C) m++ D) m=i+j

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

A)a!=b & c%d =c+d

10.变量a定义为int类型.以下选项中,合法的赋值语句是( B ).

A) a +1==2; B) a+=1; C) a=8.8f; D) a=new int(8);

11.若有定义int x = 13;则执行完语句x %= 8; 后,x的值是(C ).

A) 0 B) 1 C) 5 D) 8

12.以下选项中,合法的赋值语句是( B ).

A) a = = 1; B) ++ i; C) a=a + 1= 5; D) !(++a!=b- -);

13.若所用变量都已正确定义,以下选项中,非法的表达式是( C).

A) a != 4||b= =1 B) 'a' % 3 C) 'a' = 1/2 D) 'A' + 32

14.若有定义int a = 2;则执行完语句a -= a * a; 后,a的值是( C).

A) 0 B) 4 C) -2 D) –4

15.现有一变量声明为boolean aa;下面赋值语句中正确的是( A ).

A) aa=false; B) aa=False; C) aa="true"; D) aa=0;

16. 下列程序段执行后b3 的结果是(D).

boolean b1=true, b2=true, b3;

b3= !b1 b1 :!b2;

A) 0 B) 1 C) true D) false

17. 设有定义int i=123; long j=456; 下面赋值不正确的语句是(D).

A) j=i; B) j=(long)i; C) i=(int)j; D) i=j;

18.若以下变量均已正确定义并赋值,下面符合Java语言语法的语句是( A).

A)b=a!=7; B)a=7+b+c=9; C)i=12.3* %4; D)a=a+7=c+b;

19.下列程序段执行后t5的结果是(B ).

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

20.执行下面程序段后,b, x, y的值分别是( D).

int x=6,y=8;

boolean b;

b=x>y&&++x==--y;

A)true , 6, 8 B)false , 7, 7 C)true, 7, 7 D)false, 6, 8

21.执行下列程序段后,m,x,y的值分别是( B).

int x=2,y=4;

boolean m;

m=++x>y--;

A)true , 2,4 B)false , 3,3 C) true, 3,3 D) false, 2,4

22.下面语句序列执行后,a的值是(D ).

int a=13; a%=a/5;

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

23.设x,y,max,min均为int型变量,x,y已赋值.用三目条件运算符求x,y 的最大值和最小值,并分别赋给变量max和min,这两个赋值语句分别是______和______.(max=x>y x:y; min=xy), b2=(++x==--y);

g.drawString( "b1和b2相与的结果是:"+ ( b1 && b2 ), 25, 25 );

g.drawString( "b1和b2相或的结果是:"+ ( b1 || b2 ), 25, 45 );

g.drawString( "!b1的结果是:"+ ( !b1), 25, 65 ); g.drawString( "x=" +x+"; y="+y, 25, 85 );

}

}

问题: 1)程序执行后共输出几行(4行)

2)输出结果是什么(略)

《java程序设计》复习题(三)

练习四(条件,分支语句)

1.下列语句序列执行后,m 的值是( C).

int a=10, b=3, m=5;

if( a==b ) m+=a; else m=++a*m;

A) 15 B) 50 C) 55 D) 5

2.下列语句序列执行后,k 的值是(B ).

int i=4,j=5,k=9,m=5;

if(i>j||m

A) 5 B) 10 C) 8 D) 9

3.下列语句序列执行后,x 的值是( D ).

int a=2, b=4, x=5;

if( a<--b ) x*=a;

A) 5 B) 20 C) 15 D) 10

4.下列语句序列执行后,b 的值是( B).

int a=2, b=4;

if( a < - - b ) a*=a;

A) 5 B) 3 C) 15 D) 10

5.下列语句序列执行后,m 的值是( D ).

int i=9, j=8, m=10, n=9;

if( i

A) 6 B) 7 C) 8 D) 9

6.下列语句序列执行后,x 的值是( A ).

int a=3, b=4, x=5;

if( ++aA) 5 B) 3 C) 4 D) 6

7.下列语句序列执行后,ch1 的值是( B ).

char ch1='A',ch2='W';

if(ch1 + 2 j||m

A) 12 B)11 C) 10 D) 9

10.下列语句序列执行后,k 的值是(C ).

int i=10, j=18, k=30;

switch( j - i )

{ case 8 : k++;

case 9 : k+=2;

case 10: k+=3;

default : k/=j;

}

A) 31 B) 32 C) 2 D) 33

11.若a和b均是整型变量并已正确赋值,正确的switch语句是(D ).

A) switch(a+b); { ...... } B) switch( a+b*3.0 ) { ...... }

C) switch a { ...... } D) switch ( a%b ) { ...... }

12.下列语句序列执行后,r 的值是( C).

char ch='8'; int r=10;

switch( ch+1 )

{

case '7': r=r+3;

case '8': r=r+5;

case '9': r=r+6; break;

default: r=r+8;

}

A) 13 B) 15 C) 16 D) 18

13.设int 型变量a,b,float 型变量x,y,char 型变量ch 均已正确定义并赋值,正确的switch语句是(B ).

A) switch (x + y) { ...... } B) switch ( ch + 1 ) { ...... }

C) switch ch { ...... } D) switch ( a + b ); { ...... }

14.下列语句序列执行后,k 的值是(D ).

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) 5 C) 0 D) 54

15.下列语句序列执行后,r 的值是(B ).

char ch='A'; int r=6;

switch( ch+5 )

{

case 'A': r=r+3;

case 'B': r=r+5;

case 'C': r-=6; break;

default : r/=2;

}

A) 11 B) 3 C) 2 D) 9

16.如果变量x已正确定义,写出实现以下功能的语句:如果变量x是偶数,则将其增加2.

______________________ ;.(if(x%2= =0) x+=2;)

17. 设ch1, ch2是char 型变量:

if ( ch1 == 'a' )

{ if ( ch2 == 'b' )

System.out.print(" ch1=\'a\' , ch2=\'b\' ");

} else

System.out.print(" ch1!=\'a\' ");

System.out.println(" end ");

问题: 1)若执行前ch1 的值为'a', ch2 的值为'c' 该程序段输出是什么(end)

2)若执行前ch1 的值为'w', ch2 的值为'b' 该程序段输出是什么(ch1='a'end)

3)若执行前ch1 的值为'a', ch2 的值为'b' 该程序段输出是什么(ch1='a',ch2='b'end)

18.阅读下面的程序段,回答问题.

if ( x < 5 )

System.out.print(" one ");

else

{

if ( y 4);x++);

A)无限次B)一次也不执行C)执行4次D)执行3次

2.下列语句序列执行后,j 的值是( A ).

int j=1;

for( int i=5; i>0; i-=2 ) j*=i;

A) 15 B) 1 C) 60 D) 0

3.以下for循环的执行次数是( B ).

for(int x=0;(x==0)&(x0; i-=2 ) j*=2;

A) 15 B) 1 C) 60 D) 32

5.以下for循环的执行次数是(B ).

for(int x=0,y=0;(y!=0)&&(x= =0); i-- ) j+=i;

A) 3 B) 4 C) 5 D) 6

7.以下由for 语句构成的循环执行的次数是(B ).

for ( int i = 0; true ; i++) ;

A)有语法错,不能执行B)无限次

C)执行1次D)一次也不执行

8.下面语句执行后,i 的值是(B).

for( int i=0, j=1; j < 5; j+=3 ) i=i+j;

A) 4 B) 5 C) 6 D) 7

9.下列语句序列执行后,k的值是(D).

int j=8, k=15;

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

A) 18 B) 15 C) 16 D) 17

10.下列语句序列执行后,k 的值是(B).

int m=3, n=6, k=0;

while( (m++) < ( -- n) ) ++k;

A) 0 B) 1 C) 2 D) 3

11.下列语句序列执行后,i 的值是( D).

int s=1,i=1;

while( i<=4 ) {s*=i;i++;}

A) 6 B) 4 C) 24 D) 5

12. 下列语句序列执行后,k 的值是(C ).

int m=3, n=6, k=0;

while( m 4 ) --j;

A) 5 B) 6 C) 7 D) 8

14.下列语句序列执行后,j 的值是( C ).

int j=8, i=6;

while( i >4 ) i-=2;

- -j;

A) 5 B) 6 C) 7 D) 8

15.下列语句序列执行后,j 的值是( B ).

int j=9, i=6;

while( i-- >3 ) --j;

A) 5 B) 6 C) 7 D) 8

16.下列语句序列执行后,j 的值是(D).

int j=3, i=2;

while( --i!=i/j ) j=j+2;

A) 2 B) 4 C) 6 D) 5

17. 若有循环:

int x=5,y=20;

do { y-=x; x+=2; }while(x则循环体将被执行(A ).

A) 2次B) 1次C) 0次D) 3次

18.以下由do-while语句构成的循环执行的次数是(B).

int m = 8;

do { ++m; } while ( m 1 );

A) 1 B) 5 C) 2 D) 0

20.下列语句序列执行后,i的值是(D).

int i=10;

do { i/=2; } while( i--> 1 );

A) 1 B) 5 C) 2 D) -1

21.下列语句序列执行后,i的值是(C ).

int i=10;

do { i-=2; } while( i>6 );

A) 10 B) 8 C) 6 D) 4

22.下列语句序列执行后,i的值是(D).

int i=16;

do { i/=2; } while( i > 3 );

A) 16 B) 8 C) 4 D) 2

23.以下由do-while语句构成的循环执行的次数是(B).

int k = 0;

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

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

24. 若有循环:

int x=5,y=20; do{ y-=x; x++; } while(++x<--y);

则循环体将被执行(C ).

A)0次B)1次C)2次D)3次

25.下面是一个java应用程序(Application),它的功能是在屏幕上输出26个小写英文字母,其中每个字母相隔一个制表符,请完成程序填空. (class (c++)+"\t" 或(c++)+'\t')

public _____ Class1

{

public static void main( String args[] )

{

char c='a';

for (int i=1;i<=26;i++)

{ System.out.print(______); }

}

}

26.下面是一个java应用程序(Application),它的功能是计算s=1+2+3+...+10 ,请完成程序填空.(class i)

public _____ Class1

{

public static void main( String args[] )

{

int s=0;

for (int i=1;i<=10;i++)

{

s+=______;

}

System.out.println("s="+s);

}

}

27.下面是一个java Application 的主类的定义,其功能是输出乘法口诀表第一列,请完成程序填空.(i<=9 j*i)

import java.io.*;

public class MyClass

{

public static void main(String[] args)

{

int j=1;

for(int i=1; _______; i++)

{

System.out.println(i+"*"+j+"="+_______);

}

}

}

《java程序设计》复习题(四)

练习六(控制结构与循环体内的跳转)

1.结构化程序设计的三种基本流程控制结构是:_______,_______,________. (略)

2. 什么语句能构成顺序结构(略)

3. 以下语句中能构成分支的语句是(B).

A) for 语句B) if 语句

C) continue 语句D) 方法调用语句

4. 以下语句中能构成多分支的语句是( C ).

A) for 语句B) while 语句

C) switch 语句D) do - while 语句

5. 以下语句中能构成多分支的语句是( C ).

A)for语句B)while语句

C)if__else语句的嵌套D)do__while语句

6. 以下语句中是循环语句的是( D ).

A)break 语句B)switch 语句C)if 语句D)do - while 语句

7. 以下语句中不能构成循环的语句是( C ).

A) for 语句B) while 语句C) switch 语句D) do__while 语句

8.能从循环语句的循环体中跳出的语句是(B).

A)for语句B)break语句C) continue语句D)return语句

9. continue 语句和break 语句可以带标号吗带标号的目的是什么

10.下面程序的功能是求2 到100 之间的素数,请将程序补充完整. (0 continue )

public class Class1

{

public static void main( String args[] )

{

Label1: for(int i=2;i<100;i++)

{

for(int j=2;j

{

if( i%j= =_____)

_________;

}

System.out.print(i+"\t");

}

}

}

11.阅读程序后回答问题.

public class ContinueTest

{

public static void main( String args[])

{

char c='i'; label1:

for

for (int n=6; n < 11; n++ )

{

if ( n = = 8 ) break label1;

System.out.print("\t"+(c++));

}

}

}

问题:1)程序的输出结果是什么(i j k l)

2)若将if中的continue语句替换为break语句,输出结果是什么

(i j)

12.阅读程序,回答问题.

import java.awt.Graphics;

import java.applet.Applet;

public class BreakTest extends Applet

{

public void paint( Graphics g )

{

int count, xPos = 25;

for ( count = 1; count <= 10; count++ )

{

if ( count == 8 ) break;

g.drawString( " " + count, xPos, 25 );

xPos += 10;

}

}

}

问题:1)程序的输出结果是什么(1 2 3 4 5 6 7)

2)方法调用g.drawString( " " + count, xPos, 25 );的第一个实参中为什么要有串" " (因为该方法的第一个参数是字符串,串" "与count相加表示字符串连接,使之成为字符串)

13. 阅读程序,回答问题.

public class ContinueTest

{

public static void main( String args[])

{

for (char c='a';cb a:b)

int fun ( int a, int b ) { __________________; }

9. 以下方法m的功能是求两参数之积的整数部分.

(return (int)(a*b))

int m ( float x, float y ) { __________________; }

10. 下面是用户程序对Applet 类中方法paint( ) 的重新定义.

(void call)

public ___ paint(Graphics ____)

{ call.drawString("Hello,java!",10,20); }

11. 方法可以没有返回值吗可以有多个返回值吗(可以;不能)

12. 一个方法如果没有返回值,方法头定义中的返回值类型为何(void)

13. 何为形式参数何为实在参数(略)

14. 一个方法或一个复合语句内定义的变量是否可以在方法外或复合语句外使用这种变量称为什么变量(不能;局部变量)

15. 采用_______的程序设计原则,使程序结构清晰简单,设计容易,有助于软件可靠性的提高.(模块化)

16.下面方法的功能是判断一个整数是否为偶数,将程序补充完整.(boolean true)

public ________ isEven(int a)

{ if(a%2==0)

return _____;

else

return false;

}

17.下面程序的功能是从文本域中输入一个整数作为方法sum( )的参数, 并在小程序窗口中输出调用该方法后的结果,请完成程序填空. (implements i)

import java.awt.*;

import java.applet.*;

import java.awt.event.*;

public class Applet1 extends Applet _______ ActionListener

{

Label a;

TextField t1;

int i;

public void init( )

{

a=new Label("请输入一个整数");

add(a);

t1=new TextField(12);

add(t1);

t1.addActionListener(this);

}

public void paint(Graphics g)

{ g.drawString("sum="+sum(______),20,60); }

public void actionPerformed(ActionEvent e)

{

i=Integer.parseInt(t1.getText( ));

repaint( );

}

long sum(long n) {

long s=0;

for(long k=1; k<=n; k++) s+=k;

return s;

}

}

18. 阅读程序,回答问题.

import java.awt.*;

import java.applet.Applet;

import java.awt.event.*;

public class Applet1 extends Applet implements ActionListener

{

Label aa;

TextField t1;

int i=0;

public void init()

{

aa=new Label("请输入一个整数:");

add(aa);

t1=new TextField(10);

add(t1);

t1.addActionListener(this);

}

public void paint(Graphics g)

{

g.drawString("a="+( ++i*--i),20,60);

g.drawString("i="+( i),20,80);

}

public void actionPerformed(ActionEvent e)

{

i=Integer.parseInt(t1.getText()); //转化为整数

repaint();

}

}

问题:

1)程序开头的import java.applet.Applet ; 的含义是什么

(引入程序中要用到的小程序的主类的父类:Applet)

2)ActionListener是类还是接口程序中哪个方法是ActionListener中的方法,其功能为何(接口;actionPerformed方法)

3)若在文本域中输入6并回车,程序输出什么

(输出两行,分别是:42; 6)

《java程序设计》复习题(五)

练习八(方法重载)

1.同一个类中多个方法具有相同的方法名,不同的_____________称为方法的重载.(参数列表)

2.在某个类中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是(C).

A)public getSort(float x) B)int getSort(int y)

C)double getSort(int x,int y) D)void get(int x,int y)

3.在某个类中存在一个方法:void sort(int x),以下不能作为这个方法的重载的声明的是(B).

A)public float sort(float x) B)int sort(int y)

C)double sort(int x,int y) D)void sort(double y)

4. 为了区分类中重载的同名的不同方法,要求( A).

A) 采用不同的形式参数列表B) 返回值类型不同

C) 调用时用类名或对象名做前缀D) 参数名不同

5. 重载的方法可以通过它们的返回值类型的不同来区分吗(不能)

6. 编译程序如何区分重载方法的调用(根据参数列表不同来区分)

练习九(数组)

1. 在一个应用程序中定义了数组a:int[ ] a={1,2,3,4,5,6,7,8,9,10};,为了打印输出数组a的最后一个数组元素,下面正确的代码是( B).

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));

2.下面关于数组定义语句不正确的是( D ).

A)int[ ] a1,a2; B)int a0[ ]={11,2,30,84,5};

C)double[] d=new double[8]; D)float f[ ]=new {2.0f,3.5f,5.6f,7.8f};

3.设有定义语句int a[ ]={3,9,-9,-2,8}; 则以下对此语句的叙述错误的是

(C ).

A) a数组有5个元素B) 数组中的每个元素是整型

C) a的值为3 D) 对数组元素的引用a[a.length-1]是合法的

4.设有定义语句int a[ ]={66,88,99}; 则以下对此语句的叙述错误的是

(C).

A) 定义了一个名为a的一维数组B) a数组有3个元素

C) a数组的元素的下标为1~3 D)数组中的每个元素是整型

5. 为了定义三个整型数组a1,a2,a3,下面声明正确的语句是( B ).

A)intArray [ ] a1,a2; int a3[ ]={1,2,3,4,5};

B)int [ ] a1,a2; int a3[ ]={1,2,3,4,5};

C)int a1,a2[ ]; int a3={1,2,3,4,5};

D)int [ ] a1,a2; int a3=(1,2,3,4,5);

6.设i,j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是(B).

A) i = i + 2 B) a[0] = 7; C) i++ - --j; D) a(0) = 66;

7. 若已定义byte[ ] x={11,22,33,-66};

其中0≤k≤3,则对x数组元素错误的引用是( C).

A) x[5-3] B) x[k] C) x[k+5] D) x[0] 8.设有定义int[ ] a=new int[4]; ,a的所有数组元素是(B).

A) a0, a1, a2, a3 B) a[0], a[1], a[2], a[3]

C) a[1], a[2], a[2], a[4] D) a[0], a[1], a[2], a[3], a[4]

9.设有整型数组的定义:int a[ ]=new int[8]; ,则a.length的值为_____.(8)

10. 定义数组,需要完成以下三个步骤,即:________,_______和________ .(声明数组;创建数组空间;初始化)

11. 在Java语言中,所有的数组都有一个_________属性,这个属性存储了该数组的元素的个数(数组长度).(length)

12. 若有定义int[ ] a=new int[8]; 则a的数组元素中第7个元素和第8个元素的下标分别是____和____.(6 7)

13.定义一个整型数组y,它有5个元素分别是1,2,3,4,5.用一个语句实现对数组y的声明,创建和赋值:__________________;.

(int y[]={1,2,3,4,5};)

14. 数组一定占用连续的内存空间吗(是)

15.下面程序的功能为计算数组各元素的和,完成程序填空.

(i

import java.awt.Graphics;

import java.applet.Applet;

public class SumArray extends Applet

{

int a[] = { 1, 3, 5, 7, 9, 10 };

int total;

public void init()

{

total = 0;

for ( int i = 0; ___________; i++ )

total=______________;

}

public void paint( Graphics g )

{

g.drawString( "Total of array elements: " +total, 25, 25 );

}

}

16.下面程序的功能是输出数组各元素的和, 完成程序填空

import java.awt.Graphics;

import java.applet.Applet;

public class SumArray extends Applet

{

float[] a= new _______[6];

float sum=0.0f;

public void init( )

{ for ( int j = 0; j < a.length; j++ ) a[j] = j+1;

for ( int i = 0 ; i < a.length; i++ ) sum+= a[i];

}

public void paint( Graphics g )

{ g.drawString( "Total of array elements: " + ________ , 25, 25 ); }

}

17.下面程序的功能为计算数组下标为奇数的各元素的和, 完成程序填空.(extends i+=2)

import java.awt.Graphics;

import java.applet.Applet;

public class SumOfArray _______ Applet

{

public void paint( Graphics g )

{

int a[] = { 1, 3, 5, 7, 9, 10 };

int total=0;

for ( int i = 1; i < a.length; _______ )

total+=a[i];

g.drawString( "Total of array elements: " + total, 25, 25 );

}

}

18.下面程序的功能为计算数组各元素和的平均值,完成程序填空.(Graphics; (float)a.length)

import java.awt.Graphics;

import java.applet.Applet;

public class SumOfArray extends Applet

{

public void paint( ___________ g )

{

int a[] = { 1, 3, 5, 7, 9, 10 };

int total=0; float ave;

for ( int i = 0; i < a.length; i++ )

total+=a[i];

ave=total/_______;

g.drawString( "ave= " + ave, 25, 25 );

}

}

19.阅读程序,回答问题.

import java.awt.*;

import java.applet.*;

public class Test51 extends Applet

{

float[ ] x = {1.2f, 3.4f, 5.6f, 7.8f};

public void paint(Graphics g)

{

int s=0;

for( int i = 0; i y x:y; max_value=temp1>z temp1:z;

return max_value;

}

}

21.下面是一个类的定义,请将其补充完整

___________ A

{ String s;

_____ int a=666;

A(String s1) { s=s1; }

static int geta( )

}

22.阅读程序,回答问题.

public class Test52

{

String static str1="Hello, Java world! \t";

String static str2="Hello, students! ";

public static void main(String args[])

{ System.out.print(str1); System.out.println(str2); }

}

问题:1)这是哪种形式的java 程序

2)程序的输出是什么输出的结果在Applet 窗口中吗

《java程序设计》复习题(六)

练习十四(继承:类,属性和方法的继承,属性隐藏和方法覆盖,构造函数的继承,父类对象和子类对象的关系)

1. Java语言的类间的继承关系是( B ).

A) 多重的B) 单重的C) 线程的D) 不能继承

2. 以下关于Java语言继承的说法正确的是( C ).

A)Java中的类可以有多个直接父类B)抽象类不能有子类

C)Java中的接口支持多继承D)最终类可以作为其它类的父类

3. 下面是有关子类继承父类构造函数的描述,其中正确的是( B).

A) 如果子类没有定义构造函数,则子类无构造函数

B) 子类构造函数必须通过super关键字调用父类的构造函数

C)子类必须通过this关键字调用父类的构造函数

D)子类无法继承父类的构造函数

4. 现有两个类A,B,以下描述中表示B继承自A的是(D).

A) class A extends B B) class B implements A

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

5. 子类可以继承父类的__________成员(非私有).构造函数也能被继承和重载.

6. 如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则称子类中的这个变量________了父类的同名变量.(隐藏)

7. 属性的隐藏是指子类重新定义从父类继承来的__________.

8. 如果子类中的某个方法的名字,返回值类型和________与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法

9. 抽象,封装,_____和多态是Java语言的四大特性

10. 在Java语言中,使用_____和多态等技术,实现软件重用

11. Java 仅支持类间的____重继承

12. 子类的成员变量能与其父类的成员变量同名吗

13. 什么是方法覆盖

14. 一个子类可以重新定义从父类那里继承来的同名方法.但是,允许它们有不同类型的返回值吗

15. 子类对象如何引用被它隐藏了的父类的属性和调用被它覆盖了的父类的方法

16. 子类的对象能直接向其父类对象赋值吗反之呢子类对象一定是父类的对象吗

17. Java语言中定义接口的关键字是什么接口的继承应如何实现接口支持多继承吗

18. java中,一个子类可以有多个父类吗可以为一个(父)类定义多个子类吗

19. 保留字this 代表什么

20.下面是一个小程序的主类myprogram的定义, 其中A,B是该主类所在源程序中已定义的另两个类的类名,完成程序填空

import java awt.*;

import java applet.*;

public class myprogram extends Applet //定义小程序的主类

{

A a;

B b;

public ________ init( )

{ a=new A( ); b=_____ B( ); }

}

21.下面是一个类的定义,完成程序填空.(Youwrite this.x=x;)

public class Youwrite

{

int x;

_______( ) {x=0;}

Youwrite ( int x)

{ _____; }

}

22.现有类说明如下,请回答问题:

public class A

{

String str1=" Hello! \t";

String str2=" How are you ";

public String toString( )

{ return str1+str2; } }

public class B extends A

{

String str1="\b\b,Bill.";

public String toString( )

{ return super.str1+str1; }

}

问题:

1)类A和类B是什么关系

2)类A和类B都定义了str1属性和方法toString( ), 这种现象分别称为什么

3)若a是类A的对象,则a.toString( )的返回值是什么

4)若b是类B的对象,则b.toString( )的返回值是什么

23.现有一个类定义如下,请回答问题:

class Employee

{

String name;

int age;

double wage;

static int No=0;

Employee(String a1,int a2,double a3)

{

name=a1; age=a2; wage=a3;

No++;

}

}

在使用该类时,已使用下面语句生成了该类的对象:

Employee e1,e2;

e1=new Employee("王劲",26,6300);

e2=new Employee("张山",30,3800);

问题:

1)https://www.doczj.com/doc/0d4248744.html,,e2.age,e2.wage的值各是什么

2)生成对象e1,e2后,e1.No值为多少能否通过类名做前缀引用属性No

24.有如下源程序,请回答问题:

import java.awt.*;

import java.applet.*;

public class Javaapplet extends Applet

{

B b;

public void init( )

{ b=new B( 'f', 87.6f, 69.1f); }

public void paint(Graphics g)

{

g.drawString("序号"+"性别" +"成绩1 "+"成绩2 ",20,50);

b.print(g);

}

}

class A

{

static int n=100;

char ch;

A( ) { n++; }

A( char c){ this( ); ch=c; }

void print(Graphics g)

{ g.drawString(" "+n+" "+ch,20,70); } }

class B extends A

{

float s1, s2;

B(float r1,float r2){ s1=r1; s2=r2; }

B( char c, float r1, float r2)

{ super(c); s1=r1; s2=r2; }

void print(Graphics g)

{

super.print(g);

g.drawString(" "+s1+" "+s2,40,70); }

}

问题: 该程序的输出是什么

25.阅读程序,回答问题.

public class InheritTest1

{

public static void main (String[] args) {

A aa;

B bb;

aa=new A( ); bb=new B( );

aa.show( ); bb.show();

}

}

class A

{

int a=1;

double d=2.0; void show( )

{ System.out.println("Class A: "+"\ta="+a +"\td="+d); }

}

class B extends A

{

float a=3.0f;

String d="Java program.";

int b=4;

void show( )

{

System.out.println("Class A: "+"\ta="+super.a +"\td="+super.d); super.show( );

System.out.println("Class B: "+"\ta="+a +"\td="+d+"\tb="+b); }

}

问题:1)这是哪一类java程序

2)类A和类B是什么关系

3)按程序输出的格式写出程序运行后的结果.

26.现有类说明如下,请回答问题:

class A

{

int x=10;

int getA(){return x;}

}

class B extends A

{

int x=100;

int getB(){return x;}

}

问题:1)类B是否能继承类A的属性x

2)若b是类B的对象,则b.getB()的返回值是什么

3)若b是类B的对象,则b.getA()的返回值是什么

4)类A和类B都定义了x属性,这种现象称为什么

27.有如下源程序,请回答问题:

class A

{ String s="class A"; }

class B extends A

{ String s="class B"; }

public class TypeConvert

{

public static void main(String args[])

{

B b1,b2=new B();

A a1,a2;

a1=(A)b2;

a2=b2;

System.out.println(a1.s);

System.out.println(a2.s);

b1=(B)a1;

System.out.println(b1.s);

System.out.println(b2.s);

}

}

问题: 该程序的四行输出各是什么

28.现有类说明如下,请回答问题:

public class A

{

int x=888;

String str="I like: ";

public String toString()

{ return str+x; }

}

public class B extends A

{

String x="java";

public String toString()

{ return str+x+" and "+super.x; }

}

问题:1)类A和类B是什么关系

2)类A和类B都定义了x属性和方法toString(),这种现象分别称为什么

3)若a是类A的对象,则a.toString( )的返回值是什么

4)若b是类B的对象,则b.toString( )的返回值是什么

《java程序设计》复习题(七)

练习十五(多态:抽象类和抽象方法,最终类和最终方法,接口)

1. 下列选项中,用于定义接口的关键字是( A). A)interface B) implements C) abstract D) class

2. 下列选项中,用于实现接口的关键字是( B).

A)interface B) implements C) abstract D) class

3. 抽象方法只有方法头,没有________. (方法体)

4. Java 语言的接口是特殊的类,其中包含______常量和_______方法.(static(静态) ; abstract(抽象))

5. 接口中所有属性均为_________,_________和________的. (public,static,final)

6. 用那个关键字定义抽象类和抽象方法(abstract)

7. 抽象类只能做为父类吗(也可以包含抽象方法,做为抽象子类)

8. 可以定义抽象类的对象吗(不能)

9. 抽象方法能被继承吗(能)

10. 抽象方法只能存在于抽象类中吗(是;也可以存在在接口中)

11. 声明为final的方法能在子类中重新定义吗(不能)

12 用那个关键字定义最终类和最终方法(final)

13. 最终类能做为父类吗(不能)

14. 最终方法能被继承吗(能)

15. 最终方法只能存在于最终类中吗(不一定)

16. 声明为static和private 的方法是final的吗(实际上是)

17. 接口中所有方法均为抽象方法吗(是)

18. 接口中所有方法均为public的吗(是)

19. abstract 和final能同时修饰一个类吗(不能)

20.下面是定义一个接口的程序,完成程序填空.

public _______ ITF

{

public static final double PI=Math.PI;

public ______ double area(double a, double b);

}

21.下面是定义一个接口A的程序,完成程序填空.

public interface A

{

public static _______ double PI=3.14159;

public abstract double area(double a, double b)_____

}

22.阅读下面的程序,回答以下问题:

import java.awt.*;

import java.applet.*;

import java.awt.event.*;

public class Applet1 extends Applet implements ActionListener

{

Label label;

TextField t1;

int i=0;

public void init()

{

label=new Label("请输入一个整数:");

add(label);

t1=new TextField(10);

add(t1);

t1.addActionListener(this);

}

public void paint(Graphics g)

{

int product=1;

for(int k=1;k<=i;k++)

product+=k;

g.drawString("product="+product,20,60);

}

public void actionPerformed(ActionEvent e)

{

i=Integer.parseInt(t1.getText());

repaint();

}

}

(1)ActionListener是类还是接口程序中哪个方法是ActionListener中的方法,其功能为何

( ActionListener是接口;程序中actionPerformed()方法是ActionListener 中的方法,它在程序中实现的功能是:在文本域中回车时,将文本域中输入的数字字符串转化为整数,并重新调用paint()方法输出结果.)

(2)若在文本域中输入3并回车,写出程序输出的结果

(在小程序界面坐标为20,60处输出:product=7)

相关主题
文本预览
相关文档 最新文档