20145209刘一阳《JAVA程序设计》第六周课堂测试

第六周课堂测试

1、现有以下代码,哪些选项插入到第5行可以通过编译?(BDF)

1.import java.util.*;

2.

3.Class FindStuff {

4.public static void main (String[]args) {

5.//insert code here

6.c.put ("X", 123);

7. }

8.}

A .Map c= new SortedMap();

B .HashMap c= new HashMap();

C .HashMap c= new Hashtable();

D .SortedMap c= new TreeMap();

E .ArrayList c= new ArrayList();

F .Map c = new LinkedHashMap();

2、已知list是一个合法的集合引用,getCollection()返回一个合法集合的引用,下列合法的是?(BE)

A .for(Object o : list)

B .for(Object o : getCollection())

C .for(Object o : list.iterator())

D .for(lterator i ; list.iterator() ; i.hasNext() )

E .for(lterator i=list.iterator(); i.hasNext(); )

3、现有以下代码,哪个选项插入将输出“abc”?(D)

class ForInTest  {
static List list=new ArrayList();
public static void main (String  []  args)  {
list. add("a"); list. add("b");list. add( "c");
//insert code here
System.out.print (o);
}
}

A .for (Iterator o : list.iterator(); o.hasNext (); )

B .for (Iterator o : list)

C .for (Object o : list.iterator())

D .for (Object o : list)

4、以下代码的输出结果为(C)

public  class  Demo{
public  static void main (String[]  args){
List al=new ArrayList();
a1.add("l");
a1.add("2");
a1.add("2");
a1.add("3");
System.out.println (al);
}
}

A .[1,2,3]

B .[1,2,3,3]

C .[1,2,2,3]

D .[2,1,3,2]

5、创建一个只能存放String的泛型ArrayList的语句是哪项?(B)

A .ArrayList al=new ArrayList();

B .ArrayList al=new ArrayList()

C .ArrayList al=new ArrayList();

D .ArrayList al =new List();

6、下列哪些项是泛型的优点?(AC)

A .不用向下强制类型转换

B .代码容易编写

C .类型安全

D .运行速度快

7、List接口的特点是?(C)

A .不允许重复元素,元素无顺序

B .不允许重复元素,元素有顺序

C .允许重复元素,元素有顺序

D .允许重复元素,元素无顺序

8、表示键值对概念的接口是?(D)

A .Set

B .List

C .Collection

D .Map

9、实现了Set接口的类是哪项?(C)

A .ArrayList

B .HashTable

C .HashSet

D .Collection

10、集合API 中Set接口的特点是?(D)

A .不允许重复元素,元素有顺序

B .允许重复元素,元素无顺序

C .允许重复元素,元素有顺序

D .不允许重复元素,元素无顺序

11、下列关于泛型类的子类的说法,正确的个数为(B)

①LinkedList泛型类创建一个链表结构的对象。

②Stack泛型类创建一个堆栈对象。

③HashMap泛型类创建散列映射。

④DelayQueue泛型类创建一个无界阻塞队列。

⑤TreeSet泛型类创建树映射。

⑥Vector创建可增长的对象数组。

A .6

B .5

C .4

D .3

12、下列关于LinkedList泛型类常用方法的介绍,正确的是(ABCD)

A .public E getLast()返回此列表的最后一个元素。如果此列表为空,则抛出NoSuchElementException。

B .public void addFirst(E e) 将指定元素插入此列表的开头。e为要添加的元素。

C .public boolean add(E e)等效于addLast(E)。

D .public boolean remove(Object o) 覆盖类 AbstractCollection 中的 remove。

13、下列关于HashMap泛型类常用方法的介绍,正确的是(AD)

A .public boolean isEmpty()如果此映射不包含键-值映射关系,则返回 true。

B .public V get(Object key)返回指定键所映射的值;如果此映射不包含该键的映射关系,则抛出异常。

C .public V put(K key, V value) 在此映射中关联指定值与指定键。如果该映射以前包含了一个该键的映射关系,则以先定义的值为准。

D .public Object clone()返回此 HashMap 实例的浅表副本:并不复制键和值本身。

14、下列关于TreeSet泛型类常用方法的介绍,正确的是(BCD)

A .public boolean contains(Object o) 如果此 set 包含指定的元素,则返回 true。如果指定对象无法与该 set 中的当前元素进行比较,或不包含,则返回false。

B .public boolean add(E e)将指定的元素添加到此 set。如果此 set 已经包含这样的元素,则该调用不改变此 set 并返回 false。

