java基础练习题

1.身高是具有遗传性的,子女的身高和父母的身高有一定的关系。假定,父母和子女的身高遗传关系如下:
儿子身高(厘米)=(父亲身高+母亲身高) ×1.08÷2
女儿身高(厘米)=(父亲身高×0.923+母亲身高) ÷2
现有父亲身高177CM,母亲身高165CM。求子女身高分别预计为多少?

public class Heredity{
	public static void main(String [] args){
	    double father = 177;
	    double mother = 165;
	    double sonHeight,daughterHeight;
	    sonHeight = (father +mother )*1.08/2;
	    daughterHeight = (father *0.923+mother )/2;
	    System.out.println(“儿子身高是:”+sonHeight );
	    System.out.println(“女儿身高是:”+daughterHeight );
	}
}

2.某小伙想定一份外卖,商家的优惠方式如下:鱼香肉丝单点24元,油炸花生米单点8元,米饭单点3元。订单满30元8折优惠。鱼香肉丝优惠价16元,但是优惠价和折扣不能同时使用。那么这个小伙要点这三样东西,最少要花多少钱?

public class TakeOut{
	public static void main(String [] args ){
		double a=24,b=8,c=3;
		double total=24+8+3;
	    total=(total>=30?total*0.8:total);
	    double total1=16+8+3;
	    double money=(total>=total1?total1:total);
	    System.out.println("这份外卖最少要" + money + "元");
	}
}

3.编写程序,判断给定的某个年份是否是闰年闰年的判断规则如下:
①若某个年份能被4整除但不能被100整除,则是闰年。
②若某个年份能被400整除,则也是闰年。
提示:if((year % 4 ==0 && year % 100 != 0) || year % 400 == 0){}

import java.util.Scanner;
public class Bissextile{
    public static void main(String[]arge){
        System.out.print("请输入年份:");
        Scanner scanner = new Scanner(System.in);
        int year;
        year = scanner.nextInt();
        if(year<0||year>3000){
           System.out.println("你输入的年份已超出范围!");
        }else{
			System.out.println();
			if((year%4==0)&&(year%100!=0)||(year%400==0)){
				System.out.println("你输入的"+year+"年是闰年");
			} else {
				System.out.println("你输入的"+year+"年不是闰年");
			}
		}
    }    
}

4.编写程序,声明2个int型变量并赋值。判断两数之和,如果大于等于50,打印“hello world!”

public class SumTest {
 public static void main(String[] args) {
  int a = 10,b = 20;
  if(a+b>50){
   System.out.println("Hello World!");
  }else{
   System.out.println((a+b)+"小于50");
  }
 }
}

5.编写程序,声明2个double型变量并赋值。判断第一个数大于10.0,且第2个数小于20.0,
打印两数之和。否则,打印两数的乘积。

public class Product{
	public static void main(String[] args) {
		double x = 15.2,y = 8.8;
		if(x>10 && y<20){
		System.out.println("两数之和是:"+(x+y));
		}else{
		System.out.println("两数乘积是:"+(x*y));
		}	
	}
} 

6.我家的狗5岁了,5岁的狗相当于人类多大呢?其实,狗的前两年每一年相当于人类的
10.5岁,之后每增加一年就增加四岁。那么5岁的狗相当于人类多少年龄呢?应该是:
10.5 + 10.5 + 4 + 4 + 4 = 33岁。编写一个程序,获取用户输入的狗的年龄,通过程序显示
其相当于人类的年龄。如果用户输入负数,请显示一个提示信息。

import java.util.Scanner;
public class DogTest{
	public static void main(String[] args){
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入狗的年龄:");
		double i = scanner.nextDouble();
		if(i<=2&&i>=0){
			System.out.println("狗的年龄是:"+i*10.5+"岁");
		} else if (i<0){
			System.out.println("输入错误!");
		}else if(i>2){
			System.out.println("狗的年龄为:"+((i-2)*4+2*10.5));
		}
	}
}

7.求ax2+bx+c=0方程的根。
求ax2+bx+c=0方程的根。a,b,c分别为函数的参数,
如果a≠0,那么:
①当b2-4ac>0,则有两个解;
②当b2-4ac=0,则有一个解;
③当b2-4ac<0,则无解;
④如果a=0,b≠0,那么,

提示:Math.sqrt(num); sqrt指平方根
例如:
求x2-4x+1=0方程的根
求x2-2x+1=0方程的根

