java语言程序设计课后习题答案

  • 格式:docx
  • 大小:21.43 KB
  • 文档页数:15

java语言程序设计课后习题答案

习题2

3.使用“= =”对相同容的字符串进行比较,看会产生什么样的结果。

答:首先创建一个字符串变量有两种方式:String str = new

String("abc");

String str = "abc";

使用“= =”会因为创建的形式不同而产生不同的结果:

String str1 = "abc";

String str2 = "abc";

System.out.println(str1= =str2); //true String str1 = new

String("abc");

String str2 = "abc";

System.out.println(str1= =str2); //false String str1 = new

String("abc");

String str2 = new String("abc"); System.out.println(str1=

=str2); //false

因此自符串如果是对容进行比较,使用equals方法比较可靠。

String str1 = "abc";

String str2 = "abc";

System.out.println(str1= =str2); //true String str1 = new

String("abc");

String str2 = "abc";

System.out.println(str1.equals(str2));

//true

String str1 = new String("abc");

String str2 = new String("abc");

System.out.println(str1.equals(str2));

//true 5.编写一个程序,把变量n的初始值设置为1678,然后利用除法运算和取余运算把变量的每位数字都提出来并打印,输出结果为:n=1678。n的每位数字是1,6,7,8。若n为任意值呢?

法一:

public class Exercise5{

public static void main(String[] args){

int n=1678;

int unit;

int decimal;

int hundred;

int thousand;

int count;

thousand=n/1000;

count=n%1000;

hundred=count/100;

count=count%100;

decimal=count/10;

count=count%10;

unit=count;

System.out.println("1678包含的数字分别是:

"+thousand+','+hundred+','+decimal+',' +unit);

}

}

//如果n为任意值

import java.io.*;

public class Exercise51{

public static void main(String[] args) throws IOException{

System.out.print("请输入一个整数:");

InputStreamReader

isStream=new InputStreamReader(System.in); BufferedReader bfReader=new BufferedReader(isStream);

String input=bfReader.readLine();

int length=input.length()-1;

int n=new

Integer(input).intValue();

while(length>=0){

int divisor=(int)

Math.pow(10,length);

length=length-1;

int output=n/divisor;

n=n%divisor;

System.out.print(output+",");

}

}

}

法二:(建议使用)

public class Exercise5{

public static void main(String[] args){

int n=1678;

int unit;

int decimal;

int hundred;

int thousand;

thousand=n/1000%10;

hundred=n/100%10;

decimal=n/10%10;

unit=n%10;

System.out.println("1678包含的数字分别是:

"+thousand+','+hundred+','+decimal+',' +unit);

} }

//如果n为任意值

import java.io.*;

public class Exercise51{

public static void main(String[] args) throws IOException{

System.out.print("请输入一个整数:");

InputStreamReader

isStream=new InputStreamReader(System.in);

BufferedReader bfReader=new BufferedReader(isStream);

String input=bfReader.readLine();

int length=input.length()-1;

int n=new

Integer(input).intValue();

while(length>=0){

int divisor=(int)

Math.pow(10,length);

length=length-1;

int output=n/divisor%10;

System.out.print(output+",");

}

}

}

6.编写Java程序,接受用户输入的1-12之间的整数,若不符合条件则重新输入,利用switch语句输出对应月份的天数。import

java.io.*;

public class Exercise6{

public static void main(String[] args) throws IOException{

int n;

do{

System.out.print("请输入1-12之间的整数:"); InputStreamReader

isStream=new InputStreamReader(System.in);

BufferedReader bfReader=new BufferedReader(isStream);

String input=bfReader.readLine();

n=new Integer(input).intValue();

}while(n>12||n<1);

switch(n){

case 2: System.out.println(n+"月份29天");break;

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12: System.out.println(n+"月份31天");break;

case 4:

case 6:

case 9:

case 11: System.out.println(n+"月

份30天");break;

}

} }

7.编写Java程序计算小于一个整数的全部素数并输出。

import java.io.*;

public class Exercise7{

public static void main(String[] args) throws IOException{

System.out.print("请输入一个整数:");

InputStreamReader

isStream=new InputStreamReader(System.in);

BufferedReader bfReader=new BufferedReader(isStream); String input=bfReader.readLine();

int n=new

Integer(input).intValue();

int i;

System.out.println(2);

for(i=2;i

for(int j=2;j<=i/2+1;j++){

if (i%j==0) break;

if (j==i/2+1)

System.out.println(i);

} }

}}

9.编写Java程序实现:输入一组整数存放在数组中,比较并输出其中的最大值和最小值;在将数组元素从小到大排序并输出。import java.io.*;

public class Exercise9{

public static void main(String[] args) throws IOException{

final int N=5;

int[] intArray=new int[N];

//数组的赋值

for(int i=0;i

System.out.print("数组的第"+i+"个元素是:");

InputStreamReader isStream=new

InputStreamReader(System.in);

BufferedReader bfReader=new BufferedReader(isStream);

String input=bfReader.readLine();

int n=new

Integer(input).intValue();

intArray[i]=n;

}