Java基础教程(第3版)习题答案
- 格式:docx
- 大小:91.47 KB
- 文档页数:39
部分习题答案
第一章
答案】答案见教材 <略>。
第二章
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 1. 请说明注释的作用。
【答案】答案见教材 <略
2. 判断下列那些是标识符?
(1) 3class
(2) byte
(3) ? room
(4) Beijing
(5) beijing 【答案】
(1)(2)(3)不是标识符,
不能以?开始。
3. 请指出下列声明字符变量
(1) char ch = 'A';
(2) char ch = '\u0020';
(3) char ch = 88;
(4) char ch = 'ab';
(5) char ch = "A";
【答案】 (4)错,因为关键字 >。
因为标识符不能已数字开始, 也不能是保留关键字 (如 byte),
ch 的语句是否存在错误?如果有,请改正。
char 是用于声明字符变量,不可声明字符串变量。 ("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= ””+ ”+“ 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;iv=9;i++)
for(j=1;j<=i;j++)
System.out .p rint(j+"*"+i+"="+i*j+"");
System.out. printlnO;
11.请编写程序实现如下效果图。
F J N
Q
S
T
【答案】
public class xt0211{
p ublic static void main( Stri ng
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. prin
t("");
for(j=1;j<=i;j++)
{
num=nu m+1; ch=(char) num;
System.out .prin t(ch+” ");
}
System.out. prin tl n();
}
for(i=1;i<=4;i++)
{
for(k=1;k<=i-1;k++)
System.out. prin
t(""); D G
K
O int i,j;
for(j=1;j<=5-i;j++){
sum=sum+i;
num=num+1; ch=(char)num;
System.out.print(ch+" "); }
System.out.println();
} } 12. 分别利用 【答案】 /*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
{for语句'While语句以及do while语句编写一个求和程序 (即sum=1+2+3+…+n)。
语句实现 */