电大Java语言和WWW技术阶段测验答案_第1页
电大Java语言和WWW技术阶段测验答案_第2页
电大Java语言和WWW技术阶段测验答案_第3页
电大Java语言和WWW技术阶段测验答案_第4页
电大Java语言和WWW技术阶段测验答案_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z.单选题:(共28道试题,每题2分)1.Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?

A.安全性

B.多线程

C.跨平台

D.可移植2.关于Java基本语法机制,以下选项中哪个与C++不同?

A.类

B.接口(interface)

C.自动内存回收

D.多线程

E.各选项全是3.关于垃圾收集的哪些叙述是正确的?

A.程序开发者必须自己创建一个线程进行内存释放的工作。

B.垃圾收集将检查并释放不再使用的内存。

C.垃圾收集允许程序开发者明确指定并立即释放该内存。

D.垃圾收集能够在期望的时间释放被java对象使用的内存。4.下面哪一个特性不是面向对象编程主要体现的特性?

A.封装性

B.继承

C.多态

D.类5.读程序,以下运行结果描述中哪一个是正确的?

publicclassTest{

publicstaticvoidmain(Stringargs[]){

staticint*[]=newint[15];

System.out.println(*[5]);

}

}

A.有编译错误。

B.有运行错误。

C.可以编译和运行,结果为0。

D.可以编译和运行,结果为null。6.若所用变量都已正确定义,下列选项中,非法的表达式是哪个?

A.a=1/2

B.a+32

C.!a%3

D.a!=4||b==17.设有定义

int

i=123;

long

j=456;

下面赋值不正确的语句是哪一个?

A.j=i;

B.j=(long)i;

C.i=j;

D.i=(int)j;

8.下列的哪个赋值语句是错误的?

A.floatf=11.1

B.doubled=5.3E12

C.doubled=3.14159

D.int

i=39.下列选项中,合法的赋值语句是哪个?

A.a==1;

B.++i;

C.a=a+1=5;

D.y=int(i);

10.下列选项中哪个是将一个十六进制值赋值给一个long型变量?

A.longnumber=345L;

B.longnumber=0345;

C.longnumber=0345L;

D.longnumber=0*345L;11.下列语句序列执行后,a的值是多少?

inta=13;

a%=a/5;

A.1

B.3

C.13

D.16912.现有整型数组a,它有10个元素,为了打印输出它的第9个数组元素,下面正确的代码是哪个?

A.System.out.println(a[8]);

B.System.out.println(a[9]);

C.System.out.println(a[10]);

D.System.out.println(a[a.length-1]);13.以下标识符中,哪个是无效的标识符?

A.IDoLikeTheLongNameClass

B.$byte

C.ok

D.const14.以下声明合法的是哪一个?

A.default

String

s

B.public

final

static

int

w()

C.abstract

double

d

D.abstract

final

double

hyperbolicCosine()15.编译运行以下程序后,关于输出结果的说明正确的是哪一个?

public

class

Conditional{

public

static

void

main(String

args[

]){

int

*=4;

System.out.println("value

is

"+((*>4)"99.9:9));

}

}

A.输出结果为:value

is

99.99

B.输出结果为:value

is

9

C.输出结果为:value

is

9.0

D.编译错误16.若有定义

int

a=2;

则执行完语句

a-=a*a;

后,a的值是多少?

A.0

B.4

C.-2

D.-417.设a、b、c、d为已赋值的int型变量,下列表达式的结果属于非逻辑值的是哪个?

A.a!=b&c%d<a

B.a++==a+b+c+d

C.++a*b--+d

D.a+b>=c+d18.下列程序段执行后c的结果是多少?

inta=9,b=11,c;

c=a!=b"a+b:a-b;

A.–2

B.20

C.11

D.919.下列程序段执行后y的结果是哪个?

int

*1=9,

*2=6,

y;

y=(++*1!=*2++)"(*1+*2):(*1-*2);

A.15

B.9

C.17

D.320.下列语句执行后,变量a、变量c的值分别是多少?

int*=182;

inta,c;

c=*/100;

a=*%10;

A.1,2

B.2,1

C.1.82,2

D.100,82

21.执行下列程序段后,b,*,y的值分别是多少?

int

*=6,y=8;

boolean

b;

b=*>y&&++*==--y;

A.true,6,8

B.true,7,7

C.false,6,8

D.false,7,722.给出下面的代码:

if(*>10){System.out.println("first");}

elseif(*>0){System.out.println("second");}

else{System.out.println("third");}

*的取值在什么*围内时将打印字符串"second""

A.*>10|*<0

B.*<=10&*>0

C.*<=0

D.*>023.结构化程序设计所规定的三种基本控制结构是哪一组?

A.输入、处理、输出

B.树形、网形、环形

C.顺序、选择、循环

D.主程序、子程序、函数24.下列语句序列执行后,k的值是多少?

