java2实用教程课后习题答案(第三版读程序题)

更新时间:2023-10-13 15:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

读程序题

第二章

4. 下列哪些语句是错误的:

int x = 8; byte b = 127; b = x;

答:b=x语句错误;原因是高级别的变量赋值给低级别的变量时,一定要用显式转换即b=(byte)x; 。 5. 下列程序的输出结果是什么?

public class E {

}

答: 数组b的长度:4 b[0]=1

6. 上机运行下列程序,注意观察输出结果。

public class E {

}

答: 低住佐佑佒体佔何佖佗佘余佚佛作佝佞佟你佡

7. System.out.println(“你好”);可输出字符串,也可以使用System.out.println( )输出变量或表达

式的值,只需使用并置符号“+”将变量、表达式或一个常数值与一个字符串并置即可,如: System.out.println(“ ”+x);System.out.println(“:”+123+“大于”+122);等。上机调试下列程序,注意观察结果,特别注意System.out.print( )和System.out.println( )的区别。

public class OutputData {

public static void main(String args[]) {

int x=234,y=432;

System.out.println(x+\System.out.print(\我输出结果后不回车\

public static void main(String args[]) { }

for(int i=20302;i<20322;i++) { }

System.out.println((char)i);

public static void main(String args[]) { }

long[] a={1,2,3,4};

long[] b={100,200,300,400,500}; b=a;

System.out.println(\数组b的长度:\System.out.println(\

}

}

System.out.println(\我输出结果后自动回车到下一行\System.out.println(\System.out.println(\

答: 234<468

我输出结果后不回车我输出结果后自动回车到下一行 x+y= 666 234432=234432

第三章

1. 下列程序的输出结果是什么?

public class E {

}

答: 你爱她

2. 下列程序的输出结果是什么?

public class E3 {

public static void main(String args[]) {

char c='\\0';

for(int i=1;i<=4;i++) {

switch(i) {

case 1:c='b'; System.out.print(c); case 2:c='e'; System.out.print(c); break;

public static void main(String args[]) { }

char x='你',y='e',z='吃'; if(x>'A') { } else

y='我'; z='她';

y='爱'; z='情';

System.out.println(\

}

}

}

}

case 3:c='p'; System.out.print(c); default:

System.out.print(\

答:beep!!

12.下列程序有什么错误?

public class Takecare {

int a=90;

static float b=10.98f;

public static void main(String args[]) { } }

答: 语句float c=a+b;错误。原因是类方法main操作了实例变量a。 13. 请写出下列程序的输出结果。

class A {

}

class B extends A {

}

public class E {

public static void main(String args[]) { }

A a=new B(); int m=a.f(10);

System.out.println(m);

publicint f(int x) { }

return x*x;

publicint f(int x) { }

return x+1;

float c=a+b;

System.out.println(\

} 答: 100

14. 请写出下列程序的输出结果。

class A {

} class B {

}

public class E {

} 答: 8 100

public static void main(String args[]) { }

A a=new A(); a.setX(8);

System.out.println(a.getX()); B b=new B(); b.f(a);

System.out.println(a.getX()); public void f(A a) { }

a.setX(100); int x;

public void setX(int x) { }

intgetX() { }

return x;

this.x=x;

3. String类的public char charAt(int index)方法可以得到当前字符串index位置上的一个字符。说

出下列程序的输出结果。 public class E3 {

public static void main(String args[]) {

String s=\中国科学技术大学\

}

}

char a=s.charAt(2),b=s.charAt(6); System.out.print(a); System.out.println(b);

答: 科大

4. 使用java.util包中的Arrays类的静态方法public static void sort(double a[])可以把参数a指

定的double型数组按升序排序,使用java.util包中的Arrays类的静态方法public static void sort(double a[],intstart,int end)可以把参数a指定的double型数组中从位置start到end-1位置的数按升序排序。写出下列程序的输出结果。 importjava.util.*; public class E4 {

}

答: -987,23,67,89,90,12.89,34.0,90.87,678.987,-98.78,0.89,

5. 使用java.lang包中System类的静态方法arraycopy可以实现数组的快速复制,上机实习下列程序,

并总结出arraycopy方法参数的使用规则。 public class ArrayCopy {

public static void main(String args[]) {

char a1[]={'a','b','c','d','e','f'},b1[]={'1','2','3','4','5','6'}; System.arraycopy(a1,0,b1,1,a1.length-1); System.out.println(new String(a1)); System.out.println(new String(b1));

byte a2[]={97,98,99,100,101,102},b2[]={65,67,68,69,70,71}; System.arraycopy(b2,0,a2,3,b2.length-3); System.out.println(new String(a2)); System.out.println(new String(b2)); public static void main(String args[]) { }

int a[]={23,67,89,90,-987};

double b[]={12.89,90.87,34,678.987,-98.78,0.89}; Arrays.sort(a); Arrays.sort(b,1,4); for(int i=0;i<=4;i++) { }

for(int i=0;i

System.out.print(b[i]+\System.out.print(a[i]+\

}

}

答:①运行结果:abcdef 1abcde abcACD

ACDEFG

②arraycopy的方法是public static void arraycopy(Object src, intsrcPos, Object dest,

intdestPos, int length)。其中五个参数分别表示: src - 被复制的数组

srcPos - 从第几个元素开始复制

dest - 要复制到的数组

destPos - 从第几个元素开始粘贴 length - 一共需要复制的元素个数

本文来源:https://www.bwwdw.com/article/cr4f.html

Top