Java程序的输出 |第 21 组(类型转换)
先决条件 - Java的类型转换和示例
1) 以下程序的输出是什么?
public class Test
{
public static void main(String[] args)
{
int value = 554;
String var = (String)value; //line 1
String temp = "123";
int data = (int)temp; //line 2
System.out.println(data + var);
}
}
一)677
b) 第 1 行导致的编译错误
c) 第 2 行导致的编译错误
d) 第 1 行和第 2 行导致的编译错误
答。 (四)
说明:在Java不允许从 int 转换为 String 以及从 String 转换为 int。 2) 以下程序的输出是什么?
public class Test
{
public static void main(String[] args)
{
double data = 444.324;
int value = data;
System.out.println(data);
}
}
一)444.324
乙)444
c) 运行时错误
d) 编译错误
答。 (四)
说明: Java不允许从较大的数据类型转换为较小的数据类型,因为这是一种有损转换。
3) 以下程序的输出是什么?
public class Test
{
public static void main(String[] args)
{
double data = 444.324;
int sum = 9;
float value = 5.1f;
System.out.println(data + sum + value);
}
}
a) 444.32495.1
b) 456
c) 458.42399
d) 458.4
答。 (C)
说明:如果操作数之一是long、double或float,则整个表达式分别转换为long、double或float。
4) 以下程序的输出是什么?
public class Test
{
public static void main(String[] args)
{
byte var = 1;
var = (byte) var * 0; //line 1
byte data = (byte) (var * 0); //line 2
System.out.println(var);
}
}
一)0
b) 第 1 行导致的编译错误
c) 第 2 行导致的编译错误
d) 第 1 行和第 2 行导致的编译错误
答。 (二)
说明:当计算表达式时,结果的数据类型被隐式更改为更大的数据类型,因此,必须进行显式重铸,如第 2 行所示。另一方面,第 1 行显示编译错误,因为表达式右侧的数据类型为 int 而左侧的数据类型为字节。
5) 以下程序的输出是什么?
public class Test
{
public static void main(String[] args)
{
System.out.println((100/25.0)*Integer.parseInt("5") + 50);
}
}
a) 编译错误
b) 70
c) 70.0
d) 运行时错误
答。 (C)
说明:如果在表达式中使用双精度值,则输出将以双精度格式而不是整数格式返回。