Java基础题(1)
1.运算符
1.1简单运算
描述
输入两个正整数a和b,输出这两个正整数的和,差,积,商,模(若a>b则输出a-b,a/b,a%b的值反之输出b-a,b/a,b%a的值,不考虑小数,请使用int类型)
输入描述:
两个正整数
输出描述:
它们的和,差,积,商,模。每个值之间用空格隔开
示例1
输入:10 5 输出: 15 5 50 2 0;
法1: import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); int b = scanner.nextInt(); scanner.close(); //write your code here...... if (a<b){ int temp=a; a=b; b=temp; } System.out.printf("%s %s %s %s %s",a+b,a-b,a*b,a/b,a%b); } } 法2: import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); int b = scanner.nextInt(); scanner.close(); //a和b的值互换 if(a<b) a=a+b-(b=a); System.out.printf("%d %d %d %d %d",a+b,a-b,a*b,a/b,a%b); } }
1.2 四舍五入
描述
定义一个int类型变量i,i为由浮点数变量d四舍五入后的整数类型,请将转换后的i进行输出
输入描述:
用户随机输入的浮点数
输出描述:
四舍五入之后的整数(小数点后一位>=5则进一,否则舍去)
示例1
输入:14.99; 输出:15;
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double d= scanner.nextDouble(); //write your code here...... int i =(int) d; if((d-i) > 0.5){ i=i+1; } System.out.println(i); } }
1.3交换变量值
描述
在不使用第三个变量的情况下交换两个int类型变量的值
输入描述:
a变量和b变量的值
输出描述:
交换后a变量和b变量的值,中间用空格隔开
示例1
输入:1 2;
输出:2 1;
方法1: import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); int b = scanner.nextInt(); //使用括号运算改变运算优先级顺序 a=a+b-(b=a); System.out.println(a+" "+b); } } 方法2:import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); int b = scanner.nextInt(); //位运算 a ^= b; b ^= a; a ^= b; System.out.println(a+" "+b); }
2.分支
2.1计算商场折扣
描述
牛牛商场促销活动:
满100全额打9折;
满500全额打8折;
满2000全额打7折;
满5000全额打6折;
且商场有抹零活动,不足一元的部分不需要付款(类型强制转换)
牛大姨算不清楚自己应该付多少钱,请你帮忙算一下
输入描述:
牛大姨账单钱数(int类型)
输出描述:
参加活动后,牛大姨应付钱数(int类型)
import java.util.*; public class Main { public static void main(String[] args) { Scanner console = new Scanner(System.in); int price = console.nextInt(); int cost = 0; if(price>=5000){ cost = (int)(price*0.6); }else if(price>=2000){ cost = (int)(price*0.7); }else if(price>=500){ cost = (int)(price*0.8); }else if(price>=100){ cost = (int)(price*0.9); }else{ cost = (int)price; } System.out.println(cost); } }
2.2判断体重指数
描述
体重指数 = 体重 (kg) / ( 身高 (m) × 身高 (m) ),小于18.5属于偏瘦,介于18.5和20.9之间(左闭右开)属于苗条,介于20.9和24.9之间(左闭右闭)属于适中,超过24.9属于偏胖。下面由你来编写一段逻辑,算出输入了身高和体重的用户的体重指数,并返回他们的身材状态。(体重指数请使用double类型)
输入描述:
用户的身高(m)和用户的体重(kg)
输出描述:
体重指数代表的用户身材状态
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double height = scanner.nextDouble(); double weight = scanner.nextDouble(); //write your code here...... double bmi = weight / (height * height); if (bmi < 18.5){ System.out.println("偏瘦"); }else if (bmi >= 18.5 && bmi < 20.9){ System.out.println("苗条"); }else if (bmi >= 20.9 && bmi <= 24.9){ System.out.println("适中"); }else if (bmi > 24.9){ System.out.println("偏胖"); } } }
2.3判断学生成绩等级
描述
现有如下成绩等级A,B,C,D。其中A代表优秀,B代表良好,C代表及格,D代表不及格。现在请你来为学生的成绩进行分级,如果用户输入错误则输出未知等级。
输入描述:
成绩等级对应的中文表述
输出描述:
优秀,良好,及格,不及格,未知等级
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String grade =scanner.next(); //write your code here...... if(grade.equals("A")) System.out.println("优秀"); else if(grade.equals("B")) System.out.println("良好"); else if(grade.equals("C")) System.out.println("及格"); else if(grade.equals("D")) System.out.println("不及格"); else System.out.println("未知等级"); } }
此处考查==和equals的区别,如果用==,这里会返回false,
==比较的地址是否相等,或者基础类型是否相等;而grade是new出来的,装的是一个地址
用于指向new出来的对象,所以它属于引用类型;
对于String类,equals被重写了,比较的是内容而不再是地址是否相等。
2.4邮箱验证
描述
请根据给出的正则表达式来验证邮箱格式是否合法,如果用户输入的格式合法则输出「邮箱格式合法」,否则输出「邮箱格式不合法」。
输入描述:
任意字符串
输出描述:
根据输入的邮箱格式判断其合法于不合法,若输入字符串符合邮箱格式则输出邮箱格式合法,否则输出邮箱格式不合法
示例1:
输入:123123@nowcoder.com
输出:邮箱格式合法
示例2:
输入:123123
输出:邮箱格式不合法
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str = scanner.next(); String emailMatcher="[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z0-9]+"; //write your code here...... //正则匹配 System.out.println(str.matches(emailMatcher) ? "邮箱格式合法" : "邮箱格式不合法"); scanner.close(); } }