java练习题答案.docx
《java练习题答案.docx》由会员分享,可在线阅读,更多相关《java练习题答案.docx(41页珍藏版)》请在冰豆网上搜索。
java练习题答案
第1章java语言概述习题
一、填空题
1、面向对象程序的主要特征:
继承,_封装_,多态。
2、java中的继承机制之所以能够降低程序的复杂性,提高程序的效率,主要是
因为它使代码可以_重用或复用_•
3、java语言中,为将源代码翻译成字节码文件时产生的错误称为编译错误,而将程序在运行中产生的错误称为运行错误。
4、javac是java语言中的编译器,基本语法是:
javac[选项]文件名__,java是java
语言中的解释执行器,基本语法是:
java[选项]—类名—.
5、java语言的主要贡献者是谁Jamesgosling
二、单选题
1、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。
A、javaB、.classC、htmlD、.exe
2、main方法是JavaApplication程序执行的入口点,关于main方法的方法首部,以下(B)项是合法的。
A、publicstaticvoidmain()
B、publicstaticvoidmain(Stringargs[])
C、publicstaticintmain(String[]arg)
D、publicvoidmain(Stringarg[])
三、判断
1、Java语言具有较好的安全性和可移植性及与平台无关等特性。
“
2、Java语言的源程序不是编译型的,而是编译解释型的。
“
四、问答题
1、编写、运行java程序需要经过哪些主要步骤?
答:
1.编写源文件,扩展名必须是.java
2.编写java源程序,使用java编译器编写源文件,得到字节码文件
3.运行java程序,使用javaSE平台只不过的java解释器来解释执行字节码文件。
2、阅读下列java源代码文件,并回答问题
publicclassSpeak{
voidspeakHello(){System.out.println("I'mgladtomeetyou");
}
}
classXiti8{
publicstaticvoidmain(Stringargs[]){Speaksp=newSpeak();
sp.speakHello();
}
}
(1)上述源文件的名字是什么?
Speak.java
(2)上述源文件编译后生成几个字节码文件,这些字节码文件的名字分别是什
么?
Speak.classXiti8.class
第2章
(1)基本数据类型练习题
一、填空题
1、java基本数据类型中整型,字符型分别占用字节数为4,2.
2、java语言中的浮点数根据数据存储长度和数值精度的不同,进一步分为_
float和double两种具体类型。
3、Java中的浮点类型有两类,分别是float和double类型,其中float取7位有
效数据,double取_15__位有效数据。
4、布尔类型常量只有两个true和false__,其中前者表示逻辑真,后者表示逻辑假。
5、浮点型常量又称实型常量,用于表示有小数部分的十进制数,它有两种表示形
式:
_小数形式__和—指数形式。
6、java语言中的各种数据类型之间提供自动转换,如第一种操作数为byte,而第二种操作数为float,则其结果是__float___类型。
7、java语言的各种数据类型之间提供两种转换,分别是一自动转换—和一强制转换
O
8、开发与运行Java程序需要经过的三个主要步骤为编写源程序、编译生
成字节码文件和解释运行字节码文件。
9、Java程序中的单行注释符是(II),多行注释符是(/**/)。
10、Java中布尔类型的常量有两种,它们是(true)和(false)。
11、Java中用于定义小数的关键字有两个:
(float)和(double),后者精度咼于前者。
二、多选
1、下面有关
char类型数据的疋义中,
正确得是BE
?
A.charch=
a?
?
=a;
B.
charch=
c〉c.
5
C.charch=
=‘cafe';
D.
charch=
ar»
cafe;
E.charch=
=‘\ucafe'
;F.
charch=
'\u10100';
G.charch=
(char)true;
三、判断
1、Java语言使用的是Unicode字符集,每个字符在内存中占8位。
x,16位
2、Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。
V
四、单选
1、以下哪个不是Java的基本数据类型(B)
A、int
B、BooleanC、floatD、char
2、如下哪个是
Java中有效的关键字(c)
A、name
BhelloC、falseD、good
第2章
(2)数组练习题
一、填空题
1、当声明一个数组intarr[]=newint[5];时,这代表这个数组所保存的变量类型是(int),数组名是(arr),数组的大小为(5),数组元素下标的使用范围是(0-4)
二、多选
1定义如下的二维数组b,下面的说法正确的是(ACD)。
intb[][]={{1,2,3},{4,5},{6,7,8}}};
A)b.length的值是3。
B)b[1].length的值是3。
B)C)b[1][1]的值是5。
D)二维数组b的第一行有3个元素
三、单选
1、以下哪项是main方法的正确形参?
(B)
A、StringargsB、Stringar[]C、CharargD、StringBufferargs[]
2、有整型数组:
int[]x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x中的元素值依次是(A).
A)2781235B)1235872C)3512872D)8712352
3、应用程序Test.java的源程序如下,在命令行键入:
javaTestaaabbc回车后输出的结果是(A)。
publicclassTest{
publicstaticvoidmain(Stringargs[]){
intk1=args」ength;
intk2=args[1].length();
System.out.print(k1+""+k2);
}
}
A)32B)12C)13D)33
4、关于下面代码的说法(C)是正确的?
publicclassExample{
publicstaticvoidmain(String[]args){
int[]arr=newint[10];
System.out.println(arr[1]);
}
}
A、编译时产生错误
B、编译时正确,运行时将产生错误
C、输出零
D、输出空(null)
第3章
(1)运算符&表达式&if语句练习题
一、填空
1、Java中,除了_字符型_和—布尔型__外,其他的所有的基本数据类型
都支持加,减,乘,除四则运算。
2、短路逻辑运算符包括___&&___和_11_。
3、Java提供了&,&&和|,||运算符,除了一点外,&运算符和&&运算符在使用中完全相同,|运算符和||运算符也相同。
它们的不同点在于:
亠&__运算符和___1运算符中的两个运算对象都要运算。
4、顺序执行以下两个语句的输出结果是:
10。
Strings=”我喜欢学习java!
”;
System.out.println(s.length());
5、下面代码定义了两个整型变量和一个字节型变量,则将num1+num2
num3变量的语句是num3=(bvte)(num1+num2)。
intnum1=53;
intnum2=47;
bytenum3;
6、下面代码中,“Type”应该换成什么类型__double?
publicclassReturnit{
returnTypemethodA(bytex,doubley){
return(long)x/y*2;
}
}
7、Java语言提供了两条基本的分支选择语句:
_if语句和switch
的值赋给
语句
8、以下程序段的输出结果为Messagefour
intx=0,y=4,z=5;
if(x>2){
if(y<5){
System.out.println("Messageone");
}
else{
System.out.println("Messagetwo");
}
}
elseif(z>5){
System.
out
.println(
"Messagethree");
I
else{
}
System.
out
.println(
"Messagefour");
、单选
1、
下面选项中,
D的值与
3*4的值相等?
A.3/2
B.3<2C.
3*2A2D.3<<2
2、
下面选项中,
D
的值与
16/2X2的值相等?
A.16>4
B.16/2
C.16*4D.16>>2
E.
16>>>2
3、有以下方法的定义,请选择该方法的返回类型(
D)。
ReturnTypemethod(bytex,doubley){return(short)x/y*2;
}
A、byteB、shortC、intD、double
第3章
(2)switch&循环语句练习题
一、填空题
1、设有数组定义:
intMyIntArray[]={10,20,30,40,50,60,70};则执行以下几个语句后的输出结果是120。
ints=0;
for(inti=0;iif(i%2==1)
s+=MyIntArray[i];
System.out.println(s);〃s=20+40+60
2、下面程序段的执行结果是(65432)
inta[]={2,3,4,5,6};
for(inti=a.length-1;i>=0;i--)
System.out.print(a[i]+"");//从大到小排序
3、以"javaSub3'运行以下程序的结果是:
3thseason__。
publicclassSub{
publicintswitch
statici=Integ
(i){
void
ier.p
main(String[]args){)arselnt(args[0]);
case
1:
System.
out
.println(
"Firstseason"
);break;
case
2:
System.
out
.println(
"Secondseason"
);break
case
3:
System.
out
.println(
"3thseason");
break;
case
4:
System.
out
.println(
"Lastseason");
break;
4.switch(X)中,X可以接受的类型有_byte,char___,short,int
5、以下程序段的输出结果为一—
valueistwovalueisthree
intj=2;
“Valueistwo.”);
“Valueisthree.”);“valueis“+j);break;
break;
switch(j){
case2:
System.out.print(
case2+1:
System.out.println(
default:
System.out.println(
}
6.如果x=2;则下面程序执行后的结果是_34?
switch(x){
case1:
System.out.println
(1);
case2:
case3:
System.out.print(3);
case4:
System.out.println(4);
}
7、下面代码执行结束后l和j的值分别是5,6_?
publicstaticvoidmain(String[]args){
intj=10;
int1=1;
do{
if(|++>--j)continue;
}while(l<5);
}
8、下面程序序的运行结果为(20)
classtest{publicstaticvoidmain(Stringargs[]){intsum=0;for(inti=0;i<10;i++){if(i%2==0)sum+=i;
elsecontinue;
}
System.out.println(sum);
}
}
二、单选
1、应用程序的main方法中有以下语句,则输出的结果是(B)。
intb[][]={{1},{2,2},{2,2,2}};
intsum=0;
for(inti=0;ifor(intj=0;j
sum+=b[i][j];}}
System.out.println("sum="+sum);
A)32B)11C)2D)3
2、应用程序的main方法中有以下语句,则执行后输出的结果是(D)
int[]x={125,21,5,168,98};
intmax=x[0];
for(inti=1;iif(x[i]>max)max=x[i];
}
System.out.println(max);
A)125B)5C)98D)168
第4章
(1)类和对象练习题
一、填空
1、面向对象程序的主要特征:
继承,封装_,多态
2、构诰方法是类中的一种特殊方法,用来定义对象的初始状态。
3、构造方法在_创建对象_时被调用。
4、系统类Math的random()方法可用来产生0-1.0之间的实数,则产生一个50
-100之间的整数的程序语句是_(int)Math.random()*50+50。
5、下面代码执行结束之后,打印出来的结果是__4?
publicclassHappy{
publicstaticvoidmain(Stringargs[]){
inti=4;intj=2;methodA(ij);
}
System.out.printIn(i);_
}_
staticpublicvoidmethodA(inti,intj){
i<<=j;
}
}
☆6、在java语言中,有一个类是所有类和接口的父类,这个类的名称是
java.lang.Obiect(Obiect)。
7、构造方法在__创建对象_时被调用。
8、、ava运行系统通过垃圾回收机制/GC周期性的释放无用对象所占用的内存,以完成对象的消除。
9、阅读以下程序,输出结果为_1.23_q
classQ1{
publicstaticvoidmain(Stringargs[]){
doubled=1.23;
Decdec=newDec();
dec.decrement(d);
System.out.println(d);
}
}
classDec{
publicvoiddecrement(doubledecMe){
decMe=decMe-0.1;
}
}
10、阅读程序
publicclassTest{
intx=12;publicvoidmethod1(intx){
x+=x;
System.out.println(x);
}
}
如果有如下的代码段:
Testt=newTest();
t.method1(5);
程序执行到这个地方,代码输出结果是__叱一?
11、定义在类中的变量为成员变量__,它不需要进行显式的初始化,
定义在方法中的变量为__局部变量,它需要进行显式的初始化。
12、面向对象的模型中,最基本的概念是__类和_对象二、多选题
13、下面选项中,_A是合法的构造方法的重载?
/无返回值
publicclassConstOver{
publicConstOver(intx,inty,intz){}
}
A.ConstOver(){}
B.ProtectedintConstOver(){}
C.PrivateConstOver(int乙inty,bytex){}
D.PublicObjectConstOver(intx,inty,intz){}
E.PublicvoidConstOver(bytex,bytey,bytez){}
14、下面说法中__AC___是对方法setVar()重载的方法。
publicclassMethodOver{
publicvoidsetVar(inta,intb,floatc){}
}
A.PrivatevoidsetVar(inta,floatc,intb){}
B.ProtectedvoidsetVar(inta,intb,floatc){}
C.PublicintsetVar(inta,floatc,intb){returna;}
D.PublicintsetVar(inta,intb,floatc){returna;}
E.ProtectedfloatsetVar(inta,intb,floatc){return
c;}
第4章⑵可变参数,static与this练习题一、填空题
1、在下面程序划线处填入适当的内容。
classMyClass{
staticintvar=100;
static
publicstatic
intgetVar(){returnvar;
}
}
2、以下程序段的输出结果为intversion_。
classCruncher{voidcrunch(inti){
System.out.println(“intversion”);
}
voidcrunch(Strings){
System.out.println(“Stringversion”);
}
publicstaticvoidmain(Stringargs[]){
Crunchercrun=newCruncher();charch='p';
crun.crunch(ch);
}
}
3、以下程序段的输出结果为InteaerString。
classIntORString{voidiosM(inti){System.out.print("Integer”);
}
voidiosM(Strings){
System.out.print(“String”);
}
publicstaticvoidmain(Stringargs[])
{
IntORStringios=newIntORString();
ios.iosM(‘a');
ios.iosM("1”);
}
}
4、如果有个类A,该类中有成员变量b和成员方法c(),则在创建该类得对象a
后,对该对象的成员变量和成员方法的调用方式分别是旦^___,a,c()q
5、以下代码段创建了__2_个对象,声明了_3个变量。
Thingitem,stuff;
item=newThing();
Thingentity=newThing();
6、通过类MyClass中的不含参数的构造函数象obj,可通过以下语句实现:
_MyClassobj=newMyClass()_。
7、下面_AD_情况下,系统会为类A自动产生构造函数?
A.classA{}B.classA{publicA(){}}
C.classA{publicA(intx){}}D.classZ{}classAextendsZ{voidA(){}}
8、请问构造函数、成员变量初始化以及静态成员变量初始化三者的先后顺序是_
静态成员变量初始化,成员变量初始化,构造函数Q
9、划线处应填的一句代码:
_this(a)q
publicclassExample{
intx,y;
publicExample(inta){
x=a;
}
publicExample(inta,intb){
_this(a);//调用上面的一个参数的构造方法
y=b;
}
}
10.关键字final—表明一个对象或变量在初始化后不能被修改。
11、类是对象的抽象,是属性和操作的封装体,其中属性是事物静态特征的抽象,
在程序中用数据成员描述,操作是事物动态特征的抽象,在程序中用成员方法描述。
第4章(3)包_访问权限—基本数据类型封装练习题
一、填空题
1、请填出在java.lang包中与下列基本数据类型相对应的封装类:
float:
java.Iang.Float,char:
iava.lang.Character,boolean:
iava.lang.Boolean.
2、java中提供了四种访问控制符,分别是:
public,protected,private,_缺省