计算机等级 百分网手机站

计算机等级考试Java试题及答案

时间:2017-06-18 19:47:01 计算机等级 我要投稿

计算机等级考试Java试题及答案

  1. 说明 system.out.println(“This character”+’A’+”has the value:”+(int)’A’)的输出结果。

  解:This character A has the value:65.

  2. Java中整数类型包括_______ . (D)

  A. int ,byte, char B . int , short ,long ,byte , char

  C. int, short ,long , char D. int, short ,long ,byte

  3. 计算表达式的值:x+a%3*(int) (x+y) %2/4,设x=2.5,a=7,y=4.7.

  解:表达式 x+a%3*(int) (x+y) %2/4 的值为2.75。

  4. 以下运算符按运算优先级从高到低排列顺序正确的是______(A)

  A. ! , *, < , = B. !, =,*,>=

  C. !,*, &&, > = D. !=,*, &&, >=

  5. 设a=6,b= --4, 计算表达式的值:

  ——a% ++b

  (——a) <

  (a<10 && a>10 ? a: b)

  解:——a%++b的表达式的值为2

  (——a)<

  (a<10 && a>10 ? a:b)表达式的值为—4

  6.指出下面哪些是合法的标识符 (ABE)

  A $persons B TwoUsers

  C *point D this E _endline

  7. 指出下面哪些是将一个十六进制值付给一个long 型变量 (D)

  A long number =345L B long number=0345

  C long number =0345L D long number=0x345L

  8. 下面哪些不是java的原始数据类型,(B C)

  A short B Bollean C unit D float

  9. 下面的哪些声明是合法的`(ADE)

  A long l =4990 B int i=4L C float f=1—1 D double d=34.4

  E double t=0.9F

  10.下面哪些使用”<<”和”>>”操作符的陈述是对的, 说出为什么。 (AC)

  A.0000 0100 0000 0000 0000 0000 0000 0000 <<5 gives

  1000 0000 0000 0000 0000 0000 0000 0000

  B. 0000 0100 0000 0000 0000 0000 0000 0000 <<5 geves

  1111 1100 0000 0000 0000 0000 0000 0000

  C. 1100 0000 0000 0000 0000 0000 0000 0000 >>5 geves

  1111 1110 0000 0000 0000 0000 0000 0000

  D. 1100 0000 0000 0000 0000 0000 0000 0000 >>5 geves

  0000 0110 0000 0000 0000 0000 0000 0000

  解:java 的以为早作福一共有3中, 分别是>>、>>>、<<,执行的造作分别是有符号右移,无符号右移,左移,有符号右移的意思是说移入的最高位和元最高符号位相同, 无符号右移是移入位始终补零,左移时最低位始终补零,最高位被舍弃。移位操作符另一个非常值得注意的特点是其右操作数是去模运算的,意思是说对于一个int型数据而言,对它移位32位的结果是保持不变而不是变成零,即:a>>32的结果是a 而不是0,同理,对long型数是对右操作数取64的模,a >>64 ==a; 还有一点需要注意的事移位操作符(>>>)只对int 型和long 型有效,对byte 或者short 的操作将导致自动类型转换,而且是带符号的。

  AB 选项运算符运算结果应为向左移5为,故A 结果正确,B结果是错误的。

  CD 选项运算符运算结果应为有符号右移5位,其最高位和原最高符号位应该相同,故C

  结果正确,D结果是错误的。

  11. 分析下面源程序的结构和运行结果

  Class CircleArea {

  final static double PI =3.14159;

  public static void main (String arge[] ){

  double r1=8.0, r2=5.0;

  system.out.println(“半径为”+r1+ “的圆面积=”+area (r1));

  system.out.println(“半径为”+r2+”的圆面积=”+area(r2));

  }

  Static double area(double r){

  Return (PI *r*r);

  }

  }

  解:源程序创建了一个自定义类CircleArea,该类包含了一个类成员变量PI,一个类方法area 将返回圆面积。在主方法main中定义了两个实例变量r1与r2,并调用area方法输入圆面积。程序结果如图所示,

  ——————————————————运行——————————————————

  半径为8.0的圆面积=201.06176

  半径为5.0的圆面积=78.53973

  12.根据下面的代码:

  If (x>0) {system.out.println(“第一”);}

  else if (x>—3) {system.out.println(“第二”);}

  else {system.out.println(“第三”);}

  判断x取值在什么范围内时将打印字符串“第二”?(B)

  A x>0 B x>—3 C x<=—3 D x<=0 & x>—3

  解:x>—3时将打印字符串“第二”。

  13.关于下面程序段正确的说法是

  Char mychar =’c’;

  Switch (mychar) {

  Default;

  Case ‘a’: system.out.println(“a”); break;

  Case ‘b’: system.out.println(“b”); break;

  }

  A 程序出错,dafault位置不对

  B 程序出错,case表达式必须是int类型,不能使用char类型

  C 程序正确,屏幕显示输出字符a

  D 程序正确,屏幕无显示输出

  解:D

  14.以下程序的输出结果是什么?

  Public class test1 {

  Public static void main (string args[]){

  Int y,x=1,total=0;

  While (x<=10){

  Y=x*x;

  System.out.println(y);

  Total+=y;

  ++x;

  }

  System.out.println(“total is ”+total);

  }

  }

  解:程序输出结果如下所示:

  Total is 385

  15.以下程序的运行结果是什么?

  Public class test2{

  Public static void main (string args[]){

  Int count=1;

  While (count<=10) {

  System.out.println(count%2 ==1?” * * * * ”:”++++++++”);

  ++count;

  }

  }

  }

  解:程序如下图所示

  ****

  ++++++++

  ****

  ++++++++

  ****

  ++++++++

  ****

  ++++++++

  ****

  ++++++++