2018年4月5日清明节作业整理
1.编写一个Java应用程序,该应用程序包括2个类:Print类和主类E。Print
类里有一个方法output()功能是输出100 ~ 999之间的所有水仙花数(各位数字的
立方和等于这个三位数本身,如: 371 = 33 + 73 + 13。)在主类E的main方法中来
测试类Print。
package liu0917;
public class Print { void output() { for(int i =100;i<=999;i++) { if(Math.pow(i/100,3)+Math.pow(i%10,3)+Math.pow(i/10%10, 3)==i) { System.out.println(i); } } } } |
1 2 3 4 5 6 7 8 9 10 11 |
package liu0917;
public class E {
public static void main(String[] args) { Print pr=new Print(); pr.output(); }
} |
2.编写Java应用程序。首先,定义一个Print类,它有一个方法void output(int
x),如果x的值是1,在控制台打印出大写的英文字母表;如果x的值是2,在
控制台打印出小写的英文字母表。其次,再定义一个主类——TestClass,在主类
的main方法中创建Print类的对象,使用这个对象调用方法output ()来打印出大
小写英文字母表。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
package liu0917;
public class Print2 { int x; void output() { if(x==1) { for(int i =65;i<=90;i++)//大写字母在char类型中的位置 { char a =(char) i; System.out.print(a); } } else if(x==2) { for(int i =97;i<=122;i++) { char a =(char) i; System.out.print(a); } } else { System.out.println("输入有误"); } }
} |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
package liu0917;
import java.util.Scanner;
public class TestClass2 {
public static void main(String[] args) { Print2 pr = new Print2(); Scanner sc = new Scanner(System.in); System.out.println("请输入x的值"); pr.x=sc.nextInt(); pr.output();
}
} |
3、
.按要求编写Java应用程序。
(1)建立一个名叫Cat的类:
属性:姓名、毛色、年龄
行为:显示姓名、喊叫
(2)编写主类:
创建一个对象猫,姓名为“妮妮”,毛色为“灰色”,年龄为2岁,在屏幕上输
出该对象的毛色和年龄,让该对象调用显示姓名和喊叫两个方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
package com.hanqi;
public class Mao { String name,maose; int age;
void xingwei() { System.out.println("猫的姓名:"+name);
System.out.println("猫的叫声:"+"喵喵"); }
} |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
package com.hanqi;
import java.util.Scanner;
public class Test02 {
public static void main(String[] args) { Mao ma=new Mao(); ma.name="妮妮"; ma.maose="灰色"; ma.age=2; Scanner sc=new Scanner(System.in); System.out.println("输入猫的颜色:"); String str=sc.nextLine(); System.out.println("输入猫的年龄:"); int in=sc.nextInt(); if(ma.maose.equals(str)) { ma.xingwei(); } else { System.out.println("查询不到猫信息"); }
}
} |
4、编写程序实现对给定的 4 个整数从大到小的顺序排列。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
package HomeWork01; import java.util.Scanner;
public class HomeWork01 { static int number=4; //输入4个数存放在数组中 static int[] t1 = new int[number]; public static void main(String[] args) { HomeWork01 jiejie=new HomeWork01(); jiejie.shunxun(); } void shunxun(){ System.out.println("请输入4个数:"); Scanner in_t1 = new Scanner(System.in);//循环输入数组 for(int i=0;i<number;i++){ t1[i]=in_t1.nextInt();} for (int i = 0; i < t1.length; i++) { int pos = i; for (int j = i + 1; j < t1.length; j++) { if (t1[pos] > t1[j]) pos = j; } if (pos != i) { t1[i] = t1[i] + t1[pos]; t1[pos] = t1[i] - t1[pos]; t1[i] = t1[i] - t1[pos]; } }
for (int i = t1.length - 1; i >= 0; i--) System.out.print(t1[i] + "\t"); } } |
5、编写程序求一元二次方程的根。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
package HomeWork02; import java.util.Scanner; public class HomeWork02 //△=b^2-4ac的值,若△小于0,一元二次方程无根.若△等于0,一元二次方程有两个相等的根.若△大于0,一元二次方程有两个不相等的实数根 { public static void main(String [] args){ Scanner sc = new Scanner(System.in); System.out.println("输入2次方的系数"); int a = sc.nextInt(); System.out.println("输入1次方的系数"); int b = sc.nextInt(); System.out.println("输入0次方的系数"); int c = sc.nextInt(); if((b*b - 4*a*c)<0){ // 判断方程是否有解 System.out.println("方程无解!"); return; } else{ System.out.println("方程有解!"); } double x1 = (-b + Math.sqrt(b*b - 4*a*c))/2*a; double x2 = (-b - Math.sqrt(b*b - 4*a*c))/2*a; System.out.println("根分别是 " + x1 + "\t" + x2); } } |
6、编写程序,输入一个字符,判断它是否为小写字母,如果是,将它转换成大
写字母,否则,不转换。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package HomeWork03; import java.util.Scanner; public class HomeWork03 { public static void main(String[] args) { //小写字母的ascll值为97-122 //大写字母的ascll值为65-90 System.out.println("请输入一个字母:\n"); Scanner input = new Scanner(System.in); char zimu=input.next().charAt(0); if (zimu>=97&&zimu<=122){ //判断是否是小写字母 System.err.println("该字母是小写字母"); zimu=(char) (zimu-32); //如果是小写字母则 将其转换成大写字母 System.err.println("转换之后的大写字母是:"+zimu); } else{ System.out.println("该字母不是小写字母!"); } } } |
7、输入 3 个正数,判断能否构成一个三角形。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
package HomeWork04; import java.util.Scanner;
public class HomeWork04 { public static void main(String [] args){ int a; int b; int c; System.out.println("请输入三个正整数:"); Scanner in=new Scanner(System.in); a=in.nextInt(); b=in.nextInt(); c=in.nextInt();
if(a<=0||b<=0||c<=0) { System.out.println("输入的必须是正整数!"); } if((a+b)>c&&(a+c)>b&&(b+c)>a) { System.out.println("能构成三角形!"); } else{ System.out.println("不能构成三角形!"); } } } |
8、编写程序,对输入的年、月、日,给出该天是该年的第多少天?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
package HomeWork05; import java.util.Scanner; public class HomeWork05 { public static void main(String[]args){ Scanner sc =new Scanner(System.in); System.out.print("年"); int year=sc.nextInt(); System.out.print("月"); int month=sc.nextInt(); System.out.print("日"); int day=sc.nextInt(); int days=0; switch(month){ case 12:days+=30; case 11:days+=31; case 10:days+=30; case 9:days+=31; case 8:days+=31; case 7:days+=30; case 6:days+=31; case 5:days+=30; case 4:days+=31; case 3: if((year%4==0&&year%100!=0)||(year%400==0)){ days+=29; } else{ days+=28; } case 2:days+=31; case 1:days+=day; } System.out.print("第" + days + "天"); } } |
9、编写程序,从键盘输入一个 0~99999 之间的任意数,判断输入的数是几位
数?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
package HomeWork06; import java.util.Scanner; public class HomeWork06 { public static void main(String[]args){
Scanner sc =new Scanner(System.in); System.out.print("请输入一个0~99999 之间的任意数"); int number=sc.nextInt(); if(number/10000>=1&&number/10000<10){ System.out.println(number+"\t是5位数"); } else if(number/1000>=1){ System.out.println(number+"\t是4位数"); } else if(number/100>=1){ System.out.println(number+"\t是3位数"); } else if(number/10>=1){ System.out.println(number+"\t是2位数"); } else if(number/1>=1){ System.out.println(number+"\t是1位数"); } } } |
10、编写程序,给定一个学生成绩,给出相应等级:
90~100 优秀
80~89 良好
70~79 中等
60~69 及格
0~59 不及格
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
package HomeWork07; import java.util.Scanner; public class HomeWork07 {
public static void main(String[] args) { HomeWork07 jiejie=new HomeWork07(); jiejie.chengjie();
} void chengjie(){ Scanner sc = new Scanner(System.in); System.out.println("请输入学生成绩:"); int a = sc.nextInt(); if(a>=90&&a<=100){ System.out.println("该学生的成绩是"+a+"\t成绩优秀"); } else if(a>=80&&a<90){ System.out.println("该学生的成绩是"+a+"\t成绩良好"); } else if(a>=70&&a<80){ System.out.println("该学生的成绩是"+a+"\t成绩中等"); } else if(a>=60&&a<70){ System.out.println("该学生的成绩是"+a+"\t成绩及格"); } else{ System.out.println("该学生的成绩是"+a+"\t成绩不及格"); } }
} |
11、编写程序,对输入的一个整数,按相反顺序输出该数。例如,输入为 3578,
输出为 8753。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
package HomeWork08; import java.util.Scanner;
public class HomeWork08 {
public static void main(String[]args){ Scanner sc =new Scanner(System.in); System.out.println("请输入一个整数:"); int read = sc.nextInt(); //方法一 reverse()API System.out.println("方法一:"); StringBuilder sb = new StringBuilder(String.valueOf(read)); System.out.println(sb.reverse()); //方法二 将字符串转换成字符数组,反序输出 String str= read +""; char fuzu[]=str.toCharArray(); String temp=""; for(int a=fuzu.length-1;a>=0;a--){ temp=temp+fuzu[a]; } System.out.println("方法二:"); System.out.println(temp);
} } |
12、用 while 循环,计算 1~200 之间所有 3 的倍数之和。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
package HomeWork09;
public class HomeWork09 {
public static void main(String[] args) { // 用while循环,计算1~200之间所有3的倍数之和。 int a=1; int sum=0; while(a<=200){ if(a%3==0){ sum=sum+a; } a++; } System.out.println("1~200之间所有3的倍数之和为:"+sum); } } |
13、编写程序,输出 200~500 之间的所有素数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package HomeWork10; public class HomeWork10 { public static void main(String[] args) { int num=200; while (num<=500) { boolean tag=true; //素数标记 for(int d=2;d<=num-1;d++){ if(num % d==0){ tag=false; break; } } if(tag){ //如果是素数 System.out.println(num); } num++; } } } |
14、使用循环语句输出下面的图形。
#
# # #
# # # # #
# # # # # # #
# # # # # # # # #
1 2 3 4 5 6 7 8 9 10 11 12 13 |
package HomeWork12; public class HomeWork12 { public static void main(String[] args) { int aa=-1; for( int a=0;a<5;a++){ aa+=2; for(int b=1;b<=aa;b++){ System.out.print( "#" ); } System.out.println();}
} } |
15、验证“鬼谷猜想”:对任意自然数,若是奇数,就对它乘以 3 再加 1;若是
偶数,就对它除以 2,这样得到一个新数,再按上述计算规则进行计算,一直进
行下去,最终必然得到 1。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
package HomeWork13; import java.util.Random;; public class HomeWork13 { public static void main(String[] args) { /* * 验证“鬼谷猜想”:对任意自然数,若是奇数, * 就对它乘以3再加1;若是 偶数,就对它除以2, * 这样得到一个新数, * 再按上述计算规则进行计算, * 一直进 行下去,最终必然得到1。 */ int num; Random rd=new Random(); //Integer.MAX_VALUE为最大的整数 num=1+rd.nextInt(Integer.MAX_VALUE);//产生数的范围-2[31]----2[31]-1 //System.err.println(rd.nextInt(100));//产生数>=0且<100 System.out.println("原本的数为"+num); while(num!=1){ System.out.println("产生的新数是"+num); if(num%2==0){ //偶数 num=num/2; } else{ num=num*3+1; } } System.out.println(num); } } |
16、编程求 1~10000 之间的所有“完全数”,完全数是该数的所有因子之和等于该数的数。例如,6 的因子有 1、2、3,且 6=1+2+3,所以 6 是完全数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
package HomeWork14;
public class HomeWork14 { public static boolean isyinzi(int num ){ int sum=0; //判断一个整数是不是一个完全数 for(int d=num-1;d>=1;d--){ if(num%d==0){ sum+=d; } } return sum==num; }
public static void main(String[] args) { // TODO Auto-generated method stub /* * 编程求1~10000之间的所有“完全数”, * 完全数是该数的所有因子之和等 * 于该数的数。例如,6的因子有1、2、3, * 且6=1+2+3,所以6是完全数*/ for(int a=1;a<=1000;a++){ int num=a; if(isyinzi(num)){ System.out.println(num); } }
}
} |
17、一个整数的各位数字之和能被 9 整除,则该数也能被 9 整除。编程验证给
定的整数能否被 9 整除。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
package HomeWork15; import java.util.Random; public class HomeWork15 { public static void panduan(int num){ int b=num/100; //百位数 int s=num%100/10; //十位数 int g=num%10; //个位数 if(num%9==0){ System.out.println(num+"能被9整除"); if((b+s+g)%9==0){ System.out.println("同时"+num+"的各个位数之和也能被9整除"); } else{ System.out.println("但是"+num+"的各个位数之和不能被9整除"); } } else System.out.println("next test!");
} public static void main(String[] args) { Random rd=new Random(); int shu=10+rd.nextInt(90); shu =shu *9; panduan(shu); } } |
17、水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等
于它本身。(例如:1^3 + 5^3 + 3^3 = 153)。编程求出所有三位的水仙花数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package HomeWork17; public class HomeWork17 { public static void main(String[] args) { for(int num=100;num<1000;num++){ if(isshuixian(num)){ System.out.println(num); } } } //判断一个数是不是水仙花数 public static boolean isshuixian(int num){ int b=num/100; int s=num%100/10; int g=num%10; return Math.pow(b, 3) +Math.pow(s, 3) +Math.pow(g, 3)==num?true:false; } } |
20、将一个正整数分解质因数。例如:输入 90,打印出 90=2*3*3*5。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
package HomeWork20; import java.util.Scanner; public class HomeWork20 { public static void main(String[] args) { System.out.println("请输入一个整数:"); Scanner sc=new Scanner(System.in); int num=sc.nextInt(); System.out.println(num+"的质因数有:"); for(int i=2;i<num;i++){ while(num%i==0){ num/=i; System.out.print(i+" "); } } System.out.print(" "+num); }
} |