Java基础题2从入门到放弃的第五天

(71) 2024-07-10 21:01:01

Java基础题2从入门到放弃的第5天

小博主也是初学者,肯定有地方可以用更简单的方法,希望可以指点出来。谢谢!

1分支语句

1、 让用户输入一个100以内的整数x,再输入一个100到200之间的整数y,然后程序随机一个x到y之间的整数并打印。

public class Test1 { 
    public static void main(String[] args) { 
    Scanner sc =new Scanner(System.in); System.out.print("输入一个100以内的整数x: "); int x=sc.nextInt(); System.out.print("输入一个100到200之间的整数y: "); int y=sc.nextInt(); int a=(int) (Math.random()*(y-x))+x; System.out.println("程序随机一个x到y之间的整数: "+a); } } 

2.随机两个0到100之间的整数,然后使用较大的一个数减去较小的一个数,再判断这个差的奇偶性。

public class Test2 { 
    public static void main(String[] args) { 
    int a = (int) (Math.random() * 100); int b = (int) (Math.random() * 100); int sub = Math.abs(a - b); if (sub != 0 && sub % 2 == 0) { 
    System.out.println(sub + "为偶数"); } else if (sub != 0 && sub % 2 != 0) { 
    System.out.println(sub + "为奇数"); } else { 
    System.out.println(sub + "为非奇非偶"); } } } 
  1. 用户输入3个整数,将这个3个整数从大到小打印出来。
public class Test3 { 
    public static void main(String[] args) { 
    Scanner sc = new Scanner(System.in); System.out.print("请输入a:"); int a = sc.nextInt(); System.out.print("请输入b:"); int b = sc.nextInt(); System.out.print("请输入c:"); int c = sc.nextInt(); int sum = a + b + c; int max = Math.max(Math.max(a, b), c); int min = Math.min(Math.min(a, b), c); int middle = sum - max - min; System.out.println(max + ">=" + middle + ">=" + min); } } 
  1. 随机一个100到200之间的整数x,然后再让用户输入一个10以内的整数y,判断x是否是y的倍数。
public class Test4 { 
    public static void main(String[] args) { 
    int x = (int) (Math.random() * 100 + 100); System.out.println("随机一个100到200之间的整数x: " + x); Scanner sc = new Scanner(System.in); System.out.print("输入一个10以内的整数y:"); int y = sc.nextInt(); if (x % y == 0) { 
    System.out.println(x + "是" + y + "的倍数"); } else { 
    System.out.println(x + "不是" + y + "的倍数"); } } 
  1. 使用switch制作一个简单的计算器:让用户输入计算数字1和运算符 及计算数字2,然后程序帮他计算出结果。
public class Test5 { 
    public static void main(String[] args) { 
    Scanner sc = new Scanner(System.in); System.out.print("输入x:"); double x = sc.nextDouble(); System.out.print("请输入y: "); double y = sc.nextDouble(); double result; System.out.print("请输入运算符: "); Scanner sc1 = new Scanner(System.in); String st = sc1.nextLine(); switch (st) { 
    case "+": result = x + y; break; case "-": result = x - y; break; case "*": result = x * y; break; case "/": result = x / y; break; default: throw new IllegalStateException("Unexpected value: " + st); } System.out.println(result); } } 

​ 6.编写代码实现如下内容:实现考试成绩分等级。[90-100] A等。[80-90) B等。[70-80) C等。 [60-70) D等。[0-60) E等。请根据给定成绩,输出对应的等级。说明:"[“表示包含,”)"表示不包含

public class Test6 { 
    public static void main(String[] args) { 
    Scanner sc=new Scanner(System.in); System.out.print("输入成绩:"); int grade=sc.nextInt(); //for循环 if (grade >= 90 && grade <= 100) { 
    System.out.println("A等"); } else if (grade >= 80) { 
    System.out.println("B等"); } else if (grade >= 70) { 
    System.out.println("C等"); } else if (grade >= 60) { 
    System.out.println("D等"); } else if (grade >= 0) { 
    System.out.println("E等"); } else { 
    System.out.println("没有记录"); } } } 

7.分析以下需求,并用代码实现:

​ (1)根据工龄(整数)给员工涨工资(整数),工龄和基本工资通过键盘录入

​ (2)涨工资的条件如下:

​ [10-15) +5000

​ [5-10) +2500

​ [3~5) +1000

​ [1~3) +500

​ [0~1) +200

(3)如果用户输入的工龄为10,基本工资为3000,程序运行后打印格式"您目前工作了10年,基本工资为 3000元, 应涨工资 5000元,涨后工资 8000元"

