知识点
运算符
题目1(训练)
身高是具有遗传性的,子女的身高和父母的身高有一定的关系。假定,父母和子女的身高遗传关系如下:
儿子身高(厘米)=(父亲身高+母亲身高) ×1.08÷2
女儿身高(厘米)=(父亲身高×0.923+母亲身高) ÷2
现有父亲身高177CM,母亲身高165CM。求子女身高分别预计为多少?
训练提示
-
已知的父母身高如何用代码体现?
-
题目中的公式如何转化为代码?
解题方案
-
使用变量的定义和算术运算符完成本题
操作步骤
-
定义小数变量代表父亲身高 定义小数变量代表母亲身高
-
通过儿子身高计算方式计算儿子身高
-
通过女儿身高计算方式计算女人身高
参考答案
package test; public class test1 { public static void main(String[] args) { //身高是具有遗传性的,子女的身高和父母的身高有一定的关系。假定,父母和子女的身高遗传关系如下: // //儿子身高(厘米)[后写结果]=(父亲身高+母亲身高) ×1.08÷2[先写过程] // //女儿身高(厘米)=(父亲身高×0.923+母亲身高) ÷2 // //现有父亲身高177CM,母亲身高165CM。求子女身高分别预计为多少? int fatherHeight = 177 ; int motherHeight = 165 ; double sonHeight = (fatherHeight + motherHeight) * 1.08 /2; double daughterHeight = (fatherHeight * 0.923 + motherHeight) /2; System.out.println(sonHeight); System.out.println(daughterHeight); System.out.println("^^"); } }
题目2(训练)
红茶妹妹有21元钱,她攒了几天钱之后自己的钱比原来的两倍还多三块。绿茶妹妹有24元钱,她攒了几天钱之后自己的钱正好是原来的两倍。那么红茶和绿茶现在的钱一样多,请问对么?
训练提示
-
用什么知识点来计算她们现在的钱有多少?
-
如何对比两个人的钱数?
解题方案
-
使用赋值运算符和算术运算符计算各自的钱,使用比较运算符对比大小
操作步骤
-
定义红茶妹妹原来的钱为整数变量
-
定义绿茶妹妹原来的钱为整数变量
-
使用赋值运算符和算术运算符计算其现有的钱
-
使用比较运算符对数值做出比较
参考答案
package test; public class test2 { public static void main(String[] args) { // 红茶妹妹有21元钱, // 她攒了几天钱之后自己的钱比原来的两倍还多三块。 // 绿茶妹妹有24元钱,她攒了几天钱之后自己的钱正好是原来的两倍。 // 那么红茶和绿茶现在的钱一样多,请问对么? int h1 = 21; int h2 = h1 * 2 + 3; int l1 = 24; int l2 = l1 * 2; boolean re = h2 == l2; System.out.println(re); String result = h2 == l2 ? "对" : "不对"; System.out.println(result); System.out.println("^^"); } }
题目3(综合)
某小伙想定一份外卖,商家的优惠方式如下:鱼香肉丝单点24元,油炸花生米单点8元,米饭单点3元。订单满30元8折优惠。鱼香肉丝优惠价16元,但是优惠价和折扣不能同时使用。那么这个小伙要点这三样东西,最少要花多少钱?
训练提示
-
有两种购买方式,一种是不使用优惠价,另一种是使用优惠价。分别计算花费后,对两种方式的花费作对比。
解题方案
-
使用算术运算符、赋值运算符和三元运算符联合完成本题
操作步骤
-
使用算术运算符求出不使用优惠时的总价
-
使用三元运算符判断总价是否满足打折条件,并求出折后总价
-
使用算术运算符求出使用优惠价时的总价
-
使用三元运算符判断最终更合算的购买方式和花费
参考答案
package test; public class test3 { public static void main(String[] args) { // 某小伙想定一份外卖,商家的优惠方式如下: // 鱼香肉丝单点24元,油炸花生米单点8元,米饭单点3元。 // 订单满30元8折优惠。(*0.8,有小数要注意用double) // 鱼香肉丝优惠价16元,但是优惠价和折扣不能同时使用。 // 那么这个小伙要点这三样东西,最少要花多少钱? // 分析: 第一个跟第二个比,定义一个temp转换器,将便宜的放进去,再拿去跟第三个比,不用考虑太多(例如第二便宜的是哪个),因为题目只要最便宜的那个 // 然后做着做着发现只要比两个,这就更简单了 // 第一个: 鱼香肉丝单点24元,油炸花生米单点8元,米饭单点3元。 double first = (24 + 8 + 3) * 0.8;//28 int second = 16 + 8 + 3; double re = first < second ? first : second;// int类型转double类型,小转大,隐式转换:前面补0 System.out.println(re); System.out.println("^^"); } }
题目4:
看代码说结果,不要去运行。
System.out.println(2.0*(5/2));
-
4
-
4.0
-
5
-
5.0
-
以上答案都不对
4.0
题目5:
看代码说结果,不要去运行。
String firstName = "Tomas"; String familyName = "Zhang"; 打印firstName + familyName 之后是什么结果?
TomasZhang
题目6:
需求:
数字6是一个真正伟大的数字,键盘录入两个整数。 如果其中一个为6,最终结果输出true。 如果它们的和为6的倍数。最终结果输出true。 其他情况都是false。
package test; import java.util.Scanner;//1.1 public class test6 { public static void main(String[] args) { // 数字6是一个真正伟大的数字,键盘录入两个整数。 // // 如果其中一个为6,最终结果输出true。 // // 如果它们的和为6的倍数。最终结果输出true。 // // 其他情况都是false。 Scanner scanner = new Scanner(System.in);//1.2 System.out.println("录入两个整数"); //1.3 int a = scanner.nextInt(); int b = scanner.nextInt(); boolean re = a == 6 || b == 6 || (a + b) % 6 == 0;// > < >= <= == != 这些是关系运算符,要么输出true,要么输出false,可以直接输出,也可以用boolean类型间接输出 System.out.println(re); System.out.println("^^"); } }
题目7:
需求:
键盘录入一个三位数,求这个三位数每一位的数字和。
举例:
键盘录入123。那么每一位数字相加为:1 + 2 + 3,和为:6。
package test; import java.util.Scanner; public class test7 { public static void main(String[] args) { // 键盘录入一个三位数,求这个三位数每一位的数字和。 // // 举例: // // 键盘录入123。那么每一位数字相加为:1 + 2 + 3,和为:6。 Scanner scanner = new Scanner(System.in); System.out.println("录入一个三位数"); int shu = scanner.nextInt(); // 分析: 要用到公式了 // 个位: /1%10 // 十位: /10%10 // 百位: /100%10 // 千位: /1000%10 // 万位: /10000%10 // ... // so /1%10 /10%10 /100%10 int ge = shu / 1 %10; int shi = shu / 10 %10; int bai = shu / 100 %10; int he = ge + shi + bai; System.out.println(he); System.out.println("^^"); } }
注: 题目出自黑马课程