Java第一周练习题

习题

1.(标识符命名)下面几个变量中,那些是对的?那些是错的?错的请说明理由
A. ILoveJava 正确
B. 20 正 确 C . l e a r n @ j a v a @ 不 属 于 标 识 符 命 名 规 则 字 母 、 数 字 、 下 划 线 、 20 正确 C. learn@java @ 不属于标识符命名规则 字母、数字、下划线、 20C.learn@java@线
D. antony.lee 错误 . 不属于标识符 E:正确 F:正确
E. Hello_World 正确
F. 2tigers 正确

2.(if 语句)读入一个整数,判断其是奇数还是偶数

		System.out.println("请输入一个整数:");	
		int x = sc.nextInt();
		if (x % 2 == 0) {
			System.out.println(x + "是偶数");
		} else {
			System.out.println(x + "是奇数");
		}

3.(操作符)有如下代码:
int a = 5;
int b = (a++) + (–a) +(++a);
问执行完之后,b 的结果是多少?

	a = 5
	b = (a++) + (--a) + (++a) 
	5 + 5+ 6 = 16 
	//b的结果为16

4.(基本类型的运算)一家商场在举行打折促销,所有商品都进行8 折优惠。一位程序员把这个逻辑写成:
short price = …; // 先计算出原价
short realPrice = price * 8 / 10; //再计算出打折之后的价格
问:这段代码是否正确?如果正确,假设price 为100,那计算之后的realPrice值为多少?如果不正确,应该怎么改正?

/*
不正确,price的价格为int类型,int类型的数据如果过大,则不能转换成short类型的数据,会造成溢出
price * 8 /10结果为int类型变量,不能转换为shor类型 如果price的价格不大,不用更改 如果过大 ,需要改为int
realPrice的数据类型更改为float
*/    

5.(操作符)请说明>>与>>>之间的区别

/* 		
>> : 按位右移运算符。左操作数按位右移右操作数指定的位数。
	A = 60 A >> 2  60的二进制111100 右移两位 1111=15
>>>:按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充
	A >>> 2 111100 得到15 00001111
/

6.(操作符)有如下代码:
a = (a>b)?a:b;
请问这段代码完成了什么功能。

/*
如果 a大于 b
输出a,否则输出b
*/
    int a = 0,b = 0;
    if(a>b){
        System.out.println(a);
    }else{
        System.out.println(b);
    }

7.(if 语句)读入一个整数,表示一个人的年龄。如果小于6 岁,则输出“儿童” ,6 岁到13 岁,输出“少儿” ;14 岁到18 岁,输出“青少年” ;18 岁到35 岁,输出“青年” ;35 岁到50 岁,输出“中年” ;50 岁以上输出“中老年” 。

    System.out.println("请输入一个人的年龄:");
    int m = sc.nextInt();
    if(m<6){
        System.out.println("儿童");
    }else if(m<=13){
        System.out.println("少儿");
    }else if(m<=18){
        System.out.println("青少年");
    }else if(m<=35){
        System.out.println("青年");
    }else if(m<=50){
        System.out.println("中年");
    }else {
        System.out.println("中老年");
    }

8.(switch 语句)读入一个整数,如果是1~5 之间,则分别输出5 个福娃的名
字,否则输出“北京欢迎你” 。

		System.out.println("请输入一个整数:");
		int m1 = sc.nextInt();
		switch(m1){
			case 1 :
			case 2 :
			case 3 :
			case 4 :
			case 5 :
				System.out.println("福娃");
				break;
			default:
				System.out.println("北京欢迎你");
		}

9.(if 语句,赋值操作)*读入三个整数,输出这三个整数中最大的一个。

	int a1,a2,a3;
    int max = 0;
    System.out.println("请输入第一个整数:");
    a1 = sc.nextInt();
    System.out.println("请输入第二个整数:");
    a2 = sc.nextInt();
    System.out.println("请输入第三个整数:");
    a3 = sc.nextInt();
    if(a1 > a2){
        if(a1 > a3){
            max = a1;
        }else{
            max = a3;
        }	
    }else{
        if(a2 > a3){
            max = a2;
        }else{
            max = a3;
        }
    }
    System.out.println(a1+" "+a2+ " "+a3+"这三个数中的最大值为:"+max);

10.(if 语句)*读入一个表示年份的整数,判断这一年是否是闰年。
如何判断 一个年份是否是闰年:

如果这个年份能够被4整除,且不能被100 整除,则这一年是闰年。
例 如,1996 年是闰年,而相应的,1993 年就不是闰年。

如果这个年份能够被100整除,则这个数必须要能被400 整除,才是闰 年。
例如,2000 年是闰年,1900 年不是闰年。

int year = sc.nextInt();
if((year % 4 == 0 && year % 100!=0) || (year % 100==0 && year % 400 ==0)){
    System.out.println(year+"这一年是闰年");
}else{
    System.out.println(year+"这一年不是闰年");
}

11.(switch 语句)*完成一个简单的计算器程序。
程序要求如下:
1. 读入两个整数
2. 提示用户选择对这两个整数的操作,即输出
1 : +
2 : -
3 : *
4 : /
请输入您的选择:
读入用户的选择,输出运算结果。