import java.util.Scanner;
public class  EquationTest{
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		System.out.println("一元二次方程:ax^2+bx+c=0");
		System.out.print("请输入参数a:");
		double a=scanner.nextDouble();
		System.out.print("请输入参数b:");
		double b=scanner.nextDouble();
		System.out.print("请输入参数c:");
		double c=scanner.nextDouble();
		if(a!=0) {
			double temp=b*b-4*a*c;
			if(temp>0) {
				double sqrt=Math.sqrt(temp);
				double x1=(-b+sqrt)/(2*a);
				double x2=(-b-sqrt)/(2*a);
				System.out.println("该方程是一元二次方程,两个不同解:"+x1+","+x2);
			}else if (temp==0) {
				double x=-b/(2*a);
				System.out.println("该方程是一元二次方程,有两个相同解:"+x);
			}else if(temp<0){
				System.out.println("该方程是一元二次方程,在实数范围内无解");
			}
		}else if(a==0&&b!=0){
			double x=-c/b;
			System.out.println("该方程是一元一次方程,有一个解:"+x);
		}else if(c==0){
			System.out.println("不是方程,是一个等式!");
		}
	}
}

8.赌数游戏
提供三个1-6的随机数,作为掷骰子得到的点数。如果各个点数相同,则为豹子。
①如果三个骰子点数和,小于或等于9,则为“小”。
②如果三个骰子点数和,大于9,则为“大”。
用户随机选择:押大、押小或者押豹子。通过判断,输出客户是否押正确。
提示:生成1-6随机数 (int)(Math.random()*6+1)

import java.util.Scanner;
public class GameTest{
	public static void main(String[] args) {
		int a = (int)(Math.random()*6+1);
		int b = (int)(Math.random()*6+1);
		int c = (int)(Math.random()*6+1);
		int num = a+b+c ;
		String result = "";
		if(a==b && b==c){
			result = "豹子";
		}else if(num > 9){
			result = "大";
		}else{
			result = "小";
		}
		Scanner s = new Scanner(System.in);
		System.out.print("请押注(选择大、小、豹子): ");
		String str = s.next();
		if(str.equals(result)){
			System.out.println(a+" "+b+" "+c+" "+result+"\n"+"恭喜你押对了!");
		}else{
			System.out.println(a+" "+b+" "+c+" "+result+"\n"+"不好意思你押错了!");
		}		
	}
}

9.大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件:
高:180cm以上;富:财富1千万以上;帅:是。
① 如果这三个条件同时满足,则:“我一定要嫁给他!!!”
② 如果三个条件有为真的情况,则:“嫁吧,比上不足,比下有余。”
③ 如果三个条件都不满足,则:“不嫁!”
注意:字符串比较使用equals()方法,例如:
String ishandSome = s.next(“帅否(是/否)“);
if(“是”.equals( ishandSome )){
……….
}

import java.util.Scanner;
public class  GetMarried{
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.print("请输入条件(身高CM): ");
		double height = s.nextDouble();
		System.out.print("请输入条件(财富): ");
		double wealth = s.nextDouble();
		System.out.print("请输入条件(颜值 帅/不帅): ");
		String faceScore = s.next();
		System.out.println();
		if(height>180 && wealth>10000000 && "帅".equals(faceScore)){
			System.out.println("我一定要嫁给他!!!");
		}else if(height>180 || wealth>10000000 || "帅".equals(faceScore)){
			System.out.println("嫁吧,比上不足,比下有余。");
		}else{
			System.out.println("不嫁!");
		}
	}
}

10.编写程序,从键盘接收整数参数。如果该数为1-7,打印对应的星期值,否则打印“非法参数”。

import java.util.Scanner;
public class ScannerOOTest {
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.print("请输入数字1-7的整数: ");
		int sum = s.nextInt();
		String str = "";
		switch(sum){
			case 1:
				str = "星期一";
				break;
			case 2:
				str = "星期二";
				break;
			case 3:
				str = "星期三";
				break;
			case 4:
				str = "星期四";
				break;
			case 5:
				str = "星期五";
				break;
			case 6:
				str = "星期六";
				break;
			case 7:
				str = "星期日";
				break;
			default:
				str = "错误参数";
		}
		System.out.println(str);
	}
}

11.编写一个程序,为一个给定的年份找出其对应的中国生肖。中国的生肖基于12年一个周期,每年用一个动物代表:rat(鼠)、ox(牛)、tiger(虎)、rabbit(兔)、dragon(龙)、snake(蛇)、horse(马)、sheep(羊)、monkey(候)、rooster(鸡)、dog(狗)、pig(猪)。提示:2019年:猪 2019 % 12 == 3

