期末复习题

更新时间:2023-11-05 20:30:01 阅读量: 教育文库 文档下载

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

一、 选择题

第三章

1、 下列变量定义错误的是(D)

A) int a; B) double b=4.5; C) boolean b=true; D)float f=9.8; 2、 下列数据类型的精度由高到低的顺序是(B)

a)float,double,int,long b)double,float,int,byte c)byte,long,double,float d)double,int,float,long 3、 6+5%3+2的值是(D) A)2 B)1 C) 9 D)10

4、 下面的逻辑表达式中合法的是(C)

A)(7+8)&&(9-5) B)(9*5)||(9*7) C)9>6&&8<10 D)(9%4)&&(8*3) 5、 java语言中,占用32位存储空间的是(D)

A)long,double B)long,float C)int,double D)int,float 6、 假设int a=3,b=2,c=1,以下语句正确的是(D)

A)c=c/float(a//b) b) c=c/((float a)/b)

c) c=(float)c/(a/b) d) c= c/(int)(a/(float)b) 7、 指出下列正确的语句(D)

A) byte i = 389; B) long lv = i*3+4.5; C) int x = 87L; D) long l = 10; 8、 指出下列类型转换中正确的是(A)。

A)int i=’A’ B)long L=8.4f C)int i=(boolean)8.9 D)int i=8.3 9、 以下的选项中能正确表示Java语言中的一个整型常量的是(B)。 A) 12. B) -20 C) 1,000 D) 4 5 6 10.以下选项中,合法的赋值语句是( B )。 A) a = = 1; B) ++ i;

C) a=a + 1= 5; D) y = int ( i ); 12、以下的变量定义语句中,合法的是(C)。

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

C) double a =10000; D) int _abc_ = 3721L;

13、以下字符常量中不合法的是(B)。 A) '|' B) '\\' C) \我'

14、若所用变量都已正确定义,以下选项中,非法的表达式是( C )。 A) a != 4||b==1 B) 'a' % 3

C) 'a' = 1/2 D) 'A' + 32 15、对于一个三位的正整数 n,取出它的十位数字k(k为整型)的表达式是( A )。 A) k = n / 10 % 10 B) k = ( n - n / 100 * 100 ) C) k = n % 10 D) k = n / 10

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

A)aa=false; B)aa=False; C)aa=\

17、设有定义 int i = 6 ;,则执行以下语句后,i 的值为( C )。 i += i - 1;

A) 10 B) 121 C) 11 D) 100

1

19、下列语句序列执行后,i 的值是(D)。 int i=8, j=16;

if( i-1 > j ) i--; else j--;

A) 15 B) 16 C) 7 D) 8 20、设有定义 float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是( B )。

A) x > y || x > z B) x != y

C) z > ( y + x ) D) x < y & ! ( x < z )

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

A) j=i; B) j=(long)i; C) i=(int)j; D) i=j; 22、下列的变量定义中,错误的是(D)。 A) int i; B) int i=10000;

C) static int i=100; D) int 123_$;

23、若以下变量均已正确定义并赋值,下面符合Java语言语法的语句是(A)。 A) b = a!=7 ; B) a = 7 + b + c=9; C) i=12.3* % 4; D) a = a + 7 = c + b;

24、执行下列程序段后,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

第四章

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

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

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

4.若a和b均是整型变量并已正确赋值,正确的switch语句是(D) A) switch(a+b); { ... } B) switch( a+b*3.0 ) { ...... }

2

C) switch a { ...... } D) switch ( a%b ) { ...... } 5.下列语句序列执行后,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

6.设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 ); { ...... } 7.下列语句序列执行后,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 8.下列语句序列执行后,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 9.以下for循环的执行次数是(B)

for(int x=0;(x==0)&(x>4);x++);

A)无限次 B)一次也不执行 C)执行4次 D)执行3次 10.下列语句序列执行后,j 的值是(A)

int j=1;

for( int i=5; i>0; i-=2 ) j*=i; A) 15 B) 1 C) 60 D) 0 11.以下for循环的执行次数是(B)

for(int x=0;(x==0)&(x<4);x++);

3

A)无限次 B)一次 C)执行4次 D)执行3次 12.下列语句序列执行后,j 的值是(D)

int j=2;

for( int i=7; i>0; i-=2 ) j*=2; A) 15 B) 1 C) 60 D) 32

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