inti=6,j=8,k=10,n=5,m=7;

if(i<j&&m<n)k++;elsek--;

A.9

B.10

C.11

D.1225.以下选项中循环结构合法的是哪一个?

A.while(int

i<7)

{

i++;

System.out.println(“iis“+i);

}

B.int

j=3;

while(j){

System.out.println(“j

is“+j);

}

C.int

j=0;

for(int

k=0;j+k!=10;j++,k++){

System.out.println(“j

is“+j+“k

is”+k);

}

D.int

j=0;

do{

System.out.println(“j

is“+j++);

if(j==3){continue

loop;}

}while

(j<10);26.下面代码执行后,正确的输出结果是哪一个?

publicclassE*cmple{

publicstaticvoidmain(Stringargs[]){

inti=0;

do{

System.out.println("Doingitforiis:"+i);

}while(--i>0);

System.out.println("Finish");

}

}

A.Doingitforiis0

B.Doingitforiis1

C.Doingitforiis2

D.Doingitforiis327.以下是应用程序中定义的静态方法printBinary,若在其main方法中有方法调用语句printBinary(2),则输出的结果是哪个?

staticvoidprintBinary(inti){

System.out.print(i+"的2进制数表示为:");

for(intj=31;j>=0;j--)

if(((1<<j)&

i)!=0)

System.out.print("1");

else

System.out.print("0");

System.out.println();

//换行

}

A.0000

B.0001

C.0010

D.111128.执行以下程序,输出是什么?

publicclassTest{

voidprintValue(intm){

do{

System.out.println("Thevalueis"+m);

}while(--m>10);

}

publicstaticvoidmain(Stringargs[]){

inti=10;

Test

t=newTest();

t.printValue(i);

}

}

A.Thevalueis8

B.Thevalueis9

C.Thevalueis10

D.Thevalueis11多选题:(共6道试题,每题2分)1.Java开发包括下列哪几部分?

A.Java2EE

B.Java2ME

C.Java2SE

D.Java2CE2.以下描述中哪些不是Java关键字?

A.TRUE

B.sizeof

C.const

D.super3.在JavaAPI文档中下面的哪些部分被包括在内?

A.类及用途的描述

B.父类的方法的列表

C.成员变量的列表

D.类层次4.变量"result"是一个boolean型的值,下面的哪些表达式是合法的?

A.result=true;

B.if(result){...}

C.if(result!=0){...}

D.result=1

5.下面哪些是合法的标识符

A.*point

B.$persons

C.TwoUsers

D.

_endline

6.给出下面的代码片断:

1)

switch(m)

2)

{

case0:System.out.println("case0");

3)

case1:System.out.println("case1");break;

4)

case2:

5)

default:System.out.println("default");

6)

}

m为何值时输出值将会为“default”。

A.0

B.1

C.2

D.3判断题:(共9道试题,每题2分)1.调用System.gc()方法不能保证JVM立即进行垃圾收集,而只能是建议。

正确

错误2.类加载器加载程序运行所需要的所有类,它通过区分本机文件系统的类和网络系统导入的类增加安全性。

正确

错误3.Java数组的长度只在构造(创建)数组时指定,而在声明数组时不能指定。

正确

错误4.main()方法前的public修饰符、static修饰符均是必须的。

正确

错误5.局部变量在定义该变量的方法被调用时被创建,而在该方法退出后被撤销,其生存期和定义该变量的方法的生存期相同。

正确

错误6.数组元素没有进行显式赋值,系统根据数组声明的数据类型自动进行默认初始化。

正确

错误7.一个源文件可以不包含任何代码定义,即是一个空文件,编译时不会产生错误。

正确

错误8.一个源文件中,如果没有public类,则源文件名不必与源文件中其它类名一致。

正确

错误9.源文件命名可以依照Java语言标识符定义规定。

正确

错误单选题:(共28道试题,每题2分)1.编译JavaApplication源程序文件将产生相应的字节码文件,扩展名为哪一个?

A.java

B.class

C.html

D.e*e2.关于Java基本语法机制,以下选项中哪个与C++相同?

A.数据类型

B.程序流程控制

C.结构化

D.异常处理

E.其他选项全是3.下列关于Java语言的特点,描述错误的是哪一个?

A.Java是跨平台的编程语言

B.Java支持分布式计算

C.Java是面向过程的编程语言

D.Java支持多线程4.下述概念中不属于面向对象方法的是哪一组?

A.对象、消息

B.继承、多态

C.类、封装

D.过程调用5.哪个表达式是声明一个含有10个String对象的数组?

A.charstr[]=newchar[10];

B.charstr[10];

C.Stringstr[]=newString[10];

D.Stringstr[10];6.设*=1,y=2,z=3,则表达式y+=z--/++*的值是哪一个?

A.3

B.3.5

C.4