C .public boolean addAll(Collection<? extends E> c)将指定 collection 中的所有元素添加到此 set 中。如果此 set 由于调用而发生更改,则返回 true。

D .public E lower(E e) 返回此 set 中严格小于给定元素的最大元素;如果不存在这样的元素,则返回 null。

15、下列关于TreeMap泛型类常用方法的介绍,错误的是(C)

A .public K firstKey()返回此映射中当前第一个(最低)键。

B .public void clear()从此映射中移除所有映射关系。在此调用返回之后,映射将为空。

C .public Object clone()返回此 TreeMap 实例的浅表副本。(键和值本身也被复制。)

D .public Collection values()返回此映射包含的值的 Collection 视图。该 collection 的迭代器将按相关键的升序返回这些值。

16、Stack泛型类中的public int search(Object o)返回对象在堆栈中的位置,以 1 为基数。如果对象 o 是堆栈中的一个项,此方法返回距堆栈顶部最近的出现位置到堆栈顶部的距离;返回值 -1 表示此对象不在堆栈中。(A)

A .true

B .false

17、链表调用get(int index)方法的速度比顺序存储结构的集合调用get(int index)方法的速度快。(B)

A .true

B .false

18、ArrayList使用顺序结构,LinkedList使用链式结构。(A)

A .true

B .false

19、如果链表中存放的对象不是字符串数据,那么创建对象的类必须实现Comparable接口。(A)

A .true

B .false

20、下列关于String类的说法,正确的是(AB)

A .String类为final类,不能拥有子类。

B .String常量对象是用双引号括起的字符序列。

C .在String s = new String(“Hello!”);中,对象变量s中存放的是实体。

D .System.out.println(s);可以输出String对象的引用。

21、下列值不为true的表达式是(C)

A ."john" = = "john"

B ."john".equals("john")

C ."john" = "john"

D ."john".equals(new String("john"))

22、下列属于引用数据类型的是(AC)

A .String

B .char

C .用户自定义的Student类类型

D .int

23、实体相同但引用不同的两个字符串,使用“==”比较结果为false。(A)

A .true

B .false

24、使用构造方法String(byte[] bytes, int offset, int length, Charset charset),通过使用指定的 charset 解码指定的 byte 子数组,构造一个新的 String。其中,offset 参数是子数组第一个字符的索引,count 参数指定子数组的长度。(A)

A .true

B .false

25、下列说法错误的是(C)

A .两个常量进行并置运算,得到的仍是常量。

B .并置时只要有一个是变量,Java就会在动态区存放所得到的信String对象的实体和引用。

C .P177的程序运行后,testOne.equals(testTwo)的结果为false。

D.testTwo.equals(you+hi)的结果为true。

26、String类中的length()方法用来获取一个String对象的字符序列的长度,单位为字节。(B)

A .true

B .false

27、观察下列代码,输出结果全部正确的一组是(E)

String s1 =  "Let'sJava";
String s2 = new String("Let'sJava"); 
String s3 = "Let's.*"; 
String s4 = "Let's";
out.println(s1 == s2);//①
out.println(s1.equals(s2));//②
out.println(s1.matches(s3));//③
out.println(s1.contains(s3));//④
out.println(s1.contains(s4));//⑤

A .①false;②true;③false;④true;⑤true

B .①true;②true;③true;④true;⑤false;

C .①false;②false;③false;④false;⑤true

D .①false;②true;③true;④false;⑤false

E .①false;②true;③true;④false;⑤true

F .①false;②true;③false;④true;⑤true

28、public boolean startsWith(String prefix)方法,如果参数是空字符串,则抛出异常。(B)

A .true

B .false

29、下列关于public int compareTo(String anotherString)的说法,正确的是(ACDE)

A .按字典顺序比较两个字符串。该比较基于字符串中各个字符的 Unicode值。

B .如果按字典顺序此 String 对象位于参数字符串之前,则比较结果为一个正整数。

C .如果它们在一个或多个索引位置上的字符不同,假设 k 是这类索引的最小值,compareTo 返回这两个字符串在位置 k 处两个char 值的差,即值:this.charAt(k)-anotherString.charAt(k)

D .如果没有字符不同的索引位置,则较短字符串的字典顺序在较长字符串之前。在这种情况下,compareTo 返回这两个字符串长度的差

E .compareTo 只在方法 equals(Object) 返回 true 时才返回 0。

