java1逻辑运算符作业(16道)

1. (标识符命名)下面几个变量中,那些是对的?那些是错的?错的请说明理由
A. ILoveJava//正确
B. $20//正确
C. learn@java//错误,不能有@
D. antony.lee//正确,包名????//错误
E. Hello_World
F. 2tigers//数字不能开头
2.Java 程序的编译与运行)假设有如下程序:
package com.corejava.chp1;
public class HelloWorld{
	public static void main(String args[]){
		System.out.println("Hello World");
	}
}
问:
1)假设这个代码存在hello.java 文件中,那这个程序能够编译通过?为什么?
如果编译不通过,应该如何改进?
    //不能够编译通过,文件名不和public修饰的主类名一致,java文件名和公共类名必须一致
2)假设这个.java 文件放在C:\javafile\目录下,CLASSPATH=.//这是class文件的路径,则生成的.class文件应该放在什么目录下?如何运行?
	//生成的.class文件在com/corejava/chp1文件夹中,
	java -cp . com.corejava.chp1.Hello(cp代表目录)
	可以使用javac -d 路径 java文件(.java) 可以快速建立包
3.if 语句)读入一个整数,判断其是奇数还是偶数
Scanner sC = new Scanner (System.in);
System.out. println("请输这一个整数);
int a =sc. nextInt();
String result =a%2==0?"偶数":"奇数"
4. (操作符)有如下代码:
int a = 5;
int b = (a++)+(--a)+(++a);
//        5     5     6
问执行完之后,b的结果是多少?
//从左向右先是 ①先是5,后a变成6 ②先6-1=5 ③先5+1=6
16
5. (基本类型的运算)
 一家商场在举行打折促销,所有商品都进行8折优惠。一位程序员把这个逻辑写成:
short price = ...; // 先计算出原价
short realPrice = price * 8 / 10; //再计算出打折之后的价格
问:这段代码是否正确?如果正确,假设price 为100,那计算之后的realPric值为多少?如果不正确,应该怎么改正?
答:不正确,因为810是整型数据
double price = a;
double realPrice = (a) * (8/10);
System.out.println(realPrice);
6. (操作符)请说明>>>>>之间的区别
两者都是Java中的位运算符:
“ >> ” 表示右移,如果该数为正,则高位补0,若为负数,则高位补1;
“ >>> ”表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0。
表达式如下:
result = exp1 >> exp2;
result = exp2 >>> exp2;
表示把数exp1向右移动exp2位。
例如:
res = 20 >> 2;
20的二进制为 0001 0100,右移2位后为 0000 0101,则结果就为 res = 5;
res = -20 >> 2;
-20的二进制为其正数的补码加1,即 1110 1011,右移2位后为 1111 1100,结果为 res = -6;
而对于>>>符号而言:
res = 20 >>> 2; 的结果与 >> 相同;
res = -20 >> 2;
-20的二进制为 1110 1011,右移2位,此时高位补0,即 0011 1010,结果为 res = 58;
<< 是与>>对应的左移运算符,原理同上,表示将exp1向左移动exp2位,在低位补0。其实,向左移动n位,就相当于乘以2 ^ n。同理,向右移动n位,就相当于除以2 ^ n。
但要注意的是左移没有<<<运算符。
7. (操作符)有如下代码:
a=(a>b)?a:b;
请问这段代码完成了什么功能。
//如果a>b,则执行表达式a,否则执行表达式b。
8.if 语句)
读入一个整数,表示一个人的年龄。如果小于6 岁,则输出“儿童”,6 岁到13 岁,输出“少儿”;14 岁到18 岁,输出“青少年”;18 岁到35 岁,输出“青年”;35 岁到50 岁,输出“中年”;50 岁以上输出“中老年”。
//读入一个整数,表示一个人的年龄
import java.util.Scanner;
class AgeJudgment{
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入成绩");
        int num=sc.nextInt();
        if(num<6&&num>0)
            System.out.println("儿童");
        else if(num>=6&&num<=13)
            System.out.println("少儿");
        else if(num>=14&&num<=18)
            System.out.println("青少年");
        else if(num>=19&&num<=35)
            System.out.println("青年");
        else if(num>=36&&num<=50)
            System.out.println("中年");
        else if(num>=51)
            System.out.println("中老年");
        else
            System.out.println("你的输入有误");
    }
}
9.switch 语句)读入一个整数,如果是1~5 之间,则分别输出5个福娃的名字,否则输出“北京欢迎你”。
import java.util.Scanner;
class SwitchFuwa{
    public static void main(String[] args) {
        //随机输入一个整数n
        Scanner sc = new Scanner(System.in);
        System.out.println("请随机输入一个整数:");
        int n = sc.nextInt();
        switch (n) {
            case 1:
                System.out.println("贝贝");
                break;
            case 2:
                System.out.println("晶晶");
                break;
            case 3:
                System.out.println("欢欢");
                break;
            case 4:
                System.out.println("迎迎");
                break;
            case 5:
                System.out.println("妮妮");
                break;
            default:
                System.out.println("北京欢迎你");
        }
    }
}   
10.if 语句,赋值操作)
读入三个整数,输出这三个整数中最大的一个
    