D.57.为了定义三个整型数组a1、a2、a3,下面声明正确的语句是哪组?

A.intArray[]a1,a2;

inta3[]={1,2,3,4,5};

B.int[]a1,a2;

inta3[]={1,2,3,4,5};

C.inta1,a2[];

inta3={1,2,3,4,5};

D.int[]a1,a2;

inta3=(1,2,3,4,5);8.下列的哪个声明是合法的?

A.longl=4990;

B.int

i=4L;

C.floatf=1.1;

D.doubled=34.4D;

9.下列选项中哪个答案可以用来表示八进制值“8”?

A.010

B.0*10

C.08

D.0*810.下列选项中哪一个是表达式1+2+"aa"+3的值?

A."12aa3"

B."3aa3"

C."12aa"

D."aa3"11.现有一变量声明为booleanaa;下列赋值语句中正确的是哪个?

A.aa=false;

B.aa=False;

C.aa="false";

D.aa=0;12.以下标识符哪些是合法的?

A.$persons

B.const

C.*point

D.this13.以下哪些是将一个八进制值赋值给一个long型变量?

A.longnumber=345L;

B.longnumber=345;

C.longnumber=0345L;

D.longnumber=0*345L;14.以下选项中的变量都已正确定义,不合法的表达式是哪个?

A.a>=4==b<1

B.n-3

C.a=8

D.A%615.对于一个三位的正整数n,取出它的十位数字k(k为整型)的表达式是哪个?

A.k=n/10

B.k=n%10

C.k=n/10%10

D.k=(n-n/100*100)%1016.若有定义

int

a=2;

则执行完语句

a+=a-=a*a;

后,a的值是多少?

A.-4

B.0

C.4

D.817.下列程序段执行后b3的结果是多少?

boolean

b1=true,b2=true,b3;

b3=!b1"b1:!b2;

A.0

B.1

C.true

D.false18.下列程序段执行后t5的结果是多少?

int

t1=9,t2=11,t3=8;

int

t4,t5;

t4=t1>t2"t1:t2+t1;

t5=t4>t3"t4:t3;

A.8

B.20

C.11

D.919.下列哪个表达式的值是*和y的最大值?

A.

*>y"y:*

B.*<y"y:*

C.*==y"y:*

D.*>y"(*+y):(*-y)20.有一声明语句为booleant;下面赋值语句中t的值为false的是哪个?

A.t=5>3;

B.t=!false;

C.t=(true|false);

D.t=(2==3)"true:false;21.执行下列程序段后,m,*,y的值分别是多少?

int

*=2,y=4;

boolean

m;

m=++*>y--;

A.true,2,4

B.true,3,3

C.false,2,4

D.false,3,322.给出下面的代码:

if(*>0){System.out.println("first");}

elseif(*>-3){System.out.println("second");}

else{System.out.println("third");}

*的取值在什么*围内时将打印字符串"second"。

A.*>0

B.*>-3

C.*<=-3

D.*<=0&*>-323.下列关于for循环和while循环的说法中哪个是正确的?

A.while循环能实现的操作,for循环也都能实现

B.while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果

C.两种循环任何时候都可替换

D.两种循环结构中都必须有循环体24.下列语句序列执行后,*的值是多少?

inta=3,b=4,*=5;

if(++a<b)*=*+1;

A.3

B.4

C.5

D.625.给出下面的代码:

publicclassTest{

voidprintValue(intm){

do{System.out.println("Thevalueis"+m);

}while(--m>8)

}

publicstaticvoidmain(Stringarg[]){

inti=10;

Testt=newTest();

t.printValue(i);

}

}

输出将是什么?

A.Thevalueis10

Thevalueis8

B.Thevalueis9

Thevalueis8

C.Thevalueis10

Thevalueis9

D.Thevalueis11

Thevalueis1026.下面代码执行后,正确的输出结果是哪一个?

publicclassE*cmple{

publicstaticvoidmain(Stringargs[]){

inti=0;

do{

System.out.println("Doingitforiis:"+i);

}while(--i>0);

System.out.println("Finish");

}

}

A.Doingitforiis0

B.Doingitforiis1

C.Doingitforiis2

D.Doingitforiis327.以下程序运行时,哪一行会产生编译错误?

1)

publicvoidmodify(){

2)

inti,j,k;

3)

i=100;

4)

while(i>0){

5)

j=i*2;

6)

System.out.println("Thevalueofjis"+j);

7)

k=k+1;

8)

i--;

9)

}

10)

}

A.line5

B.line6

C.line7

D.line828.执行以下程序,哪一行将出错?

1)

Stringstr=null;

2)

if((str!=null)&&(str.length()>10)){

3)

System.out.println("morethan10");

4)

}

5)

elseif((str!=null)&(str.length()<5)){

6)

System.out.println("lessthan5");

7)

}

8)

else{System.out.println("end");}

A.第1行

B.第2行

