请阅读下面程序 import java.io. *; public class TypeTransition { public static void main(String args[]){char a=’a’;int i=l00;long y=456L;int aa=a+i;long yy=y-aa;System.out.print("aa = "+aA) ;System.out.print("yy = "+yy); } 程序运行结果是
A.aa=197 yy=259
B.aa=177 yy=259
C.aa=543 yy=288
D.aa=197 yy=333
参考答案:A
解析: 本题考查各数据类型间的自动转换。自动类型转换允许在赋值和计算时由编译系统按照一定的规则自动完成。它只能将位数少的数据类型向位数多的数据类型转换。 本题程序的int aa=a+i语句中,a为字符型数据,i为整型数据,这两个类型的数据进行运算时,首先按照自动类型转换规则把字符型数据a转换为整型数据97(97是字符a的ASCII码),然后与整型变量i相加得结果197,赋值给整型变量aa。因此,输出变量aa的值为197。 同理,long yy=y-aa语句中,y为long型数据,aa为int型数据,这两个类型的数据进行运算时,首先按照自动类型转换规则把int型数据aa转换为long型数据197,然后与long型数据y相减得结果259,赋值给long型变量yy。因此,输出变量yy的值为259。 因此,本题的正确答案是选项A。