Java2实用教程第5版习题解答Word文件下载.docx
《Java2实用教程第5版习题解答Word文件下载.docx》由会员分享,可在线阅读,更多相关《Java2实用教程第5版习题解答Word文件下载.docx(77页珍藏版)》请在冰豆网上搜索。
}
}
classXiti{
publicstaticvoidmain(Stringargs[]){
Personzhang=newPerson();
zhang、speakHello();
(a)上述源文件的名字就是什么?
(b)编译上述源文件将生成几个字节码文件?
这些字节码文件的名字都就是什么?
(c)在命令行执行javaPerson得到怎样的错误提示?
执行javaxiti得到怎样的错误提示?
执行javaXiti、class得到怎样的错误提示?
执行javaXiti得到怎样的输出结果?
1.(a)Person、java。
(b)两个字节码,分别就是Person、class与Xiti、class。
(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError:
Xiti/class”,得到“您好,很高兴认识您nicetomeetyou”
习题2(第2章)
一、问答题
1.什么叫标识符?
标识符的规则就是什么?
false就是否可以作为标识符。
2.什么叫关键字?
true与false就是否就是关键字?
请说出6个关键字。
3.Java的基本数据类型都就是什么?
4.float型常量与double型常量在表示上有什么区别?
5、怎样获取一维数组的长度,怎样获取二维数组中一维数组的个数。
1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。
标识符由字母、下划线、美元符号与数字组成,第一个字符不能就是数字。
false不就是标识符。
2.关键字就就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。
true与false不就是关键字。
6个关键字:
classimplementsinterfaceenumextendsabstract。
3.boolean,char,byte,short,int,long,float,double。
4.float常量必须用F或f为后缀。
double常量用D或d为后缀,但允许省略后缀。
5.一维数组名、length。
二维数组名、length。
2.下列哪三项就是正确的float变量的声明?
adf
A、floatfoo=-1;
B、floatfoo=1、0;
C、floatfoo=42e1;
D、floatfoo=2、02f;
E、floatfoo=3、03d;
F、floatfoo=0x0123;
3.下列哪一项叙述就是正确的?
b
A、char型字符在Unicode表中的位置范围就是0至32767
B、char型字符在Unicode表中的位置范围就是0至65535
C、char型字符在Unicode表中的位置范围就是0至65536
D、char型字符在Unicode表中的位置范围就是-32768至32767
4.以下哪两项就是正确的char型变量的声明?
be
A、charch="
R"
;
B、charch='
\\'
C、charch='
ABCD'
D、charch="
ABCD"
E、charch='
\ucafe'
F、charch='
\u10100'
5.下列程序中哪些【代码】就是错误的?
2345
publicclassE{
intx=8;
byteb=127;
//【代码1】
b=x;
//【代码2】
x=12L;
//【代码3】
longy=8、0;
//【代码4】
floatz=6、89;
//【代码5】
6.对于inta[]=newint[3];
下列哪个叙述就是错误的?
A、a、length的值就是3。
B、a[1]的值就是1。
C、a[0]的值就是0。
D、a[a、length-1]的值等于a[2]的值。
1.C。
2.ADF。
3.B。
4.BE。
5.【代码2】【代码3】【代码4】【代码5】。
6.B。
三、阅读或调试程序
1.属于操作题,解答略。
2.属于操作题,解答略。
3.属于操作题,解答略。
4、下列程序标注的【代码1】,【代码2】的输出结果就是什么?
publicclassE{
publicstaticvoidmain(Stringargs[]){
long[]a={1,2,3,4};
long[]b={100,200,300,400,500};
b=a;
System、out、println("
数组b的长度:
"
+b、length);
b[0]="
+b[0]);
5、下列程序标注的【代码1】,【代码2】的输出结果就是什么?
int[]a={10,20,30,40},b[]={{1,2},{4,5,6,7}};
b[0]=a;
b[0][1]=b[1][3];
System、out、println(b[0][3]);
System、out、println(a[1]);
4.【代码1】:
4。
【代码2】:
b[0]=1。
5.【代码1】:
40。
7
四、编写程序
1.编写一个应用程序,给出汉字‘您’、‘我’、‘她’在Unicode表中的位置。
2.编写一个Java应用程序,输出全部的希腊字母。
1、publicclassE{
System、out、println((int)'
您'
我'
她'
2、publicclassE{
publicstaticvoidmain(Stringargs[]){
charcStart='
α'
cEnd='
ω'
for(charc=cStart;
c<
=cEnd;
c++)
System、out、print("
"
+c);
习题3(第3章)
1.关系运算符的运算结果就是怎样的数据类型?
2.if语句中的条件表达式的值就是否可以就是int型?
3.while语句中的条件表达式的值就是什么类型?
4.switch语句中必须有default选项码?
5.在while语句的循环体中,执行break语句的效果就是什么?
6.可以用for语句代替while语句的作用不?
1.boolean
2.不可以
3.boolean
4、不就是必须的
5.结束while语句的执行
6.可以
1.下列哪个叙述就是正确的?
a
A、5、0/2+10的结果就是double型数据。
B.(int)5、8+1、0的结果就是int型数据。
C.'
苹'
+'
果'
的结果就是char型数据。
D.(short)10+'
a'
的结果就是short型数据。
2.用下列哪个代码替换程序标注的【代码】会导致编译错误?
c
A.m-->
0B.m++>
0C.m=0D.m>
100&
&
true
publicstaticvoidmain(Stringargs[]){
intm=10,n=0;
while(【代码】){
n++;
}
3.假设有intx=1;
以下哪个代码导致“可能损失精度,找到int需要char”这样的编译错误。
c
A.shortt=12+'
B.charc='
+1;
C.charm='
+x;
D.byten='
1.A。
2.C。
3.C。
1.下列程序的输出结果就是什么?
publicstaticvoidmain(Stringargs[]){
charx='
y='
e'
z='
吃'
if(x>
'
A'
){
y='
z='
else
酸'
甜'
System、out、println(x+"
"
+y+"
+z);
2、下列程序的输出结果就是什么?
charc='
\0'
for(inti=1;
i<
=4;
i++){
switch(i){
case1:
c='
J'
System、out、print(c);
case2:
break;
case3:
p'
default:
好"
}
3、下列程序的输出结果就是什么?
publicstaticvoidmain(String[]args){
intx=1,y=6;
while(y-->
0){
x--;
x="
+x+"
y="
+y);
x=0,y=5
x=-1,y=4
x=-2,y=3
x=-3,y=2
x=-4,y=1
x=-5,y=0
x=-5,y=-1
1.您,苹,甜
2.Jeep好好
3.x=-5,y=-1
四、编程序题
1.编写应用程序求1!
+2!
+…+10!
。
2.编写一个应用程序求100以内的全部素数。
3.分别用do-while与for循环计算1+1/2!
+1/3!
+1/4!
……的前20项与。
4.一个数如果恰好等于它的因子之与,这个数就称为“完数”。
编写应用程序求1000之内的所有完数。
5.编写应用程序,使用for循环语句计算8+88+888…前10项之与。
6.编写应用程序,输出满足1+2+3…+n<
8888的最大正整数n。
1.publicclassXiti1{
doublesum=0,a=1;
inti=1;
while(i<
=20){
sum=sum+a;
i++;
a=a*i;
sum="
+sum);
2.publicclassXiti2{
inti,j;
for(j=2;
j<
=100;
j++){
for(i=2;
=j/2;
if(j%i==0)
break;
if(i>
j/2){
+j);
3.classXiti3{
doublesum=0,a=1,i=1;
do{sum=sum+a;
a=(1、0/i)*a;
=20);
使用do-while循环计算的sum="
for(sum=0,i=1,a=1;
=20;
a=a*(1、0/i);
使用for循环计算的sum="
4.publicclassXiti4{
intsum=0,i,j;
for(i=1;
=1000;
for(j=1,sum=0;
i;
j++){
if(i%j==0)
sum=sum+j;
if(sum==i)
完数:
+i);
5.publicclassXiti5{
intm=8,item=m,i=1;
longsum=0;
for(i=1,sum=0,item=m;
=10;
sum=sum+item;
item=item*10+m;
System、out、println(sum);
6.publicclassXiti6{
intn=1;
longsum=0;
while(true){
sum=sum+n;
if(sum>
=8888)
满足条件的最大整数:
+(n-1));
习题4(第4章)
1.面向对象语言有哪三个特性?
2.类名应当遵守怎样的编程风格?
3.变量与方法的名字应当遵守怎样的编程风格?
4.类体内容中声明成员变量就是为了体现对象的属性还就是行为?
5.类体内容中定义的非构造方法就是为了体现对象的属性还就是行为?
6.什么时候使用构造方法?
构造方法有类型不?
7.类中的实例变量在什么时候会被分配内存空间?
8.什么叫方法的重载?
构造方法可以重载不?
9.类中的实例方法可以操作类变量(static变量)不?
类方法(static方法)可以操作实例变量不?
可以。
不可以。
10.类中的实例方法可以用类名直接调用不?
8.一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者就是参数的个数不同,或者就是参数的类型不同。
9.
10.不可以。
11.简述类变量与实例变量的区别。
12.this关键字代表什么?
this可以出现在类方法中不?
1、封装、继承与多态。
2.当类名由几个单词复合而成时,每个单词的首字母使用大写。
3.名字的首单词的首字母使用小写,如果变量的名字由多个单词组成,从第2个单词开始的其它单词的首字母使用大写。
4.属性
5.行为
6.用类创建对象时。
没有类型
7.用类创建对象时。
9.可以。
11.一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间。
所有对象的类变量都分配给相同的一处内存,对象共享类变量。
12.代表调用当前方法的对象。
b
A.Java应用程序由若干个类所构成,这些类必须在一个源文件中。
B.Java应用程序由若干个类所构成,这些类可以在一个源文件中,也可以分布在若干个源文件中,其中必须有一个源文件含有主类。
C.Java源文件必须含有主类。
D.Java源文件如果含有主类,主类必须就是public类。
2.下列哪个叙述就是正确的?
d
A.成员变量的名字不可以与局部变量的相同。
B.方法的参数的名字可以与方法中声明的局部变量的名字相同。
C.成员变量没有默认值。
D.局部变量没有默认值。
3.对于下列Hello类,哪个叙述就是正确的?
d
A.Hello类有2个构造方法。
B.Hello类的intHello()方法就是错误的方法。
C.Hello类没有构造方法。
D.Hello无法通过编译,因为其中的hello方法的方法头就是错误的(没有类型)。
classHello{
Hello(intm){
intHello(){
return20;
hello(){
4.对于下列Dog类,哪个叙述就是错误的?
A.Dog(intm)与Dog(doublem)互为重载的构造方法。
B.intDog(intm)与voidDog(doublem)互为重载的非构造方法。
C.Dog类只有两个构造方法,而且没有无参数的构造方法。
D.Dog类有3个构造方法。
classDog{
Dog(intm){
Dog(doublem){
intDog(intm){
return23;
voidDog(doublem){
构造方法就是一种特殊的方法,与一般的方法不同就是:
1、构造方法的名字必须与定义她的类名完全相同,没有返回类型,甚至连void也没有。
2、构造方法的调用就是在创建一个对象时使用new操作进行的。
构造方法的作用就是初始化对象。
3、不能被static、final、synchronized、abstract与native修饰。
构造方法不能被子类继承。
5.下列哪些类声明就是错误的?
cd
A)classA
B)publicclassA
C)protectedclassA
D)privateclassA
6.下列A类中【代码1】~【代码5】哪些就是错误的?
14
classTom{
privateintx=120;
protectedinty=20;
intz=11;
privatevoidf(){
x=200;
System、out、println(x);
voidg(){
publicclassA{
Tomtom=newTom();
tom、x=22;
tom、y=33;
tom、z=55;
tom、f();
//【代码4】
tom、g();
//【代码5】
7.下列E类的类体中哪些【代码】就是错误的。
4
classE{
intx;
longy=x;
publicvoidf(intn){
intm;
//【代码3】
intt=n+m;
}
3.D。
4.D。
5.CD。
6.【代码1】【代码4】。
7.【代码4】。
1.说出下列E类中【代码1】~【代码3】的输出结果。
classFish{
intweight=1;
classLake{
Fishfish;
voidsetFish(Fishs){
fish=s;
voidfoodFish(intm){
fish、weight=fish、weight+m;
FishredFish=newFish();
System、out、println(redFish、weight);
Lakelake=newLake();
lake、setFish(redFish);
lake、foodFish(120);
System、out、println(lake、fish、weight);
2.请说出A类中System、out、println的输出结果。
classB{