java从入门到精通 答案_JAVA从入门到精通习题

JAVA从入门到精通习题

1.编写一个程序,定义局部变量sum,并求出1+2+3+…+99+100之和,赋值给sum,并输出sum的值。

public class Test {

public static void main(String args[]){

int sum=0;

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

sum=sum+i;

}

System.out.println("1+2+3+...+100="+sum);

}

}

2.编写程序,要求运行后要输出long类型数据的最小数和最大数。

public class Test {

public static void main(String args[]){

Long m=Long.MAX_VALUE;

Long n=Long.MIN_VALUE;

System.out.println("long类型的最大数是:"+m+",最小数是:"+n);

}

}

3.编写程序,计算表达式“((123456799)>(976543213))? true : false”的值。

public class Test {

public static void main(String args[]){

Boolean result=((12345679*9)>(97654321*3))?true:false;

System.out.println(result);

}

}

4.编写程序,实现生成一随机字母(a-z,A-Z),并输出,运行结果如下图所示。

拓展知识。

⑴ Math.random()返回随机 double 值,该值大于等于 0.0 且小于 1.0。

例如: double rand = Math.random(); // rand 储存着[0,1) 之间的一个小数

⑵ 大写字母A~Z对应整数65 ~ 90、小写字母a~z对应整数97 ~ 122。

public class Test {

public static void main(String args[]){

int a=(int)(Math.random()*(122-65)+65);

if(a>=65&&a<=90||a>=97&&a<=122){

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

}else{

System.out.println("无字母输出");

}

}

}

5.编写程序,实现产生(或输入)一随机字母(a-z,A-Z),转为大写形式,并输出。

public class Test {

public static void main(String args[]){

int a=(int)(Math.random()*(122-65)+65);

if(a>=65&&a<=90){

System.out.println("转换前:"+(char)a);

System.out.println("转换后:"+(char)a);

}else if(a>=97&&a<=122){

System.out.println("转换前:"+(char)a);

System.out.println("转换后:"+(char)(a-32));

}else{

System.out.println("无字母输出");

}

}

}

6.编写程序,使用程序产生1-12之间的某个整数(包括1和12),然后输出相应月份的天数(2月按28天算)。运行结果如下图所。

public class Test {

public static void main(String args[]){

int month=(int)(Math.random()*12+1);

switch (month){

case 1:

System.out.println("1月共有31天");

break;

case 2:

System.out.println("2月共有28天");

break;

case 3:

System.out.println("3月共有31天");

break;

case 4:

System.out.println("4月共有30天");

break;

case 5:

System.out.println("5月共有31天");

break;

case 6:

System.out.println("6月共有30天");

break;

case 7:

System.out.println("7月共有31天");

break;

case 8:

System.out.println("8月共有31天");

break;

case 9:

System.out.println("9月共有30天");

break;

case 10:

System.out.println("10月共有31天");

break;

case 11:

System.out.println("11月共有30天");

break;

case 12:

System.out.println("12月共有31天");

break;

default:

System.out.println("输出错误");

break;

}

}

}

7.编写程序,判断某一年是否是闰年。

import java.util.Scanner;

public class Test {

public static void main(String args[]){

System.out.println("请输入年份:");

Scanner scanner=new Scanner(System.in);

int year=scanner.nextInt();

if(year<0||year>3000){

System.out.println("输入错误");

}

if(year%4==0&&year%100!=0){

System.out.println(year+"年是闰年");

}else if(year%400==0){

System.out.println(year+"年是闰年");

}else{

System.out.println(year+"年不是闰年");

}

}

}

8.编写程序,对int[] a = {25, 24, 12, 76, 98, 101, 90, 28}数组进行排序。排序算法有很多种,读者可先编写程序实现冒泡法排序,运行结果如下图所示。(注:冒泡排序也可能有多种实现版本,本题没有统一的答案。)