C.第5行

D.第8行多选题:(共6道试题,每题2分)1.下面有关Java代码安全性的叙述哪些是正确的?

A.字节码校验器加载查询执行需要的所有类。

B.运行时解释器执行代码。

C.在运行时,字节码被加载,验证然后在解释器里面运行。

D.类加载器通过分离本机文件系统的类和从网络导入的类增加安全性。2.以下描述中哪些不是Java关键字?

A.TRUE

B.sizeof

C.const

D.super3.以下哪些是字节码校验器进行校验的内容?

A.类是否符合JVM规*的类文件格式

B.有没有违反访问限制

C.所有操作代码的参数类型是否正确

D.有没有非法的数据类型转换

E.代码有没有造成堆栈的上溢或者下溢4.下面关于变量的描述哪些是正确的?

A.实例变量是类的成员变量。

B.实例变量用关键字static声明。

C.在方法中定义的局部变量在该方法被执行时创建。

D.局部变量在使用前必须被初始化。5.下面有关变量及其作用域的描述哪些是正确的?

A.在方法里面定义的局部变量在方法退出的时候被撤销。

B.局部变量也叫自动变量。

C.在方法外面定义的变量(即实例变量)在对象被构造时创建。

D.在方法中定义的参变量也是方法的局部变量。6.给出下面的代码片断:

1)

switch(m)

2)

{

case0:System.out.println("case0");

3)

case1:System.out.println("case1");break;

4)

case2:

5)

default:System.out.println("default");

6)

}

m为何值时输出值将会为“default”。

A.0

B.1

C.2

D.3判断题:(共9道试题,每题2分)1.垃圾收集的过程在Java程序的生存期中是自动的,不需要分配和释放内存,也避免了内存泄漏。

正确

错误2.类加载器加载程序运行所需要的所有类,由网络系统导入的指定类总是先被加载。

正确

错误3.Java中所有参数的传递都采用值传递方式,即当传递一个参数到方法中时方法获得的是传递参数的副本。

正确

错误4.成员变量和局部变量由于其所属对象生命周期不同,生存周期也不同。

正确

错误5.如果在一个源文件中存在两个或两个以上public类定义,则会产生运行错误。

正确

错误6.一个源文件可以包含多个类。

正确

错误7.一个源文件只能包含一个public类。

正确

错误8.用来指定数组长度的数据类型只能是int类型。

正确

错误9.在源文件中,如果存在一个public类定义,则源文件名必须与public类名一致。

正确

错误JavaApplication与JavaApplet的区别JavaApplet与JavaApplication的主要区别在于其运行环境与执行方式的不同Application是独立完整的程序,Application的主类中必须有一个main()方法。这个方法是JavaApplication的标志,也是JavaApplication程序执行的入口Applet是在浏览器中运行的,必须创建一个HTML文件,通过编写HTML语言代码告诉浏览器载入何种Applet以及如何运行Java解释器Java解释器是指“java.e*e”,Java解释器负责将Java虚拟机的代码.class程序在特定的平台上运行。简述局部变量的概念局部变量是指方法或语句块内部定义的变量。局部变量的作用域就是它所在的方法或语句块,在程序调用方法(进入语句块)时,局部变量才被创建并可用,随方法(语句块)的退出,局部变量将被销毁。简述Java语言的基本数据类型Java语言中定义了四类/八种基本数据类型整型——byte,short,int,long浮点型——float,double字符型——char逻辑型(布尔型)——boolean简述Java编译器Java编译器是指“javac.e*e”,是将.java文件编译成.class字节码文件,Java编译器针对Java虚拟机产生class文件,因此是独立于平台的。简述Java的三种核心机制Java虚拟机垃圾收集机制代码安全性检测简述成员变量的概念成员变量是指方法外部、类的内部定义的变量。成员变量在类的定义中声明,在创建对象的同时创建有关的成员变量。成员变量创建后系统自动对其进行默认初始化和显式初始化。成员变量依附于对象(局部变量)存在,具有与对象相同的生存期和作用域。简述Java语言的引用数据类型的概念Java语言中除8种基本数据类型以外的数据类型称为引用类型。引用类型数据以对象的形式存在。引用类型变量的值是*个对象的存储地址,而不是对象本身。单选题:(共20道试题,每题2分)1.main()方法的返回类型是什么?

A.int

B.void

C.boolean

D.static2.读程序,哪一行将产生错误?

1)

classParent{

2)

privateStringname;

3)

publicParent(){}

4)

}

5)

publicclassChilde*tendsParent{

6)

privateStringdepartment;

7)

publicChild(){}

8)

publicStringgetValue(){returnname;}

9)

publicstaticvoidmain(Stringarg[]){

10)

Parentp=newParent();

11)

}

12)}

A.第2行

B.第6行

C.第8行

D.第10行3.读程序,以下描述中正确的是哪一个?

