黑马程序员技术交流社区

标题: 考试错题集 [打印本页]

作者: 梅子派    时间: 2015-12-13 20:37
标题: 考试错题集
1.下面程序执行的结果是?(C )
                boolean b=true;                        //定义一个布尔类型变量,只是true
                if(b=false)                        //赋值语句,将false赋值给b,括号里面的值是false,不执行
                {
                        System.out.println("a");
                }
                else if(b)                        //b的值是false,所以也不执行
                {
                        System.out.println("b");       
                }
                else if(!b)                        //b的值是false,取反后是true,执行,输出c,结束循环
                {
                        System.out.println("c");
                }
                else
                {
                        System.out.println("d");
                }
        A.        a   
        B.        b  
        C.        c
        D.        d
易错点:if(b=false) 是赋值语句,将false赋值给b,括号里面的值是false,不执行

2.下列函数中能和函数int max(int  a,  int  b, double  c)构成重载关系的是( BC )
        A.  double  max(int  a, int  b, double  c)         //参数列表要不同,此处相同了
        B.  void  max(int  a, double  c, int  b)        // 对应位置参数类型不同
        C.  int  max(double a, int  b)                        //参数列表(个数)不同
        D.  int  max(int  x, int  y, double  z)         //跟参数列表的变量名无关
易错点:B选项,对应位置参数列表的类型不同也是重载,还有D选项,跟参数列表的变量名无关。
方法重载Overload:
        同一个类中,出现方法名相同,参数列表不同(个数,对应的类型)的两个或两个以上的方法时称为方法重载,方法重载与返回值的数据类型无关。

3.JDK1.7之后,switch语句后括号里的表达式可以是以下哪种类型(ABD)
        A.  char
        B.  String
        C.  long         // 没有
        D.  枚举类型
易错点:此题考的是JDK1.7之后,switch语句后括号里的表达式支持的所有类型,而不是说JDK1.7之后才支持的什么类型。
switch(表达式)表达式可以是哪种类型?
                byte,short,char,int,JDK1.5以后支持枚举,JDK1.7以后支持字符串(String)。

4.下面的哪一个程序片断可能导致错误。 ( B   )
        A.
           String s = "Gone with the wind";
           String t = " good ";
           String k = s + t;
        B.
           String s = "Gone with the wind";
           String t;
          t = s[3] + "one";                  //s[3]错误,需要数组,并未定义数组

        C.
          String s = "Gone with the wind";
          String standard = s.toUpperCase();
        D.
          String s = "home directory";
          s = s + "directory";
易错点:变量要先定义再使用,不能使用为定义的元素。

5.下列哪个声明是错误的?(BC)
        A.  int  i=10;
        B.  float  f=1.1;                //要float  f=1.1f;这样定义,小数默认类型是double类型
        C.  int other = (int) true;        //boolean类型不参与运算
        D.  byte  b=127;
易错点:整数默认类型是int类型,小数默认类型是double类型,定义float类型时要在后面加一个f;还有就是boolean类型不参与运算

6.下面程序执行的结果是( B)
                        public static void main(String [] args)
                        {
                                int num=100;                //定义整型变量赋值100
                                if(num ++>100);         //如果num ++>100则继续,否则不执行,但是后面直接加了分号,
                                {
                                num =200;                //代码块,给num赋值200
                                }
                                System.out.println(num);//输出200
                        }
        A.  100
        B.  200
        C.  201
        D.  101  
易错点:看清代码,if(num ++>100); 没有方法体,容易错选成D

7.编译如下代码,编译运行时,结果是(A)
                        public static void main(String[] atgs){
                                for(int i=0;i<3;i++){
                                        System.out.print(i);
                                }
                                System.out.print(i);         //i已被释放,未定义

                        }
A.        编译时报错
B.  正确运行,输出012
C.  正确运行,输出123
D.  正确运行,输出0123
易错点:for循环里面定义的变量,随着for循环的结束就释放了,在外面不能再被调用

8.下面关于代码String str = new String(“abc”);描述正确的是( bc  )
        a) 创建了一个字符串对象
        b) 创建了两个对象,一个是new String(  )对象,一个是”abc”对象
        c) str.equals(“abc”);将返回true     //String方法重写了equals方法
        d) str.equals(“abc”);将返回false
易错点:String方法默认重写了equals方法

9.对字符串的说法正确的是( d   )
        a) 字符串是基本数据类型        //引用类型
        b) 字符串值存储在栈内存中      //存储在常量池
        c) 字符串值初始化后可以被改变  //不可以
        d) 字符串值一旦初始化就不会被改变   
易错点:字符串值一旦初始化就不会被改变,是对的,这里的“不能发生改变”指的是字符串在常量池中的值不能发生改变,因为字符串是常量。

10.下面代码运行的结果是( a  )
                ArrayList<String> al = new ArrayList<String>();//定义一个泛型是String类型的集合
                al.add(true);                //true是布尔类型
                al.add(123);                //123是基本数据类型
                al.add(“abc”);
                System.out.println(al);
        a) 编译失败
        b) [true,123]
        c) [true,123,abc];
        d) [abc];
易错点:泛型是一种安全机制,使用泛型避免了强制类型转换,这里要添加泛型指定的类型

11.关于将int数组使用系统提供的API转成集合后,不可以进行的操作是(  a   )
        a) 增加集合中的元素                        //数组长度是固定的,改变之后运行会报错
        b) 迭代集合
        c) 修改集合中的元素
        d) 获取集合中元素的个数
易错点:数组数组长度是固定的,转成集合之后,一样不能改变长度,改变之后运行会报错

12.ArrayList的初始化内容如下:
                        ArrayList<String> list = new ArrayList<>();
                                list.add("java");
                                list.add("aaa");
                                list.add("java");
                                list.add("java");
                                  list.add("bbb");
  下面可以删除list中所有的“java”的代码是(  a )
          a)
        for (int i = list.size()-1; i >= 0; i--) {               
                        if("java".equals(list.get(i))){               
                                list.remove(i);
                        }
          }
          b)
          for (int i =0; i < list.size(); i++) {                        //当删除一个元素时,对应索引向前移动一个,
                        if("java".equals(list.get(i))){                //i++的时候会跳到下一个元素,会漏删
                                list.remove(i);
                        }
          }
         c)  list.remove("java");                //remove(int index)

          d)  list.removeAll("java");               

易错点:remove()进行删除操作的时候,不会自动装箱,也就是说,我们传的整数会直接被识别为:索引。
作者: 王晓亮    时间: 2015-12-13 21:12
!!!!!!!
作者: 纯色小白狼    时间: 2015-12-13 21:15
多谢分享
作者: LSD-ZWH    时间: 2015-12-13 21:51
貌似我都做过
作者: 15846574191    时间: 2015-12-13 23:49
很不错啊!!!
作者: 王如是    时间: 2015-12-14 10:08
谢谢分享,还没看过呢。
作者: Jerson_ZF    时间: 2015-12-14 21:13
很多知识我也不太会,感谢分享
作者: 丁大人来了    时间: 2016-6-20 23:21
感谢楼主的分享
作者: 159269236    时间: 2016-6-20 23:24
多谢分享
作者: lionc123    时间: 2016-6-21 00:28
谢谢分享
作者: jiazhuoxiao    时间: 2016-6-21 09:48
谢谢分享 希望以后多晒晒




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2