public class Test7 { 
    public static void main(String[] args) { 
    Scanner sc =new Scanner(System.in); System.out.print("请输入工龄:"); int age=sc.nextInt(); System.out.print("请输入底薪: "); int money1=sc.nextInt(); if (age>=10&&age<15){ 
    System.out.println("您目前工作了"+age+"年,基本工资为"+money1+"元, 应涨工资 5000元,涨后工资"+(money1+5000)+"元"); }else if (age>=5){ 
    System.out.println("您目前工作了"+age+"年,基本工资为"+money1+"元, 应涨工资 2500元,涨后工资"+(money1+2500)+"元"); }else if (age>=3){ 
    System.out.println("您目前工作了"+age+"年,基本工资为"+money1+"元, 应涨工资 1000元,涨后工资"+(money1+1000)+"元"); }else if (age>=1){ 
    System.out.println("您目前工作了"+age+"年,基本工资为"+money1+"元, 应涨工资 500元,涨后工资"+(money1+500)+"元"); }else if (age>=0){ 
    System.out.println("您目前工作了"+age+"年,基本工资为"+money1+"元, 应涨工资 200元,涨后工资"+(money1+200)+"元"); }else{ 
    System.out.println("老板给你"); } } } 

2.循环语句

1.编写程序,生成5个1至10之间的随机整数,并打印结果到控制台。

public class Test9 { 
    public static void main(String[] args) { 
    for (int i = 0; i <5 ; i++) { 
    System.out.print((int)(Math.random()*9+1)+"\t"); } } } 

2.判断101-200之间有多少个素数,并输出所有素数。

public class Test10 { 
    public static void main(String[] args) { 
    int a = 0; for (int i = 101; i <= 200; i++) { 
    for (int j = 2; j <= i; j++) { 
    if (i % j == 0) { 
    break; } else if (j == i - 1) { 
    a += 1; System.out.print(i + "为素数\t"); } } } System.out.println(); System.out.print("总共有"+a+"个素数"); } } 

3.编写程序,打印1到100之内的整数,但数字中包含7或者7的倍数要跳过。(逢7过)

public class Test10 { 
    public static void main(String[] args) { 
    for(int i=1;i<=100;i++){ 
    if(i%7==0||i/10==7||i%10==7){ 
    System.out.print(""); }else{ 
    System.out.print(i+"\t"); } } } 

4.求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。

public class Test4 { 
    public static void main(String[] args) { 
    Scanner sc = new Scanner(System.in); System.out.print("请输入一个1~9的数:"); int a = sc.nextInt();//a的值 System.out.print("请输入一个数:"); int b = sc.nextInt();//a的位数 int r = 0;//r是中间结果 int s = 0;//结果 for (int j = 0; j < b; j++) { 
    for (int i = 0; i < b - j; i++) { 
    int num = (int) Math.pow(10, i); r += a * num; } System.out.print(r + " "); s += r; r = 0; } System.out.println(); System.out.println("相加结果:" + s); } } 

5.求1+2+3+…+1000的和,把和输出,计算每步结果中有多少个8结尾的数。

public class Test12 { 
    public static void main(String[] args) { 
    int num=0; int add=0; for (int i = 1; i <=1000 ; i++) { 
    add+=i; if(add%10==8){ 
    num+=1; } } System.out.println("总和:"+add+" 位数为8的有"+num+"个"); } } 

6.输出下图案

1

1 2

1 2 3

1 2 3 4

1 2 3 4 5

1 2 3 4 5 6

1… 7

1 …100

public class Test14 { 
    public static void main(String[] args) { 
    for (int i = 1; i <= 100; i++) { 
    for (int j = 1; j < i + 1; j++) { 
    System.out.print(j + "\t"); } System.out.println(); } } } 

7.求水仙花数(一个三位数,个十百位每位数的立方和等于该数本身)

public class Test2 { 
    public static void main(String[] args) { 
    for (int i = 100; i <= 999; i++) { 
    int a = i / 100; //百位 int b = i % 100 / 10; //十位 int c = i % 10; //个位 if (i == a * a * a + b * b * b + c * c * c) { 
    System.out.print(+i + "\t"); } } } } 

8.使用 *号在分别在控制台输出等腰三角形、菱形

public class Test18 { 
    public static void main(String[] args) { 
    Scanner sc=new Scanner(System.in); System.out.print("随机输入一个数:"); int line = sc.nextInt(); //等腰三角形 System.out.println("打印一个等腰三角形:"); for (int i = 1; i <= line; i++) { 
    for (int j = line -i; j >= 0; j--) { 
    System.out.print(" "); } for (int k = 0; k < 2 * i - 1; k++) { 
    System.out.print("*"); } System.out.println(); } //菱形 System.out.println("打印一个菱形:"); for (int i = 1; i <= line/2+1; i++) { 
    for (int j = line/2-i; j >=0; j--) { 
    System.out.print(" "); } for (int k = 0; k < 2 * i - 1; k++) { 
    System.out.print("*"); } System.out.println(); } for (int i =1; i <=line/2; i++) { 
    for (int j = 1; j <=i; j++) { 
    System.out.print(" "); } for (int k=line-2*i;k>0;k--){ 
    System.out.print("*"); } System.out.println(); } } } 
THE END

发表回复