publicclassTest{

privateint*;

publicstaticvoidmain(Stringargs[]){

*=2;

}

}

A.将“privateint*”修改为“publicint*”,则*=2语句合法。

B.将“privateint*”修改为“staticint*”,则*=2语句合法。

C.将“privateint*”修改为“finalint*”,则*=2语句合法。

D.程序可以正常编译和运行。4.下面程序段执行后b的值是多少?

Stringstr="java";

booleanb=str

instanceof

String;

A.0

B.1

C.true

D.false

5.以下对Test类的定义中,哪种定义使Test类不能有子类?

A.classTest{}

B.abstractfinalclassTest{}

C.classTest{final;}

D.finalclassTest{}6.以下访问控制修饰符中仅允许同包中进行访问,不允许不同包访问的是哪一个?

A.public

B.private

C.protected

D.缺省访问模式7.以下访问控制修饰符中允许不在同一个包中的子类访问父类?

A.public

B.private

C.protected

D.缺省访问模式8.以下修饰符中不是访问控制修饰符的是哪一个?

A.public

B.private

C.static

D.protected9.以下修饰符中哪一个用来定义类后,该类不能有子类?

A.public

B.final

C.static

D.abstract10.执行以下程序,运行结果是什么?

publicclassPerson{

intarr[]=newint[10];

publicstaticvoidmain(Stringa[]){

System.out.println(arr[1]);

}

}

A.输出为0。

B.输出为null。

C.编译时将发生错误。

D.编译正确,但是运行时出错。

11.读程序,以下运行结果描述正确的是哪一个?

classTest{

publicfinalvoidamethod(){

System.out.println("inamethod()!");

}

}

publicclassTest722e*tendsTest{

publicstaticvoidmain(Stringargs[]){

Testt=newTest();

t.amethod();

}

}

A.编译出错,Test类应是public修饰的类。

B.编译出错,amethod()方法是final的,在Test722类中不能直接调用。

C.编译通过,但是运行出错。

D.运行结果为:“inamethod()!”。12.以下关于本地方法的声明中哪一个是正确的?

A.publicnativevoidtest();

B.publicnativevoidtest(){}

C.publicvoidnativetest()

D.publicnativetest(){}

13.不符合方法重写规则的是哪个?

A.方法重写发生在类继承时。

B.子类可以重写一个父类中已有的方法。

C.重写的方法与被重写的方法返回值类型必须一致。

D.重写的方法与被重写的方法参数列表必须不同。14.第10行的声明将调用哪一行的方法?

1)

classPerson{

2)

publicvoidprintValue(inti,intj){/*…*/}

3)

publicvoidprintValue(inti){/*...*/}

4)

}

5)

publicclassTeachere*tendsPerson{

6)

publicvoidprintValue(){/*...*/}

7)

publicvoidprintValue(inti){/*...*/}

8)

publicstaticvoidmain(Stringargs[]){

9)

Persont=newTeacher();

10)

t.printValue(10);

11)

}

12)}

A.第2行

B.第3行

C.第6行

D.第7行15.读程序,下面的哪些表达式可以加入printValue()方法的“//同父类中…”部分,并满足注释中的要求"

classPerson{

Stringname,department;

publicvoidprintValue(){

System.out.println("nameis"+name);

System.out.println("departmentis"+department);

}

}

publicclassTeachere*tendsPerson{

intsalary;

publicvoidprintValue(){

//同父类中printValue()方法的内容,需要显示name和department的值。

System.out.println("salaryis"+salary);

}

}

A.printValue();

B.this.printValue();

C.person.printValue();

D.super.printValue();16.读程序,以下描述哪一个正确?

classBase{}

classSube*tendsBase{}

classSub2e*tendsBase{}

publicclassTest{

publicstaticvoidmain(Stringargs[]){

Baseb=newBase();

Subs=(Sub)b;

}

}

A.编译出错。

B.编译通过,运行时出错。

C.编译出错,但可以继续运行。

D.程序正常编译和运行。17.下面的哪些表达式可以加到构造方法中的“//调用两个参数的重载的构造方法”处?

classPerson{

Stringname,department;

intage;

publicPerson(Stringn){name=n;}

publicPerson(Stringn,inta){name=n;age=a;}

publicPerson(Stringn,Stringd,inta){

//调用两个参数的重载的构造方法,以便实现”name=n,age=a”

department=d;

}

}

A.Person(n,a);

B.this(Person(n,a));

C.this(n,a);

D.this(name,age);18.运行程序,结果是什么?

classA{

inti;

A(inti){

this.i=i*2;

}

}

classBe*tendsA{

publicstaticvoidmain(Stringargs[]){

Bb=newB(2);

}

B(inti){

System.out.println(i);

}

}

A.编译不通过,由于A类没有无参构造方法。

B.编译通过,但不能运行。

C.运行通过,i=2。

