java复习题集及答案

更新时间:2023-10-23 08:59:01 阅读量: 综合文库 文档下载

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

一、选择题

1. 以下的选项中能正确表示Java语言中的一个整型常量的是(B )。 A) 12. B) -20

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

C) 1,000

D) 4 5 6

A) a==1; B) ++i; C) a=a+1=5; D) y=int(i); 3. 若所用变量都已正确定义,以下选项中,非法的表达式是( C)。

A) a!=4||b==1 B) 'a'%3 C) 'a'=1/2 D) 'A'+32 4. 若有定义int a=2;则执行完语句a+=a-=a*a; 后a的值是(D )。

A) 0 B) 4 C) 8 D) -4

5. 设有定义语句int a[]={66,88,99}; 则以下对此语句的叙述错误的是(C)。 A) 定义了一个名为a的一维数组 B) a数组有3个元素 C) a数组的下标为1~3 D) a数组中的每个元素是整型 6. 若a和b均是整型变量并已正确赋值,正确的switch语句是( D)。 A) switch(a+b){...} C) switch a {...}

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

int a=3,b=4,x=5; if(++a

B) switch(a+b*3.0){...} D) switch (a%b){...}

A) 5 B) 3 C) 4 8. 下列语句序列执行后,k的值是(C )。

int i=6, j=8, k=10, n=5, m=7; if( i

9. 下列语句序列执行后,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: ; }

C) 11

D) 6

D) 12

A) 13 B) 15 C) 16 10. 下列语句序列执行后,j的值是(D )。

int j=0;

for( int i=3; i>0; i-- ) j+=i; A) 3 B) 4

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

int j=9, i=6;

while( i-->3 ) --j; A) 5 B) 6

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

C) 5

D) 10

D) 6

C) 7 D) 8

int i=10;

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

A) 10 B) 8 C) 6 13. 为了区分重载多态中同名的不同方法,要求(A )。

A) 采用不同的形式参数列表 B) 返回值类型不同 C) 调用时用类名或对象名做前缀 D) 参数名不同 14. 定义主类的类头时可以使用的访问控制符是(C )。

A) private B) protected C) public D) private protected 15. 下列整型的最终属性i的定义中,正确的是(A )。

A) static final int i=100; B) final i; C) static int i; D) final float i=1.2f; 16. 设x,y均为已定义的类名,下列声明对象x1的语句中正确的是(C )。 A) public x x1= new y( ); C) x x1=new x( );

17. 下列方法定义中,正确的是(D)。

B) x x1=x( ); D) int x x1;

D) 4

A) int x(int a,b){return (a-b);}

B) double x(int a,int b){int w; w=a-b;} C) double x(a,b) {return b;}

D) int x(int a,int b){ return a-b; } 18. 能构成多分支的语句是(C )。

A) for 语句 B) while 语句 C) switch 语句 D) do-while 语句 19. 下列程序段执行后t1的结果是(B )。

int x1=9, x2=6, t1; t1=x1>x2?x1:x2; A) 6 B) 9 C) 11 D) 3

20. 对于一个三位的正整数n,取出它的十位数字k(k为整型)的表达式是(A )。 A) k=n/10 B) k=(n-n/100*100) C) k=n D) k=n/10

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

A)aa=false; B)aa=False; C)aa=\D)aa=0; 22. 为了定义三个整型数组a1、a2、a3,下面声明正确的语句是(B )。 A)intArray [] a1,a2; B)int [] a1,a2; int a3[]={1,2,3,4,5}; int a3[]={1,2,3,4,5}; C)int a1,a2[]; D)int [] a1,a2; int a3={1,2,3,4,5}; int a3=(1,2,3,4,5); 23. 以下for循环的执行次数是(B)。

for(int x=0,y=0;(y!=0)&&(x<4);x++); A)无限次 B)一次也不执行 C)执行4次 24. 为了使包sos在当前程序中可见,可以使用的语句是(A)。

A)import sos.*; C)sos import;

D)执行3次

B)package sos.*; D)sos package;

25. 以下哪个方法仅在Applet程序被创建和首次被载入支持Java的浏览器时被调用(B)。 A)paint() B)init() C)action() D)start()

26. 在某个类A中存在一个方法:void GetSort(int x),以下能作为这个方法的重载的

