Java考试的模拟题.docx

上传人:b****7 文档编号:10242282 上传时间:2023-02-09 格式:DOCX 页数:29 大小:319.89KB
下载 相关 举报
Java考试的模拟题.docx_第1页
第1页 / 共29页
Java考试的模拟题.docx_第2页
第2页 / 共29页
Java考试的模拟题.docx_第3页
第3页 / 共29页
Java考试的模拟题.docx_第4页
第4页 / 共29页
Java考试的模拟题.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

Java考试的模拟题.docx

《Java考试的模拟题.docx》由会员分享,可在线阅读,更多相关《Java考试的模拟题.docx(29页珍藏版)》请在冰豆网上搜索。

Java考试的模拟题.docx

Java考试的模拟题

一、选择题

1、main方法是Java应用程序执行的入口点,以下哪项是main方法头?

(C)

A.publicstaticintmain(String[]arg)

B.publicstaticvoidmain(Stringarg)

C.publicstaticvoidmain(String[]args)

D.publicstaticvoidmain()

2、以下哪个不是Java的关键字?

(D)

A.doB.tryC.finalD.While

3、以下哪项标识符是不合法的。

(D)

A.StringB.$1C.xD.3_a

4、以下哪个修饰符可用于定义成员常量?

(A) 

 A.finalB.static

C.abstractD.const

5、以下关于构造函数的描述正确的是(D)。

A.构造函数是特殊的方法,返回类型只能为void

B.可以定义多个构造函数,但每个方法名需各不相同

C.在类定义中必须定义构造函数,而且只能定义一个构造函数

D.构造方法与类同名,在创建新对象时系统会自动调用构造函数

6、关于类的继承以下说法错误的是(A)。

A.在java中类只允许单一继承

B.在java中一个类可实现多个接口

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

D.java允许多重继承

7、设有下面两个类的定义:

classPerson{

classStudentextendsPerson{

longid;//身份证号

intscore;//入学总分

Stringname;//姓名

intgetScore(){returnscore;}

}}

则类Person和类Student的关系是(A)。

A、包含关系B、继承关系

C、关联关系D、上述类定义有语法错误

8、关于修饰符static以下叙述错误的是(D)。

A.static方法不可被覆盖

B.static可以用来修饰类

C.static方法不可以直接访问非静态的方法,否则编译出错

D.static方法只能访问类变量或方法参数,不可直接访问成员变量

9、关于Java的修饰符,以下说法错误的是(B)。

A.抽象类中的方法不一定都是抽象方法

B.final类中的属性和方法都必须被final修饰符修饰

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

D.要使类中某个成员变量只能被它自身访问到,该变量只能用private修饰

10、给出如下代码:

class Test{ //定义成员a

