文档库 最新最全的文档下载
当前位置:文档库 › JAVA复习题 答案版

JAVA复习题 答案版

JAVA复习题 答案版
JAVA复习题 答案版

一、选择题

1.Java application中的主类需包含main方法,main方法的返回类型是什么(D )

A、int

B、float

C、double

D、void

2、异常包含下列那些内容D

A)程序中的语法错误B)程序的编译错误

C)程序执行过程中遇到的事先没有预料到的情况D)程序事先定义好的可能出现的意外情况

3、.函数重载是指A

A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同

B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同

C.两个以上的函数名字不同,但形参的个数或类型相同

D.两个以上的函数取相同的函数名,并且函数的返回类型相同

4、.指出下列程序运行的结果B

publicclassExample{

Stringstr=newString(″good″);

char[]ch={′a′,′b′,′c′};

publicstaticvoidmain(Stringargs[]){

Exampleex=newExample();

,ex,ch);

}

publicvoidchange(Stringstr,charch[]){

str=″testok″;

ch[0]=′g′;

}

}

andabc andgbc

okandabc okandgbc

5. 下列哪个选项的java源文件代码片段是不正确的B

A.package testpackage;

public class Test{ }

B.import .*;

package testpackage;

public class Test{ }

C.import .*;

class Person{ }

public class Test{ }

D.import .*;

import .*;

public class Test{ }

6. 以下程序段执行后将有(C)个字节被写入到文件afile中。

try{

FileOutputStream fos=new FileOutputStream(“”);

DataOutputStream dos=new DataOutputStream(fos);

(3);

;

();

( );

}

catch(IOException e) { }

A、2

B、8

C、12

D、16

7、以public修饰的类如:public class Car{…} 则Car( )A

A、可被其它程序包中的类使用

B、仅能被本程序包中的类使用

C、不能被任意其它类使用

D、不能被其它类继承

8、构造函数何时被调用( ) B

A.类定义时

B.创建对象时

C.调用对象方法时

D.使用对象的变量时

中,数值类型值中可能出现的符号是()B

10.下面的表达式中正确的是()A

s=″你好″;inti=3;s+=i;

s=″你好″;inti=3;if(i==s){s+=i};

s=″你好″;inti=3; s=+i;

s=″你好″;inti=3;s=i+;

11.在异常处理中,如释放资源、关闭文件、关闭数据库等由()来完成。C

子句子句

子句子句

12、.如果任何包中的子类都能访问超类中的成员,那么应使用哪个限定词()C

13、.在Java中,不属于整数类型变量的是()A

14、.下面属于Java关键字的是()C

15、.当方法遇到异常又不知如何处理时,下列哪种说法是正确的()C

A.捕获异常

B.抛出异常

C.声明抛出异常

D.嵌套异常

16、.Java程序的执行过程中用到一套JDK工具,其中是指()B

文档生成器解释器

编译器类分解器

17、.Java语言中,下列标识符错误的是()C

B.—name

C.&count

D.—j

18、下列能表示字符串S1长度的是B

A B () C D ()

19、子类继承了父类的方法和状态,在子类中可以进行的操作是D

A 更换父类的方法

B 减少父类方法

C 减少父类变量

D 增添方法

20、下列语句中错误的是B

A String S[]={“box”,”are”} ;

B byte b=255;

C String s=”one”+”two”;

D int i=2+200;

21、下列可用于作switch(expression)语句参数的是D

A String s

B Integer I

C boolean b

D int i

22.阅读下列代码