声明的是(C )。 A)Void GetSort(float x) B)int GetSort(int y) C)double GetSort(int x,int y) D)void Get(int x,int y) 27. 有一个类A,以下为其构造函数的声明,其中正确的是(B )。

A)void A(int x){...} B)A(int x){...} C)a(int x){...} D)void a(int x){...}

28. 选择排序的思想是,将数据序列划分为两个子列,一个子列是排好序的,另一个是尚未

排序的。现若想将数据序列由大到小排序,则每次放到有序子列尾部位置的元素,应从无序序列中选择(A )。 A)最大的 B)最小的 C)任意的 D)头上的

29. 已知int a[11]={12,18,24,35,47,50,62,83,90,115,134};使用对分查找法

查找值为90的元素时, 查找成功所进行的比较次数是(B )。 A)1 B)2 30. 下面叙述正确的是(B )。

C)3

D)4

A)栈不能进行插入元素的操作,而队列可以。 B)栈和队列都不能在中间位置进行插入操作。 C)链表不能进行插入操作。 D)数组不能进行插入操作。

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

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

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

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

32. 设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是(B )。 A) i=i+2 B) a[0]=7;

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

C) i++ - --j;

D) a(0)=66;

A) 多重的 B) 单重的 C) 线程的 D) 不能继承 34. 设有定义int i=6;,则执行以下语句i+=i-1;后,i的值为(C )。 A) 10 B) 121 C) 11

35. 下列选项中,用于在定义子类时声明父类名的关键字是(C )。

D) 100

A)interface B) package C) extends D) class

36. 若已定义 byte[]x={11,22,33,-66};其中0?k?3,则对x数组元素错误的引用

是(C )。 A) x[5-3] B) x[k] C) x[k+5] 37. 下列语句序列执行后,ch1的值是( B)。

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

if(ch1 + 2 < ch2 ) ++ch1; A) 'A' B) 'B'

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

C) 'C'

D) x[0]

D) B

int i=8, j=16;

if( i-1 > j ) i--; else j--; A) 15 B) 16

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

C) 7

D) 8

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 40. 下面语句执行后,i的值是( B)。

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

D) 33

A) 4 B) 5 C) 6 D) 7 41. 设有定义float x=3.5f,y=4.6f, z=5.7f;则以下的表达式中,值为true的是(B )。 A) x>y||x>z B) x!=y

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

int i=16;

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

C) z>(y+x)

D) x

A) 16 B) 8 C) 4 43. 以下由for语句构成的循环执行的次数是(B )。

for (int i=0;true;i++); A) 有语法错,不能执行 C) 执行1次

44. 定义类头时能使用的修饰符是( C)。

B) 无限次

D) 一次也不执行

D) 2

A) private B) static C) abstract D) protected 45. 设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){...} 46. 下列最终属性i的定义中,正确的是(A )。 A) static final int i=100; C) final i='w';

47. 下列类定义中,不正确的是(C )。

B) final int i=1.2; D) final char i;

A) class x {...}

B) class x extends y {...}

C) static class x implements y1,y2 {...} D) public class x extends Applet {...}

48. 设 x、y为已定义的类名,下列声明x类的对象x1的语句中正确的是(A )。

A) static x x1;

B) public x x1=new x(int 123);

C) y x1; D) x x1=x( );

49. 设 i、j、k为类x中定义的int型变量名,下列类x的构造方法中不正确的是(B )。 A) x(int m){...}

C) x(int m,int n){...}

50. 下列方法定义中,正确的是(A )。

B) void x(int m){...}

D) x(int h,int m,int n){...}

A) int x( ){ char ch='a'; return (int)ch; } B) void x( ){ ...return true; } C) int x( ){ ...return true; } D) int x(int a,b){ return a+b; }

51. 用于定义类成员的访问控制权的一组关键字是(D )。 A) class,float,double,public C) char,extends,float,double 52. 不能构成循环的语句是(C)。 A) for 语句 B) while 语句 53. 下列程序段执行后b3的结果是(C)。

boolean b1=true, b2, b3; b3= b1 ? b1 : b2;

B) float,boolean,int,long D) public,private,protected C) switch 语句

D) do-while 语句

A) 0 B) 1 C) true 54. 下面数据结构中,属于非线性的是( B)。

D) false