public class Test {

public static void main(String args[]){

int[] a={25,24,12,76,98,101,90,28};

System.out.println("排序前数组a元素为:");

for(int i=0;i

System.out.print("a["+i+"]="+a[i]+" ");

}

System.out.println(" ");

for(int j=0;j

for(int k=0;k

if(a[k]>a[k+1]){

int temp=a[k];

a[k]=a[k+1];

a[k+1]=temp;

}

}

}

System.out.println("排序后数组a元素为:");

for(int m=0;m

System.out.print("a["+m+"]="+a[m]+" ");

}

}

}

9.定义一个包含name、age和like属性的Person类,实例化并给对象赋值,然后输出对象属性。

class Person{

String name;

int age;

String like;

public Person(String name,int age,String like){

this.name=name;

this.age=age;

this.like=like;

}

public void print(){

System.out.println("姓名:"+name+",年龄:"+age+",喜欢:"+like);

}

}

public class Test {

public static void main(String args[]){

Person p[]=new Person[3];

p[0]=new Person("张三",20,"猫");

p[1]=new Person("李四",56,"狗");

p[2]=new Person("王五",12,"猪");

for(int i=0;i

p[i].print();

}

}

}

10.定义一个book类,包括属性title(书名)和price(价格),并在该类中定义一个方法printInfo(),来输出这2个属性。然后再定义一个主类,其内包括主方法,在主方法中,定义2个book类的实例bookA和bookB,并分别初始化title和price的值。然后将bookA赋值给bookB,分别调用printInfo(),查看输出结果并分析原因。

class Book{

String title;

int price;

public Book(String title,int price){

this.title=title;

this.price=price;

}

public void printInfo(){

System.out.println("书名:"+title+",价格:"+price);

}

}

public class Test {

public static void main(String args[]){

Book bookA=new Book("老人与海",56);

Book bookB=new Book("百万富翁",70);

bookB=bookA;

bookA.printInfo();

bookB.printInfo();

}

}

11.定义一个book类,包括属性title(书名)、price(价格)及pub(出版社),pub的默认值是“天天精彩出版社”,并在该类中定义方法getInfo(),来获取这三个属性。再定义一个公共类BookPress,其内包括主方法。在主方法中,定义3个book类的实例b1,b2和b3,分别调用各个对象的getInfo()方法,如果“天天精彩出版社”改名为“每日精彩出版社”,请在程序中实现实例b1,b2和b3的pub改名操作。

class Book{

String title;

int price;

String pub;

public Book(String title,int price){

this.title=title;

this.price=price;

this.pub="天天精彩出版社";

}

public void getInfo(){

System.out.println("书名:"+title+",价格:"+price+",出版社:"+pub);

}

public void setPub(String pub){

this.pub=pub;

}

}

public class Test {

public static void main(String args[]){

Book b1=new Book("老人与海",56);

Book b2=new Book("百万富翁",70);

Book b3=new Book("海蒂",42);

b1.setPub("每日精彩出版社");

b1.getInfo();

b2.getInfo();

b3.getInfo();

}

}

12.编程实现,现在有如下的一个数组。

int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}

要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为。

int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5}

提示

需要确定新数组的大小,需要知道原始数组之中不为0的个数,可编写一个方法完成;根据统计的结果开辟一个新的数组;将原始数组之中不为0的数据拷贝到新数组之中。)

public class Test {

public static void main(String args[]){

int[] oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};

for(int j:oldArr){

System.out.print(j+" ");

}

System.out.println(" ");

int count=0;

for(int i=0;i

if(oldArr[i]==0){

count=count+1;

}

}

System.out.println("0的个数:"+count);

int[] newArr=new int[oldArr.length-count];

int m=0;

for(int k=0;k

if(oldArr[k]!=0){

newArr[m]=oldArr[k];

m++;

}

}

for(int n:newArr){

System.out.print(n+" ");

}

}

}

13.编程实现,要求程序输出某两个整数之间的随机数。

import java.util.Scanner;

public class Test {

public static void main(String args[]){

你可能感兴趣的:(java从入门到精通,答案)