D.运行通过,i=4。19.读程序,选择正确的运行结果

classTest{

publicstaticvoidmain(Stringargs[]){

AClassref1=newAClass(5);

AClassref2=newAClass(10);

ref1.getAddShow(ref2);

}

}

classAClass{

privateint*;

AClass(int*){

this.*=*;

}

voidgetAddShow(AClassref){

System.out.println(ref.*+"");

}

}

A.有编译错误。

B.有运行错误。

C.可以编译和运行,结果为5。

D.可以编译和运行,结果为10。20.读程序,选择正确的运行结果

classTest{

publicstaticvoidmain(Stringargs[]){

SubClassref1=newSubClass(5);

SubClassref2=newSubClass(10);

System.out.println(ref1.add(ref2));

}

}

classAClass{

privateint*;

AClass(int*){

this.*=*;

}

}

classSubClasse*tendsAClass{

SubClass(int*){

super(*);

}

intadd(AClassref){

return*+ref.*;

}

}

A.有编译错误。

B.有编译错误,但可以运行。

C.编译通过,但有运行错误。

D.可以编译和运行,结果为15。多选题:(共8道试题,每题2分)1.读程序,判断以下哪些方法可以被添加到Hello类中?

publicclassE*ample{

publicE*ample(){

//...

}

protectedE*ample(inti){

//...

}

protectedvoidmethod(){

//...

}

}

publicclassHelloe*tendsE*ample{

//定义成员变量和成员方法

}

A.publicvoidE*ample(){…}

B.publicvoidmethod(){…}

C.protectedvoidmethod(){…}

D.privatevoidmethod(){…}2.读程序,以下哪些描述是正确的?

finalclassTest{

privateinta=1;

intb=2;

}

classSeconde*tendsTest{

publicvoidmethod(){

System.out.println(a+b);

}

}

A.Second类不能继承Test类。

B.Test类不是public的类,不能生成子类。

C.Test类不是public的类,不能生成子类。

D.Test类中的a是private的,在Second类的method()方法中不能被调用。

3.以下哪些描述是正确的?

1)publicvoidcreate(){

2)

VectormyVect;

3)

myVect=newVector();

4)}

A.第二行的声明不会为变量myVect分配内存空间。

B.第二行语句创建一个Vector类对象。

C.第三行语句创建一个Vector类对象。

D.第三行语句为一个Vector类对象分配内存空间。4.以下哪些是Java的修饰符?

A.static

B.final

C.protected

D.const5.在“//point*”处添加以下哪些声明语句是正确的?

classPerson{

privateinta;

publicintchange(intm){returnm;}

}

publicclassTeachere*tendsPerson{

publicintb;

publicstaticvoidmain(Stringarg[]){

Personp=newPerson();

Teachert=newTeacher();

inti;

//point*

}

}

A.i=p.a;

B.i=b;

C.i=t.b;

D.i=p.change(30);6.读程序,下面的哪些声明可以被加入第一行完成方法的声明。其中TimedOutE*ception不是一个RuntimeE*ception。

1)//添加声明语句

2){

success=connect();

3)

if(success==-1){

4)

thrownewTimedOutE*ception();

5)

}

6)}

A.publicvoidmethod()

B.publicvoidmethod()throwsE*ception

C.publicvoidmethod()throwsTimedOutE*ception

D.publicvoidmethod()throwTimedOutE*ception7.符合方法重载的规则是哪些?

A.参数列表必须不同

B.参数列表中个数不同,或个数相同但参数类型的不同

C.方法返回值可以不同

D.访问控制修饰符必须相同8.以下哪些是“publicvoide*ample(){…}”的重载的方法?

A.publicinte*ample(){…}

B.publicvoide*ample(intm){…}

C.publicinte*ample(intm,doubled){…}

D.publicvoide*ample2(){…}

判断题:(共10道试题,每题2分)1.friendly关键字是Java语言友元类的访问控制修饰符。

正确

错误2.private修饰的顶层类(非内部类)可以被同一个包中的其他类所访问。

正确

错误3.任何变量在使用前都必须显式初始化。

正确

错误4.在Java语言中,属性前不加任何访问控制修饰符则表示只允许同一包中的类访问。

正确

错误5.包声明语句(package)必须放置在包引入语句(import)之前。

正确

错误6.当一个类没有显式定义构造方法时,Java系统总是为其创建一个默认的无参的构造方法。

正确

错误7.一个源文件中有class(类声明)、package(包声明)和import(包引入)3中顶层元素,同时出现时必须按照import、package和class的顺序出现。

正确

错误8.一个源文件中最多只能包含一个包引入语句(import)。如果源文件没有显式声明引入包,则系统默认引入java.lang包。

正确

错误9.在同一个类的不同构造方法中调用该类的其它构造方法需要使用this(…)的形式,this(…)不能在构造方法的第一行调用。

正确

