1609第一次月考详细解析.docx

上传人:b****4 文档编号:5379689 上传时间:2023-05-08 格式:DOCX 页数:33 大小:130.75KB
下载 相关 举报
1609第一次月考详细解析.docx_第1页
第1页 / 共33页
1609第一次月考详细解析.docx_第2页
第2页 / 共33页
1609第一次月考详细解析.docx_第3页
第3页 / 共33页
1609第一次月考详细解析.docx_第4页
第4页 / 共33页
1609第一次月考详细解析.docx_第5页
第5页 / 共33页
1609第一次月考详细解析.docx_第6页
第6页 / 共33页
1609第一次月考详细解析.docx_第7页
第7页 / 共33页
1609第一次月考详细解析.docx_第8页
第8页 / 共33页
1609第一次月考详细解析.docx_第9页
第9页 / 共33页
1609第一次月考详细解析.docx_第10页
第10页 / 共33页
1609第一次月考详细解析.docx_第11页
第11页 / 共33页
1609第一次月考详细解析.docx_第12页
第12页 / 共33页
1609第一次月考详细解析.docx_第13页
第13页 / 共33页
1609第一次月考详细解析.docx_第14页
第14页 / 共33页
1609第一次月考详细解析.docx_第15页
第15页 / 共33页
1609第一次月考详细解析.docx_第16页
第16页 / 共33页
1609第一次月考详细解析.docx_第17页
第17页 / 共33页
1609第一次月考详细解析.docx_第18页
第18页 / 共33页
1609第一次月考详细解析.docx_第19页
第19页 / 共33页
1609第一次月考详细解析.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

1609第一次月考详细解析.docx

《1609第一次月考详细解析.docx》由会员分享,可在线阅读,更多相关《1609第一次月考详细解析.docx(33页珍藏版)》请在冰点文库上搜索。

1609第一次月考详细解析.docx

1609第一次月考详细解析

1.(单选题)下列数组声明语句中,错误的是:

()。

A.int[]arr=newint[]{};

B.int[]arr=newint[];//缺少数组长度

C.int[]arr={};

D.int[][]arr=newint[2][];

正确答案:

B

2.(单选)classCard{}下列不属于Card类构造方法的是:

()

A.Card(){}

B.publicCard(){}

C.publicvoidCard(){}//构造方法没有返回值,但也不能写void

D.privateCard(){}

正确答案:

C

3.(单选)下面不属于Java语言特点的是:

A.平台无关

B.面向对象

C.支持指针类型//不是java的特点,是c语言的

D.垃圾回收机制

正确答案:

C

4.(单选)下列选项中的类,能正确实现java.lang.Runnable接口和java.lang.Clonable接口的是()。

A.publicclassSessionimplementsRunnable,Clonable{

publicvoidrun();//实现接口,要重写接口的抽象方法

publicObjectclone();}

B.publicclassSessionimplementsRunnable,implementsClonable{//写一个implements即可

publicvoidrun(){/dosomething*/}

publicObjectclone(){/makeacopy*/}}

C.publicclassSessionimplementsRunnable,Clonable{

publicvoidrun(){/dosomething*/}

publicObjectclone(){/*makeacopy*/}}

D.publicclassSessionextendsRunnable,Clonable{

//接口不是用来继承的

publicvoidrun();

publicObjectclone();}

正确答案:

C

5.(单选)下列属于不合法Java标识符的是()。

//java标识符命名规范:

字母、数字、$、_(下划线),不可用数字开头,不能是java的关键字

A._mem

B.12a//不能以数字开头

C.M12

D.$12

正确答案:

B

6.(单选)下列Java标识符,错误的是()

A._sys_varl

B.$change

C.User_name

D.1_file//不能以数字开头

正确答案:

D

7.(单选)Java程序的执行过程中用到一套JDK工具,其中javac.exe是指()。

A.Java语言编译器

B.Java字节码解释器

C.Java文档生成器

D.Java类分解器

正确答案:

A

8.(单选)运行下列代码:

int[]oneArr={2,11,26,27,37,44,48,60};

int[]twoArr={19,35,49,55,58,75,83,84,91,93};

int[]threeArr=newint[oneArr.length+twoArr.length];

