练习题(基础练习)

第一题:

/*

需求:

1、计算5 个月的生活大概开销(spending, 比如

rent(房租)=800.00

mealCost(吃饭)=900.00

clothingCosts(买衣服)= 300.00

otherCosts(其他费用)= 300.00

*/

public class dome1

{

publicstatic void main(String[] args)

{

doublerent = 800.00 ;

doublemealCost = 900.00 ;

doubleclothingCosts = 300.00 ;

doubleotherCosts = 300.00 ;

doublespending = rent + mealCost + clothingCosts + otherCosts ;

System.out.println(spending); //结果为:2300.0

}

}



第二题:

/*

需求:2、计算 12 个月贷款利息之和(totalInterest)。假如学费(tuition) 10000.00,每月利率(rate1%。(不考虑复利)

*/

public class dome2

{

publicstatic void main(String[] args)

{

doubletuition = 10000.00 ;

doublerate = 0.01 ;

doublemonth = 12.0 ;

doubletotalInterest = tuition / month * rate * month ;

System.out.println(totalInterest);

}

}



第三题:

/*

需求:定义一个 int 变量(unfinishedCount)存放当前你作业未完成次数,定义一个String 变量(result)存放三元元算法返回的结果,达到 3 次或以上就存放开除,否则存放还在

*/

public class dome3

{

publicstatic void main(String[] args)

{

for(inti=0;i<=3;i++)

{

intunfinishedCount = i ;

String result = unfinishedCount >= 3 ? "开除": "还在" ;

System.out.println(result);

}

}

}



第四题:

int x = 10;

 

int a= x + x++;  //从左往右计算(结合性的原因): 第一个x直接被x=10赋值,变成了10,后面的x++再进行运算, x++ = 10(取原来的值进行计算) ,  结果为20 ;

 

System.out.println("a=" + a); //20

 

System.out.println("x=" + x);//11

 

int b = x + ++x; //11 + 12 = 23 ;

 

System.out.println("b=" + b); //23

 

System.out.println("x=" + x);//12

 

int c = x + x--;//  12 + 12 = 24 ;

 

System.out.println("c=" + c); //24

 

System.out.println("x=" + x); //11

 

int d = x + --x; //11 + 10 = 21 ;

 

System.out.println("d=" + d); //21

 

System.out.println("x=" + x);//10

 

 

 

int a = 15;

 

int b = 2;

 

int x = a &b;  

/*

a二进制: 00001111

b二进制: 00000010

   &

__________________________

    00000010------->2的原码;

                 

*/

 

int y = a | b;

/*

a二进制: 00001111

b二进制: 00000010

   |

__________________________

    00001111------->15的原码;

                 

*/

int z = a ^ b;

/*

a二进制: 00001111

b二进制: 00000010

   ^

__________________________

    00001101------->13的原码;

                 

*/

System.out.println(a+ "&" + b + "=" + x); // x = 2 ;

 

System.out.println(a+ "|" + b + "=" + y);// y = 15 ;

 

System.out.println(a+ "^" + b + "=" + z);// z = 13 ; 




第五题:

/*

计算程序输出结果:

int a = 3, b = 5;

boolean c = a++ >10 & b++ > 10;

System.out.println("a="+ a + ",b=" + b + ",c=" + c);

*/

/*

因为a++ b++ 所以最后 a b肯定都自加1, a = 4 , b = 6 ;

1)a++> 10

  a++ 先自增,自增完成之后,再返回a自增之前原来的值进行运算,a原来的值为3,自增完成之后的值为4 , 所以 3>10false.

  a++ > 10 false ;

2)b++> 10

  b++ 先自增,自增完成之后,再返回b自增之前原来的值进行运算,b原来的值为5,自增完成之后的值为6 , 所以 5>10false.

  b++ > 10 false ;

3)因为a++>10false , b++>10false ,所以a++>10 & b++>10 false ,所以cfalse.

最后结果为: a = 4 , b = 6 , c = false ;

*/

public class dome5

{

publicstatic void main(String[] args)

{

inta = 3, b = 5;

booleanc = a++ > 10 & b++ > 10;

System.out.println("a="+ a + ",b=" + b + ",c=" + c);//a = 4 , b = 6 , c = false ;

}

}



第六题:

/*

需求:

- 扩展:

1. 0xaa | 0x55

2. 15 & 240

3. 10 ^ 12

4. -2>> 1    //右移补齐用的是符号位上的符号;

5. -2>>> 1  //右移补齐用的是'0';

*/

 

/*

1).0xaa | 0x55:

       0x为十六进制;

   十六进制取值范围: 0~9 a b c d e f ;

   十六进制数:aa 转换成 二进制的数:10101010

   十六进制数:55 转换成 二进制的数:01010101

   10101010

 | 01010101

 ---------------

       11111111 ----> 十进制数:255;

2).15 & 240

   15的二进制数为:  00001111 ;

   240的二进制数为: 11110000 ;

   00001111

 & 11110000

-------------

   00000000----> 十进制数为:0  ;

3).10 ^ 12

   10的二进制数为: 00001010

   12的二进制数为: 00001100

   1010

 ^ 1100

 ----------------

   0110-----------> 十进制为:6

 

4) -2 >> 1

-2的原码:?10000000_00000000_00000000_00000010;

  反码为:11111111_11111111_11111111_11111101;

  补码为:11111111_11111111_11111111_11111110;

  向右移1:11111111_11111111_11111111_1111111

  再从最左边补齐与符号位相同的符号:111111111_11111111_11111111_1111111  -----> (-1的原码)

 

5) -2 >>> 1

    -2的原码:?10000000_00000000_00000000_00000010;

  反码为:11111111_11111111_11111111_11111101;

  补码为:11111111_11111111_11111111_11111110;

  向右移1:11111111_11111111_11111111_1111111

  再从最左边补齐'0':011111111_11111111_11111111_1111111  -----> 2147483647的原码

*/

 

public class dome6

{

publicstatic void main(String[] args)

{

System.out.println(0xaa|0x55);//255

System.out.println(15& 240); //0

System.out.println(10^ 12); //6

System.out.println(-2>> 1);//-1

System.out.println(-2>>> 1);//2147483647

}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值