for ( int i = 0; true ; i++) ; A)有语法错,不能执行 B)无限次 C)执行1次 D)一次也不执行 14.下列语句序列执行后,i 的值是(D)

int s=1,i=1;

while( i<=4 ) {s*=i;i++;} A) 6 B) 4 C) 24 D) 5 15.下列语句序列执行后,j 的值是(C)

int j=8, i=6;

while( i >4 ) i-=2; - -j;

A) 5 B) 6 C) 7 D) 8 16. 若有循环:

int x=5,y=20;

do { y-=x; x+=2; }while(x

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

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

int m = 8;

do { ++m; } while ( m < 8 ); A)一次也不执行 B)执行1次

C)8次 D)有语法错,不能执行 18.下列语句序列执行后,i的值是(A)

int i=10;

do { i/=2; } while( i>1 ); A) 1 B) 5 C) 2 D) 0 19.下列语句序列执行后,i的值是(D)

int i=10;

do { i/=2; } while( i--> 1 ); A) 1 B) 5 C) 2 D) -1

第五章

1. 设 A为已定义的类名,下列声明A类的对象a的语句中正确的是(A) A) A a=new A( ); B) public A a=A( ); C) A a=new class( ); D) a A;

2. 设 X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是 (C)

(A)public X x1= new Y( ); (B)X x1= X ( );

4

(C)X x1=new X( ); (D)int X x1; 3. 下列方法定义中,正确的是(D)

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; } 4. 下列方法定义中,正确的是( D )

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

C) double x { return b; } D) int x( int a,int b) { return a+b; } 5. 下列方法定义中,不正确的是(D)

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

C) int x( int a,int b ) { return a*b; } D) int x(int a,int b) { return 1.2*(a+b); } 6. 下列方法定义中,正确的是(A)

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

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

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

D)public static x( double a ){ ... } 8. 定义类头时,不可能用到的关键字是(B)

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

9. 设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是(A)

A) void X(int k ){ i=k; } B) X(int k ){ i=k; } C) X(int m, int n ){ i=m; j=n; } D) X( ){i=0;j=0; } 10. 有一个类A,以下为其构造方法的声明,其中正确的是(A) A)public A(int x){...} B)static A(int x){...} C)public a(int x){...} D)void A(int x){...} 11. 有一个类A,以下为其构造方法的声明,其中正确的是(B) A)void A(int x){...} B)A(int x){...}

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

12. 设i、j、k为类X中定义的int型变量名,下列类X的构造方法中不正确的是( B)

A) X( int m){ ... } B) void X( int m){ ... }

C) X( int m, int n){ ... } D) X( int h,int m,int n){ ... } 13. 设i , j为类X中定义的double型变量名,下列X类的构造方法中不正确的是(A)

5

A) double X(double k ){ i=k; return i; } B) X(double m, double n ){ i=m; j=n; } C) X( ){i=6;j=8; }

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

14. 设 A为已定义的类名,下列创建A类的对象a的语句中正确的是 (D)

A)float A a; B )public A a=A( ); A )a=new int( ); D )A a=new A( );

第六—七章

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

A) 多重的 B) 单重的 C) 线程的 D) 不能继承 2. 以下关于Java语言继承的说法正确的是( C )。

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

C)Java中的接口支持多继承 D)最终类可以作为其它类的父类 3. 现有两个类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 4. 下列选项中,用于定义接口的关键字是( A)。

A)interface B) implements C) abstract D) class 5. 下列选项中,用于实现接口的关键字是( B)。

A)interface B) implements C) abstract D) class 二、填空题

1、以下代码的输出结果是_____j_________ int i=9; char c=’a’; char d=(char)(c+i); System.out.println(d);

2、面代码执行完后的输出是____b is: false ____ int x=3; int y=4;

boolean b=true;