  public static void fun() {// some code...}}

要在函数fun()中直接访问a,以下成员变量a定义正确的是(B)。

A.public int a;B.static int a; 

C.int a;D.protected int a;

11、有以下程序片段,下列哪个选项不能插入到行1。

(A)

1.

2.publicclassA{.//dosth}

A、publicclassMainClass{}

B、packagemine;

C、classANotherClass{}

D、importjava.util.*;

12、在使用interface声明一个接口时,只可以使用(D)修饰符修饰该接口。

A、privateB、protected

C、privateprotectedD、public

13、关于以下application的说明,正确的是(B)。

1.classStaticStuff

2.{staticintx;

4.static{x+=5;}

5.publicstaticvoidmain(Stringargs[])

6.{System.out.println(“x=”+x);}

9.static{x/=5;}}

A、4行与9行不能通过编译,因为缺少方法名和返回类型

B、9行不能通过编译,因为只能有一个静态初始化器

C、编译通过,执行结果为:

x=1

D、能通过编译,但程序运行结果不可预知,因为变量x没有初始化

14、有程序如下,关于程序的描述哪个是正确的?

(C)

publicclassPerson{ staticintarr[]=newint[5];

  publicstaticvoidmain(Stringa[])

  {   System.out.println(arr[0]);  }}

A、编译将产生错误

B、编译时正确,但运行时将产生错误

C、正确,输出0

D、正确,输出 null

15、Java的字符类型采用的是Unicode编码方案,每个Unicode码占用()个比特位。

A、8B、16

C、32D、64

16、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。

这种面向对象程序的特性称为(C)。

A、隐藏B、覆盖

C、重载D、Java不支持此特性

17、以下哪个接口的定义是正确的?

(D)

A、interfaceB

{voidprint(){};}

B、abstractinterfaceB

{voidprint();}

C、abstractinterfaceB

extendsA1,A2//A1、A2为已定义的接口

{abstractvoidprint(){};}

D、interfaceB

{voidprint();}

18、下面哪个函数是public void aMethod(){...}的重载函数?

(D)

A、void aMethod( ){...}

B、public int aMethod(){...}

C、public void aMethod(){...}

D、public int aMethod ( int m){...}

19、A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明:

Aa0=newA();

A a1=newB();

Aa2=newC();

问以下哪个说法是正确的?

 (D)

A、只有第1行能通过编译 

B、第1、2行能通过编译,但第3行编译出错

C、第1、2、3行能通过编译,但第2、3行运行时出错

D、第1行、第2行和第3行的声明都是正确的 

20、假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?

(C)

classA

{inti;

staticStrings;

voidmethod1(){}

staticvoidmethod2(){}}

A、System.out.println(a.i);B、a.method1();

C、A.method1();D、A.method2()

21、将以下哪个方法的定义插入第6行后,会引发编译错误?

(A)

1.classSuper{

2.publicvoida(){}}

5.publicclassSubextendsSuper{

6.

}

A.floata(){return1;}

B.publicvoida(intx){}

C.publicvoida(floatf){}

D.publicfloata(intx){return(float)x;}

22、以下方法的返回类型是(D)。

ReturnTypefunction(intx,doubley)

{returnx+y/2;}

A.byteB.shortC.floatD.double

编写一个完整的JavaApplication程序。

包含类Circle,类Cylinder,类Test,具体要求如下:

(1)类Circle

属性radius:

double型,表示圆的半径。

方法Cirle(doubler):

构造函数,将半径初始化为r。

doublefindArea():

返回圆的面积。

doublegetRadius():

返回圆的半径。

(2)类Cylinder

继承Circle类,并有以下属性和方法:

属性length:

double型,表示圆柱体的高。

方法Cylinder(doubler,doublel):

构造函数,给圆柱体的半径和高赋初值。

doublefindVolume():

返回圆柱体的体积。

toString():

返回圆柱体的半径、高、体积等信息。

(3)主类Test

生成Cylinder对象。

调用对象的toString方法,输出对象的描述信息。

(注:

程序框架和部分源码已给出,请补充完整)

importjava.io.*;

publicclassTest//主类定义已给出

{publicstaticvoidmain(Stringargs[])

{Cylinderc=newCylinder(2,5);

System.out.println(c.toString());}}

classCircle//类Circle定义,请填写完整

{finalfloatPI=3.14159f;//添加属性radius

doubleradius;//添加构造函数Circle(doubler)

publicCircle(doubler)

{radius=r;}//添加getRadius()方法

publicdoublegetRadius()

{returnradius;}//添加findArea()方法

publicdoublefindArea(){returnPI*getRadius()*getRadius();}}

classCylinderextendsCircle/类Cylinder定义,请填写完整

{//添加属性length

doubleheigth;//添加构造方法Cylinder

publicCylinder(doubler,doubleh)

{super(r);heigth=h;}//添加findVolume()方法

publicdoublefindvolume()

{doublevolume;volume=this.findArea()*heigth;returnvolume;}

//添加toString()方法,返回圆柱体的半径、高、体积等信息

publicStringtoString(){Stringslt="";

slt="Thecylinderinformation:

radius="+

String.valueOf(this.radius)+",heigth="+

String.valueOf(this.heigth)+",volume="+

String.valueOf(this.findvolume());

returnslt;}}

第2章Java基础

【1】什么是数据类型?

为什么要将数据划分为不同的数据类型?

[解答]:

Java是一门强类型语言。

数据类型是用来区分不同的数据;由于数据在存储时所需要的容量各不相同,不同的数据就必须要分配不同大小的内存空间来存储,所有就要将数据划分成不同的数据类型。

【2】Java中有哪些数据类型?

[解答]:

Java中有8种基本数据类型:

字节型(byte),短整型(short),整型(int),长整型(long),字符型(char),单精度型(float),双精度型(double),布尔型(boolean)。

【3】声明变量的作用是什么?

[解答]:

变量时一个数据存储空间的表示,将数据指定给变量,就是将数据存储至对应的内存空间,调用变量,就是将对应的内存空间的数据取出来使用。

声明变量就是申请一个内存空间。

【6】什么是表达式?

什么是语句?

[解答]:

表达式是由运算符,操作数和方法调用按照语言的语法构造而成的符号序列。

表达式可用于计算一个格式,位变量赋值以及帮助控制程序执行流程。

语句:

语句组成了一个执行程序的基本单元,类似于自然语言的句子。

包括表达式语句、复合语句、控制语句等。

【7】Java有哪些数据类型?

请描述其分类情况。

[解答]:

Java定义了8个基本数据类型:

字节型,短整型,整型,长整型,字符型,浮点型,双精度型,布尔型。

它们分为4组:

1)整数型(byte,short,int,long)2)浮点数型(float,double)

3)字符型(char)4)布尔型(boolean)

【8】试比较break和continue语句的区别?

[解答]:

Break:

强行退出循环,忽略循环体中的任何其他语句和循环的条件的条件测试。

Continue:

语句用来终止本次循环。

其功能是终止当前正在进行的本轮循环,即跳过后面剩余的语句,转而执行循环的第一条语句,计算和判断循环条件,决定是否进入下一轮循环。

【9】有一函数:

x(x<1)

y=3x-2(1≤x<10)

4x(x≥10)

编写一程序,给定x值,输出y值。

[解答]:

importjava.io.*;