Public class Test{

Public static void main(String args[]){

其运行结果是D

A 、2

B 、0 C、10 D、8

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

C.FileNotFoundException D.UnknownHostException

24 阅读下列代码

Public class Test{

String s=” One World One Dream”;

Public static void main(String args[]){

其运行结果是D

A、args

B、OneWorld OneDream

C、s

D、编译时出错

25、下列叙述中,正确的是A

A.Java语言的标识符是区分大小写的B.源文件名与public类名可以不相同C.源文件扩展名为.jar D.源文件中public类的数目不限

26、下列属于合法的Java标识符是A

A._cat B.5books C.+static D.

27、在Java中,由Java编译器自动导入,而无需在程序中用import导入的包是D A.B.C.D.

28、在Java中,所有类的根类是A

A.B.

C.D.

29、在Java中,用Package语句说明一个包时,该包的层次结构必须是B

A.与文件的结构相同B.与文件目录的层次相同

C.与文件类型相同D.与文件大小相同

30、下列构造方法的调用方式中,正确的是C

A.按照一般方法调用B.由用户直接调用

C.只能通过new自动调用D.被系统调用

31、在Java中,能实现多重继承效果的方式是C

A.内部类B.适配器C.接口D.同步

32. 在Java中,负责对字节代码解释执行的是()。B

A.垃圾回收器B.虚拟机C.编译器D.多线程机制

33、能够支持javadoc命令的注释语句是D

A./**....*/ C..*/

34、十进制数16的16进制表示格式是A

A.0x10 B.0x16 C.0xA D.16

35、int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是D A.public int MAX_LENGTH=100

B.final int MAX_LENGTH=100

C.public const int MAX_LENGTH=100

D.public final int MAX_LENGTH=100

36 请说出下列代码的执行结果: B

String s = "abcd";

String s1 = new String(s);

if (s = = s1) "the same");

if (s1)) "equals");

A. the same

equals

B. equals

C. the same

D. 什么结果都不输出

37 下列有关Java 中接口的说法哪个是正确的b

A. 接口中含有具体方法的实现代码

B. 若一个类要实现一个接口,则用到“implements” 关键字

C. 若一个类要实现一个接口,则用到“ extends ”关键字

D. 接口不允许继承

38 下列哪个说法是错误的。C

A. Exception 可以用try/catch 进行捕获处理

B. Exception 可以递交给上一级调用方处理

C. JVM 会自动处理Exception

D. Exception会使程序终止执行

39 下列代码的执行结果是什么A

String s1 = "aaa";

("bbb");

A. The string "aaa".

B. The string "aaabbb".

C. The string "bbbaaa".

D. The string "bbb".

40、下列的哪个赋值语句是不正确的A

A.float f = ;B.double d = ;

C.float d = ; D.double f=;

41、下列的哪个赋值语句是正确的D

A.char a="12"; B.int a=; C.int a=; D.int a=(int);

42、给出下列的代码,哪行在编译时可能会有错误C

① public void modify(){

② int i, j, k;

③ i = 100;

④ while (i > 0 ){

⑤ j = i * 2;

⑥ (" The value of j is " + j );

⑦ k = k + 1;

⑧ }

⑨ }

A.line 4 B.line 6 C.line 7 D.line 8

43、下列关于继承的哪项叙述是正确的

A.在java中允许多重继承B.在java中一个类只能实现一个接口

C.在java中一个类不能同时继承一个类和实现一个接口

D.java的单一继承使代码更可靠

44、下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问B A.private B.无修饰符C.public D.protected

45、给出下列代码,如何使成员变量m 被方法fun()直接访问C

class Test

{

private int m;

public static void fun()

{

...

}

}

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

46已知有下列类的说明,则下列哪个语句是正确的A

public class Test

{

private float f = ;

int m = 12;

static int n=1;

public static void main(String arg[])

{

Test t = new Test();

}

}

A.;B.;C.;D.;

47、给出下列代码,则数组初始化中哪项是不正确的A

byte[]array1,array2[];

byte array3[][];

byte [][]array4;

A.array2 = array1B.array2=array3

C.array2=array4 D.array3=array4

48、下列代码的执行结果是A

public class Test

{

public int aMethod()

{

static int i=0;

i++;

(i);

}

public static void main(String args[])

{

Test test = new Test();

();

}

}

A.编译错误B.0 C.1 D.运行成功,但不输出

49、顺序执行下列程序语句后,则b的值是C

String a="Hello";

String b=(0,2);

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

50、在oneMethod()方法运行正常的情况下,程序段将输出什么(D答案必须换行,即结果为:condition1

finally

public void test()

{

try { oneMethod();

("condition 1");

} catch (ArrayIndexOutOfBoundsException e)

{

("condition 2");

} catch(Exception e)

{

("condition 3");

} finally

{

("finally");

}

}

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

二.判断题

1.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相

同的新对象。否

2.类及其属性、方法可以同时有一个以上的修饰符来修饰。是

3.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。否

4.Final 类中的属性和方法都必须被final 修饰符修饰。否

5.最终类不能派生子类,最终方法不能被覆盖。是

6.一个Java 类可以有多个父类。否,只有一个

7.一个Java类可以有多个构造函数。是

8.Java类的构造函数可以有返回值。否有返回值就不是构造函数

9.一个类不能既被声明为abstract的,又被声明为final的。是

10.如果p 是父类Parent 的对象,而c 是子类Child 的对象,则语句c = p 是正确的。

11.一个类如果实现了某个接口,那么它必须重载该接口中的所有方法。是

12.一个抽象类的子类必须要定义从超类中继承过来的所有的抽象方法。是

13.所有的抽象方法都必须存在于抽象类中。是

14.抽象类中不允许包含非抽象的方法。否

15.static方法不能操纵和处理属于某个对象的成员变量,而只能处理属于整个类的成员变

量。是

16.子类构造函数总是先显式的或隐式地调用其父类的构造函数,以创建和初始化子类的父

类成员。是

17.在类的引用中,子类的对象可以当作其父类的对象对待。是多态性之一

三. 简答题

1.Java中命名标识符有什么规则

Java语言规定标识符是以字母、下划线“_”或美元符号“$”开始,随后可跟数字、字母、下划线或美元符号的字符序列。

Java标识符大小写敏感,没有长度限制,可以为标识符取任意长度的名字,但关键字不能作为标识符。

2.什么是继承机制

继承是一种由已有的类创建新类的机制。

继承体现了软件的复用,子类继承父类:

父类中的属性不需要再定义。

父类中的方法不需要再重新编写

子类继承父类的非私有属性和方法,还可以定义新的属性和方法,改写父类的方法

3.什么是抽象类

抽象类是没有具体对象的概念类,不能创建抽象类的对象;

是类继承中处于较高层次的类,是对子类共性的抽象与定义。

4.Java中的接口如何声明

使用interface 接口名{

public abstract 方法(修饰符可省)

public static final 属性(修饰符可省)

}

5.什么是包

包是一种松散的类的集合。

用途:利用包来管理类,便于类的组织、管理和引用(共享),可实现类的访问权限控制。

6.什么是域的隐藏子类和父类有同名域,在子类方法中如何进行访问父类的域

将域定义为私有变量不能子类访问的属性。使用super.属性名来调用父类的属性。

7.静态属性如何声明、存储和访问

声明:static 变量名

位于类的内存区域中,是该类对象共享的存储单元

访问:类名.属性名或对象名.属性名

8.Java的访问控制符有哪些各有什么作用

public:表明该成员变量和方法是共有的,能在任何情况下被访问。

protected:必须在同一包中才能被访问。

private:只能在本类中访问。

默认访问

不能用protected和private修饰类

9.StringBuffer和String有什么区别,试举例说明。

其实很简单,就是一个变量和常量的关系

StringBuffer对象的内容可以修改

而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象

比较

StringBuffer str = new StringBuffer("a");

("bc");

String str2 = "a";

str2 = str2 + "bc";

str引用的一直是同一对象

而str2引用的在两句中是完全不同的对象

10.说明利用记事本和JDK开发一个Java程序的基本步骤。

1.在记事本中编写程序,另存为格式

2.打开cmd命令行,转到1中文件的目录下

3.输入javac 编译文件

4.输入java 执行文件

11.Applet与java application有什么区别简述各自的运行机制。

应用程序(application),可以提供JAVA运行环境(JRE)。而小程序(applet),则只能使用浏览器提供的功能.

application 是从main()开始的,applet()是从init开始的.(有关application)

12.java中的数据类型转换有哪两种分别解释其含义和用法。

自动转换:系统根据赋值语句,数据类型自动转换

强制转换:需要用户规定类型

短类型→ 长类型:默认(系统自动转换)

长类型→短类型:强制

不同数据类型转换-字符/数值:强制

四.编程题目

1.设计一个表示二维平面上的点的类Point,包含表示坐标位置的protected类型的成员变

量x和y,以及获取和设置x和y的值的public类型的方法:getx()、gety()、setx()、sety()。

Point类的构造方法要有多种形式。

2.设计一个表示二维平面上的圆的类Circle,它继承自Point类。类Circle包含表示圆半径

的protected类型的成员变量r,以及获取和设置r的值的public类型的方法:getr()、setr(),计算圆面积的方法area()。此外,Circle类的构造方法要有多种形式。

3.编写一个java应用程序,以不同形式建立若干个Circle类的对象,输出它们的中心点、。

1,2,3,题代码

class Point{

protected int x , y;

public Point(){

}

public Point(int x,int y) {

= x;

= y;

}

public int getX() {

return x;

}

public void setX(int x) {

= x;

}

public int getY() {

return y;

}

public void setY(int y) {

= y;

}

}

class Circle extends Point{

protected int radius;

private final static double PI = ;

public Circle(){

}

public Circle(int radius){

= radius;

}

public Circle(int x,int y,int radius){

super(x,y);

= radius;

}

public int getRadius() {

return radius;

}

public void setRadius(int radius) {

= radius;

}

public double area() {

return radius*radius*PI;

}

}

public class Test71 {

public static void main(String[] args) {

Circle circle1 = new Circle();

(10);

(20);

(20);

Circle circle2 = new Circle(10);

= 10;

= 10;

Circle circle3 = new Circle(10, 10, 20);

}

}

4.给定一个正整数数组,按照冒泡排序算法进行排序

public class Test71 {

private static int array[] = {52,23,35,65,19,10,4,7,100};

static int[] sort() {

int temp = 0;

for (int i = 0; i < ; i++) {

for (int j = 0; j < - i -1; j++) {

if (array[j] > array[j+1]) {

temp = array[j];

array[j] = array[j+1];

array[j+1] = temp;

}

}

}

return array;

}

public static void main(String[] args) {

int[] a = sort();

for (int i = 0; i < ; i++) {

);

}

}

}

5.编写一个Java程序,将某一整数范围内所有素数打印出来。要求用图形界面实现。

判断方法:对于整数n,如果n能被2到n-1中的任意一个整数整除,则使用break语句终止,可判定n不是素数。

6.编写一个程序,找出整数数组中的最小元素和最大元素,并统计最大元素和最小元素的

个数。

public class Test71 {

private static int array[] = {52,23,35,65,19,10,4,7,100};

private static int max;

private static int min;

private static int maxc = 0 ;

private static int minc = 0 ;

static void find() {

max = min = array[0];

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

if (max < array[i] ) {

max = array[i];

}

if (min > array[i]) {

min = array[i];

}

}

for (int i = 0; i < ; i++) {

if (max == array[i] ) {

maxc++;

}

if (min == array[i]) {

minc++;

}

}

}

public static void main(String[] args) {

find();

max+" "+maxc );

" "+minc );

}

}

