
1、
运行结果:
m=2 k=1
x=1.0 y=2.0 z=-3.0
ch1=-A ch2=A
ch1=-A ch2=a
Hello,Welcome to core Java!
思考题:
(1)字符'A'的Unicode码比字符'a'的Unicode码小32。
(2)假设字符型变量ch中保存一个大写字母,执行ch+=('a'-'A' );后,ch中是相应的小写字母。例:若ch='B',执行后ch='b'。
2、
运行结果:
m=3 n=2. m大于n吗?true
m=2 n=2. m大于n吗?false
str1=Hello;str2=Hello!
s1和s2相等吗?false
思考题:
(1)s2比s1多一个字符“!”,所以不相同。
(2)s2比s1多一个字符,所以s2比s1大。
3、
运行结果:
逻辑变量b1=true、b2=false
b1^b2(异或运算)的结果是:true
b1^!b2(b2取反后与b1异或运算)的结果是:false
n=31,m=15; m与n的位与运算结果是:15
m、n的位与后左移2位的结果:60
思考题:
(1)若给b1赋值2,则程序出错。因为类型不匹配:不能从int转换为boolean
(2)n是十六进制数,化为二进制为0001 1111;
m是八进制数,化为二进制为0000 1111;
所以n&m为0000 1111(二进制),就是十进制数15。
(3)120
(4)左移运算就是乘法运算,左移n位就相当于乘以2^n
4、
运行结果:
(m+n>k)?(m++):(--m+n++)的运算结果:2
float型变量强制转换为int型的结果是:3
int型变量运算:(m+2*n)/k的结果是:2
(m+2*n)/k的结果赋值给float型变量后x=2.0
思考题:
(1)因为temp=(--m+n++),等价于依次执行以下命令:
--m;
temp=(m+n);
n++;
所以,temp=2,m=0,n=3,k=3
(2)因为3.14是double类型,不能赋给float类型的变量x
在3.14后面加F或f,将其转换成float类型,就可以赋值了
(3)此时m=1,n=3,k=3,所以(m+2*n)/k=7/3=2
(4)x=(m+2*n)/(float)k=7/3.0=2.3333333
5、
源程序如下:
public class Ball {
public static void main (String[] args){
float r=6.5f, PI=3.14f,V;
V=4f/3f*PI*r*r*r;
System.out.println("球的半径为"+r);
System.out.println("球的体积为"+V);
}
}
运行结果:
球的半径为6.5
球的体积为1149.7634