A) 线性表 B) 树 C) 队列 D) 堆栈 55. 设有定义int i=123;long j=456;下面赋值不正确的语句是(D )。 A) j=i; B) j=(long)i; C) i=(int)j; 56. 现有一整型数组a[4],它的所有数组元素是(B )。

D) i=j;

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] 57. 定义Java Applet程序时,必须有的import语句是(A )。

A) import java.applet.Applet; B) import java.io.*; C) import java.awt.event; D) import java.lang.*; 58. 现有两个类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 59. 下列算法中,不能用来排序的算法是(D )。 A) 冒泡法 B) 插入排序 60. 堆栈操作的原则是(B )。 A) 先进先出 B) 后进先出 61. Java语言是(D )。

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

A) int i;

C) static int i=100;

C) 选择排序 C) 只能进

D) 对分法 D) 只能出

B) 面向机器的低级编程语言

D) 面向对象的解释型高级编程语言 B) int i=Integer.MAX_VALUE; D) int 123_$;

63. 以下的变量定义语句中,合法的是(C )。 A) float $_*5=3.4F;

C) double a=Double.MAX_VALUE; 64. 以下字符常量中不合法的是( C)。

B) byte b1=15678; D) int _abc_=3721L;

A) '|' B) '\\'' C) \D) '我' 65. 若以下变量均已正确定义并赋值,下面符合Java语言语法的语句是(A )。 A) b=a!=7; B) a=7+b+c=9; 66. 下列程序段执行后t5的结果是(B )。

int t1 = 9, t2 = 11, t3=8; int t4,t5;

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

C) i=12.3*%4;

D) a=a+7=c+b;

A) 8 B) 20 C) 11 D) 9 67. 设a,b,c,d 均为int型的变量,并已赋值,下列表达式的结果属于非逻辑值的是(C )。 A) a!=b&c%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 69. 以下由do-while语句构成的循环执行的次数是(B )。

int k = 0;

do { ++k; }while ( k<1 ); A) 一次也不执行 B) 执行1次 C) 无限次 70. 下列语句序列执行后,x 的值是(B )。

int a=3, b=4, x=5; if( ++a==b ) x=++a*x; A) 35 B) 25 C) 20 71. 下列语句序列执行后,k 的值是( C)。

int i=6,j=8,k=10,m=7; if(i>j||m

int j=8, k=15;

for( int i=2; i!=j; i++ ){ j-=2; k++; } A) 18 B) 15 C) 16 73. 下列语句序列执行后,j 的值是(D )。

int j=3, i=2;

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

A) 2

B) 4

C) 6

D) a+b>=c+d

D) false,6,8

D) 有语法错,不能执行

D) 5

D) 9

D) 17

D) 5

74. 下列语句序列执行后,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

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

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

C) 0 D) 54

A) 3 B) 13 C) 169

76. 既能作为类的修饰符, 也能作为类成员的修饰符的是(A )。 A) public B) extends C) float 77. 下列选项中,用于定义接口的关键字是(C )。 A)import B) implements 78. 下列类头定义中,错误的是(B )。

C) interface

D) 1 D) static D) protected

A) class x{...}

B) public x extends y{...}

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

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

79. 下列选项中,用于在定义类头时声明父类名的关键字是(C )。

A)return B) interface C) extends D) class

80. 设i,j为类x中定义的double型变量名,下列x类的构造函数中不正确的是(A )。 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; }

81. 下列方法定义中,不正确的是( D)。

A) public int x( ){ ... }

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

D) public static x( double a ){ ... } 82. 能从循环语句的循环体中跳出的语句是(B )。

A) for 语句 B) break 语句 C) while 语句 83. 若有下列循环,则循环体将被执行(C )。

int x=5,y=20; do{

y-=x; x++;

D) continue语句

}while(++x<--y); A) 0 B) 1 C) 2 84. 定义类头时,不可能用到的关键字是(A )。

D) 3

A) private B)class C)extends D)implements 85. 在一个应用程序中有如下定义: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));

86. 若一个类中对某个方法进行了重载,能够区分这些重载方法的手段是 (C)。 A)它们的返回值类型的不同 B)它们的名称的不同 C) 它们的参数表的不同 D) 它们的修饰符不同 87. 下面是有关子类继承父类构造函数的描述,其中正确的是(C )。