7.补充完整下面方法,可以从三个数a, b, c中找出最大值,作为方法的返回值返回

int findMax(int a, int b, int c){

// 完整该方法

}

代码:

int findMax(int a,int b,int c) {

if (a > b && b > c) {

return a;

}

if (a < b && b < c) {

return c;

}

if (a < b && b > c) {

return b;

}

return 0;

}

8.数组a中存放了若干整数,补充完整下面的方法,能从屏幕上分别打印出其中最大的整

数,最小的整数,以及所有整数的算术平均数

void ProcessArray(int[] a){

//完整该方法

}

代码:

void ProcessArray(int[] a) {

max = min = a[0];

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

if (max < a[i] ) {

max = a[i];

}

if (min > a[i]) {

min = a[i];

}

}

for (int i = 0; i < ; i++) {

sum+=a[i];

}

average = sum/;

}

9.编写一个方法判断一个字符串是否为回文,例如“abcba”

bool isHuiwen (String str){ }

代码:

boolean isHuiwen (String str) {

int start ,end,mindle;

start = 0;

end = ()-1;

mindle = end/2;

for (; start < mindle; start ++,end --) {

if (start) == (end)) {

continue;

}

else {

return false;

}

}

return true;

}

10.根据下面的要求,编程实现复数类ComplexNumber:

