JavaSE基础代码二

一、简答题

1、请描述 Java 基本数据类型的 8种, 分别是什么 ?

答: byte short char int long float double boolean

2、请观察下列代码是否存在问题, 如果有, 请说明原因并改成

byte b1 = 3;		// 第一行
byte b2 = 4;		// 第二行
byte b3 = b1 + b2;  // 第三行
byte b = 3 + 4;		// 第四行
: 第三行应该使用强制类型转换: byte b3 = (byte)(b1 + b2);

3、现有代码如下, 请回答打印的结果, 并描述中间的运算过程

int num = 10;
char content = 'a';
int result = num + content;
System.out.println(result);
答: 打印的结果: 107
在第三行的时候进行了自动类型转换将字符a转换成了97,在进行加10运算

4、简述下 ++ 运算符在参与运算使用的时候, 在前在后的区别

答:
++a  如果放在变量的前面,先对变量进行+1、-1,再拿变量的值进行运算。
a++  如果放在变量的后面,先拿变量的值进行运算,再对变量的值进行+1、-1 

5、现有代码如下, 请回答打印的结果, 并描述中间的运算过程

int a = 10;
int b = ++a;	
int c = a++;    
int result = b++ + ++c;  
答:
结果: 
过程: a  11  12
	 b  11   12
	 c  11   12
 result 11  +  12   = 23

6、描述下算数运算符中 , / 和 % 的特点

答: / : 在Java中两个整数相除结果还是整数。  
   % :  获取的是两个数据做除法的余数  

7、现有代码如下, 想要运算结果是2.5 代码应该怎么改 ?

int a = 5;
int b = 2;
double c = a / b;
答: (不止一种修改方式)
第一种: 将 int a = 5; 改成 double a = 5.0 或
int b = 2; 改成 double b = 2.0
第二种: 
double c = (a * 1.0)/ b;
或
double c = a /(b * 1.0);

8、现有代码如下, 请回答打印的结果, 并描述中间的运算过程

int a = 10;
double b = 12.3;
a += b;
System.out.println(a);
答: (务必说明原因)
结果: 22
原因:
a += b;
会被转化成
int a =(int)(a + b);(在这个算术上 b 会采取强制类型装换,b 会被赋予12在进行加10)

9、现有代码如下, 请回答打印的结果, 并描述中间的运算过程

public static void main(String[] args) {
    int x = 3;
    int y = 4;

    boolean result = x++ > 3 && --y < 4;

    System.out.println(result);
    System.out.println(x);
    System.out.println(y);
}
答: (务必说明原因)
结果:
	false  4   4  
原因:x  3   3    3+1
	 y  4   
result  3>3  &&     为false

二、编程题

2.1、身高计算

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

提示:

1.定义两个int变量h1和h2,代表父亲和母亲的身高,并初始化
2.根据题目需求计算儿子身高,保存int变量h3中
3.根据题目需求计算女儿身高,保存int变量h4中
4.打印h3和h4的值

public class Height {
    public static void main(String[] args) {
        int h1=177;
        int h2=165;
        int h3 = (int) ((h1 + h2) * 1.08 / 2);
        int h4 = (int) ((h1*0.923 + h2) / 2);
        System.out.println(h3);
        System.out.println(h4);

    }
}
儿子h3: 184CM
女儿h4: 164CM

2.2、数值拆分

需求:
	从键盘接收一个四位数的int类型的变量,例如:1234,求这个数的个位,十位,百位,千位分别是多少?
        
运行效果:
	加入键盘输入的是1234, 打印:  1234的个位是4,十位是3,百位是2,千位是1

提示:

1.定义键盘对象,接收数据保存到变量num
2.计算个位,十位,百位,千位分别保存int变量ge,shi,bai,qian中
3.根据题目需求打印结果数据

public class NumericalSplitting {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("键盘键入一个四位数: ");
        int number = sc.nextInt();
        int ge = number % 10;
        int shi = number / 10 % 10;
        int bai = number / 10 / 10 % 10;
        int qian = number / 10 / 10 / 10 % 10;
        System.out.println("个位: " + ge);
        System.out.println("十位: " + shi);
        System.out.println("百位: " + bai);
        System.out.println("千位: " + qian);
    }
}