System.out.println(\3、表达式(-100%3)的值是__-1_____

4、int x=2,y=4,z=3 则x>y&&z>y的结果是________false__________ 5、写出定义双精度浮点型常量PI,值为3.1415926的语句: final double PI=3.1415926_ 6、在Java语言中,逻辑常量只有true 和 ___ false__ 两个值。 7、表达式1/2*3的计算结果是__0___ 8、执行以下程序段后:a = __6______, b = ___18_____ int a = 5, b;

b = ++a * 3;

9、Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和 ___double__两种具体类型。

11、当整型变量n的值不能被13除尽时,其值为 false 的Java语言表达式是___n= =0__________ 。

6

12、表达式3/6 * 5的计算结果是__0_____ 。

13、若a,b为int型变量且已分别赋值为2,4。表达式 !(++a!=b--)的值是___ _false__ 。

14、若a,b为int型变量且已分别赋值为2,6。表达式(a++)+(++b) +a*b的值是____30____ 。

15. 如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则称子类中的这个变量_隐藏_了父类的同名变量。

16. 属性的隐藏是指子类重新定义从父类继承来的 同名变量或属性

17. 如果子类中的某个方法的名字、返回值类型和_参数列表_与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。 18. Java 仅支持类间的__单_重继承。

19. 抽象方法只有方法头,没有_方法体_。 20 。Java 语言的接口是特殊的类,其中包含static(静态)常量和_ abstract(抽象)方法。

21 接口中所有属性均为_public _、_static__和__final_的。

三、问答题

1. 构造方法和一般的方法有何区别?

答:名字是类名 没有返回值 使用new调用 2. 面向对象的软件开发方法用什么把数据和基于数据的操作封装在一起? 答:类 3. 在一个类定义中,用什么描述对象的状态? 用什么描述对象的行为? 答:属性、方法 4. 什么方法是一个特殊的方法,用于对对象进行初始化?答:构造方法 5. 一个源程序文件中,能有多于一个的 public 类吗? 答:不能 6. 构造方法的方法名可由编程人员任意命名吗? 答:不能 7. 类的构造方法名必须和类名相同吗?答:是的 8. 类的访问控制修饰符有哪些,访问权限各是什么? 答:Public 公共的,可以被所有类访问

默认的:可被同一包中的类访问 9. 类的成员的访问控制修饰符有哪些,访问权限各是什么?答:P80表6.3 10. 包的作用是什么?如何声明一个包?

答:包是类的容器,用来保存划分的类名的空间 声明格式:package 包名 11. 如何导入一个包? 答:import 包名

12. 定义类的访问器和设置器的形式是什么?

答:访问器:public 返回值类型 get属性名(){return 属性名;} 设置器:public void set属性名(数据类型 参数值)

{ 属性名=参数值;}

13. Java语言的特点有哪些(举例说出三个即可)? 答:面向对象、简单、多线程等

14. 程序流程的三种结构是什么? 答:顺序 选择 循环

7

15. 编译Java程序的命令是什么?运行Java程序的命令是什么?Java

源文件的扩展名是什么? 答:javac java .java

16. Java中的基本数据类型共有三种,分别是什么?

答:数值 字符 布尔

17. 面向对象程序的三个特点是什么? 答:封装 继承 多态

18. 写出方法和属性的修饰符(举例说出三个即可)?答案同第9题 19.

Java源文件的扩展名是什么?字节码文件的扩展名是什么?

答:.java .class

20. 方法重载的概念?

答:在同一个类中方法名称相同,参数类型或个数不同的现象 21. 属性的隐藏概念?

答:在子类中重新定义与父类相同的属性。 22. 方法的覆盖?

答:在子类中重新定义与父类相同的方法。

四、程序阅读和程序填空题

1、下面的程序的输出结果是什么? public class Mystery {

public static void main (String [] args ) { int y=0, x = 1 , total = 0 ; while (x<=10) { y = x*x;

System.out.println( y ); total += y;

System.out.println( “Total is ”+total ); x++;} } }

答案:

1

Total is 1 4

Total is 5 9

Total is 14 16

Total is 30 25

Total is 55 36

Total is 91

8

49

Total is 140 64

Total is 204 81

Total is 285 100

Total is 385

2、下面是一个java应用程序(Application),它的功能是在屏幕上输出26个小写英文字母,其中每个字母相隔一个制表符,请完成程序填空? public __class___ Class1 {

public static void main( String args[] ) {

char c='a';

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

{ System.out.print(_c+++_”\\t”____); } } }

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

{ public static void main( String args[] ) { int s=0;

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

s+=_i__; }

System.out.println(\}

4、下面是一个java Application 的主类的定义,其功能是输出乘法口诀表第一列,请完成程序填空? import java.io.*; public class MyClass {

public static void main(String[] args) {

int j=1;

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

{ System.out.println(i+\_i _); } } }

5、 下面是一个类的定义,根据题目要求回答以下问题?

9

class B { int x; char y;

public B(int i,char j) { x=i; y=j; } public void show() { System.out.println(\} public void methodC(int x1) { x=x+x1; y++; show(); } }

1)定义类B的一个对象b,将类中的变量x初始化为10、变量y初始化为’A’,请写出相应的语句。?

B b=new B(10,’A’) ;

2)若在1)问基础上有方法调用语句:b.show()则输出如何? x=10;y=’A’

