java程序设计第1-4章练习题参考答案 (1)

java程序设计第1-4章练习题参考答案 (1)
java程序设计第1-4章练习题参考答案 (1)

一、选择题

1.下面供选字符序列中,不属于

...Java语言关键字的是( A ) A.goto B.null C.false D.native

2.以下是关于Java语言关键字的叙述,其中正确的是( C )

A.关键字可以用来描述类的成员类型,但是不能描述普通变量

B.关键字由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字组成

C.关键字不可以用作变量、方法、类或标号的标识符

D.break和main都是Java语言的关键字

3.下述字符组合不能作为Java程序标识符的是(D)

A.Aa12 B.X

C.y D.5x

4.在下述字符串中,不属于

...Java语言关键字的是( C )

A.float B.new

C.java D.return

5.下列字符组合不能作为Java整型常量的是( A )

A.078

B.0x3ACB

C.5000

D.0x3ABC

6.设有如下程序:

public class Test {

public static void main(String[] args) {

String foo=args[1];

String bar=args[2];

String baz=args[3];

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

}

}

下述哪一行命令可以使得执行该程序的输出为baz= 2 ( C )

A) java Test 2222 B) java Test 1 2 3 4

C) java Test 4 2 4 2 D) java Test 4 3 2 1

7.在Java语言中,int类型数据的长度是( C )

A.1个字节

B.2个字节

C.4个字节

D.8个字节

8. 用Java虚拟机执行类名为Hello的应用程序的正确命令是( D )。

A) java Hello.class B) Hello.class C) java Hello.java D) java Hello

9.执行以下代码,输出结果是( B )

int x=5,y=7,u=9,v=6;

System.out.println(x>y ? x+2:u>v ? u-3:v+2);

A.8

B.6

C.7

D.true

10.下列修饰符中与访问控制无关的是(C)。

A) public B) protected C) final D) private

11.以下程序代码的输出结果是( A )

int x=73;System.out.println(x>>1);

A.36 B.36.5

C.37 D.true

12.应用程序的main方法中有以下语句,则输出的结果是(B)。String s="12345#67890#123#fgh";

int m=s.indexOf("#");

String s2=s.substring(m+1);

System.out.println(s2);

A) 12345 B) 67890#123#fgh C) 123 D) fgh 13.Java语言中,在类定义时用final关键字修饰,是指这个类( A ) A.不能被继承B.在子类的方法中不能被调用C.能被别的程序自由调用D.不能被子类的方法覆盖14.以下是关于字符串运算的代码,执行该代码段的输出结果是( B ) String s="0123456789″,sl,s2;

sl=s.substring(2);s2=s.substring(2,5);System.out.println(s1+s2);A.0122345 B.234567892345

C.012234 D.23456789234

15.参照以下Java代码,以下四个叙述中最确切的是(B)

class A{

int x; static int y;

void fac(String s){Syatem. out. println("字符串:"+s);}

}

A.x、y和s都是成员变量

B.x是实例变量、y是类变量、s是局部变量

C.x和y是实例变量、s是参数

D.x、y和s都是实例变量

16.关于对象成员占用内存的说法哪个正确?( B )

A) 同一个类的对象共用同一段内存

B) 同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间

C) 对象的方法不占用内存

D) 以上都不对

17.关于方法main()的说法哪个正确?( C )

A) 方法main()只能放在公共类中

B) main()的头定义可以根据情况任意更改

C) 一个类中可以没有main()方法

D) 所有对象的创建都必须放在main()方法中

18.以下程序代码的输出结果是( B )

int x = 10;

while (x > 7)

{ System.out.print("*"); x--;}

A.**

B.***

C.*

D.****

19.设类U声明,及对象u和v的定义如下:

class U{

int x, int y;

U(int a, int b){x= a; y = b;}

void copy(U a){ x = a.x; y = a.y;}

}

U u = new U(1, 2), v = new U(2, 3);

在以下供选择的代码中,可能引起系统回收内存的是( B )

A.u.x=v.y;u.y=v.x;

B.u=v;

C.u.copy(v);

D.v.copy(u);

20.设有以下代码:

String s l="123";

String s2="123";

String s3=new String("123");

则表达式s1==s2和s1==s3的值分别是( C )

A.true,true

B.false,false

C.true,false

D.false,true

21.在以下供选择的概念中,不属于

...面向对象语言概念的是( B ) A.消息B.模块

C.继承D.多态性

22.应用程序的main方法中有以下语句,则执行后输出的结果是( D )。

int[] x={125,21,5,168,98};

int max=x[0];

for(int i=1;i

{if(x[i]> max)

max =x[i];

}

System.out.println(max);

A) 125 B) 5 C) 21 D) 168

