Java考试的模拟题.docx
《Java考试的模拟题.docx》由会员分享,可在线阅读,更多相关《Java考试的模拟题.docx(29页珍藏版)》请在冰豆网上搜索。
![Java考试的模拟题.docx](https://file1.bdocx.com/fileroot1/2023-2/9/17880d9d-bdfd-441c-bb50-a251cafd22b4/17880d9d-bdfd-441c-bb50-a251cafd22b41.gif)
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;ik=i;
for(intj=k+1;jif(a[j]k=j;}}
if(k!
=i){temp=a[i];a[i]=a[k];a[k]=temp;}}
System.out.println("从小到大排序:
");
for(inti=0;iSystem.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