30、对于String s1 = "c:\book\ java programmer.doc",lastIndexOf("\\")的值为7.(B)

A .true

B .false

31、下列关于substring方法的说法,正确的是(ACD)

A .public String substring(int beginIndex)返回的子字符串从指定索引处的字符开始,直到此字符串末尾。

B .public String substring(int beginIndex, int endIndex) 子字符串从指定的 beginIndex 处开始,直到索引 endIndex处的字符。

C ."emptiness".substring(9)返回值为""。

D ."smiles".substring(1, 5)返回值为"mile"。

E .若beginIndex 大于 endIndex,则substring(int beginIndex, int endIndex)返回-1。

32、下列说法错误的是(D)

A .java.util包中的Data类重写了toString()方法。

B .Arrays和Point都继承了toString方法。

C .调用x.toString()方法的地方可以用""+x代替。

D .定义int[] Numbers = {1, 2, 3}; String s1 = ""+Numbers;,则System.out.println(s1);调用了toString方法,可以将数组输出。

33、下列关于字符串与字符数组、字节数组的说法,正确的是(ACD)

A .getChars (int srcBegin, int srcEnd, char[] dst, int dstBegin)方法的返回值为空。

B .srcEnd是字符串中要复制的最后一个字符的索引。

C .srcBegin 大于 srcEnd时,会抛出IndexOutOfBoundsException异常。

D .要复制到 dst 子数组的字符从索引 dstBegin 处开始,并结束于索引dstbegin + (srcEnd-srcBegin) - 1

34、下列关于正则表达式的说法,正确的是(ABDE)

A .\ba\w*\b匹配以字母a开头的单词

B .\d+匹配1个或更多连续的数字。

C .\b\w{6}\b 匹配6个及以上字符的单词。

D .[0-9]代表的含意与\d就是完全一致的:一位数字

E .\S+匹配不包含空白符的字符串。

F .(\d{1,3}.){3}\d{1,3}用来匹配 IP地址。

35、下列通过测试的断言语句有几个?(B)

①assertEquals(true, "123".matches("\d+"));

②assertEquals(true, "3.5".matches("\d\.\d"));

③assertEquals(true, "C:\Windows".matches("C:\Windows"));

④assertEquals(true, "hello hello".matches("\b(?\w+)\b\s+\k\b"));

⑤assertEquals("rplcmnt","replacement".replaceAll("[aeiou]","*"));