import java.util.Scanner;
public class TwelveChineseZodiacSigns {
	public static void main(String[] args) {
		System.out.print("请输入你的要查询的年份: ");
        Scanner scanner = new Scanner(System.in);
        int year = scanner.nextInt();
		String str = "";
        switch (year % 12){
            case 0:
                str = "猴年";
                break;
            case 1:
                str = "鸡年";
                break;
            case 2:
                str = "狗年";
                break;
            case 3:
                str = "猪年";
                break;
            case 4:
                str = "鼠年";
                break;
            case 5:
                str = "牛年";
                break;
            case 6:
                str = "虎年";
                break;
            case 7:
                str = "兔年";
                break;
            case 8:
                str = "龙年";
                break;
            case 9:
                str = "蛇年";
                break;
            case 10:
                str = "马年";
                break;
            case 11:
                str = "羊年";
                break;
            case 12:
                str = "猴年";
                break;
            default:
                str = "输入有错";
        }
		System.out.println(str);
	}
}

12.使用 switch 把小写类型的 char型转为大写。只转换 a, b, c, d, e. 其它的输出
“other”。 提示:String word = scan.next(); char c = word.charAt(0); switch©{}

import java.util.Scanner;
public class  SwitchCaseTest{
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.print("请输入字母: ");
		String str = scan.next();
		char c = str.charAt(0);
		switch(c){
			case 'a':
				System.out.println('A');
				break;
			case 'b':
				System.out.println('B');
				break;
			case 'c':
				System.out.println('C');
				break;
			case 'd':
				System.out.println('D');
				break;
			case 'e':
				System.out.println('E');
				break;
			default:
				System.out.println("other");
		}
	}
}

13.根据用于指定月份,打印该月份所属的季节。3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季

import java.util.Scanner;
public class Season{
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.println("请输入月份比如:1、2  ");
		int a = s.nextInt();
		if(a<0 || a>12){
			System.out.print("你输入的月份不正确!");
		}else{
			String str = "";
			switch(a){
			case 1: case 2: case 12: 
				str = "冬季";
				break;
			case 3: case 4: case 5: 
				str = "春季";
				break;
			case 6: case 7: case 8: 
				str = "夏季";
				break;
			case 9: case 10: case 11: 
				str = "秋季";
				break;
			}
			System.out.println(str);
		}
	}
}

14.3000米长的绳子,每天减一半。问多少天这个绳子会小于5米?不考虑小数。

public class HomeWorkTest {
	public static void main(String[] args) {
		int day = 0;
		for(int i = 3000;i>=5;i/=2 ){
			day++;
		}
		System.out.println(day);
	}
}

15.用循环控制语句打印输出:1+3+5+…+99=?的结果

public class HomeWorkTest {
	public static void main(String[] args) {
		int sum = 0;
		for(int i = 1;i<100;i++){
			if(i%2 == 1){
				sum+=i;
			}
		}
		System.out.println("1+3+5+...+99=?的结果是: "+sum);
	}
}

16.打印1-100之间数,其中3、5、7的倍数不打印(continue)

public class HomeWorkTest {
	public static void main(String[] args) {
		for(int i = 1;i<100;i++){
			if(i%3==0 || i%5 == 0 || i%7 == 0){
				continue;
			}
			System.out.println(i);
		}
	}	
}

17.打印自然数的个数
①打印1~100之间 6的倍数的个数

public class HomeWorkTest {
	public static void main(String[] args) {
		int num = 0;
		for(int i=6;i<=100;i++){
			if(i%6 == 0){
				num++;
			}
		}
		System.out.println(num);
	}
}

②求出1~100之间,既是3又是7的倍数的自然数出现的次数?

public class HomeWorkTest {
	public static void main(String[] args) {
		int num = 0;
		for(int i=7;i<=100;i++){
			if(i%3 == 0 && i%7 == 0){
				num++;
			}
		}
		System.out.println(num);
	}
}

18.求调和级数中从第多少项开始值大于10
调和级数的第n项形式为:1+1/2+1/3+…+1/n

public class HomeWorkTest {
	public static void main(String[] args) {
		double sum = 0.0;
		int i = 1;
		while (true) {
		sum += 1.0 / i;
		if (sum > 10) {
		                 break;
		}
		i++;
		}
		System.out.println(i);
	}
}

19.输出所有的水仙花数
所谓水仙花数是指一个3位数,其各个位上数字立方和等于其本身。
例如: 153 = 111 + 333 + 555

public class HomeWorkTest {
	public static void main(String[] args) {
		int num = 0;
		for(int i=100;i<1000;i++){
			int a = i%10;
			int b = i/10%10;
			int c = i/100;
			if(a*a*a+b*b*b+c*c*c == i){
				System.out.println(i);
				num++;
			}
		}
		System.out.println("所有水仙花数共"+num+"个");
	}
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值