A) 创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数。 B) 子类无条件地继承父类不含参数的构造函数。 C) 子类必须通过super关键字调用父类的构造函数。 D) 子类无法继承父类的构造函数。 88. 下面说法正确的是(A)。

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

C) 定义抽象方法需有方法的返回类型、名称、参数列表和方法体。 D) 用final修饰的变量,在程序中可对这个变量的值进行更改。

89. 选择排序的思想是,将数据序列划分为两个子列,一个子列是排好序的,另一个是尚未

排序的。现若想将数据序列由小到大排序,则每次放到有序子列尾部位置的元素,应从无序序列中选择(B )。 A)最大的 B)最小的 C)任意的 D)头上的 90. 若想将数据序列使用插入排序算法由小到大排序,则每次放到有序子列合适位置上的元

素,应从无序序列中选择(A )。 A) 固定位置的 B)最小的 C)任意的

二、判断题

1. Java中的的字符使用的是 16 位的Unicode 编码。T 2. Java 和 c++都是面向对象的程序设计语言。(T) 3. for 语句中的循环体不能是空的。F 4. 类是同种对象的集合和抽象。T

5. 字符串 \的长度是5。(F) 6. 抽象方法只能存在于抽象类中。(T)

7. 一个类的定义包括定义类头和定义类体两个部分。(T) 8. Java 仅支持类间的单重继承。T

D) 最大的

9. 接口是由常量和抽象方法组成的特殊类。T 10. 构造函数的方法名可由编程人员任意命名。F 11. 接口中所有方法均为抽象方法。(T ) 12. 使用静态属性必须以类名做前缀。F

13. 类的私有属性和私有方法可以被其子类访问。F

14. abstract 是抽象修饰符,可以用来修饰类及其属性和方法。F 15. Java 支持多线程机制。T

16. Java 程序可以划分为两大类: Application 和 Applet。T 17. 子类不能继承父类的构造函数。F

18. 重载的方法可以通过它们的返回值类型的不同来区分。F 19. 数组一定占用连续的内存空间。T

20. 一个程序里可以有多个父类,也可以有多个主类。(F) 21. 一个 Java 源程序中允许有多个公共类。F

22. 同一个类中定义多个参数列表不同的同名方法,叫做方法的重载。(T ) 23. 子类的类成员变量不能与其父类的类成员变量同名。(F ) 24. static 变量不能是 private 变量。(F ) 25. 保留字 this 代表当前对象。(T)

26. 一个子类可以重新定义从父类那里继承来的同名方法,而且允许它们有不同的返回值。

(F ) 27. 类头定义包含的四个部分分别为:访问控制修饰符、类名说明、父类名说明和接口名的

说明,它们中的任何一个都是不能缺少的。F 28. false 是合法的 Java 标识符。(T)

29. 在 Applet 的坐标系中,(0,0) 代表输出窗口左上角的象素点。T 30. 应用程序一定要有main()方法,小程序一定要继承于Applet 类。T

31. 在父类中声明为 final 的方法,也可以在其子类中被重新定义(覆盖)。(F) 32. java语言中的逻辑变量可以和整型变量相互强制转换。F 33. 类的构造函数名必须和类名相同。(T)

34. 面向对象的软件开发方法用类把数据和基于数据的操作封装在一起,并且类之间可以存

在继承关系。T

35. 方法可以没有返回值,或有一个返回值,也可以有多个返回值。F

36. 一个类中用private 修饰符修饰的属性成员,可被该类的方法和它的子类的方法访

问。F

37. 构造函数能继承,也能被重载。T

38. Java 源程序的文件名必须和公共类的类名相同。T

39. 双精度数强制转换成单精度数后,其数值精度会提高。F 40. 子类的对象能直接向其父类对象赋值。(T ) 41. 队列、链表、堆栈和树都是线性数据结构。F

42. 属性的隐藏是指子类重新定义从父类继承来的同名变量。T 43. 用static修饰的方法称为静态方法,它不属于类的一个具体对象,而是整个类的类方

法。T

44. 14.java语言中的接口可以继承,一个接口通过关键字extends可以继承另一个接

口。T

45. 声明为final的方法不能在子类中重载。T

三、简答题

1.阅读下面的程序(或程序片段),回答问题。 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(\ xPos+=10; } } }

问题:

1) 程序的输出结果是什么?

