Java基础教程(第3版)习题答案
- 格式:docx
- 大小:72.39 KB
- 文档页数:27
Java基础教程(第3版)习题答案
部分习题答案
第一章
【答案】答案见教材。
第二章
1. 请说明注释的作用。
【答案】答案见教材。
2. 判断下列那些是标识符?
(1) 3class
(2) byte
(3) ? room
(4) Beijing
(5) beijing
【答案】(1)(2)(3)不是标识符,因为标识符不能已数字开始,也不能是保留关键字(如byte),不能以?开始。
3. 请指出下列声明字符变量ch的语句是否存在错误?如果有,请改正。
(1)char ch = 'A';
(2)char ch = '\u0020';
(3)char ch = 88;
(4)char ch = 'ab';
(5)char ch = "A";
【答案】(4)错,因为关键字char是用于声明字符变量,不可声明字符串变量。
4. 如果int x=1,y=-2,n=10;那么,表达式x+y+(--n)*(x>y&&x>0?(x+1):y)的值是什么类型?结果是多少?
【答案】int型,值为17。
5. 如果int k=1,那么'H'+k的类型是什么?下面语句是否存在差错?如果有,请改正。 (1)int k=1;
(2)char ch1,ch2;
(3)ch1='H'+k;
(4)ch2=98;
【答案】'H'+k的类型为int型。
(3)有错。'H'+k为int型,ch1为char型,将高精度赋给低精度类型时必须实行强制转换。
6. 请指出下面程序在编译时是否会出现错误。如果有,请改正。
public class doubleTointExample {
public static void main(String args[ ]) {
int a;
double b=1,c=2;
a=(int)(b+c);
System.out.println("a="+a);
}
}
【答案】无错误。输出结果:a=3
7. 请指出执行完下面程序后x、y和z的输出值是多少?请上机验证。
public class doubleTointExample {
public static void main(String args[ ]) {
int x,y,z;
x=1;
y=2;
z=(x+y>3?x++:++y);
System.out.println("x="+x);
System.out.println("y="+y);
System.out.println("z="+z);
}
} 【答案】
x=1
y=3
z=3
8. 请指出下面程序片段输出的结果是什么。
int i=1,j=10;
do
{
if (i++>--j) break;
}while(i<5);
System.out.println(“i=”+i+”<--->”+“j=”+j);
【答案】i=5<--->j=6
9. 请分别用if-else语句和switch语句编写实现下列功能的程序。
某同学某门课的成绩可能的结果为1,2,3,4,5。当成绩为1时请输出不及格;成绩为2时请输出及格;成绩为3时请输出中等;成绩为4时请输出良好;成绩为5时请输出优秀。
【答案】
/*if-else描述程序*/
public class xt020901 {
public static void main(String args[ ]) {
int score=4;
if (score==1)
{System.out.println("不及格");}
else if (score==2)
{System.out.println("及格");}
else if (score==3)
{System.out.println("中等");}
else if (score==4)
{System.out.println("良好");}
else {System.out.println("优秀");} }
}
/*switch描述程序*/
public class xt020902 {
public static void main(String args[ ]) {
int score=4;
switch (score)
{
case 1 :
System.out.println("不及格");
break;
case 2 :
System.out.println("及格");
break;
case 3 :
System.out.println("中等");
break;
case 4 :
System.out.println("良好");
break;
case 5 :
System.out.println("优秀");
break;
}
}
}
10. 请编写输出乘法口诀表的程序。
乘法口诀表的部分内容如下:
1*1=1
1*2=2 2*2=3 1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
……
public class xt0210
{
public static void main(String args[ ])
{final double PI = 3.141592654;
double area,r;
area =PI*r*r;
System.out.println(“面积=”+area);
}
}
【答案】
public class xt0210{
public static void main(String args[ ]) {
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
System.out.print(j+"*"+i+"="+i*j+" ");
System.out.println();
}
}
}
11. 请编写程序实现如下效果图。 【答案】
public class xt0211{
public static void main(String args[ ]) {
int i,j,k,num;
char ch;
num='A'-1;
for(i=1;i<=4;i++)
{
for(k=1;k<=4-i;k++)
System.out.print(" ");
for(j=1;j<=i;j++)
{
num=num+1;
ch=(char)num;
System.out.print(ch+" ");
}
System.out.println();
}
for(i=1;i<=4;i++)
{ for(k=1;k<=i-1;k++) System.out.print(" ");
for(j=1;j<=5-i;j++)
{
num=num+1;
ch=(char)num;
System.out.print(ch+" ");
}
System.out.println();
}
}
}
12. 分别利用for语句、while语句以及do while语句编写一个求和程序(即sum=1+2+3+…+n)。【答案】
/*for语句实现*/
public class xt021201{
public static void main(String args[ ]) {
int i,n=100;
long sum=0;
for(i=1;i<=n;i++)
sum=sum+i;
System.out.println("sum[1:n]="+sum);
}
}
/*while语句实现*/
public class xt021202{
public static void main(String args[ ]) {
int i,n=100;
long sum=0;
i=1;
while(i<=n) {
sum=sum+i;
i=i+1;
}
System.out.println("sum[1:n]="+sum);
}
}
/*do while语句实现*/
public class xt021203{
public static void main(String args[ ]) {
int i,n=100;
long sum=0;
i=1;
do
{
sum=sum+i;
i=i+1;
}
while (i<=n);
System.out.println("sum[1:n]="+sum);
}
}
13.编写一个利用简单迭代法求解下列方程的Java程序。
32
-+-=
x x x
24360
参考答案:
//程序名称:xt0213.java
//功能:方程求解的应用