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
B .ArrayList
C .ArrayList al=new ArrayList
D .ArrayList
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
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
13、下列关于HashMap
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
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
A .public K firstKey()返回此映射中当前第一个(最低)键。
B .public void clear()从此映射中移除所有映射关系。在此调用返回之后,映射将为空。
C .public Object clone()返回此 TreeMap 实例的浅表副本。(键和值本身也被复制。)
D .public Collection
16、Stack
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(?
⑤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"是正确的字符串常量。