JAVA 2实用教程 习题解答
习题一(第1章)
一、问答题
1.James Gosling
2需3个步骤:
1)用文本编辑器编写源文件。 
2)使用javac编译源文件,得到字节码文件。
3)使用解释器运行程序。
3.由类所构成,应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。不一定,但最多有一个public类。
4.set classpath=D:\jdk\jre\lib\rt.jar;.;
5.  java和class
6.  java Bird 
7. 独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行)
二、选择题
1.B。2.D。
三、阅读程序
1.(a)Person.java。(b)两个字节码,分别是Person.class和Xiti.class。(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError: Xiti/class”,得到“您好,很高兴认识您 nice to meet you”
习题二(第2章)
一、问答题
1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。false不是标识符。
2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。不是关键字。class implements interface enum extends abstract。
3.boolean,char,byte,short,int,long,float,double。
4float常量必须用F或f为后缀。double常量用D或d为后缀,但允许省略后缀。
5一维数组名.length。二维数组名.length。
二、选择题
1.C。2.ADF。3.B。4.BE。5【代码2】【代码3】【代码4】【代码5】6.B。
三、阅读或调试程序
1.属于操作题,解答略。
2.属于操作题,解答略。
3.属于操作题,解答略。
4【代码1】:4。【代码2】:b[0]=1。
5【代码1】:40。【代码2】:7
四、编写程序
1. public class E {
  public static void main(String args[]) {
    System.out.println((int)'');
    System.out.println((int)''); 
    System.out.println((int)'');
  }
}
2.   public class E {
  public static void main (String args[ ]) {
      char cStart='α',cEnd='ω';
      for(char c=cStart;c<=cEnd;c++)
      System.out.print(" "+c);
  }
}
习题三(第3章)
一、问答题
1.boolean
2.不可以
3.boolean
4. 不是必须的
5.结束while语句的执行
6.可以
二、选择题
1.A。 2.C。 3.C。
三、阅读程序
1.你,苹,甜
2.Jeep好好
3.x=-5,y=-1
四、编程序题
1.public class Xiti1 {
  public static void main(String args[]) {
double sum=0,a=1;
int i=1;
      while(i<=10) {
          sum=sum+a;
          i++;
          a=a*i;
      }
      System.out.println("sum="+sum);
  }
}
2.public class Xiti2 {
  public static void main(String args[]) {
    int i,j;
      for(j=2;j<=100;j++) {
        for(i=2;i<=j/2;i++) {
            if(j%i==0)
              break;
          }
          if(i>j/2) {
            System.out.print(" "+j);
          }
    }
  }
}
3.class Xiti3 {
  public static void main(String args[]) {
      double sum=0,a=1,i=1;
      do { sum=sum+a;
          i++;
          a=(1.0/i)*a;
      }
      while(i<=20);
      System.out.println("使用do-while循环计算的sum="+sum);
      for(sum=0,i=1,a=1;i<=20;i++) {
          a=a*(1.0/i);
          sum=sum+a;
      }
      System.out.println("使用for循环计算的sum="+sum);
  }
}
4.public class Xiti4 {
  public static void main(String args[]) {
    int sum=0,i,j;
    for(i=1;i<=1000;i++) {
        for(j=1,sum=0;j<i;j++) {
          if(i%j==0)
              sum=sum+j;
        }
        if(sum==i)
          System.out.println("完数:"+i);
    }
  }
}
5.public class Xiti5 {
  public static void main(String args[]) {
  int m=8,item=m,i=1;
    long sum=0;
    for(i=1,sum=0,item=m;i<=10;i++) {
      sum=sum+item;
        item=item*10+m;
    }
    System.out.println(sum);
  }
}
6. public class Xiti6 {
  public static void main(String args[]) {
    int n=1;
    long sum=0;
    while(true) {
      sum=sum+n;
        n++;
        if(sum>=8888)
          break;
    }
      System.out.println("满足条件的最大整数:"+(n-1));
  }
}
习题四(第4章)
一、问答题
1. 封装、继承和多态。
2.当类名由几个单词复合而成时,每个单词的首字母使用大写。
3.名字的首单词的首字母使用小写,如果变量的名字由多个单词组成,从第2个单词开始的其它单词的首字母使用大写。
4.属性
5.行为
6.用类创建对象时。没有类型
7.用类创建对象时。
8.一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。可以。
9.可以不可以。
10.不可以。
11.一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间。所有对象的类变量都分配给相同的一处内存,对象共享类变量。
12.代表调用当前方法的对象。不可以。
二、选择题
1.B。2.D。3.D。4.D。5.CD。6【代码1】【代码47【代码4
三、阅读程序
1java程序设计教程第二版课后答案航空工业出版社.【代码1:1,【代码2:121,【代码3:121
2sum=-100。
3. 27。
4【代码1:100,【代码2:20.0。
5. 上机实习题目,解答略
6. 上机实习题目,解答略
四、编程题
CPU.java
public class CPU {
  int speed; 
  int getSpeed() {
      return speed;
  }
  public void setSpeed(int speed) {
      this.speed = speed;
  }
}
HardDisk.java
public class HardDisk {
  int amount; 
  int getAmount() {
      return amount;
  }
  public void setAmount(int amount) {
      this.amount = amount;
  }
}
PC.java
public class PC {
    CPU cpu;
    HardDisk HD;
    void setCPU(CPU cpu) {
        this.cpu = cpu;
    }
    void setHardDisk(HardDisk HD) {
        this.HD = HD;
    }
    void show(){
      System.out.println("CPU速度:"+Speed());
      System.out.println("硬盘容量:"+HD.getAmount());
    }
}
Test.java
public class Test {
  public static void main(String args[]) {
      CPU cpu = new CPU();