int n1,n2,n3;
System.out.println("请输入第一个整数:");
n1 = sc.nextInt();
System.out.println("请输入第二个整数:");
n2 = sc.nextInt();
System.out.println("请选择你的操作:");
System.out.println("1:+\n"+"2:-\n"+"3:*\n"+"4:/\n");
n3 = sc.nextInt();
switch(n3){
    case 1:
        System.out.println(n1+"+"+n2+"="+n1 + n2);
        break;
    case 2:
        System.out.println(n1+"-"+n2+"="+(n1 - n2));
        break;
    case 3:
        System.out.println(n1+"*"+n2+"="+n1 * n2);
        break;
    case 4:
        System.out.println(n1+"/"+n2+"="+n1 / n2);
        break;
    default:
        System.out.println("没有这个选项,请重新输入:");
        break;
  1. (if 语句)*托运计费问题:
  • 当货物重量小于20 公斤的时候,收费5 元,
  • 大于20 公斤小于100 公斤的时候 ,超出20 公斤的部分按每0.2 元每公斤计费,
  • 如果超出100 公斤的时候,超出 的部分按照每公斤0.15 元计算。
  • 读入货物的重量,输出计算之后货物的运费。
int weight;
double money = 0.0;
System.out.println("请输入货物重量:");
weight = sc.nextInt();
if(weight < 20){
    money = 5;
}else if(weight<100){
    money = 5 + (weight - 20)*0.2;
}else if(weight>100){
    money = 5 + 80*0.2+(weight-100)*0.15;
}
System.out.println("运费为:"+money);*/

13.if 语句)*中国的个税计算方法:
应税所得为税前收入扣除2000 元(起征点) ,然后超出部分,按照以下税率
收税:
500 5% 2500
500-2000 10% 4000
2000-5000 15% 7000
5000-20000 20% 22000
20000-40000 25% 42000
40000-60000 30% 62000
60000-80000 35% 82000
80000-100000 40% 102000
100000 - ? 45%
例:若月收入15000,则应税所得为15000-2000=13000;总的个人所得税为
(13000-5000)*20% + (5000-2000)*15% + (2000-500)10% + 5005%= 2225
要求:读入一个整数,表示税前收入,输出应当缴纳的个人所得税和税后实
际收入。

int rev;
    double sum = 0;
    System.out.println("请输入你的收入:");
    rev = sc.nextInt();
    if(rev<2000){
        sum = 0;
    }else if(rev < 2500){
        sum = (rev - 2000) * 0.05 ;
    }else if(rev <4000){
        sum = (500 * 0.05) + (rev - 2500)*0.1;  
    }else if(rev < 7000){
        sum = (500 * 0.05) + (1500 * 0.1)+ (rev - 4000)*0.15;
    }else if(rev < 22000){
        sum = (500 * 0.05) + (1500 * 0.1)+ (3000 * 0.15) + (rev - 7000)*0.2;
    }else if(rev < 42000){
        sum = (500 * 0.05) + (1500 * 0.1)+ (3000 * 0.15) + (15000*0.2) + (rev - 22000)*0.25;
    }else if(rev < 62000){
        sum = (500 * 0.05) + (1500 * 0.1)+ (3000 * 0.15) + (15000*0.2) + (20000*0.25) + (rev - 42000)*0.3;
    }else if(rev < 82000){
        sum = (500 * 0.05) + (1500 * 0.1)+ (3000 * 0.15) + (15000*0.2) + (20000*0.25) + (20000 * 0.3) + (rev - 62000) * 0.35;
    }else if(rev <100000){
        sum = (500 * 0.05) + (1500 * 0.1)+ (3000 * 0.15) + (15000*0.2) + (20000*0.25) + (20000 * 0.3) + (20000 *0.35) + (rev - 82000)*0.4;
    }else if(rev > 10000){
        sum = (500 * 0.05) + (1500 * 0.1)+ (3000 * 0.15) + (15000*0.2) + (20000*0.25) + (20000 * 0.3) + (20000 *0.35) + (20000*0.4) + (rev - 102000)*0.45;
    }
    System.out.println("你的税收为:"+sum);

14.(if 语句,操作符)**读入一个三位数,计算其各位数字之和。例如:123
各位数字之和为6

System.out.println("输入一个整数:");
int num2 = sc .nextInt();
if(num2>100 && num2 <1000){
    int a1 = num2 % 10;
    int b1 = (num2 /10) % 10;
    int c1 = num2 /100;
    int sum1 = a1 + b1 + c1;
    System.out.println("这个三位数各位数字之和为:"+sum1);
}else{
    System.out.println("这个数字不是三位数,请重新输入!");
}

15.(if 语句)**读入三个整数,把这三个整数按照由大到小的顺序输出

System.out.println("请输入第一个整数:");
int n1 = sc.nextInt();
System.out.println("请输入第二个整数:");
int n2 = sc.nextInt();
System.out.println("请输入第三个整数:");
int n3 = sc.nextInt();
int max = n1;
int mid = 0;
int min = 0;
if(n2 > max){
    if(n3 > max){  //n2、n3都大于max
        if(n3 > n2){ //比较n2、n3
            max = n3;
            mid = n2;
            min = n1;
        }else{
            max = n2;
            mid = n3;
            min = n1;
        }	
    }else{   //n2大于max ,max大于n3
        max = n2;
        mid = n1;
        min = n3;
    }			
}else{//n2<max
    if(n3 > max){  //max < n3
        max = n2;
        mid = n1;
        min = n3;
    }
    else{   //max > n3  比较 n2、n3
        if(n2 > n3){
            max = max;
            mid = n2;
            min = n3;
        }else{ // n2 < n3
            max = max;
            mid = n3;
            min = n2;
        }
    }
}
System.out.println("最大值为:"+max+",次大值为:"+mid+",最小值为:"+min);
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值