错误10.重写的方法的访问权限不能比被重写的方法的访问权限高。

正确

错误简答题:(共8道试题,每题3分)1.简述类的定义类是面向对象技术中一个非常重要的概念。简单的说,类是同种对象的集合和抽象。2.简述类方法(静态方法)的概念类方法是由static标记的方法,由整个类(所有实例)共享,如访问控制权限允许,可不必创建该类对象而直接用类名加‘.’调用。又称为静态方法。类方法属于整个类只能处理static的成员属性。3.简述抽象方法的概念一个方法只有声明部分而没有方法的实现,该方法叫做抽象方法,抽象方法必须用abstract修饰,没有方法体,以分号“;”作为结束标志。4.简述常量的概念final标记的变量(成员变量或局部变量)即称为常量。常量必须在声明的同时或在每个构造方法中显式赋值,然后才能使用。常量只能赋值一次,一般大写。5.简述接口的概念把用于完成特定功能的若干属性组织成相对独立的属性集合,凡是需要实现这种特定功能的类,都可以继承这个属性集合并在类内使用它,这种属性集合就是接口。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。6.简述多态的概念多态是指子类的对象替代父类的对象使用。重载和重写是多态的两种重要表现形式。7.简述关键字super的概念关键字“super”表示的是当前对象的直接父类对象,是当前对象的直接父类对象的引用。“super”可用于访问父类中定义的属性,可用于调用父类中定义的成员方法,可用于在子类构造方法中调用父类的构造方法,“super”的追溯不仅于直接父类。8.简述异常处理机制每当Java程序运行过程中发生一个可识别的运行错误时,即该错误有一个异常类与之相对应时,系统都会产生一个相应的该异常类的对象,即产生一个异常。一旦一个异常对象产生了,系统中就一定有相应的机制来处理它,确保不会产生死机、死循环或其他对操作系统的损害,从而保证了整个程序运行的安全性。单选题:(共20道试题,每题2分)1.读程序,当编译运行以下程序时会发生什么?

classTest{

publicstaticvoidmain(Stringargs[]){

CellPhonecell=newCellPhone();

cell.emergency();

}

}

classPhone{

finalvoiddial110(){

//...

}

}

classCellPhonee*tendsPhone{

voidemergency(){

dial110();

}

}

A.这段程序可以正常编译运行。

B.这段程序不能被编译,因为Phone类没有被声明为final类。

C.这段程序不能被编译,因为一个父类中的final的方法不能在子类中引用。

D.这段程序可以被编译,但是在运行时会出现“NoSuchMethodE*ception”的异常。

2.读程序,如何修改程序,使得在fun()方法中可以正确的访问成员变量m?

classTest713{

privateintm;

publicstaticvoidfun(){

//...

}

}

A.将“privateintm”改为“protectedintm”

B.将“privateintm”改为“publicintm”

C.将“privateintm”改为“staticintm”

D.将“privateintm”改为“intm”

3.公共成员变量MA*_LENGTH是一个int型值,其值保持常数值100。使用一个语句声明定义这个成员变量。

A.

publicintMA*_LENGTH=100;

B.finalintMA*_LENGTH=100;

C.finalpublicintMA*_LENGTH=100;

D.publicfinalintMA*_LENGTH=100;4.以下抽象类的定义中哪一个是正确的?

A.classTest{

abstractvoidgrowl();

}

B.abstractTest{

abstractvoidgrowl();

}

C.abstractclassTest{

abstractvoidgrowl();

}

D.abstractclassTest{

abstractvoidgrowl(){

System.out.println(“grow1”);

}

}5.以下对Test类的定义中,哪种定义使Test类不能有子类?

A.classTest{}

B.abstractfinalclassTest{}

C.classTest{final;}

D.finalclassTest{}6.以下访问控制修饰符中访问权限最大的是哪一个?

A.public

B.private

C.protected

D.缺省访问模式7.以下访问控制修饰符中仅允许同类中进行访问的是哪一个?

A.public

B.private

C.protected

D.缺省访问模式8.以下哪一个修饰符当用于一个方法前时,必须也用在类前?

A.public

B.final

C.static

D.abstract9.以下修饰符中哪一个是定义常量的?

A.public

B.final

C.static

D.abstract10.有如下定义:

Personp;

Teachert;

Students;

其中,类Teacher和Student都是类Person的子类,p,t和s都是非空值。执行以下语句的结果是什么?

if(t

instanceof

Person){

s=(Student)t;

}

A.表达式合法。

B.将构造一个Student对象。

C.编译时非法。

D.编译时合法而在运行时可能非法。11.执行以下程序,运行结果是什么?

publicclassPerson{

staticintarr[]=newint[10];

publicstaticvoidmain(Stringa[]){

System.out.println(arr[1]);

}

}

A.输出为0。

B.输出为null。

C.编译时将发生错误。

