浙大JAVA 实验题答案03answer

发布时间 : 星期三 文章浙大JAVA 实验题答案03answer更新完毕开始阅读

运行结果:

逻辑变量b1=true、b2=false b1^b2(异或运算)的结果是:true

b1^!b2(b2取反后与b1异或运算)的结果是:false

思考:

(1) 如果给 b1赋值2,程序会怎样?

会出错。因为类型不匹配:不能从int转换为boolean。

5. 阅读以下程序,写出程序的运行结果,并上机运行验证。

运行结果:

第1段测试代码输出 -1 127 -127 -128

第2段测试代码输出 f=1.23456792E8

d=1.23456789123456784E17

第3段测试代码输出

float型变量强制转换为int型的结果是:3 int型变量运算:(m+2*n)/k的结果是:2

(m+2*n)/k的结果赋值给float型变量后x=2.0

思考:

(1) 分析第1段代码,说明在什么情况下,int类型的数值转换为byte类型,会出现符号变化,即正

数变负数,负数变正数?为何输出会不同?

如果数值超出byte类型的取值范围时,会出现符号变化。因转换时从int类型数值的二进制补码形式中截取低8位,作为byte类型的补码,所以输出会不同。

(2) 分析第2段代码,说明整数类型向浮点型转换是否可能出现精度损失,是否需要强制转换。

整数类型向浮点型转换可能出现精度损失,但不需要强制转换。 (3) 语句float x=3.14f; 改为float x=3.14; 会出错,为什么?

因为3.54是double类型,不能赋给float类型的变量x,在3.54后面加F或f,将其转换成float类型,就可以赋值了。

(4) 如果将x=(m+2*n)/k改为x=(m+2*n)/(float)k,x的结果是多少?

x=(m+2*n)/k=7/3=2

x=(m+2*n)/(float)k=7/3.0=2.3333333

6. 阅读以下程序,写出程序的运行结果,并上机运行验证。

运行结果:

i=7 j=6 k=3 t=13 i=8 j=5 k=3

表达式c1+j*k/j%i的结果是:100 f=false i=7 j=6 f=true j=6

思考:

(1) 分析语句 t=i+++k%--j*2; 的执行过程。

即 t=(i++)+k%(--j)*2; 执行过程如下: --j; 得j为5

t=i+k%j*2=7+3%5*2=7+3*2=13; i++; 得i为8

(2) 表达式c1+j*k/j%i的结果是什么类型?为什么?字符和整数相加得到什么?

是int,因为字符变量c1自动转换成int后参加运算。 字符和整数相加得到整数。

(3) 把语句f=i

输出有变化,j=1,分析如下:

i

联系合同范文客服:xxxxx#qq.com(#替换为@)