阅读下面程序
importjava . 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 .println("aa="+aa) ;
char bb=(char)j ;
System.out .println("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 类型, 转换的结果就是该字符的 ASCIl 码值。因此,整型变量 aa 的初始值为字符” h”的 ASCIl 码值加上 l00 。如果记住 h 的 ASCIl 码值是 104,则直接就确定 aa 的初始值是 204,选项 B 为正确答案。 如果记不得 h 的 ASCIl 码,题目中则给出提示。 题目中说”输出结果的第二行 为 bb=a”,也就是字符 bb 的值为字符 a, bb 的生成语句是 char bb=(char)j ,是把整型变 量 j 的值强制转换为字符型。同样,把 ASCIl 码值为 j(97) 所对应的字符赋值给 bb。显然, 字符 a 的 ASCIl 码值为 97,字符 b 的 ASCIl 码值为 98,依次类推, 字符 h 的 ASCIl 码为 l04 。 因此,本题的正确答案是 B。