1,编写Java程序,从键盘上输入10个数,赋值给一个长度为10的数组,利用冒泡排序法为数组排序。
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
int[] a=new int[10];
Scanner sc = new Scanner(System.in);
System.out.println("请输入10个数");
for(int i=0;i<a.length;i++) {
System.out.println("请输入第"+(i+1)+"个数");
a[i]=sc.nextInt();
}
for(int i=0;i<a.length-1;i++) {
for(int j=0;j<a.length-1-i;j++) {
if(a[j]>a[j+1]) {
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
System.out.println("排序后数列为");
for(int i=0;i<a.length;i++) {
System.out.print(a[i]+"\t");
}
}
}
2,判断101-200之间有多少个素数,并输出所有素数。
public class Demo2 {
public static void main(String[] args) {
int count=0;
int[] a=new int[50];
for(int i=101;i<=200;i++) {
if(isPrime(i)) {
a[count]=i;
count++;
}
}
System.out.println("101-200之间共有"+count+"个素数");
System.out.println("它们分别是:");
for(int i=0;i<count;i++) {
System.out.print(a[i]+"\t");
}
}
public static boolean isPrime(int num) {
boolean isprime=true;
int len=num/2;
for(int i=2;i<len;i++) {
if(num%i==0) {
isprime=false;
break;
}
}
if(num==2) {
return true;
}
return isprime;
}
}
3,编写程序,求1!+2!+3!+…n!的和,n的值由键盘输入。
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("求1!+2!+3!+...n!的和,请输入n的值");
int n=sc.nextInt();
int sum=0;
for(int i=1;i<=n;i++) {
sum+=Fac(i);
}
System.out.println("结果为"+sum);
}
public static int Fac(int num) {
int mul=1;
for(int i=num;i>0;i--) {
mul*=i;
}
return mul;
}
}
4,编写程序,将一个偶数分解成两个素数的和并输出。
import java.util.Scanner;
public class Demo4 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个正偶数");
int n;
while(true) {
n = sc.nextInt();
if(n<=0||n%2!=0) {
System.out.println("输入的数不是正偶数,请重新输入");
}
else if(n==2){
System.out.println("2不能拆分");
}
else {
break;
}
}
for(int i=2;i<n/2;i++) {
if(isPrime(i)&&isPrime(n-i)) {
System.out.println(n+"="+i+"+"+(n-i));
break;
}
}
}
public static boolean isPrime(int num) {
boolean isprime=true;
int len=num/2;
for(int i=2;i<len;i++) {
if(num%i==0) {
isprime=false;
break;
}
}
if(num==2) {
return true;
}
return isprime;
}
}
5,编写程序,求出m和n的最大公约数和最小公倍数。
import java.util.Scanner;
public class Demo5 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int m,n;
System.out.println("请输入两个数");
System.out.println("请输入第一个数");
m=sc.nextInt();
System.out.println("请输入第二个数");
n=sc.nextInt();
System.out.println("最大公约数为:"+gcd(m,n));
System.out.println("最小公倍数为:"+lcm(m,n));
}
public static int gcd(int m,int n) {
while(m%n!=0) {
int r = m%n;
m = n;
n = r;
}
return n;
}
public static int lcm(int m,int n) {
return m*n/gcd(m,n);
}
}
6,定义字符串str1和str2,str1为String类型,str2为StringBuffer类型,并初始化,进行以下操作:
(1)输出两个字符串的长度;
(2)将str1反序输出,例如str1=“today”,则输出"yadot";
(3)将字符串str2向右移动三位输出,例如str2=“todayisgood”,则输出"oodtodayisg"。
public class Demo6 {
public static void main(String[] args) {
String str1="today";
StringBuffer str2 = new StringBuffer("todayisgood");
System.out.println("str1的长度为"+str1.length());
System.out.println("str2的长度为"+str2.length());
System.out.println("str1反序输出为");
for(int i = str1.length()-1;i>=0;i--) {
char a = str1.charAt(i);
System.out.print(a);
}
System.out.println("\nstr2向右移动三位输出为:");
for(int j = 0;j<str2.length();j++) {
System.out.print(str2.charAt((str2.length()+j-3)%str2.length()));
}
}
}
7,编写程序,利用选择法实现数组排序
public class Demo7 {
public static void main(String[] args) {
int[] arr={1,3,2,45,65,33,12};
System.out.println("排序前:");
for(int num:arr){
System.out.print(num+" ");
}
for(int i = 0; i < arr.length - 1; i++) {
int k = i;
for(int j = k + 1; j < arr.length; j++){
if(arr[j] < arr[k]){
k = j;
}
}
if(i != k){
int temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
}
}
System.out.println();
System.out.println("排序后:");
for(int num:arr){
System.out.print(num+" ");
}
}
}
8,将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
import java.util.Scanner;
public class Demo8 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个正整数");
int m = sc.nextInt();
int n = 2;
System.out.print(m+"=");
while(n<=m) {
if(n==m) {
System.out.print(m);
break;
}
else if(m%n==0) {
System.out.print(n+"*");
m/=n;
}
else {
n++;
}
}
}
}
9,编写类Animal,该类包含私有属性name、age,公有方法void showInfo()。为Animal类添加构造器和属性访问器。定义主类Demo9,在主方法中实例化Animal类,并且用构造器和属性访问器分别为name和age赋值,调用showInfo方法输出属性信息。
public class Demo9 {
public static void main(String[] args) {
Animal a = new Animal("狗");
a.setAge(5);
a.showInfo();
}
}
public class Animal {
private String name;
private int age;
public Animal(String name) {
this.name=name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void showInfo(){
System.out.println("名字是:"+name);
System.out.println("年龄是:"+age+"岁");
}
}
10,编写类Person,该类包含公有属性name、age,公有方法void showInfo(),方法输出两个属性name和age。编写Person类的子类Student类,该类中定义公有属性StuID,重写父类的showInfo方法,输出三个属性的信息。定义主类,在主方法中实例化Student类和Person类,为每个属性赋值,调用showInfo()方法输出所有属性信息。
public class Demo10 {
public static void main(String[] args) {
Person p = new Person("张三",25);
Student s = new Student("小明 ",18,"12332100");
p.showInfo();
s.showInfo();
}
}
public class Person {
public Person() {
}
public Person(String name, int age) {
this.name=name;
this.age=age;
}
public String name;
public int age;
public void showInfo() {
System.out.println("名字是:"+name);
System.out.println("年龄是:"+age+"岁");
}
}
public class Student extends Person{
public Student(String name, int age, String StuID) {
this.name=name;
this.age=age;
this.StuID=StuID;
}
public String StuID;
public void showInfo() {
System.out.println("名字是:"+name);
System.out.println("年龄是:"+age+"岁");
System.out.println("ID是:"+StuID);
}
}
11,编写接口Shape,该接口包含符号常量PI,抽象方法getArea()。定义两个普通类Rectangle和Circle,两个类都要求声明Shape接口。在Rectangle类中复写getArea()方法求矩形面积,在Circle类中复写getArea()方法求圆形面积。在主函数中分别定义两个类的实例,矩形边长输入4和6,圆形输入半径值为3,求各自的面积并输出。
import java.util.Scanner;
public class Demo11 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double a,b,r;
System.out.println("请输入矩形的长");
a=sc.nextDouble();
System.out.println("请输入矩形的宽");
b=sc.nextDouble();
System.out.println("请输入圆形的半径");
r=sc.nextDouble();
Rectangle rec = new Rectangle(a,b);
Circle cir = new Circle(r);
System.out.println("矩形的面积是"+rec.getArea());
System.out.println("圆形的面积是"+cir.getArea());
}
}
public interface Shape {
public static final double PI=3.14;
public abstract double getArea();
}
public class Rectangle implements Shape{
private double a;
private double b;
public Rectangle(double a, double b) {
this.a=a;
this.b=b;
}
public double getArea() {
return a*b;
}
}
public class Circle implements Shape{
double r;
public Circle(double r) {
this.r=r;
}
public double getArea() {
return PI*r*r;
}
}