intp=0,q=0;

while(p

threeArr[p+q]=oneArr[p]

oneArr[p++]:

twoArr[q++];

}

if(p

System.arraycopy(oneArr,p,threeArr,p+q,oneArr.length-p);

}elseif(q

System.arraycopy(twoArr,q,threeArr,p+q,twoArr.length-q);

}

System.out.println(Arrays.toString(threeArr));输出的结果是:

()。

A.[2,11,26,27,37,44,48,60,19,35,49,55,58,75,83,84,91,93];

B.[2,11,19,26,27,35,37,44,48,49,55,58,60,75,83,84,91,93];

C.[19,35,49,55,58,75,83,84,91,93,2,11,26,27,37,44,48,60];

D.[2,19,11,35,26,49,27,55,37,58,44,75,48,83,60,84,91,93];

正确答案:

B

//代码太多了,自己在eclipse运行一下,用debug调试一下,每次数组的变化,其实就是将两个数组按从小到大的顺序合并

9.(单选)A类中有一个方法:

protectedintprint(Stringstr){},

B类继承A类,以下方法能在B类中重写A类中print()方法的是:

()。

//考大家重写:

重写原则:

两同两小一大

重写要求子类中的返回值类型小于或者等于父类型,有一个特殊情况,如果父类的返回值类型是基本类型或者是void的,子类必须与父类保持一致

 

 

A.publicintprint(Stringstr){}

B.privateintprint(Stringstr){}

C.privatevoidprint(Stringstr){}

D.publicvoidprint(Stringstr){}

正确答案:

A

10.(单选)下列代码的输出结果是()。

boolean

b=true?

false:

true==true?

false:

true;

System.out.println(b);

//三目运算符结构:

boolean表达式?

表达式1:

表达式2

true?

false:

true==true?

false:

true;

选择表达式1:

false

A.true

B.false

C.null

D.空字符串

正确答案:

B

11.(单选)下列赋值语句中,正确的是()。

A.byteb1=10,b2=20;byteb=b1+b2;

//需要强转,byteb=(byte)(b1+b2)

B.byteb1=10,b2=20;byteb=~b1;

//需要强转,byteb=(byte)(~b1);

C.byteb1=10,b2=20;byteb=b1>>1;

//需要强转byteb=(byte)(b1>>1);

D.byteb1=10;byteb=++b1;

正确答案:

D

12.(单选)类Super及Sub定义如下:

publicclassSuper{

privatevoidf(){

System.out.println("Super.f()");}

publicvoidg(){

f();}

publicvoidk(){f();

}}

publicclassSubextendsSuper{

privatevoidf(){

System.out.println("Sub.f()");}

publicvoidk(){f();}}

运行下列语句:

Superobj=newSub();

//创建了一个obj的引用变量指向Sub对象,类型为Super

obj.g();

//能点出来什么看类型,所以这时调的g方法应该是访问Super的g()方法,g方法里调f()方法,父类的f()方法为private为不可重写。

虽然子类中看上去重写了,其实是两个无关f()方法,只是方法名而已。

在多态调用的时候,只会直接找父类的f()方法.

所以调用f()方法时,实际是调用父类的private。

输出:

Super.f()

obj.k();

//调k()方法,子类重写后的版本,它为一个公共方法,该公共方法再调用本类的私有方法.输出:

Sub.f()

输出的结果是:

()。

A.Sub.f()Sub.f()

B.Sub.f()Super.f()

C.Super.f()Sub.f()

D.Super.f()Super.f()

正确答案:

C

13.

(单选)关于下列代码说法正确的是:

classClassA{

publicintnumberOfinstances;

protectedClassA(intnumberOfinstances){

this.numberOfinstances=numberOfinstances;}}

publicclassExtendedAextendsClassA{

privateExtendedA(intnumberOfinstances)

{super(numberOfinstances);}

publicstaticvoidmain(String[]args){

ExtendedAext=newExtendedA(420);//new对象,走进子类构造方法,执行代码前先调用父类的有参构造方法

System.out.print(ext.numberOfinstances);}}

A.运行后,输出420

B.运行时抛出异常

C.编译错误,所有的构造器必须是public的