键盘键入一个四位数: 
1234
个位: 4
十位: 3
百位: 2
千位: 1

2.3、菜品优惠

某外卖商家的菜品单价如下:
    1.鱼香肉丝每份24元,油炸花生米每份8元,米饭每份3元。
    2.优惠方式:
        总金额大于100元,总金额打9折,其它无折扣        
    3.需求:
        小明购买了3分鱼香肉丝,3份花生米,5份米饭,最终需要付多少钱?

提示:

1.定义三个int变量yxrs,yzhsm,mf,代表三个菜品的价格,并初始化
2.根据小明的购买信息,计算优惠前的总价格,保存int变量price
3.根据优惠方式计算小明购买菜品优惠后的价格,保存int变量afterPrice中
4.打印输出结果数据

public class FoodDiscount {
    public static void main(String[] args) {
        int yxrs,yzhsm,mf;
        yxrs=24;
        yzhsm=8;
        mf=3;
        int money=(int) (3*yxrs+3*yzhsm+5*mf);
        if (money>100){
            money*=0.9;
        }
        System.out.println(money);
    }
}

花费: 99

2.4、体重对比

需求:
	动物园里有两只老虎,已知两只老虎的体重分别为180kg、200kg,
	请用程序实现判断两只老虎的体重是否相同。

提示

1.定义两个int变量w1,w2,代表两只老虎的体重,并初始化
2.使用三元运算符判断w1和w2是否相同,结果保存boolean变量result中
3.打印结果数据result

public class Weight {
    public static void main(String[] args) {
        int w1,w2;
        w1=180;
        w2=200;
        boolean result=w1==w2?true:false;
        System.out.println(result);
    }
}
结果:  false

2.5、最大身高

需求:
	一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,
	请用程序实现获取这三个和尚的最高身高。

提示

2.获取三个int数字,代表三个和尚的身高,分别保存int变量h1,h2,h3中
3.使用三元运算符计算h1和h2的最小值,保存int变量temp中
3.使用三元运算符计算temp和h3的最小值,保存int变量min中
4.打印结果数据min

最大身高
public class Height {
    public static void main(String[] args) {
        int h1 = 150;
        int h2 = 210;
        int h3 = 165;
        int max1 = h1 > h2 ? h1 : h2;
        int max = max1 > h3 ? max1 : h3;
        System.out.println(max);
    }
}
最小身高
public class Height1 {
    public static void main(String[] args) {
        int h1 = 150;
        int h2 = 210;
        int h3 = 165;
        int min1 = h1 < h2 ? h1 : h2;
        int min = min1 < h3 ? min1 : h3;
        System.out.println(min);
    }
}

2.6、学生信息

在今天的课程学习中,我们知道了java的8种基本数据类型和字符串(String)
请选择合适类型的变量保存一个学生的个人信息,并打印到控制台,输出结果如下:
我的姓名是:张三
我的性别是:男
我的年龄是:18
我的地址是:xx省xx市
我的饭卡余额是:55.55元
public class Student {
    public static void main(String[] args) {
        String  name = "张三";
        char gander='男';
        int age=18;
        String address="xx省xx市";
        double cardBalance=55.55;
        System.out.println("我的姓名是:"+name);
        System.out.println("我的性别是:"+gander);
        System.out.println("我的年龄是:"+age);
        System.out.println("我的地址是:"+address);
        System.out.println("我的饭卡余额是:"+cardBalance+"元");
    }
}

2.7、短信模拟

训练目标:掌握字符串拼接操作

需求描述:请从控制台录入用户信息 (用户名, 邮箱) , 模拟初始密码发送至邮箱的过程

运行效果:

请输入用户名:
zhangsan
请输入邮箱:
zhangsan@itcast.cn
尊敬的zhangsan用户您好, 我们已向您的初始密码发送至zhangsan@itcast.cn邮箱, 请注意查收!

实现提示:对采集到的信息加入字符串拼接

public class ShortMessage {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入用户名: ");
        String userName= sc.nextLine();
        System.out.println("请输入邮箱: ");
        String email= sc.nextLine();
        System.out.println("尊敬的"+ userName +"用户您好, 我们已向您的初始密码发送至"+ email +"邮箱, 请注意查收!");
    }
}

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

InnovatorX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值