阅读下面程序
import java.io.*;
public class TypeTransition
public static void main (String args[])
char a='h';
int i=100;
int j=97;
int aa=a+i;
System.out.printIn("aa="+aa);
Char bb=(char)j;
System.out.printIn("bb="+bb);
如果输出结果的第二行为bb=a,那么第一行的输出是( )。
A.aa=I
B.aa=204
C.aa=v
D.aa=156
参考答案:B
解析: 本题考查的是Java的基本数据类型及其运算。程序开始生成了一个字符型变量a和3个整型变量i、j、aa。而整型变量aa的初始值是a+i,其中a是一个字符型变量。Java语言规定,进行加法运算时,char型数据可以自动转换成int类型,转换的结果就是该字符的ASCⅡ码位。因此,整型变量aa的初始值为字符h的ASCⅡ码值加上100。如果记住h的ASCII码值是104,则直接就确定aa的初始值是204,选项B为正确答案。
如果记不得h的ASCⅡ码,题目中则给出提示。题目中说“输出结果的第二行为bb=a”,也就是字符bb的值为字符a,bb的生成语句是char bb=(char)j,是把整型变量j的值强制转换为字符型。同样,把ASCⅡ码值为j(97)所对应的字符赋值给bb。显然,字符a的ASCII码值为97,字符b的ASCII码值为98,依次类推,字符h的ASCⅡ码为104。因此,本题的正确答案是B。