1)属性:m_dRealPart:实部;m_dImaginPart:虚部

2)构造方法:ComplexNumber() 以及ComplexNumber(double r, double i)

3)方法:复数相加complexAdd(ComplexNumber c);toString()打印当前复数

进一步,编写一段程序,创建三个复数对象,打印其相加后的结果

代码:

class ComplexNumber{

private double m_dRealPart;

private double m_dImaginPart;

public ComplexNumber(){

}

public ComplexNumber(double r, double i){

= r;

= i;

}

public ComplexNumber complexAdd(ComplexNumber c){

= + ;

= +;

return this;

}

@Override

public String toString() {

// TODO Auto-generated method stub

return +"+"++"i";

}

}

public class Test71 {

public static void main(String[] args) {

ComplexNumber complexNumber1 =new ComplexNumber(10,20);

ComplexNumber complexNumber2 =new ComplexNumber(26,32);

ComplexNumber complexNumber3 =new ComplexNumber(2,89);

(complexNumber1));

}

}

11.根据下图,定义相应的Java中的接口与类,不要求写方法的具体实现。

代码:

interface Instrument{

void play();

String what();

void adjust();

}

class Wind implements Instrument{

@Override

public void play() {

// TODO Auto-generated method stub }

@Override

public String what() {

// TODO Auto-generated method stub

return null;

}

@Override

public void adjust() {

// TODO Auto-generated method stub }

}

class Percussion implements Instrument{

@Override

public void play() {

// TODO Auto-generated method stub }

@Override

public String what() {

// TODO Auto-generated method stub

return null;

}

@Override

public void adjust() {

// TODO Auto-generated method stub }

}

class Stringed implements Instrument{

@Override

public void play() {

// TODO Auto-generated method stub }

@Override

public String what() {

// TODO Auto-generated method stub

return null;

}

@Override

public void adjust() {

// TODO Auto-generated method stub }

}

class Woodwind extends Wind{

@Override

public void play() {

// TODO Auto-generated method stub

();

}

@Override

public String what() {

// TODO Auto-generated method stub

return ();

}

}

class Brass extends Wind{

@Override

public void play() {

// TODO Auto-generated method stub

();

}

@Override

public void adjust() {

// TODO Auto-generated method stub

();

}

}

public class Test71 {

public static void main(String[] args) {

}

}

五.阅读程序

1、以下程序的输出结果为___m = 10_____。

public class AppTest {

public static void main(String args[]) {

int i = 10, j = 5;

int m = i > j i : j;

"m = " + m);

}

}

2、以下程序的输出结果为_9 7 5 3 1_______。public class WhileTest {

public static void main(String args[]) {

int i = 10;

while (i-- > 0) {

if (i % 2 == 0) {

continue;

}

+ " ");

}

}

}

3、以下程序的输出结果为_"黄牧"

"000001"_______。

class Person {

private String name;

public Person() {

this("陈敏");

}

public Person(String setName) {

name = setName;

}

public String getName() {

return name;

}

}

class Teacher

extends Person {

private String id;

public Teacher(String s1, String s2) {

super(s1);

id = s2;

}

public String getId() {

return id;

}

}

public class Test {

public static void main(String[] args) {

Teacher t = new Teacher("黄牧", "000001");

}

}

4、以下程序的输出结果为__0 2______。

class Grandpa {

public Grandpa() {

"0");

}

}

class Father

extends Grandpa {

public void Father() {//不是构造方法

"1");

}

}

class Son

extends Father {

public Son() {

"2");

}

}

public class aaa {

public static void main(String[] args) {

new Son();

}

}

相关文档