publicclassTest_9{

publicstaticvoidmain(String[]args)throwsNumberFormatException,IOException{

InputStreamReaderisr=newInputStreamReader(System.in);

BufferedReaderbr=newBufferedReader(isr);

System.out.println("请输入数字x的值:

");

doublex=Double.parseDouble(br.readLine());

doubley=0;

if(x<1){y=x;

}else{if(x>=1&&x<10){

y=3*x-2;}else{y=4*x;}}

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

【10】说明while和do......while语句的差异。

[解答]:

Do-while与while语句的主要区别在于,先执行循环体中的语句再计算条件表达式,所以do-while语句的循环体至少执行一次。

【11】写出下列语句执行后的结果:

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

{if(k>4)break;

System.out.println(“k=”+k);}

[解答]:

publicclassTest_11{publicstaticvoidmain(String[]args){intk;

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

if(k>4)

break;

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

【13】编写一程序,输入3个数,能按大小顺序输出。

[解答]:

importjava.io.BufferedReader;

importjava.io.IOException;

importjava.io.InputStreamReader;

publicclassTest_13{

publicstaticvoidmain(String[]args)throwsNumberFormatException,IOException{

InputStreamReaderisr=newInputStreamReader(System.in);

BufferedReaderbr=newBufferedReader(isr);

inta[]=newint[3];intk,temp;

System.out.println("请输入3个数字(每输入一个数字后请换行)");

for(inti=0;i<3;i++){a[i]=Integer.parseInt(br.readLine());}

for(inti=0;i

k=i;

for(intj=k+1;j

if(a[j]

k=j;}}

if(k!

=i){temp=a[i];a[i]=a[k];a[k]=temp;}}

System.out.println("从小到大排序:

");

for(inti=0;i

System.out.print(a[i]+"");}}}

【14】编写一各Java程序,查找1~100之间的素数并将运行结果输出。

[解答]:

publicclassTest_14{

publicstaticvoidmain(String[]args){intm,k,i,n=0;booleanflag;

for(m=1;m<=100;m=m+2){

flag=true;

k=(int)Math.sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0){

flag=false;

break;}

if(flag){System.out.print(m+"");

n=n+1;}

if(n%10==0)

System.out.println();}}}

【15】运行下面程序,并分析其执行过程:

Publicclassmultiplication{

publicstaticvoidmain(Stringargs[]){

inti,j;

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

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

System.out.print(i+”*”+j+”=”+i*j+””);}

System.out.println();}}}

[解答]:

publicclassTest_15{

publicstaticvoidmain(String[]args){inti,j;

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

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

System.out.print(i+"*"+j+"="+i*j+"");}

System.out.println();}}}

/*

结果:

1*1=1

2*1=22*2=4

3*1=33*2=63*3=9

4*1=44*2=84*3=124*4=16

5*1=55*2=105*3=155*4=205*5=25

6*1=66*2=126*3=186*4=246*5=306*6=36

7*1=77*2=147*3=217*4=287*5=357*6=427*7=49

8*1=88*2=168*3=248*4=328*5=408*6=488*7=568*8=64

9*1=99*2=189*3=279*4=369*5=459*6=549*7=639*8=729*9=81

乘法表

*/

【20】编写一程序,查找某一字符串是否包含有 “abc”。

[解答]:

publicclassTest_20{publicstaticvoidmain(String[]args){

Strings="yangenabc";

inta=s.indexOf("abc");

//a位找到abc的下标,找不到则返回-1

if(a!

=-1){System.out.print("包含字符串abc");

}else{System.out.print("不包含字符串abc");}}}

第3章面向对象程序设计基础

【1】什么是Java程序使用的类?

什么是类库?

[解答]:

Java程序的基本单位是类。

对象是对事物的抽象,而类是对对象的抽象和归纳,找出事物的共性,把具有共同性质的事物归结为一类,得出一个抽象的概念——类。

类是具有相同属性和方法的一组对象的集合,类是在对象之上的抽象,对象则是类的具体化,一旦建立类之后,就可用它来建立许多你需要的对象。

Java的类库是系统提供的已实现的标准类的集合,是Java编程的API(ApplicationProgramInterface),它可以帮助开发者方便、快捷地开发Java程序。

【2】如何定义方法?

在面向对象程序设计中方法有什么作用?

[解答]:

方法的定义由两部分组成:

方法声明和方法体。

方法声明的基本格式如下:

返回类型方法名(形式参数)

{…//方法体内容}

方法声明包括方法名、返回类型和形式参数,方法的小括号是方法的标志;方法体为实现方法行为的Java语句。

在面向对象程序设计中,方法所起的作用是完成对类和对象属性操作。

【3】简述构造方法的功能和特点。

下面的程序片段是某学生为student类编写的构造方法,请指出其中的错误。

voidStudent(intno,Stringname)

{studentNo=no;studentName=name;returnno;}

[解答]:

构造方法是一个特殊的方法,主要用于初始化新创建的对象。

构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,而且构造方法是不返回任何数据类型,甚至也不返回void数据类型,即不能在构造方法前加void。

以上的代码段出错于:

①构造方法Student()前不能加void②不能用return语句

【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。

编写Java程序创建student类的对象及测试其方法的功能。

[解答]:

程序代码段如下:

classstudent{p

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

当前位置:首页 > 高等教育 > 军事

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

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