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)。

语句实现 */