日期:2014-05-20  浏览次数:20704 次

令人慧解的信息技术大赛的java试题2,求详细解答!
1.编译和运行下面代码时显示结果是( )
  public class Conv{
   public static void main(String argv[]){
   Conv c=new Conv();
   String s=new String("ello");
   c.amethod(s);
   }
   public void amethod(String s){
   char c='H';
   c+=s;
   System.out.println(c);
   }
  }
  A、Hello 
  B、ello
  C、elloH
  D、编译错误
解答:D PS:+号运算符不是可以把字符串和字符串或其它类型的变量连接起来吗?

2.、下列关于修饰符混用的说法错误的是( )。
A、abstract不能与final并列修饰同一个类
B、abstract类中不可以有private的成员
C、abstract方法必须在abstract类中
D、staic方法中能处理非static的属性
解答:D PS:我测试了一下abstract 类是可以有private 成员的?

3.根据下面代码定义:
Integer i = new Integer (42); 
Long 1 = new Long (42); 
Double d = new Double (42.0); 
下列表达式结果为真的有( )。
A、(i ==1)
B、(i == d)
C、(d == 1)
D、(i.equals (d)) 
E、(d.equals (i)) 
F、(i.equals (42)) 
解答:D,E PS:DE咋就对了呢,感觉只F正确?

4.下列选项中,能有效地描述浮点数的有( )。
A. Float foo = -1; 
B. Float foo = 1.0; 
C. Float foo = 42e1; 
D. Float foo = 2.02f; 
E. Float foo = 3.03d; 
F. Float foo = 0x0123;
解答:A, D, F  PS:无语,我怎么感觉一个都不对啊,求解?

5.下列选项中,能有效声明一个字符的语句有( )。
A. Char ch = “a”; 
B. Char ch = ‘\' ‘; 
C. Char ch = ‘cafe'; 
D. Char ch = “cafe”; 
E. Char ch = ‘\ucafe'; 
F. Char ch = ‘\u10100'; 
G. Char ch = (char) true;
解答:B,E  PS:真心不了解unicode编码啊,F记不清为什么不对了。

6.创建一个类,来存储唯一的对象元素,元素不需要保持特定顺序,但是必须唯一。
  最能满足这种要求的接口有( ) 。
A、Set  
B、List 
C、Map  
D、Vector  
E、HashSet 
解答:A,E   PS:HashSet不是接口啊,Map可不可以啊?
求各位大神们能给个详细的解答,小弟在此先谢了..

------解决方案--------------------
3题 d和e都不对啊 我看了他们重写的equals方法 应该都返回false的啊 F是对的啊
------解决方案--------------------
Map存储的是键值对,包含了key-value对,Map中key是必须唯一的,但是value可以重复。
java.util.HashSet类实现了java.util.Set接口。
探讨

第六题怎么没有人回答啊

------解决方案--------------------
1.c+=s隐含一个强制转换语句,意为c = (string)(c+s);,而不能用String赋值给char型的变量c。

2.抽象类可以是终态的,故A正确。抽象类中有Private成员会导致子类无法正常继承其所有属性,故B正确。抽象类和一般类的区别在于抽象方法,抽象方法必须在抽象类中,故C正确。Static

3.==比较的是对象的内存地址,而equals方法比较对象的内容。所以ABC显然是错的,而DE是对的。对于F,因为42不是一个具体的对象,不能用equals方法比较。

4.解释下为什么BCE错吧。B没有说明符号,C语法不正确,E中不能用float类型的变量foo储存double型的值。

5.A中,char变量的值应使用''括起来而不是" "。B中使用转义字符赋值\给ch,正确。C中char型变量仅能储存一个字符。D中不能把字符串赋值给一个字符型变量。E中使用转义字符\u。F中的目的是使用二进制对ch赋值,但使用了' ',而单引号中应为一个字符的值,故错误。G中,boolean型不能强制转换为任何其他类型。

6.Map中无法做到元素唯一。

以上纯手打。仅供参考。
------解决方案--------------------
探讨

我这里主要说一下第三题,看没有人说出详细解答:
第三题,结果是F,原因:
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
不同类型的类相比,基本不会比较,比直r……