2) 方法调用g.drawString(\的第一个实参中为什么要有串\? 答:

1) 1 2 3 4 5 6 7

2) 方法drawString的第一个参数应是String类的对象。

2. 阅读下面的程序(或程序片段),回答问题。 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

问题:

1) 程序的输出结果是什么?

2) 方法paint()中的循环体s+=(int)x[i];能写为s+=x[i];吗?为什么?

答:

1. 1) 16

2) 不能,因为要求的结果为int型,而加数x[i]是float型,float型不能自动转换为int型,所以要强制类型转换。

3. 阅读下面的程序(或程序片段),回答问题。 import java.awt.Graphics; import java.applet.Applet;

public class Applet1 extends Applet{ public void paint(Graphics g){ int c1,c2;

boolean b1,b2; c1=5; c2=7;

b1=false; b2=true;

g.drawString(\和b2相与的结果是:\ g.drawString(\和b2相或的结果是:\ g.drawString(\

g.drawString(\为\ } }

问题:

1) 程序执行后共输出几行 ? 2) 输出结果是什么 ? 答: 1) 4行

2) b1和b2相与的结果是:false b1和b2相或的结果是:true c1=6

++c1==--c2为false

4. 阅读下面的程序(或程序片段),回答问题。 public class Test52{

static String str1=\ static String str2=\ public static void main(String args[]){ System.out.print(str1); System.out.println(str2);

} }

问题:

1) 这是哪种形式的 Java 程序 ?

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

1) Application

2) Hello, Java world! Hello, students! 输出结果不在Applet窗口中.

5.阅读下面的程序,回答以下问题. import java.awt.*; import java.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(\ g.drawString(\ }

public void actionPerformed(ActionEvent e){ i=Integer.parseInt(t1.getText());//转化为整数 repaint(); } }

问题:

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

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

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

答:

1)将类Applet引入本程序

2)接口,actionPerformed(),功能为:当在文本域中按回车键时,该方法被调用,其功能为取文本域中的文本,转换为int型数据赋给i,通过repaint()而调用paint()方法输出结果。 3)a=42,i=6

6.阅读程序,回答以下问题.

public class InheritTest1{

public static void main (String[] args){ A aa; B bb;

aa=new A( ); bb=new B( ); aa.show( ); bb.show(); } }

//A.java

public class A{ int a=1;

double d=2.0; void show( ){

System.out.println(\ } }

//B.java

public class B extends A{ float a=3.0f;

String d=\ int b=4;

void show( ){

System.out.println(\+\

super.show( );

System.out.println(\ } }

问题:

1) 这是哪一类java程序?

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

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

1)Application

2)类A是类B的父类 3)

Class A: a=1 d=2.0 Class A: a=1 d=2.0 Class A: a=1 d=2.0

Class B: a=3.0 d=Java program. b=4

7.阅读下面的程序段,回答以下问题. if (x<5)

System.out.print(\else{

if (y<5)

System.out.print(\ else

System.out.println(\}

问题:

1)若执行前 x=6, y=8,该程序段输出是什么? 2)若执行前 x=1, y=8,该程序段输出是什么? 答:

1)threee 2)one

8.现有一个类定义如下: class student{ String name; int age;

int score=88; student(){}

student(String a1,int a2,int a3){ name=a1; age=a3; score=a2; } }

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

s1=new student(\张三\

s2=new student();

问题:

1)s1.name,s1.age,s1.score的值各是什么? 2)s2.name,s2.age,s2.score的值各是什么? 答:

1) s1.name=\张三\2) s2.name=null, s2.age=0, s2.score=88

9.现有类说明如下: 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属性,这种现象称为什么? 答 1) 能 2) 100 3) 10 4) 属性的隐藏

10. 设ch1, ch2是 char 型变量: if (ch1=='a'){ if (ch2=='b')

System.out.print(\}

else System.out.print(\System.out.println(\

问题:

1) 若执行前ch1的值为'a',ch2的值为'c'该程序段输出是什么? 2) 若执行前ch1的值为'w',ch2的值为'b'该程序段输出是什么? 3) 若执行前ch1的值为'a',ch2的值为'b'该程序段输出是什么?

答: 1) end

2) ch1!='a' end

3) ch1!='a' ch2!='b' end

11.有如下源程序: import java.awt.*; import java.applet.*;

