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;
}