23.在下述Java语言语句中,错误

..的创建数组的方法是( A)

A.int intArray [ ];intArray=new int[5];

B.int intArray [ ]=new int[5];

C.int [ ] intArray ={1,2,3,4,5};

D.int intArray [5]={1,2,3,4.5};

24.应用程序的main方法中有以下语句,则输出的结果是(A)。String s1="0.5", s2="12";

double x=Double.parseDouble(s1);

int y=Integer.parseInt(s2);

System.out.println(x+y);

A) 12.5 B) 0.512 C) “0.512”D) “12.5”

25.构造函数何时被调用?( B )

A) 类定义时B) 创建对象时

C) 使用对象的方法时D) 使用对象的属性时

26.关于继承的说法正确的是:(D)

A) 子类将继承父类所有的属性和方法。

B) 子类只继承父类的方法,而不继承属性

C) 子类只继承父类public方法和属性

D) 子类将继承父类的非私有属性和方法。

27.关于接口哪个正确?( D)

A) 一个类只能实现一个接口

B) 接口间不能有继承关系

C) 接口和抽象类是同一回事

D) 实现一个接口的非抽象类必须实现接口的所有方法

28.以下关于接口的叙述中,正确的是( D )

A.所有的接口都是公共接口,可被所有的类和接口使用

B.一个类通过使用关键字interface声明自己使用一个或多个接口

C.接口中所有的变量都默认为public abstract属性

D.接口体中不提供方法的实现

29.以下代码段的输出结果是( A )

String s="JavaWorld";System.out.print(s.indexOf("a",4));

A.-1

B.O

C.1

D.4

30.Java语言中,只限子类或者同一包中的类的方法能访问的访问权限是( D)

A.public

B.private

C.protected

D.<无修饰>

31.设有数组定义int[][] x={{1,2},{3,4,5},{6},{}};,则x.length 的值为( B )

A.3

B.4

C.6

D.7

32.若需要定义一个类变量或类方法,应使用哪种修饰符?( A)A)static B)package C)private D)public 33.若有下面程序

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

{if(k>4) break;

System.out.print (k);

}

请问最后的输出结果是(A )

A)1234 B)1 C)2 D)12345

34、在Java中负责对字节代码解释执行的是(B)

A)垃圾回收器

B)虚拟机

C)编译器

D)多线程机制

35、java源程序编译生成的字节码文件不是直接运行在操作系统平台上的,而是在(B)上运行的。

A)网页 B)java虚拟机 C)java编译器 Djava编辑器

36、下面叙述正确的是(A)

A)Java语言的标识符是区分大小写的

B)源文件名和public类名可以不相同

C)源文件名其扩展名为.jar

D)源文件中其public类的数目不限

37、java语言是一种(D)

A)机器语言 B)汇编语言 C)面向过程语言 D)面向对象语言

38、请问下面哪一个表达式是求x、y、z三个整型变量中的最大值的表达式(A)

A)(x>y?x:y)>z?(x>y?x:y):z

B)(x>y?x:y)>z ?x:z

C)(x>y)&&(x>z)

D)x>(y

39、下面属于合法标识符的是(A)

A)_cat

B)5file

C)static

D)abc-3

40、下列哪个选项不是Java语言的注释符号(D)

A、//

B、/* */

C、/** */

D、!

41、类Example定义如下:

1.public class Example{

2.public float aMethod(float a,float b){ }

3.

4.}

将以下哪种方法插入行3是不合法的。(B)

A、public float aMethod(float a,float b,float c){ }

B、 public float aMethod(float c,float d){ }

B、public int aMethod(int a,int b){ }

C、private float aMethod(int a,int b,int c){ }

42、编译Java程序的命令是(C)

A、A、java

B、javadoc

C、javac

D、cd

43、下列哪个类声明是正确的(D)

A)abstract final class Car{···}

B)abstract private ver(){···}

C)public private number;

D)public abstract class Car{···}

44、下面那个不是Java中的关键字(C).

A)abstract B)while C)name D)static

45、若在某一个类定义中定义有如下的方法:final void performDial( );

该方法属于( D )。

A)本地方法

B)抽象方法

C)解态方法

D)最终方法

46、下面关于继承说法正确的是(B)。

A)子类只继承父类public方法和属性

B)子类继承父类的非私有属性和方法

C)子类只继承父类的方法而不继承属性

D)子类将继承父类的所有属性和方法

47、应用程序的main方法中有以下语句,则输出的结果是 (A)。int[] x={122,33,55,678,-987};

int max=x[0];

for(int i=1;i

if(x[i]>max)

max=x[i];

}

System.out.println(max);

A) 678 B) 122 C) -987 D) 33