D.编译正确,但是运行时出错。

12.读程序,以下运行结果描述正确的是哪一个?

privateclassTest{

Test(){

int

i=100;

System.out.println(i);

}

}

publicclassTest

e*tendsTest{

staticinti=200;

publicstaticvoidmain(Stringargs[]){

Test

t=newTest();

System.out.println(i);

}

}

A.运行结果为:100。

B.运行结果为:200。

C.运行结果为:100和200。

D.编译出错,Test类不能用private修饰。

13.不符合方法重载规则的是哪个?

A.重载的方法方法名相同。

B.重载的方法的访问控制修饰符必须相同。

C.重载的方法中返回值可以不同。

D.重载的方法中如果参数个数相同,则参数类型必须不同。14.读程序,判断在编译时哪行将出错?

1)publicclassTest{

2)

intm,n;

3)

publicTest(){}

4)

publicTest(inta){m=a;}

5)

publicstaticvoidmain(Stringarg[]){

6)

Testt1,t2;

7)

intj,k;

8)

j=0;k=0;

9)

t1=newTest();

10)

t2=newTest(j,k);

11)

}

12)}

A.第3行

B.第4行

C.第9行

D.第10行15.读程序,选择正确的运行结果

classTest{

publicstaticvoidmain(Stringargs[]){

SubClassref1=newSubClass(5);

SubClassref2=newSubClass(10);

System.out.println(ref1.add(ref2));

}

}

classAClass{

protectedint*;

AClass(int*){

this.*=*;

}

}

classSubClasse*tendsAClass{

SubClass(int*){

super(*);

}

intadd(AClassref){

return

ref.*+*;

}

}

A.有编译错误。

B.有编译错误,但可以运行。

C.编译通过,但有运行错误。

D.可以编译和运行,结果为15。16.读程序,以下运行结果描述正确的是哪一个?

abstractclassTest{

staticinti;

abstractvoidamethod();

}

publicclassSeconde*tendsTest{

publicstaticvoidmain(Stringargs[]){

int[]a=newint[5];

for(inti=0;i<a.length;i++)

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

}

}

A.程序可以正常编译和运行。

B.编译出错,Test类必须修饰为public类。

C.编译出错,a数组必须在使用前先初始化。

D.编译出错,Second类继承Test类后,必须重写amethod()方法,否则也应修饰为abstract类。

17.以下的哪个Java源文件代码片断是错误的?

A.packagetestpackage;

publicclassTest{...}

B.importjava.io.*;

packagetestpackage;

publicclassTest{...}

C.importjava.io.*;

classPerson{...}

publicclassTest{...}

D.importjava.io.*;

importjava.awt.*;

publicclassTest{...}18.运行程序,结果为以下哪个值?

classTester{

intvar;

Tester(doublevar){

this.var=(int)var;

}

Tester(intvar){

this("hello");

}

Tester(Strings){

this();

System.out.println(s);

}

Tester(){

System.out.println("Good-bye");

}

publicstaticvoidmain(Stringargs[]){

Testert=newTester(5);

}

}"

A.hello

B.5

C.hello

Good-bye

D.Good-bye

hello19.读程序,选择正确的运行结果

classTest{

publicstaticvoidmain(Stringargs[]){

AClassref1=newAClass(5);

AClassref2=newAClass(10);

System.out.println(ref1.add(ref2));

}

}

classAClass{

privateint*;

AClass(int*){

this.*=*;

}

intadd(AClassref){

returnref.*+*;

}

}

A.有编译错误。

B.有编译错误,但可以运行。

C.编译通过,但有运行错误。

D.可以编译和运行,结果为15。20.读程序,运行结果为多少?

classParent{

Stringone,two;

publicParent(Stringa,Stringb){

one=a;

two=b;

}

publicvoidprint(){System.out.println(one);}

}

classChilde*tendsParent{

publicChild(Stringa,Stringb){

super(a,b);

}

publicvoidprint(){

System.out.println(one+"to"+two);

}

publicstaticvoidmain(Stringarg[]){

Parentp=newParent("south","north");

Parentt=newChild("east","west");

p.print();

t.print();

}

}

A.south

easttowest

B.south

east

C.southtonorth

easttowest

D.southtonorth

east多选题:(共8道试题,每题2分)1.读程序,以下可以在main()方法中添加的语句是哪些?

classTest{

privatefloatf=1.0f;

intm=12;

staticintn=1;

publicstaticvoidmain(Stringargs[]){

Testt=newTest();

//...

}

}

A.t.f

B.this.n

C.Test.m

D.Test.n2.类的定义的源文件名为“Fred.java”,以下类定义正确的是哪些?

A.publicclassfred{

publicint*=0;

publicFred(int*){

this.*=*;

}

}

B.publicclassFred{

publicint*=0;

publicFred(int*){

this.*=*;

}

}

C.publiccla

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论