附答案《Java语言》复习资料.docx

上传人:b****4 文档编号:12340594 上传时间:2023-04-18 格式:DOCX 页数:59 大小:97.07KB
下载 相关 举报
附答案《Java语言》复习资料.docx_第1页
第1页 / 共59页
附答案《Java语言》复习资料.docx_第2页
第2页 / 共59页
附答案《Java语言》复习资料.docx_第3页
第3页 / 共59页
附答案《Java语言》复习资料.docx_第4页
第4页 / 共59页
附答案《Java语言》复习资料.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

附答案《Java语言》复习资料.docx

《附答案《Java语言》复习资料.docx》由会员分享,可在线阅读,更多相关《附答案《Java语言》复习资料.docx(59页珍藏版)》请在冰豆网上搜索。

附答案《Java语言》复习资料.docx

附答案《Java语言》复习资料

 

该答案存在错误之处,仅供参考。

---计科101郝佳

 

第一章Java语言概论&第二章Java语言程序设计基础

1、单选题

1.一个Java源程序为Test.java,编译该程序应该使用的命令为(B)。

(A)javacTest(B)javacTest.java(C)javaTest(D)javaTest.java

编译:

javac文件名.java

运行:

java文件名

2.下面数据类型的定义中错误的是(C)。

(A)inta=10;(B)doubled=1.2;

(C)floatf=1.2;(D)charc=‘A’;

3.main()方法是JavaApplication程序执行的入口点,关于main()方法的方法头以下哪项是合法的(B)?

(A)publicstaticvoidmain()

(B)publicstaticvoidmain(Stringargs[])publicstaticvoidmain(String[]args)

(C)publicstaticintmain(String[]args)

(D)publicvoidmain(Stringargs[])

4.对一个java源文件aaa.java,编辑保存后但未编译,在其所在目录下执行javaaaa,则接着会出现什么(A)。

(A)error:

cannotread:

aaa.java

(B)无任何显示

(C)Exceptioninthread"main"java.lang.NoClassDefFoundError:

aaa

(D)程序正常执行并显示

5.给出一段程序,试判断哪个是正确的结果。

(D)

publicclassTest{

publicstaticvoidmain(Stringargs[]){

try{

System.out.print("Helloworld");}

finally{System.out.println(“Finallyexecuting”);}}}

(A)无法编译运行,因为没有指定异常

(B)无法编译运行,因为没有catch子句

(C)Helloworld

(D)HelloworldFinallyexecuting

6.设有inta[]={1,2,3,4,5,6,7,8},i=5;则执行System.out.println(a[++i])的值为(B)

(A)6(B)7(C)4(D)8

7.下列不属于java语言鲁棒性特点的是(B)

(A)java能检查程序在变异和运行时的错误

(B)java能运行虚拟机实现跨平台

(C)java自己操纵内存,减少了内存出错的可能性

(D)java语言还实现了真数组,避免了覆盖数据的可能

2、简答题

1.安装JDK后如何对环境变量进行设置?

安装JDK后,还需要设置路径,即把jdk/bin目录加入到执行路径中,该路径是操作系统寻找本地Java运行环境的目录列表。

右击桌面上【我的电脑】图标,在打开的快捷菜单中选择【属性】命令,则弹出【系统属性】的窗口,选择【高级】选项卡,然后单击【环境变量】按钮。

在【环境变量】对话框中选择【系统变量】的path路径,单击【编辑】按钮。

弹出【编辑系统变量】对话框,在【变量值】文本框中加入“C:

\ProgramFiles(x86)\Java\jdk1.7.0_05\bin;”(即jdk/bin目录所在路径,注意路径之间用“;”分隔)。

2.常量和变量有什么区别?

常量的值在运行期间恒定不变,常量标识符在程序中只能被引用,而不能被重新赋值。

使用常量可以增强程序的可读性、课维护性。

变量是一个用来存取数据的存储单元,其中存储的值可以在程序执行过程中修改。

3.写出下面程序的运行结果

(1)考点:

字符串连接方法,Strings1=xx;Strings2=yy;连接为xxyy方法为xx+yy

publicclassabc