import java.util.Scanner;
public class t3 {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
    	int a=sc.nextInt();
    	int b=sc.nextInt();
    	int c=sc.nextInt();
    	int max=(a>b?(a>c?a:c):(b>c?b:c));
    	System.out.println(max);  	
    }
}
11.if 语句)
读入一个表示年份的整数,判断这一年是否是闰年。如何判断一个年份是否是闰年:
1. 如果这个年份能够被4 整除,且不能被100 整除,则这一年是闰年。例
如,1996 年是闰年,而相应的,1993 年就不是闰年。
2. 如果这个年份能够被100 整除,则这个数必须要能被400 整除,才是闰
年。例如,2000 年是闰年,1900 年不是闰年。
import java.util.Scanner;
public class runnian {
        public static void main(String[] args) {
            System.out.println("请随机输入一个整数:");
            Scanner sc=new Scanner(System.in);
            int y=sc.nextInt();
            if((y%400==0)||(y%4==0&&y%100!=0))
                System.out.println("是闰年");
            else
            {
                System.out.println("不是闰年");
            }
        }
}
12.switch 语句)*完成一个简单的计算器程序。程序要求如下:
1. 读入两个整数
2. 提示用户选择对这两个整数的操作,即输出
1+
2-
3*
4/
请输入您的选择:
读入用户的选择,输出运算结果。
//完成一个简单的计算器程序
import java.util.Scanner;
public class t5 {
   //读入两个整数
   public static void main(String[] args) {
   		Scanner sc=new Scanner(System.in);
  		int a=sc.nextInt();
   		int b=sc.nextInt();
   		//提示用户输入
   		System.out.println("1 : +");
   		System.out.println("2 : -");
   		System.out.println("3 : *");
   		System.out.println("4 : /");
   		System.out.println("请输入您的选择:(选择数字)");
   		int c=sc.nextInt();
   		//读入用户的选择,输出运算结果。
   		switch(c){
   			case 1:
                System.out.println(a+b);
            	break;
   			case 2:
                System.out.println(a-b);
            	break;
   			case 3:
                System.out.println(a*b);
            	break;
   			case 4:
                System.out.println(a/b);
            	break;
   			default:
                System.out.println("请输入1-4");
            	break;
   		}
	}
}
13.if 语句)
托运计费问题:
当货物重量小于 20 公斤的时候,收费 5 元,
大于 20 公斤小于 100 公斤的时候超出 20 公斤的部分按每 0.2 元每公斤计费,
如果超出 100 公斤的时候,超出的部分按照每公斤 0.15 元计算。
读入货物的重量,输出计算之后货物的运费。
//托运计费问题:
import java.util.Scanner;
public class IfYunFei {
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            int num=sc.nextInt();
            if(num<20)
                System.out.println("一共收费5元");
            else if(num>=20&&num<100)
                System.out.println("一共收费"+((num-20)*0.2+5)+"元");
            else if(num>=100)
                System.out.println("一共收费"+((num-20)*0.15+5)+"元");
            else
                System.out.println("你的输入有误");
        }
}
14.if 语句)
中国的个税计算方法:
应税所得为税前收入扣除2000 元(起征点),然后超出部分,按照以下税率收税:
500 5%
500-2000 10%
2000-5000 15%
5000-20000 20%
20000-40000 25%
40000-60000 30%
60000-80000 35%
80000-100000 40%
100000 - ? 45%
例:若月收入15000,则应税所得为15000-2000=13000;总的个人所得税为
(13000-5000*20% +5000-2000*15% +2000-500*10% + 500*5%
= 2225
要求:读入一个整数,表示税前收入,输出应当缴纳的个人所得税和税后实际收入。
//-----------------
package com.yirose.java8.string;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Scanner;

public class revenueDemo {
    public static void main(String[] args) {
        // 个税汇率
        Map<Integer, Double> map = new LinkedHashMap<Integer, Double>();
        map.put(100000, 0.45);
        map.put(80000, 0.40);
        map.put(60000, 0.35);
        map.put(40000, 0.30);
        map.put(20000, 0.25);
        map.put(5000, 0.20);
        map.put(2000, 0.15);
        map.put(500, 0.10);
        map.put(0, 0.05);

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的税前薪水:");
        int pre_tax = sc.nextInt(); // 读取整型输入
        int salary = pre_tax - 2000;
        double revenue = 0;

        // 循环查询
        Iterator iter = map.keySet().iterator();
        while (iter.hasNext()) {
            Integer key = (Integer) iter.next();
            double val = map.get(key);
            if (salary > key) {
                salary = salary - key;
                double revenue0 = salary * val;
                revenue = revenue + revenue0;
                salary = key;
            }
        }
        // 输出
        System.out.println("税前薪水:" + pre_tax);
        System.out.println("实际薪水:" + (pre_tax - revenue));
        System.out.println("交税:" + revenue);
    }
}
15.if 语句,操作符)
读入一个三位数,计算其各位数字之和。例如:123各位数字之和为6
import java.util.Scanner;
public class t7 {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		  int num=sc.nextInt();
          int a=num%10; //个位数
          int b=num/10%10;//十位数
          int c=num/100;//百位数
          System.out.println(a+b+c);
	}
 
}
16.if 语句)
  读入三个整数,把这三个整数按照由大到小的顺序输出。
import java.util.Scanner;
public class IfSanGeShuPaiXuShuChu {
        public static void main(String[] args) {
            System.out.println("请随机输入三个整数,数字间空格隔开,系统将从大到小排序:");
            Scanner s = new Scanner(System.in);
            System.out.println("Enter");
            int a = s.nextInt();
            int b = s.nextInt();
            int c = s.nextInt();
            if (a < b) {
                int t = a;  //如果a<b时候,a、b数值互换。此时a>b
                a = b;
                b = t;
            }
            if (a < c) {    //如果a<c时候,a、c数值互换,此时a>c
                int t = a;
                a = c;
                c = t;
            } 
//以上代码将a鼓捣成最大的了,剩下的代码就排b,c
            if (b < c) {    //如果b<c时候,b、c数值互换,此时b>c
                int t = b;
                b = c;
                c = t;
            }
            System.out.println("");
            System.out.println(c + " " + b + " " + a);
        }
    
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值