⑥assertEquals(true, ""Hello"".matches("(["'])[^"']*\1"));

⑦assertEquals("##","xfooxxxxxxfoo".replaceAll(".*?foo","#"));

⑧assertEquals("Let's meet at [TIME].","Let's meet at 12:38.".replaceAll("((1|0?)[0-9]|2[0-3])😦[0-5][0-9])","[TIME]"));

A .7个

B .6个

C .4个

D .3个

36、下列说法正确的是(BCD)

A .hasMoreTokens()方法返回语言符号的计数个数。

B .StringTokenizer 方法不区分标识符、数和带引号的字符串,它们也不识别并跳过注释。

C .字符串分析器的计数变量的初始值等于字符串中的单词数目。

D .与split()方法不同的是,StringTokenizer对象不使用正则表达式作为分割标记。

37、以下两段程序的输出结果是完全一样的。(A)

//【代码一】

StringTokenizer st = new StringTokenizer("this is a test");
 while (st.hasMoreTokens()) {
     System.out.println(st.nextToken());
 }

//【代码二】

String[] result = "this is a test".split("\\s");
 for (int x=0; x<result.length; x++)
     System.out.println(result[x]);

A .true

B .false

38、已知:

StringBuffer a = new StringBuffer("StringBuffer");    
StringBuffer b = new StringBuffer("StringBufferStringBuffer");    StringBuffer c = new StringBuffer("StringBufferStringBufferStringBuffer");

则下列测试可以通过的个数为(C)

① assertEquals('S',a.charAt(0));

② assertEquals('g',a.charAt(6));

③ assertEquals(12,a.capacity());

④ assertEquals(52,c.capacity());

⑤ assertEquals(24,b.length());

⑥ assertEquals(5,a.indexOf("gBu"));

A .2

B .3

C .4

D .5

39、下列关于Date类和Calendar类的说法,错误的是(C)

A .可以使用System类的静态方法public long currentTimeMillis()获取系统当前时间。

B .Date类的public boolean equals(Object obj)方法覆盖了类 Object 中的 equals。

C .若比较两个Calendar的时间日期先后,可以使用after()方法。after()返回值为布尔类型,其等价于compareTo(when)<0。

D .使用Calendar类的静态方法getInstance()可以初始化一个日历对象。

40、下列说法正确的是(D)

A .Java 8之前,对日期进行运算,使用DateFormat类。

B .需要人类能理解的时间,建议使用Date类的toString()。

C .现在国际上通用的标准时间是GMT。

D .new Date(System.currentTimeMillis())等价于new Date()

41、Given the following, which answers can correctly fill in the blank? (Choose all that apply.)针对下面的代码,()中应填入哪个选项?(F)

LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime dateTime = LocalDateTime.now();
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zonedDateTime = ZonedDateTime.of(dateTime, zoneId);
long epochSeconds = 0;
Instant instant = (              );

A .Instant.now()

B .Instant.ofEpochSecond(epochSeconds)

C .date.toInstant()

D .dateTime.toInstant()

E .time.toInstant()

F .zonedDateTime.toInstant()

42、What is the output of the following code?(下面代码的运行结果是?)(B)

LocalDate date = LocalDate.of(2018, Month.APRIL, 30);
date.plusDays(2);
date.plusYears(3);
System.out.println(date.getYear() + " "
 +date.getMonth() + " "+ date.getDayOfMonth());

A .2018 APRIL 2

B .2018 APRIL 30

C .2018 MAY 2

D .2021 APRIL 2

E .2021 APRIL 30

F .2021 MAY 2

G .A runtime exception is thrown.

43、What is the output of the following code?(下面代码的运行结果是?)(F)

LocalDate date = LocalDate.of(2018, Month.APRIL, 40);
System.out.println(date.getYear() + " " + date.getMonth()
 +" "+ date.getDayOfMonth());

A .2018 APRIL 4

B .2018 APRIL 30

C .2018 MAY 10

D .Another date

E .The code does not compile.

F .A runtime exception is thrown.

44、下列关于Math类的说法,正确的是(ABD)

A .public static double cbrt(double a) 返回 double 值的立方根。如果参数为 NaN,那么结果为 NaN。

B .public static double cos(double a) 返回角的三角余弦。如果参数为 NaN 或无穷大,那么结果为 NaN。

C .public static double floor(double a) 返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。如果参数为 NaN 或无穷大,那么结果为 NaN。

D .public static double log10(double a) 返回 double 值的底数为 10 的对数。如果参数为正 0 或负 0,那么结果为负无穷大。

45、调用 new Random(seed) 等效于:Random rnd = new Random(); rnd.setSeed(seed);(A)

A .true

B .false

46、下列哪个叙述是正确的?(A)

A .String 类是final 类,不可以有子类。

B .String 类在java.util包中。

C ."abc"=="abc"的值是false .

D ."abc".equals("Abc")的值是true

47、下列哪个表达式是正确的(无编译错误)?(C)

A .int m =Float.parseFloat("567");

B .int m =Short.parseShort("567")

C .byte m =Integer.parseInt("2");

D .float m =Float.parseDouble("2.9")

48、对于如下代码,下列哪个叙述是正确的?(B)

public class E{ 
   public static void main(String[] args){ 
      String strOne="bird"; 
      String strTwo=strOne; 
      strOne="fly"; 
      System.out.println(strTwo); 
  } 
}

A .程序编译出现错误。

B .程序标注的【代码】的输出结果是bird。

C .程序标注的【代码】的输出结果是fly。

D .程序标注的【代码】的输出结果是null。

49、对于如下代码,下列哪个叙述是正确的?(D)

public class E {
   public static void main (String args[]) {
 String s1 = args[1];
 String s2 = args[2];
 String s3 = args[3];
 System.out.println(s3); 
   }
}

A .程序出现编译错误。

B .无编译错误,在命令行执行程序:“java E I love this game”,程序输出this。

C .无编译错误,在命令行执行程序:“java E let us go”,程序无运行异常。

D .无编译错误,在命令行执行程序:“java E 0 1 2 3 4 5 6 7 8 9”程序输出3。

50、下列哪个叙述是错误的?(C)

A ."9dog".matches("\ddog")的值是true。

B ."12hello567".replaceAll("[123456789]+","@")返回的字符串是@hello@。

C .new Date(1000)对象含有的时间是公元后1000小时的时间

D ."\hello\n"是正确的字符串常量。

posted @ 2018-06-15 05:08  20145209  阅读(780)  评论(0编辑  收藏  举报