课后习题
1.将任意一个三位数的个位、十位、百位分别输出
package com.company.exercise;
import java.util.Scanner;
public class Exe01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个三位数:");
int a = scanner.nextInt();
int hundreds ;
int decade;
int unit;
if (a >= 100 && a <=999){
hundreds = a / 100;
decade = (a - hundreds * 100) / 10;
unit = a - hundreds * 100- decade * 10;
System.out.printf("三位数的个位为:%d,十位为:%d,百位为:%d",unit,decade,hundreds);
}else {
System.out.println("请正确输入三位数");
}
}
}
2.若任意两数和是3的倍数或其中一个为3,则输出true,否者输出false
package com.company.exercise;
import java.util.Scanner;
public class Exe02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个数为:");
long a = (long)scanner.nextDouble();
System.out.print("请输入另一个数为:");
long b = (long)scanner.nextDouble();
System.out.println("两数和是3的倍数或其中一个为3:" + ((a + b) % 3 ==0 || (a == 3 || b == 3)));
}
}
3.根据任务要求完成本题。
变量m的值加3,n的值加5
求m和n的平均值,并将结果存于变量p中
求m的平方乘以n的平方,并将结果存于变量q中
将p和q的值打印输出
package com.company.exercise;
import java.util.Scanner;
public class Exe03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入变量m的值:");
double m = sc.nextDouble();
System.out.print("请输入变量n的值:");
double n = sc.nextDouble();
double p, q;
m += 3;
n += 5;
p = (m + n) / 2;
q = (m * m) * (n * n);
System.out.println("p:" + p);
System.out.println("q:" + q);
}
}
4.定义三个整型变量a、b、c,他们的初始值分别为4、15、20。对表达式进行运算。
计算(b/a)+c的值 ,并赋值给变量m
计算(c%b)*a-c的值,并赋值给变量n
输出m和n的值
package com.company.exercise;
public class Exe04 {
public static void main(String[] args) {
int a = 4;
int b = 15;
int c = 20;
float m = (b / a) + c;
float n = (c % b) * a - c;
System.out.println("m:" + m);
System.out.println("n:" + n);
}
}
5.让用户分别输入姓名,语文,数学,英语 三门课的成绩,然后给用户显示:XX,你的总成绩为XX分,平均成绩为XX分
package com.company.exercise;
import java.util.Scanner;
public class Exe05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入姓名:");
String name = sc.next();
System.out.print("请输入语文成绩:");
float chineseNum = sc.nextFloat();
System.out.print("请输入数学成绩:");
float mathNum = sc.nextFloat();
System.out.print("请输入英语成绩:");
float englishNum = sc.nextFloat();
float sum = chineseNum + mathNum + englishNum;
float average = (chineseNum + mathNum + englishNum) / 3;
System.out.printf("%s,你的总成绩为%f分,平均成绩为%f分",name,sum,average);
}
}
6.从键盘输入一个三位的正整数,把正整数转换成反序的整数,把百分位十分位个位数字的变成相反顺序。
package com.company.exercise;
import java.util.Scanner;
public class Exe06 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入3位正整数");
int a = sc.nextInt();
int hundreds = a / 100;
int decade = (a - hundreds * 100) / 10;
int unit = a - hundreds * 100- decade * 10;
a = hundreds + decade * 10 + unit * 100;
System.out.println("转换后的值为:" + a);
}
}
7.给出任意一个int 类型的正整数,如何快速判断?该整数的值,是否是2的整数次幂(自己摸索试着感觉对)
package com.company.exercise;
import java.util.Scanner;
public class Exe07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入int类型的正整数:");
int a = sc.nextInt();
int b = Integer.toBinaryString(a).length() - 1;
if (a > 0 && a / 2 == 0) {
a = a >> b;
System.out.println("a");
if (a == 1) {
System.out.println("此数是2的整数次幂");
} else {
System.out.println("此数不是2的整数次幂");
}
}else {
System.out.println("此数不是2的整数次幂");
}
}
}
8.身高是具有遗传性的,子女的身高和父母的身高有一定的关系。假定,父母和子女的身高遗传关系如下:
儿子身高(厘米)=(父亲身高+母亲身高) ×1.08÷2
女儿身高(厘米)=(父亲身高×0.923+母亲身高) ÷2
现有父亲身高177CM,母亲身高165CM。
求子女身高分别预计为多少?
package com.company.exercise;
public class Exe08 {
public static void main(String[] args) {
float fatherHeight = 177;
float motherHeight = 165;
float sonHeight= (float) ((motherHeight + fatherHeight) * 1.08 / 2);
float daughterHeight = (float)((fatherHeight * 0.923 + motherHeight) / 2);
System.out.println("儿子的身高为:" + sonHeight);
System.out.println("女儿的身高为:" + daughterHeight);
}
}
9.红茶妹妹有21元钱,她攒了几天钱之后自己的钱比原来的两倍还多三块。绿茶妹妹有24元钱,她攒了几天钱之后自己的钱正好是原来的两倍。那么红茶和绿茶现在的钱一样多吗?
package com.company.exercise;
public class Exe09 {
public static void main(String[] args) {
int redMoney = 21;
int greenMoney= 24;
redMoney = redMoney * 2 + 3;
greenMoney = greenMoney * 2;
System.out.println("红茶和绿茶钱一样多吗:" + (redMoney == greenMoney));
}
}
10.某小伙想定一份外卖,商家的优惠方式如下:鱼香肉丝单点24元,油炸花生米单点8元,米饭单点3元。订单满30元8折优惠。鱼香肉丝优惠价16元,但是优惠价和折扣不能同时使用。那么这个小伙要点这三样东西,最少要花多少钱?
package com.company.exercise;
public class Exe10 {
public static void main(String[] args) {
int sum1 = (int) ((24 + 8 + 3) * 0.8);
int sum2 = 16 + 8 + 3;
System.out.println("最少要花:" + (sum1 < sum2 ? sum1 : sum2));
}
}