{publicstaticvoidmain(Stringargs[])

{ABs=newAB("Hello!

","IloveJAVA.");

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

}

}

classAB{

Strings1;

Strings2;

AB(Stringstr1,Stringstr2)

{s1=str1;s2=str2;}

publicStringtoString()

{returns1+s2;}

}

Hello!

IloveJAVA.

(2)

publicclassabc

{

publicstaticvoidmain(Stringargs[])

{inti,s=0;

inta[]={10,20,30,40,50,60,70,80,90};

for(i=0;i

if(a[i]%3==0)s+=a[i];

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

}

}

s=180

 

第3章数组与字符串

一维数组的表示方法:

数据类型数组名[]intscore[]

数据类型[]数组名int[]score

二维数组的表示方法:

数据类型数组名[][]

数据类型[][]数组名

一、选择题

1.在注释//StartForloop处要插入哪段代码可实现根据变量i的值定位数组ia[]的元素?

(D)每个数组都有个属性length,数组(int[]score)长度的表示方法score.length

字符串常用的方法之一:

字符串的长度length()

publicclassLin{

publicvoidamethod(){

intia[]=newint[4];

//StartForloop

{

ia[i]=i;

System.out.println(ia[i]);

}

}

}

(A)for(inti=0;i

(B)for(inti=0;i

(C)for(inti=1;i<4;i++)

(D)for(inti=0;i

2.下列创建二维整型数组正确语句是:

(C)

(A)inta[][]=newint[10,10];

(B)inta[10][10]=newint[][];

(C)inta[][]=newint[10][10];

(D)int[]a[]=newint[10;10];

3.设有如下程序,其调试结果为:

(B)?

classQ2{

publicstaticvoidmain(String[]args){

int[]seeds={1,2,3,4,6,8};

intn=seeds.length;

for(inti=0;i<3;i++)

for(intk=0;k

seeds[k]=seeds[k+1];

for(inti=0;i

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

}

}

i=0:

23468

i=1:

34688

i=2:

46888

(A)输出:

12346

(B)输出:

46888

(C)输出:

23468

(D)输出:

2346

4.阅读下面代码,他们完成的功能是(B)

String[]a={“学生”,”自习”,”教师”,”备课”,”学校”};

for(inti=0;i

if(a[i].equals(“自习”)){

a[i]=”考试”;

}

}

(A)查找

(B)查找并替换

(C)增加

(D)删除

5.指出下列运行结果(B)?

?

?

publicclassExample{

Stringstr=newString("good");

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

publicstaticvoidmain(Stringargs[]){

Exampleex=newExample();

ex.change(ex.str,ex.ch);

System.out.print(ex.str+"and");

System.out.print(ex.ch);

}

publicvoidchange(Stringstr,charch[]){

str="testok";

ch[0]='g';

}

}

(A)goodandabc

(B)goodandgbc

(C)testokandabc

(D)Testokandgbc

6.下面的程序段执行后输出的结果是(A)。

StringBufferbuf=newStringBuffer("Beijing2008");

buf.insert(7,"@");

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

StringBuffer字符串缓冲区

insert(intoffset,Stringstr)将字符串插入此字符序列中。

(A)Beijing@2008(B)@Beijing2008

(C)Beijing2008@(D)Beijing#2008

7.下列不属于整形变量内容的是(C)

(A)Byte

(B)Short

(C)Float

(D)long

 

二、填空题

1.字符串分为两大类,一类是字符串常量,使用String类的对象表示;另一类是字符串变量,使用StringBuffer类的对象表示。

2.在java语言中,如果数值后没有字母,计算机默认值为double类型(double)

3.浮点型数据属于实型数据,属于float和double两种(double)

4.标示符是以字母、下划线、美元符号为首字母的字符串序列(字母)

三、简答题:

1.String和StringBuffer的区别

String:

字符串常量,该类创建的对象是不允许改变的,即固定长度,内容不变。

StringBuffer:

字符串变量,该类创建的对象是允许改变的。

 

2.==与equals的区别

==:

比较的是两个对象的地址是否相同

Equals:

如果没有被重写,比较的是两个对象的地址是否相同。

但是在String中,equal被重写,比较的是两个对象的内容是否相同。

 

第4章类与对象

类的成员变量:

(1)实例变量:

没有static修饰访问方式:

对象名.实例变量名

(2)类变量/静态变量:

有static修饰访问方式:

类名|对象名.类变量名

类的成员方法:

与上面类似

实例方法可以操作静态变量,但是静态方法不能操作实例变量

抽象类与抽象方法:

用关键字abstract修饰的类称为抽象类。

用关键字abstract修饰的方法称为抽象方法。

抽象类可以包含抽象方法,也可以包含非抽象方法。

但是不能在非抽象类中声明抽象方法。

最终类:

用关键字final声明。

最终类中包含的都是最终方法。

而非最终类也可以包含最终方法。

一、选择题

1.以下程序的运行结果为:

(C)

publicclassA{

staticintk=3;

publicstaticvoidmain(String[]args){

intk=4;

Ax1=newA();

x1.k++;

Ax2=newA();

x2.k++;

k++;

System.out.println(x1.k);

}

}

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

2.编译和运行以下程序结果为:

(B)

publicclassA{

staticintk=3;

staticintm;静态变量,默认值为0

publicstaticvoidmain(String[]args){

k++;

if(m==0)

System.out.println(k);

else

System.out.println(B.k);

k++;

}

}

classB{

staticintk=6;

}

(A)3(B)4(C)5(D).编译错误

3.关于被保护访问控制符protected修饰的成员变量,以下说法正确的是(A)

(A)可以被三种类所引用:

该类自身、与它在同一个包中的其他类、在其他包中的该类的子类

(B)可以被两种类访问和引用:

该类本身、该类的所有子类

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

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

4.下列关于修饰符混用的说法,错误的是(D)

(A)abstract不能与final并列修饰同一个类

(B)abstract类中不可以有private的成员方法

(C)abstract方法必须在abstract类中

(D)static方法中能处理非static的属性

Static方法不能操作非static变量

抽象类abstract:

构造方法、静态成员方法不能被声明为抽象方法。

最终类final:

最终类不能被继承。

最终类中包含的都是最终方法。

而非最终类中也可以包含最终方法。

构造函数和静态函数以及Final修饰的函数不能使用abstract修饰符

5.下面是有关子类调用父类的构造方法的描述,正确的是(C)

(A)子类定义了自己的构造方法,就不会调用父类的构造方法

(B)子类必须通过super关键字调用父类没有参数的构造方法

(C)如果子类的构造方法没有通过super调用父类的构造方法,那么子类会先调用用父类不含参数的构造方法,再调用子类自己的构造方法

(D)创建子类对象时,先调用子类自己的构造方法

子类自动调用父类中的无参构造函数

6.假设Foo类有如下定义,设f是Foo的一个实例,下列哪个调用时错误的(A)

PublicclassFoo

{

inti;

staticStrings;

voidimethod(){}

Staticvoidsmethod(){}

}

(A)Foo.imethod();

(B)f.imethod();

(C)System.out.println(f.i);

(D)Foo.smethod()

7.以下程序调试结果为:

(C)

classBase{

Base(){

inti=100;

System.out.print(i);

}

}

publicclassPriextendsBase{

staticinti=200;

publicstaticvoidmain(Stringargv[]){

Prip=newPri();

System.out.print(i);

}

}

(A)编译错误(B)200(C)100200(D)100

8试完成下述程序片段:

(D)

publicclassPoint

{intx,y;

publicPoint(intx,inty)

{    =x;    =y;

}

......

}

(A)Point.xPoint.y(B)无解(C)x1y1(D)this.xthis.y

9.以下声明合法的是(C)

(A)defaultStrings;default应该去掉

(B)publicfinalstaticintw();

(C)abstractdoubled;

(D)abstractfinaldoublehyperbolicCosine();

二、填空题:

1.Java原文件中最多只能有一个父类,其他类的个数不限。

2.继承主要强调子类在父类的基础上取长补短,而多态主要强调的是类与类之间的传输。

3.构造函数是类中的一个特殊方法,用它来定义对象的初始状态。

4.java语言中java.lang.Object是所有类的根。

5.在java语言中有一种叫做构造函数特殊方法,在程序中用他来对类成员进行初始化。

(构造函数)

6.定义一个类包括定义类头和定义类体两个部分。

(类体)

7.java是面向对象语言,对象是客观事物的实体,对象与之是一一对应的,他是很具体的概念(实体)

三、简答题

1.简述类和对象的概念以及他们的区别

类:

具有相同属性和方法的一组对象的集合。

对象:

具有类类型的变量。

区别:

类是实体模型的概念,是抽象的,不具体的。

而对象则是一个实体,是真实的,具体的。

2.什么是继承?

父类与子类的关系分别是什么含义,其关系如何?

继承:

从已有类派生出新类的过程称为继承。

父类:

已有类称为父类

子类:

派生出的新类称为子类。

父类和子类的关系:

子类是从父类派生出来的。

子类的实例都是父类的实例,但不能说父类的实例是子类的实例。

3.什么叫方法重写/覆盖(override)?

如果子类要重写/覆盖父类中的某个方法,则子类中的方法声明应该如何进行声明?

方法重写/覆盖:

一个类中不同的的方法使用相同的名字,而方法的参数列表在数据类型、参数个数或者参数次序上有所不同。

子类的成员方法的名字、返回值的类型、参数的个数和类型与父类的某个方法要完全相同。

4.简述public,protected,private的作用,并比较他们的异同?

Public:

用于声明共有类成员,该成员可以被所有类访问。

Private:

用于声明私有类成员,该成员仅能被当前类的成员访问。

Protected:

用于声明保护型类成员,该成员能被当前类及其子类或者当前包中的其他类访问。

 

第5章集合

Map:

HashMap,TreeMap

Set:

HashMap,TreeMap

List:

ArrayList,LinkedList

Collection接口常用方法:

iterator返会在此Collection上进行迭代的迭代器。

Iterator对Collection进行迭代的迭代器。

一.简答题

1.简述List,Map,set的区别和联系

List(列表):

与数组相似,元素对象可重复。

(有序可重复)

Map(映射):

集合中的元素包含一对键。

对象和值的对象,键不重复,值可以重复。

Set(集):

相当于数学的集合,元素对象不能重复。

(无序不重复)

2.代码编写题

1.读代码,将代码补充完整

_________A_____________//导包

publicclassGest{

publicstaticvoidmain(String[]args){

Listlist=newArrayList();

__________B___________//从键盘上输入

Stringname;

while(true){

System.out.print("访客名称:

");

name=scanner.nextLine();

if(name.equals("quit"))break;

__________C_____________//将name添加到list表单里

}

System.out.print("访客名单");

System.out.println(list);

foreach(list);

}

privatestaticvoidforeach(Listlist){

for(inti=0;i

___________D____________//读取list中的信息

____________E_____________//将list中的小写字母转换为大写字母输出

}

}

}

A:

__importjava.util.*_;__________

B:

__Scannerscanner=newScanner(System.in);____

C:

___list.add(name)_;_____________________

D:

____Stringgest=(String)list.get(i);_____________

E:

___System.out.print(gest.toUpperCase()+"");_______

2.假设存在一个person.properties文件,文件内容为:

#summary

#WedSep2617:

02:

11CST2012

age=10

password=123456

username=Mary

读一下代码,补充完整。

importjava.util.*;

importjava.io.*;

publicclassPropertiesDemo2{

publicstaticvoidmain(String[]args)throwsIOException{

A//得到Properties对像对像名自取

B//加载person.properties文件

System.out.println(props);

//从内存集合props中读属性信息,显示在CRT上

System.out.println(C);//输出用户名

System.out.println(D);//输出密码

System.out.println(props.getProperty("description"));

//修改获增加内存集合props中属性信息

props.setProperty("username","Mary");

props.setProperty("sex","female");

props.setProperty("age","60");

props.setProperty("description","一个骨灰级美女");

//将内存集合props中属性信息,存储到磁盘文件person.properties中

E

}

}

A:

Propertiesprops=newProperties();

B:

props

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1