48、以下代码段执行后的输出结果为(B)

int x=3; int y=10;

System.out.println(y%x);

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

49、对于位运算^(“异或”运算),6^2的二进制结果为(B)

A)0000 B)0100 C)1111 D)0110

50、下列哪个选项是Java的输出语句(A)

A、System.out.println();

B、Out.system.print();

C、System.println.out();

D、print.system.out();

51、执行完以下代码int [ ] x = new int[25];后,以下哪项说明是正确的(A)

A)x[24]为0 B)x[24]未定义C)x[25]为0 D)x[0]为空

52、下列哪项不是Java合法的标识符(D)

A、$wei

B、123

C、F117

D、girl_boy

53、关于一个类中被private 修饰的私有成员变量,以下说法正确的是(C)

A)可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类

B)可以被两种类访问和引用:该类本身、该类的所有子类

C)只能被该类自身所访问和修改

D)只能被同一个包中的类访问

54、下面定义数组的语句错误的是(D)

A、String [ ] str;

B、String str [ ];

C、char [ ] [ ] str;

D、char str;

55、以下代码段将创建(C)个对象。

String str1="hello";

String str2="hello";

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

56、下列哪个选项是Java的主方法(C)

A) public static main(String args[]) B) private static void main(String args[ ])

C) public static void main(String args[ ]) D) private static main(String [ ] args)

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

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

58、下列类的继承哪个是正确的(A)

A) class Apple extends Fruit B) class Apple

C) class Apple Fruit D) apple extends Fruit

59、 Java Application源程序的主类是指包含有(A)方法的类。

A)main方法B)toString方法C)init方法

D)actionPerfromed方法

60、下列哪个选项不是正确的for语句的形式(C)

A) for( ; ; ) B) for(int i=0; i<10; i++) C) for(int i=0, i<10, i++) D) for(int i=0; ; i++)

61、编译Java Applet 源程序文件产生的字节码文件的扩展名为

(B)。

A)java B)class C)html D)exe

62.下面哪个说法不正确( D)?

A)如果某公共的接口被声明在一个源文件中,则接口必须与源文件具有相同的名字。

B)Java应用程序源文件中必须有且仅有一个public类。

C)如果某源文件包含package语句,则该语句必须是第一个非空、非注释行。

D)接口中的方法必定是抽象方法,但可以不用关键字abstract修饰。

二、填空题

1.Java源文件的扩展名是_java__。

2.Java的编译程序先将Java源程序翻译成与机器无关的字节码文件。3.Java程序的字节码文件的扩展名是_.class__。

4.一个应用程序必须在某个类中定义的方法是_main_。

5.一个小应用程序必须定义成一个_Applet类的子类_。

6.Java语言采用多种机制来保证可移植性,其中最主要的是_平台无关_。

7.import语句的格式是__import 包名.类名;。

8.程序包声明的格式是_package 包名;。

9.用条件运算符构造一个表达式:goal等于10时,表达式的值为“对了!”,否则,表达式的值为“错了!”。这个表达式是_goal==10?"对了!":"错了!"。

10.构造一个Java表达式:y/x>5,并且x!=0。这个表达式是_ x!=0&&y/x>5_。

11.表达式-4>>l的十进制值是___-2______。

12.表达式¨23 & 18’’的值是___18___。

13.在定义成员变量时,用关键字__static__修饰的是类变量。14.如果类A某个成员变量的类型是类B,则类A和类B之间是_类A包含有类B_关系。

15.在类声明之前用_final_修饰,声明类是不能被再继承的类,即它不能再有子类。

16.在面向对象语言中,对象之间的交互通过_互相发送消息_实现。17.类是对一组相同对象的描述,类概括了同类对象的共有性质:_属性和方法。

18.当联编推迟至运行时间实现时,该联编过程称为_动态联编_。

19. 布尔类型数组元素的默认初值是__false_。

20.Java语言提供了两个用于处理字符串的类,它们是_StringBuffer和StringBuilder _。

21.设有字符串定义:

String s="ABCDABCD";

则表达式s.indexOf("B")的值是_1__。

22.设有两个字符串对象str1和str2,则表达式“strl==str2”的意义是判别字符串strl和str2_是否引用相同对象_。

23.设有数组a和b的定义如下:

int[]a={1,2,3};int[]b={4,5,6}

……

执行以下代码“a=b;”,除了完成赋值操作之外,引起系统额外要做的工作是_回收内存_。

24.使用默认字节字符对应表,将字符串转化为字节数组的方法是_strInput.getBytes();_。

25.若x = 5,y = 10,则x < y和x >= y的逻辑值分别为true 和_false

26、创建类的对象时,使用运算符__new_给对象分配内存空间。