D.编译错误,构造器不能是private的

正确答案:

A

//子类(Subclass)可以继承父类(Superclass)的成员变量及成员方法。

届时,子类将具有父类的成员

注意补充:

java构造方法的修饰符:

public,protected,默认,private四种都可以

使用public修饰构造方法,那么所有的类都可以实例化这个类。

使用private修饰构造方法,那么所有的类都不可以实例化使用这个类。

14.

(单选)关于下列代码说法正确的是:

publicclassA{

privateintcounter=0;

publicstaticintgetInstanceCount(){

returncounter;}

publicA(){counter++;}

publicstaticvoidmain(String[]args){

Aa1=newA();

Aa2=newA();

Aa3=newA();

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

A.该类编译失败

B.输出:

1

C.输出:

3

D.输出:

0

正确答案:

A

//在static方法中无法返回非static的变量由于static在调用时没有具体的对象,因此在static方法中不能对非static成员(对象成员)进行访问。

15.(单选)下面for语句,存在编译错误的是()。

A.for(;;){}//相当于while(true),死循环

B.for(inti=0;i<100;i++){}

C.for(inti=0,j=0;;i++,j++){}//相当于while(true),死循环

D.for(inti=0;i<10){}//缺循环变量的变化

正确答案:

D

16.

(单选)请看下列代码:

interfaceFoo{

intbar();}

publicclassSprite{

publicintfubar(Foofoo){

returnfoo.bar();}

publicvoidtestFoo(){

fubar(<插入代码>);}}

使类Sprite编译通过,在<插入代码>处应填入的代码是:

A.Foo{publicintbar(){return1;}}

B.newFoo{publicintbar(){return1;}}

C.newFoo(){publicintbar(){return1;}}

D.newclassFoo{publicintbar(){return1;}}

正确答案:

C

//接口无法实例化:

fubar方法中需要传入一个Foo类型的参数,但是Foo只是一个接口,无法直接实例化对象,因此在这里我们选择了匿名内部类进行实例化

17.

(单选)请看下列代码:

publicclassPlant{

privateStringname;

publicPlant(Stringname){

this.name=name;}//Plant中的有参的构造方法

publicStringgetName(){returnname;}}

classTreeextendsPlant{

publicvoidgrowFruit(){}

publicvoiddropLeaves(){}}

下列说法正确的是:

A.在Tree类中添加代码:

publicTree(){Plant();},编译将通过

//子类构造方法中调用父类的构造方法,写法是:

super();

不写的话系统会默认有

B.在Plant类中添加代码:

publicPlant(){Tree();},编译将通过

C.在Plant类中添加代码:

publicPlant(){this(”fern”);},编译将通//无参构造方法中调用有参的构造方法,可以。

格子类的时候,有类似的例子

 

D.在Plant类中添加代码:

publicPlant(){Plant(”fern”);},编译将通过

正确答案:

C

18.

(单选)请看下列代码编译和运行的结果是()。

interfaceDeclareStuff{

publicstaticfinalintEASY=3;

voiddoStuff(intt);}

publicclassTestDeclareimplementsDeclareStuff{

publicstaticvoidmain(String[]args){

intx=5;

newTestDeclare().doStuff(++x);

}

//调用方法,把++x(为6)传给了形参s,这时s为6

s=6+3+7

voiddoStuff(ints){//编译错误,方法缺public修饰,接口的方法默认都是由publicabstract修饰的

s+=EASY+++s;//等同于s=s+EASY+(++s)

//用debug调试,非常容易看到结果的变化

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

A.s=14

B.s=16

C.s=10

D.编译失败

正确答案:

D//如果没有编译错误,能输出s=16

19.

(单选)下列关于IDE开发环境Eclipse,说法错误的是:

()。

A.Eclipse可以通过插件(plugin)的方式扩展其功能。

B.Eclipse联盟是由IBM公司捐资组建的。

C.Eclipse使用了SWT图形界面技术。

D.Eclipse的运行不需要有JRE的支持。

正确答案:

D//这题都要讲解的话,是在侮辱你的智商

20.

(单选)下列代码的输出结果是:

publicclassBlip{

protectedintblipvert(intx){return0;}}

classVertextendsBlip{<插入代码>}

在<插入代码>处填入选项中的代码,使Vert类没有编译错误的是()。

//继承,可以对方法进行重写,两同两小一大原则:

 

A.publicintblipvert(intx){return0;}

B.privateintblipvert(intx){return0;}//权限要比父类大或相等

C.privatevoidblipvert(intx){return0;}//权限和返回类型都错了

D.protectedlongblipvert(intx){return0;}//如果返回值是基本类型要保持一致

正确答案:

A

21.

(单选)下列表达式中,可以得到精确结果的是()。

A.doubled1=3.0-2.6;

B.doubled4=2.5*1.5;

C.doubled2=30/300;

D.doubled3=1/2+0.5;//1/2是取整,为0,没法得到0.5

正确答案:

B

22.

(单选)下列代码的输出结果是()。

publicstaticvoidmain(String[]args){

int[]one=newint[]{4,6,8};

int[]two=newint[]{1,3,5,7,9};

System.arraycopy(one,1,two,2,2);

System.out.println(Arrays.toString(two));}

A.[1,3,7,4,6]

B.[1,3,5,7,8]

C.[1,3,5,6,9]

D.[1,3,6,8,9]

正确答案:

D

src:

源数组

srcPos:

源数组中的起始位置

dest:

目标数组

destPos:

目标数组中的起始位置

length:

要复制的数组元素的数量

arraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)

23.

(单选)下列数组声明语句中,错误的是:

()。

A.int[]arr=newint[8];

B.int[]arr=newint[8]{};

C.int[]arr={};

D.int[]arr=newint[]{};

正确答案:

B

24.

(单选)下列代码编译和运行的结果是:

publicstaticvoidmain(String[]args){

String[]elements={"for","tea","too"};

Stringfirst=(elements.length>0)?

elements[0]:

null;

true

System.out.println(first);}

A.编译出错

B.输出:

tea

C.输出:

for

D.输出:

null

正确答案:

C

25.(单选)运行下面的程序:

inta=100;intb=200;

a=a+b;//a=100+200=300;

b=a-b;//b=300-200=100;

a=a-b;//a=300–100=200;

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

输出的结果是:

()。

A.a=100,b=300

B.a=100,b=200

C.a=200,b=100

D.a=300,b=200

正确答案:

C

26.(单选)下列关于JVM说法,错误的是()。

A.JVM通过专门的线程实现内存的回收。

B.使用java命令时,可以通过参数来设置分配JVM的内存大小。

C.JRE包括JVM及Java核心类库。

D.目前主流版本JVM通过纯解释的方式运行Java字节码。

正确答案:

D

JVM先通过javac进行编译,再将编译后的字节码文件通过java指令进行解释运行,如果纯解释的话根本无法识别源码

27.(单选)请看下列代码:

interfaceData{

publicvoidload();}

abstractclassInfo{

publicabstractvoidload();}

下列选项中,能正确使用Data接口和Info类的是()。

A.publicclassEmployeeextendsInfoimplementsData{publicvoidload(){/*dosomething*/}}

B.publicclassEmployeeimplementsInfoextendsData{publicvoidload(){/*dosomething*/}}//要先继承后实现

C.publicclassEmployeeimplementsInfoextendsData{publicvoidData.load(){/*dsomething*/}publicvoidload(){/*dosomething*/}}

D.publicclassEmployeeextendsInfoimplementsData{publicvoidload(){/*dosomething*/}publicvoidInfo.load(){/*dosomething*/}}

正确答案:

A

先继承后实现,排除BC,D中Info.load()错误,静态方法才可以通过类名点方法

注意:

接口中的load和Info中的load的签名完全一致,同时没有父子继承关系,所以load方法既不构成重载,也不构成重写。

28.(单选)类A,B的定义如下:

classA{

privateinta=100;

A(){

System.out.print("A()");

System.out.println(a);}}

classBextendsA{

privateinta=200;

B(){

System.out.print("B()");

System.out.println(a);}}

运行下面的代码:

newB();

实例化B类对象,程序调用B类无参构造器,执行代码前先隐式调用父类无参构造

输出的结果是:

()。

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2