public class Test54 extends Applet{ B b;

public void init(){

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

public void paint(Graphics g){

g.drawString(\序号 \性别 \成绩1 \成绩2 \ 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(\ } }

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

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

答:

序号 性别 成绩1 成绩2 101 f 87.6 69.1

12.已知菲波那契数列的数学表达式为: fibonacci(n)=n, n=0,1;

fibonacci(n)=fibonacci(n-1)+fibonacci(n-2), n>1; 设m是long型变量,下面是用递归算法求菲波那契数列的方法: long fibonacci(long n){

if(n==0||n==1) return n;

else return (fibonacci(n-1)+fibonacci(n-2)); }

问题: 当语句m=fibonacci(3);执行时,方法fibonacci()被调用了几次? 答: 5次

四、改错题,改正其中的错误

注意:为叙述方便每行前面添加了行号 1.(提示:3个错误)

1 class TestClass{ 2 int n;

3 public static void main(string[] args){ 4 int i = 10; 5 n = i * 10;

6 system.out.println(\7 } 8 }

第1处错误:第3行中,string应为String 第2处错误:第6行中,system应为System

第3处错误:静态方法中不能访问非静态成员n,将第2行改为static int n;

2.(提示:3个错误)

1 public class ClassA{

2 public void HelloPrint(){

3 System.out.println(\4 } 5 }

6 public class ClassB extends ClassA{

7 public static void main(string[] args){ 8 ClassB b = new ClassB();

9 HelloPrint(); 10 } 11 }

第1处错误:第1行中的public去掉

第2处错误:第7行中的string应为String 第3处错误:第9行应为b.HelloPrint( );

3.(提示:4个错误)下面的程序由ActionTest类来处理ActionEvent事件,当用户单击Test按钮后显示\。 1 import java.applet.*; 2 import java.awt.*;

3 class ActionTest extends Applet{

4 String str = \5 public void init(){

6 Button b = new Button(\7 add(b); 8 }

9 public void actionPerformed(ActionEvent ae){ 10 arg = ae.getActionCommand(); 11 if(arg.equals(\

12 str = \13 repaint(); 14 } 15 }

16 public void paint(Graphics g){ 17 g.drawString(str,150,150); 18 } 19 }

第1处错误:定义类前应引入 java.awt.event.*;

第2处错误:第3行应为public class ActionTest extends Applet implements ActionListener{; 第3处错误:第8行前增加b.addActionListener(this);

第4处错误:第10行应为String arg = ae.getActionCommand();

五、填空题

阅读程序,根据程序功能,在指定的空白处填上适当的语句或语法成分,使程序完整。 1.下面是一个类的定义。

class {// 定义名为myclass的类 int var=666; static int getvar(){ return var;

} }

myclass, static

2.下面是一个类的定义: public class { int x, y;

Myclass ( int i, ){ // 构造函数 x=i; y=j; } }

Myclass, int j

3.下面是一个java应用程序(Application),它的功能是在屏幕上输出26个英文字母,其中每个字母相隔一个制表符,请完成程序。 public Class1{

public static void main( String args[]){ char c='a';

for (int i=1;i<=26;i++){ System.out.print( ); } } }

class, \

4.下面程序的功能为计算数组各元素的和,请完成程序。 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=0;i

g.drawString(\ } }

extends, a[i]

5.下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。 void paint(Graphics g){ g. (\你好!\}

public, drawString

6.下面是用户程序对 Applet 类中方法 paint( ) 的重新定义。 public void paint(Graphics ){ int i=689;

a.drawString ( + i ,20,60); }

a, \

7. 下面的java小应用程序实现的功能是从文本域中输入你的名字\回车后在 Applet中显示\你好!\,请完成程序。 import java.awt.*; import java.applet.*; import java.awt.event.*;

public class Applet1 extends Applet implements ActionListener{ Label aa;

TextField t1; String s=\

public void init(){

aa=new Label(\请输入你的名字:\ add(aa); t1= ; add(t1);

t1.addActionListener(this); }

public void paint(Graphics g){ g.drawString(s,20,100); }

public void actionPerformed(ActionEvent e){ s= ; repaint(); } }

new TextField(8), t1.getText()+\你好!\

8.下面是用户程序对 Applet 类中方法 action( ) 的重新定义,功能为从单行文本编

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

Top