3)若在1)问基础上增加语句: b.methodC(1); 则输出为何? x=11;y=’B’

6、下面是一个类的定义,请完成程序填空。 public class ____Myclass________ { int x, y;

Myclass (_int i,int j_____) // 构造方法 { x=i; y=j; } }

6、 以下方法fun的功能是求两参数之积。

int fun ( int a, int b ) { __return_a*b_;_____ }

7、 以下方法fun的功能是求两参数之积。 float fun ( int a, double b )

{ __return (float)(a*b);__________ } 8、 以下方法fun的功能是求两参数的最大值。 int fun ( int a, int b ) {___if(a>b) return a;

else return b;_ }

9、 以下方法m的功能是求两参数之积的整数部分。 int m ( float x, float y )

{ __return (int)(x*y);__________ }

10、 下面方法的功能是判断一个整数是否为偶数,将程序补充完整。 public _boolean____ isEven(int a) { if(a%2==0)

return _true___; else

return _false____; }

10

11、现有类说明如下,请回答问题: public class A {

String str1=\

String str2=\ public String toString( ) { return str1+str2; } }

public class B extends A {

String str1=\,Bill.\ public String toString( ) { return super.str1+str1; } }

问题:

1)类A和类B是什么关系?(答:继承关系)

2)类A和类B都定义了str1属性和方法toString( ), 这种现象分别称为什么?(答:属性的隐藏;方法的覆盖)

3)若a是类A的对象,则a.toString( )的返回值是什么? (答:Hello! How are you?)

4)若b是类B的对象,则b.toString( )的返回值是什么?(答:Hello,Bill.) 12.现有一个类定义如下,请回答问题? 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(\王劲\ e2=new Employee(\张山\问题:

1)e2.name,e2.age,e2.wage的值各是什么?(答:张山;30;3800.0)

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

补充:e1.No=e2.No=Employee.No=2

11

13.阅读程序,回答问题。 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 B extends A {

float a=3.0f;

String d=\ int b=4;

void show( ) {

System.out.println(\ super.show( );

System.out.println(\ } }

问题:1)这是哪一类java程序?(答:java应用程序)

2)类A和类B是什么关系?(答:类B是类A的子类)

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 14.现有类说明如下,请回答问题: class A {

int x=10;

int getA(){return x;} }

class B extends A {

12

int x=100;

int getB(){return x;} }

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

2)若b是类B的对象,则b.getB()的返回值是什么?(答:100) 3)若b是类B的对象,则b.getA()的返回值是什么?(答:10)

4)类A和类B都定义了x属性,这种现象称为什么?(答:属性的隐藏) 15.有如下源程序,请回答问题: class A

{ String s=\ class B extends A

{ String s=\ 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); } }

问题: 该程序的四行输出各是什么? 答案:class A

class A class B class B

16.现有类说明如下,请回答问题: public class A {

int x=888;

String str=\ public String toString() { return str+x; } }

public class B extends A {

String x=\

public String toString()

13

{ return str+x+\}

问题:1)类A和类B是什么关系?(答:类B是类A的子类)

2)类A和类B都定义了x属性和方法toString(),这种现象分别称为什么?(答:属性的隐藏和方法的覆盖)

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

(答:I like: 888)

4)若b是类B的对象,则b.toString( )的返回值是什么? (答:I like: java and 888) 17.运行类C的输出结果是什么? class A {

public A() {

System.out.println(“The default constructor of A is invoked”);

} }

class B extends A {

public B() { } }

public class C {

public static void main(String[] args) {

B b = new B(); } }

结果:The default constructor of A is invoked 8.阅读下列程序写出输出结果? class A

{ String s=\ void show() {

System.out.println(s);

}

}

class B extends A

{ String s=\ void show() {

System.out.println(s);

14

}

}