27、一个__构造方法_是一个特殊的方法,用于初始化一个类的对象,它的名称必须与_类名_相同,并且方法定义前不能加任何的修饰符。

28、定义类的构造方法不能有 _返回值类型,其名称与类名相同。

29、、若有定义:float[] b={1.1f, 3.5f, 6.8f};,则 b.length()的值是__3_。

30、Java语言中关键字_float 表示单精度类型,__boolean__代表布尔类型。

31、定义一个长度为10的一维整型数组array的方法为int [ ]array=_new int[10];_。

32、安装完JDK后一般要设置的两个环境变量是__path__和_classpath__。

33. 如果定义了一个名称为persons、长度为100的数组,则其第一个元素表示为_persons[0]_,第36个元素表示为__persons[35]__。34、若有类定义:

class classB extends classA{

}

则类classA是类classB的__父类__。

35、接口中的成员只有_ 常量_和_抽象方法_。

36. Java语言中关键字_double表示双精度类型。

37、在类中使用关键字_this_指代当前对象。

38. 在Java的基本数据类型中,字符型采用_ unicode_编码方案,每个字符占用2字节内存空间。

39、关键字__package__用于自定义包。

40.一个类实现一个接口使用的关键字是__implements__。

41. 在子类中使用关键字_super_做前缀可调用被子类覆盖的父类中的方法。

42、书写一个语句完成以下要求:先将整型变量a的值加1,再把它加入到变量sum中。

sum=++a; 。

43. 关键字_ import__用于导入包中的类到程序中,供程序中使用。

44、设 x = 2 ,则表达式 ( x + + )/3 的值是 0 。

45.如果一个方法没有返回值,则该方法返回值类型为__void__。

46、在面向对象概念中,每个对象都是由_属性__和__方法__两个最

基本的部分组成的。

47、书写一个语句完成以下要求:若输入数据input是合法的秒数(在0到60之间),则赋给变量second,否则将-1赋给second。Second=(input>0&&input<60?input:-1)

48.Java程序的字节码文件的扩展名是_class__。

49.接口的访问权限是 public 或默认。

50.在类声明之前用__final__修饰,声明类是不能被再继承的类,即它不能再有子类。

51. 若有定义:int[] b={1, 3, 6};,则b.length()的值是__3__。52. Java的字符类型采用的是Unicode编码方案,每个Unicode码

占用__16_个比特位。

53.如果要使用其他包中的类,必须用 import 语句导入。

54.抽象方法方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。最终方法是不能被当前类的子类重新定义的方法。

55.Java 源文件中最多只能有_1__个公共类,其它类的个数不限。

三、简答题

1.什么是Java虚拟机?什么是Java平台无关性?

2.什么是接口?Java中定义接口有什么作用。

3. 请写出在类的方法的定义之前,加上修饰字public、private的区别。4.以下代码定义了一个类,请指出其中三条不合法的代码行(行号参见注释)。

class Test22{ //1

float u;static float v;//2

static void setUV(boolean f){ //3

u=fac1(f);//4

v=fac2(!f);} //5

static float facl(boolean f){return f?u:v;} //6

float fac2(boolean f){return f?v:u;} //7

} //8

5.设char ch;,写出下列问题对应的表达式

(1)判断ch是一个十进制的数字字符

(2)判断ch是一个十六进制的数字字符

(3)判断ch是一个大(小)写字母

(4)将一个十进制的数字字符ch转换成对应的整数类型值

6.请写出在面向对象系统中,类和对象的关系。

7.如果类Student是类Person的子类,类Undergraduate是类Student 的子类,请指出以下代码行中哪些是不合法的。

Person p1=new Student();

Person p2=new Undergraduate();

Student s1=new Person();

Student s2=new Undergraduate();

Undergraduate ug1=new Person();

Undergraduate ug2=new Student();

Object ob=new Student();

8.Java基本数据类型有哪些?引用数据类型有哪些?

9.Java中标识符的定义规则是什么?

10.面向对象技术有哪些核心特性。

四、程序填空题

1、下面是用辗转相除法求两个整数的最大公约数的程序,请在空白处填上适当的语句。

public class Gcd_dowhile

{

public static void main(String args[])

{

int a=26460,b=12375,k=0;

while(b!=0){

System.out.println("gcd("+a+","+b+")=");

__________________;

__________________;

__________________;

}

System.out.println("gcd("+a+","+b+")="+a);

}

}

2、下面是判断一个年份是否是闰年的程序,请在空白处填上适当的语句。

public class LeapYear{

public static void main(String args[]){

int year=2008;

boolean

leap=______________________________________________;

System.out.println(year+"is a leap year,"+leap);

}

}

相关主题
相关文档
最新文档