阅读下面程序importjava . io .*;public clas

15 查阅

阅读下面程序

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。