public class TypeConvert {

public static void main(String args[]) {

B b1;

B b2=new B();

A a1,a2; a1=(A)b2; a2=b2;

System.out.println(a1.s); a1.show();

System.out.println(a2.s); a2.show(); b1=(B)a1;

System.out.println(b1.s); b1.show();

System.out.println(b2.s); b2.show(); } } 答案: class A class B class A class B class B class B class B class B

19、下面是一个类的定义,完成程序填空? public class Youwrite {

int x;

_ Youwrite _( ) {x=0;} Youwrite ( int x)

{ _ this.x=x ____; } }

20.下面是定义一个接口ITF的程序,完成程序填空? public __interface_____ ITF {

public static final double PI=Math.PI;

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

15

}

21.下面是定义一个接口A的程序,完成程序填空。(final ”;” ) public interface A {

public static _final__ double PI=3.14159;

public abstract double area(double a, double b)__;___ }

22.写出程序的运行结果?

public class ClassX{

public static void main(String args[ ]){ int a[ ] = { 45,18, 98, 56, 304 }; for (int i = a.length-1 ; i >=0; i -- )

System.out.print(a[i ]+ \ }

答案: 304 56 98 18 45 23.写出程序的运行结果?

public class C {

public static void main(String args[]) { String s1 = new String(\ String s2 = new String(\VA.\ A s = new A(s1, s2); System.out.println(s1 + s2); System.out.println(s.toString()); } }

class A { String s1; String s2;

A(String str1, String str2) { s1 = str1; s2 = str2; str1 = \ str2 = \ System.out.println(str1 + str2); } public String toString() { return s1 + s2; } }

答案: No pain ,no gain!

Hello!I love JAVA. Hello!I love JAVA.

24.写出程序的运行结果?

class Parent {

void printMe() { System.out.println(\

16

} }

class Child extends Parent { void printMe() { System.out.println(\} void printAll() { super.printMe(); this.printMe(); printMe(); } }

public class T {

public static void main(String args[]) { Child myC = new Child(); myC.printAll(); } }

答案:parent

child child

25.回答问题?

1: public class Output1 {

2: public static void main(String args[]) { 3: int i=0;

4: for ( int ch = 1; ch<8; ch++,i++) { 5: if( i % 4 == 0 )

6: System.out.println(\

7: System.out.print(\ 8: } 9: } 10: }

问题:(1)程序第5、6行的if语句的功能是什么?答:if语句的功能是换行

(2)程序输出的结果是什么?答: 1 2 3 4 5 26.回答问题?

定义类A和类B如下.:

class A{ int a=3;

double d=6.0; void show( ) {

System.out.println(\,d=\ } }

class B extends A{

float a=5.0f; String d=\

17

6 7

void show( ) {

super.show( );

System.out.println(\ a=\,d=\ } }

问题:(1) 若在应用程序的main方法中有以下语句:

A a=new A(); a.show();

则输出的结果如何? 答:Class A:a=3,d=6.0

(2) 若在应用程序的main方法中定义类B的对象b: B b=new B(); b.show();

则输出的结果如何? 答: Class A: a=3,d=6.0

Class B: a=5.0, d=Hello Java.

五、编程题

1、编写一个Java应用程序,用循环结构打印如下的数值列表? N 10*N 100*N 1000*N 1 10 100 1000 2 20 200 2000 3 30 300 3000 4 40 400 4000 5 50 500 5000 答案:

public class Xiti1 {

public static void main(String[] args) {

System.out.println(\ for (int i = 1; i <= 5; i++)

System.out.println(i + \+ i * 1000); } }

2、用while循环求n2大于12000的最小数n? 答案:

public class Xiti2 {

public static void main(String[] args) { int n=1;

while(n*n<=12000) n++;

System.out.println(\大于12000的最小数为\}

3、打印2到10000的所有素数,每行显示8个素数?

18

答案:

public class Xiti3 {

public static void main(String[] args) { int k = 0; int m=0;

for (int n = 2; n <= 10000; n++) { m=0;

for(int j=1;j<=n;j++) if(n%j==0) m++;

if(m==2)

{System.out.print(n + \ k++;

if (k%8 == 0)

System.out.println();}} } }

5.实现一个名为Person的类和它的子类Employee,Employee有两个子类Faculty和Staff。 具体要求如下:

(1)Person类中的属性有:姓名name(String类型),地址address(String类型),电话号

码telphone(String类型)和电子邮件地址email(String类型); (2)Employee类中的属性有:办公室office(String类型),工资wage(double类型),受

雇日期hiredate(String类型);

(3)Faculty类中的属性有:学位degree(String类型),级别level(String类型); (4)Staff类中的属性有:职务称号duty(String类型); class Person { String name ; String address; String telphone; String email; public String toString() { return \ } }

class Employee extends Person { String office; Double wage; String hiredate; public String toString() {

19

return \ } }

class Faculty extends Employee { String degree; String level; public String toString() { return \ } }

class Staff extends Employee { String duty; public String toString() { return \ } }

6. 定义一个Person类,它包括的属性有“姓名”和“性别”,为Person类派生出一个子类Student类,为Student子类添加两个属性年龄和成绩等级(用A,B,C,D,E表示),在子类中打印出学生的姓名、性别、年龄及成绩等级?

class Person{ }

class Student extends Person{ }

public class Test {

protected int age; protected char grade;

public Student(String name,String sex,int age,char grade){ }

super.name=name; super.sex=sex; this.age=age; this.grade=grade;

}

protected String name; protected String sex;

public void print(){

System.out.println(name); System.out.println(sex); System.out.println(age); System.out.println(grade);

20

19.定义一个矩形类,包含有长length、宽width两种属性,构造方法(要求写出初始化

长和宽)和计算面积方法findArea()(实现返回面积值)。 编写一个长方体类,继承自矩形类,具有长length、宽width、高height属性,构造方法和计算体积的方法findVolume()(实现返回体积值)。 编写一个测试类Test,对以上两个类进行测试,通过调用其构造方法创建一个长方体对象(其中长length为2、宽width为5、高height为7),要求输出其底面积和体积。

class Juxing{ }

class ChangFangTi extends Juxing{ }

public class Test { }

public static void main(String[] args) {

ChangFangTi obj=new ChangFangTi(2,5,7); System.out.println(\底面积=\+obj.findArea()); int height;

ChangFangTi(int l,int w,int h){ }

public int findVolume(){

return super.findArea()*height;

} super(l,w); height=h; int length; int width;

Juxing(int l,int w){ }

public int findArea(){ }

return length*width; length=l; width=w;

System.out.println(\体积=\+obj.findVolume()); }

20.用for循环语句实现打印50到80之间的自然数?

public class Print { }

public static void main(String[] args) {

for(int i=50;i<=80;i++)

System.out.print(i+\);

}

System.out.println();

31

21. 用Java语句实现把有10个元素的整数数组n的元素都初始化成3?

public class Lx1 {

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

for(int i=0;i

n[i]=3;

System.out.println(n[i]); }

for(int i=0;i

22. 编写程序计算学费:假设今年某大学的学费为10000元,学费的年增长率为5%,使用

循环语句编写程序,计算3年内,每年的学费各是多少?

public class Xuefei {

public static void main(String[] args) { }

double xuefei=10000; double raise=0.05; for(int i=1;i<=3;i++)

{

xuefei=xuefei*(1+raise);

System.out.println(\第\+i+\年学费为:\+xuefei); } }

23.编写程序设计一个表示三角形的类Trival,其中的属性包括三角形的底di,三角形的高gao,方法包括:默认构造方法、为di和gao指定初值的构造方法、计算三角形面积的方法findArea()?

class Trival{ }

public class TestTrival { }

32

double di; double gao; Trival(){ }

public double findArea(){ }

return 1.0/2*(di*gao); di=d; gao=g;

}

Trival(double d,double g){

public static void main(String[] args) { }

Trival t1=new Trival(5,10);

System.out.println(t1.findArea());

}

public static void main(String[] args) {

Student s1=new Student(\,\男\,20,'A'); s1.print();

}

7.定义一个类Rectangle代表矩形,其中包括计算面积的方法。再定义一个它的子类Square代表正方形],其中也包含计算面积的方法。编写一程序,测试新建子类对象的属性和方法? class Rectangle{ float length; float width; Rectangle(float len,float wh){ length=len; width=wh; } float getArea(){ return length*width; } }

class Square extends Rectangle{ float length; Square(float len){ super(len,len); length=len; } float getArea(){ return super.getArea(); } }

public class TestRectangle{ public static void main(String[] args){ Square sq=new Square(5.2f); System.out.println(\ } } 8.定义一个Document类,包含成员属性name。从Document派生出Book子类,增加PageCount变量,编写一应用程序,测试定义的类? class Document{ String name; Document(String str){ name=str; }

21

void show(){ System.out.println(name); } }

class Book extends Document{ int PageCount; Book(String name,int n){ super(name); PageCount=n; } void show(){ System.out.print(\ super.show(); System.out.println(\ } }

public class TestDoc{ public static void main(String[] args){ Book book1=new Book(\ book1.show(); } }

9.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个类都有构造方法和输出相关数据的方法。 class Vehicle { int wheels; float weight;

Vehicle(int wh,float we) { wheels=wh; weight=we;

int getWheels(){return wheels;} float getWeight(){return weight;} void show() {

System.out.println(“车轮:”+wheels); System.out.println(“车重:”+weight); } }

class Car extends Vehicle {

int loader;

22

Car(int wheels,float weight,int loader) {super(wheels,weight); this.loader=loader;} }

public void show() {

System.out.println(“车型:小车”); super.show();

System.out.println(“载人:”+loader); }

class Truck extends Car {

float payload;

Truck(int wheels,float weight,int loader,float payload) {super(wheels,weight,loader); this.payload=payload;} }

public void show() {

System.out.println(“车型:卡车”); super.show();

System.out.println(“载重量:”+payload); }

public class VehicleClient {

public static void main(String[] args) {

Car car=new Car(4,1500,4); car.show();

Truck truck=new Truck(8,7000,3,25000); truck.show(); } }

10.一个关于等边三角形的类Trival如下,其中的属性包括三角形的bian,方法包括:默认构造方法、为bian指定初值的构造方法、获取三角形面积findArea()。试利用方法覆盖的知识,设计三棱柱体类TriCylinder。(其中findArea()为计算三棱柱体的表面积) class Trival { double bian; Trival() { bian=1.0; } Trival(double b)

23

{ bian=b; }

double findArea() {

return (3/4)*bian*bian;

} }

答案:

public class TestOverrideMethods {

public static void main(String[] args) {

Cylinder myTriCylinder = new TriCylinder(5.0, 2.0);

System.out.println(\ System.out.println(\ System.out.println(\ myTriCylinder.findArea()); } }

class TriCylinder extends Trival {

private double length;

// Default constructor public Cylinder() {

super(); length = 1.0; }

public Cylinder(double r, double l) {

super(r); length = l; }

// Getter method for length public double getLength() {

return length;

24

}

public double findArea() {

return 2*(3/4)*bian*bian +3*bian*length; } }

11.定义一个类,描述一个家庭,其中包括私有的钱数(属性)、受保护的祖传秘方(方法,

在其中写输出语句模拟即可)、只在家族中能够使用的运输工具(方法,在其中写输出语句进行模拟),公共的门牌号码(属性)。将这个家庭放置在一个包中(一个大院),编写一个该家庭的子类,放置在另一个包中。测试其中几种被可见性修饰符修饰过的属性和方法。 程序一:

package yard;

public class Family{ private double money; void useCar(){ System.out.println(\ } protected void peiFang(){ System.out.println(\ } public int familyNum; } 程序二:

package dalian;

import yard.Family; public class TestVisible{ public static void main(String[] args){ Family f=new Family();

System.out.println(\门牌号码是:\ //System.out.println(\钱数\ //f.useCar(); //f.peiFang();

SunFamily sf=new SunFamily(); //sf.peiFang(); sf.usePeiFang(); } }

class SunFamily extends Family{ public void usePeiFang(){ this.peiFang(); }

25

public void usePlane(){ System.out.println(\ } }

12.定义一个接口CanFly,描述会飞的方法public void fly();

分别定义类飞机和鸟,实现CanFly接口。

定义一个测试类,测试飞机和鸟,在main方法中创建飞机对象和鸟对象,再定义一个makeFly()方法,其中让会飞的事物飞。并在main方法中调用该方法,让飞机和鸟起飞。 class InterfaceSample

{

public static void main(String arg[]) { Plane p1=new Plane(); Bird b1=new Bird(); Dog d1=new Dog(); makeFly(p1); makeFly(b1);

if (d1 instanceof CanFly)//作用四:用instanceof判断是否实现了接口,即是否能飞 { System.out.println(\ makeFly((CanFly)d1); }

CanFly f1=new Plane(); CanFly f2=new Bird(); makeFly(f1); makeFly(f2); }

static void makeFly(CanFly f) {f.fly();} }

interface CanFly { void fly();}

class Plane implements CanFly { public void fly()

{ System.out.println(\ } }

class Bird implements CanFly { public void fly()

{System.out.println(\ }

class Dog{ void run(){System.out.println(\

26

}

13. 利用接口继承完成对生物、动物、人三个接口的定义,其中生物接口定义呼吸抽象方法,动物接口定义了吃饭和睡觉两个抽象方法,人接口定义了思维和学习两个抽象方法;定一个普通人 类实现上述三个接口定义的抽象方法。 interface Biology {

void breath(); }

interface Animal extends Biology {

void ate();

void sleep(); }

interface Man extends Animal {

void think(); void study(); }

class NormalMan implements Man,Animal,Biology {

private String name;

NormalMan(String name) { this.name=name;} public String getName() { return name;} public void breath()

{ System.out.println(name+\ public void ate()

{ System.out.println(name+\ public void sleep()

{ System.out.println(name+\ public void think()

{ System.out.println(name+\ public void study()

{ System.out.println(name+\ }

public class InterfaceExtend {

public static void main(String[] args) {

NormalMan zhangsan=new NormalMan(\ zhangsan.breath(); zhangsan.ate();

27

zhangsan.sleep(); zhangsan.think(); zhangsan.study(); } }

14 接口Volume如下,试编制类TriVolume实现该接口,并计算三棱柱的体积(底面为等边三角形)。 接口为:

Public interface Volume {

public double findVolume(double bian, double length); }

类为: class Trival { double bian; Trival() { bian=1.0; } Trival(double b) { bian=b; } double findArea() {

return (3/4)*bian*bian;

} }

答案:

class TriVolume extends Trival implements Volume {

double bian,length;

TriVolume(double b, double l) {

super(b); length=l; }

public double findArea() {

28

return 2*(3/4)*bian*bian +3*bian*length; }

public double findVolume(double bian, double length) {

return (3/4)*bian*bian*length;

} }

15 利用多态性的知识,设计类EqualArea,判断圆与三角形面积的大小。(Circl类和Trival类已知) 答案:

public class TestPolymorphism {

// Main method

public static void main(String[] args) {

// Declare and initialize two geometric objects GeometricObject geoObject1 = new Circle(5.0); GeometricObject geoObject2 = new Trival(5.0, 3.0);

System.out.println(\ equalArea(geoObject1, geoObject2));

// Display circle

displayGeometricObject(geoObject1);

// Display Trival

displayGeometricObject(geoObject2); }

// A method for comparing the areas of two geometric objects static boolean equalArea(GeometricObject object1, GeometricObject object2) {

return object1.findArea() == object2.findArea(); }

// A method for displaying a geometric object

static void displayGeometricObject(GeometricObject object) {

System.out.println();

System.out.println(object.toString());

System.out.println(\

29

} }

16.用循环语句实现,打印1到100之间的自然数?

public class Print { }

public static void main(String[] args) {

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

System.out.print(i+\);

}

System.out.println();

17.用Java语句实现把有5个元素的单下标整数数组g的元素都初始化成8?

public class Lx1 {

public static void main(String[] args) { int g[]=new int[5];

for(int i=0;i

g[i]=8;

System.out.println(g[i]); }

for(int i=0;i

18编写一个类Teacher,描述教师的员工号、姓名、岗位工资、绩效工资。员工号用整型,工资用双精度型,姓名用String类型,编写一个带参数的构造方法给员工号、姓名、岗位工资和绩效工资初始化,编写一个方法计算并返回教师的总工资(岗位工资+绩效工资)?

public class Teacher { }

int number; double gangweigz; double jixiaogz; String name;

Teacher(int number,String name,double gangweigz,double jixiaogz){ }

public static void main(String[] args) { }

Teacher t1=new Teacher(1001,\,3000,2000); System.out.println(t1.total()); this.number=number; this.name=name;

this.gangweigz=gangweigz; this.jixiaogz=jixiaogz;

}

public double total(){

return gangweigz+jixiaogz;

30

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

Top