1)Which code fragment would correctly identify the number of arguments passed via the command line to a Java application, excluding the name of the class that is being invoked?
哪個代碼片段可以正確地標識通過命令行傳遞給Java應用程序的參數的數量,而不包括正在調用的類的名稱?
A)int count=0; while (!(args[count].equals(""))) count ++;
B)int count = args.length - 1;
C)int count = args.length;
D)int count = 0; while (args[count] != null) count ++;
3)Analyze the following code.
class Test { public static void main(String[ ] args) { String s; System.out.println("s is " + s); } }
A)The program compiles and runs fine.
B)The program has a runtime error because s is not initialized, but it is referenced in the println statement.
C)The program has a compilation error because s is not initialized, but it is referenced in the println statement.
D)The program has a runtime error because s is null in the println statement.
4)How can you get the word "abc" in the main method from the following call?
java Test "+" 3 "abc" 2 4) _______
A)args[2] B) args[1] C) args[3] D) args[0]
5)What is the output of the following code?
public class Test { public static void main(String[ ] args) { String s1 = new String("Welcome to Java!"); String s2 = new String("Welcome to Java!"); if (s1.equals(s2)) System.out.println("s1 and s2 have the same contents"); else System.out.println("s1 and s2 have different contents"); } }
A)s1 and s2 have the same contents
B)s1 and s2 have different contents
s.equals()方法是判斷字符串的內容是否相等,只要內容相等就返回true
6)What is the output of the following code?
public class Test { public static void main(String[ ] args) { String s1 = "Welcome to Java!"; String s2 = "Welcome to Java!"; if (s1 == s2) System.out.println("s1 and s2 reference to the same String object"); else System.out.println("s1 and s2 reference to different String objects"); } }
A)s1 and s2 reference to the same String object
B)s1 and s2 reference to different String objects
"=="方法是判斷兩個字符串的地址是否相同,即如果有a,b兩個字符串,他們都指向同一個對象,即同一個地址,則用"=="返回true
7)Which of the following is true? (Choose all that apply.) 7) _______
A)You can add characters into a string buffer.
B)The capacity of a string buffer can be automatically adjusted.
C)You can reverse the characters in a string buffer.
D)You can delete characters into a string buffer.
String類是字符串常量,是不可更改的常量。而StringBuffer是字符串變量,它的對象是可以擴充和修改的。
8)To check if a string s contains the suffix "Java", you may write (Choose all that apply.)
A)if (s.charAt(s.length() - 4) == 'J' && s.charAt(s.length() - 3) == 'a' && s.charAt(s.length() - 2) == 'v' && s.charAt(s.length() - 1) == 'a') ...
B)if (s.substring(s.length() - 5).equals("Java")) ... s可能只包含有“Java”
C)if (s.lastIndexOf("Java") >= 0) ... lastIndexOf返回值一定是大於0的!不存在找不到返回-1的情況!
D)if (s.endsWith("Java")) ...
E)if (s.substring(s.length() - 4).equals("Java")) ...
9)What is displayed by the following code?
public static void main(String[ ] args) throws Exception { String[ ] tokens = "Welcome to Java".split("o"); for (int i = 0; i < tokens.length; i++) { System.out.print(tokens[i] + " "); } }
A)Welc me to Java
B) Welcome to Java
C)Welcome t Java
D) Welc me t Java
split 函數是用於按指定字符(串)或正則去分割某個字符串,結果以字符串數組形式返回
11)Suppose you enter 34.3 57.8 789, then press the ENTER key. Analyze the following code.
Scanner scanner = new Scanner(System.in); int value = scanner.nextDouble(); int doubleValue = scanner.nextInt(); String line = scanner.nextLine();
A)After the last statement is executed, intValue is 34. 注意這里沒有進行強制類型轉換!
B)After the last statement is executed, line contains characters '7', '8', '9', '\n'.
C)After the last statement is executed, line contains characters '7', '8', '9'.
D)The program has a runtime error because 34.3 is not an integer.
13)Which of following is not a correct method in Character? (Choose all that apply.) 13) ______
A)isLetter(char) B)isDigit() C)isLetterOrDigit(char) D)toLowerCase(char) E)toUpperCase()
B、E需要有參數
16)________ returns the last character in a StringBuilder variable named strBuf? 16) ______
A)StringBuilder.charAt(strBuf.capacity() - 1)
B)strBuf.charAt(strBuf.capacity() - 1)
C)StringBuilder.charAt(strBuf.length() - 1)
D)strBuf.charAt(strBuf.length() - 1)
17)Assume StringBuilder strBuf is "ABCCEFC", after invoking ________, strBuf contains "ABTTEFT". 17) ______
A)strBuf.replace("C", "T")
B)strBuf.replace("CC", "TT")
C)strBuf.replace('C', 'T')
D)strBuf.replace('C', "TT")
E)strBuf.replace(2, 7, "TTEFT")
19)Analyze the following code.
class Test { public static void main(String[ ] args) { StringBuilder strBuf = new StringBuilder(4); strBuf.append("ABCDE"); System.out.println("What's strBuf.charAt(5)? " + strBuf.charAt(5)); } }
A)The program has a runtime error because the length of the string in the buffer is 5 after "ABCDE" is appended into the buffer. Therefore, strBuf.charAt(5) is out of range.
B)The program compiles and runs fine.
C)The program has a runtime error because because the buffer's capacity is 4, but five characters "ABCDE" are appended into the buffer.
D)The program has a compilation error because you cannot specify initial capacity in the StringBuilder constructor.
20)Suppose Character x = new Character('a'), ________ returns true. (Choose all that apply.)
A)x.equals(new Character('a'))
B)x.compareToIgnoreCase('A')
C)x.equals('a')
D)x.equals("a")
E)x.equalsIgnoreCase('A')
21)The following program displays ________.
public class Test { public static void main(String[ ] args) { String s = "Java"; StringBuilder buffer = new StringBuilder(s); change(s); System.out.println(s); } private static void change(String s) { s = s + " and HTML"; } }
A)Java and HTML B) and HTML C)nothing is displayed D) Java
StringBuilder是可變類,String是不可變類!!
22)To check if a string s contains the prefix "Java", you may write (Choose all that apply.)
A)if (s.indexOf("Java") == 0) ...
B)if (s.startsWith("Java")) ...
C)if (s.substring(0, 4).equals("Java")) ...
D)if (s.charAt(0) == 'J' && s.charAt(1) == 'a' && s.charAt(2) == 'v' && s.charAt(3) == 'a') ...
23)Which of the following statements is preferred to create a string "Welcome to Java"?
A)String s; s = new String("Welcome to Java");
B)String s = "Welcome to Java";
C)String s; s = "Welcome to Java";
D)String s = new String("Welcome to Java");
注意題目的要求,更適合!其實D也是正確的,但沒有B更適合!
26)Assume StringBuilder strBuf is "ABCDEFG", after invoking ________, strBuf contains "AEFG". 26) ______
A)strBuf.delete(1, 3) B) strBuf.delete(2, 4) C)strBuf.delete(0, 3) D) strBuf.delete(1, 4)
從指定位置beginIndex的字符開始到下標為endIndex-1的字符,注意位於endIndex位置的字符不屬於該字符串的一部分!
28)Which of the following is the correct statement to return a string from an array a of characters?
A)toString(a) B) convertToString(a) C)new String(a) D) String.toString(a)
29)What is the return value of "SELECT".substring(0, 5)? 29) ______
A)"SELECT" B) "SELE" C)"SELEC" D) "ELECT"
從指定位置beginIndex的字符開始到下標為endIndex-1的字符,注意位於endIndex位置的字符不屬於該字符串的一部分!
30)Suppose s1 and s2 are two strings. What is the result of the following code?
s1.equals(s2) == s2.equals(s1)
A)true B) false
32)Assume s is "ABCABC", the method ________ returns an array of characters. 32) ______
A)String.toCharArray()
B)String.toChars()
C)s.toCharArray()
D)s.toChars()
E)toChars(s)
33)Which correctly creates an array of five empty Strings? 33) ______
A)String[ ] a = new String [5];
B)String[ ] a = {"", "", "", "", ""};
C)String[ ] a = new String [5]; for (int i = 0; i < 5; a[i++] = null);
D)String[5] a;
34)Assume StringBuilder strBuf is "ABCDEFG", after invoking ________, strBuf contains "ABCRRRRDEFG". 34) ______
A)strBuf.insert(1, "RRRR") B) strBuf.insert(3, "RRRR")
C)strBuf.insert(2, "RRRR") D) strBuf.insert(4, "RRRR")
35)Suppose s1 and s2 are two strings. Which of the following statements or expressions are incorrect? (Choose all that apply.) 35) ______
A)s1.charAt(0) = '5'
B)String s = new String("new string");
C)String s3 = s1 + s2
D)s1 >= s2
E)int i = s1.length
E需要寫成int i = s1.length()
36)Suppose s1 and s2 are two strings. Which of the following statements or expressions is incorrect? (Choose all that apply.) 36) ______
A)char c = s1.charAt(s1.length()); 數組越界
B)boolean b = s1.compareTo(s2); 必為flase
C)char c = s1[0];
D)String s3 = s1 - s2;
38)Identify the problems in the following code.
public class Test { public static void main(String argv[ ]) { System.out.println("argv.length is " + argv.length); } }
A)The program has a compile error because String argv[ ] is wrong and it should be replaced by String[ ] args.
B)If you run this program without passing any arguments, the program would display argv.length is 0.
C)If you run this program without passing any arguments, the program would have a runtime error because argv is null.
D)The program has a compile error because String args[ ] is wrong and it should be replaced by String args[ ].
39)What is the return value of "SELECT".substring(4, 4)? 39) ______
A)T B) an empty string C)C D) E
40)Assume s is " abc ", the method ________ returns a new string "abc". 40) ______
A)trim(s) B) String.trim(s) C)s.trim(s) D) s.trim()
trim()的作用是去掉字符串兩端的多余的空格,注意,是兩端的空格,且無論兩端的空格有多少個都會去掉,當然中間的那些空格不會被去掉
41)"abc".compareTo("aba") returns ________. 41) ______
A)1 B) 0 C) -1 D) -2 E) 2
從兩個字符串的第一位開始比較, 如果遇到不同的字符,則馬上返回這兩個字符的ascii值差值.返回值是int類型
42)What is the output of the following code?
public class Test { public static void main(String[ ] args) { String s1 = new String("Welcome to Java"); String s2 = s1; s1 += "and Welcome to HTML"; if (s1 == s2) System.out.println("s1 and s2 reference to the same String object"); else System.out.println("s1 and s2 reference to different String objects"); } }
A)s1 and s2 reference to the same String object
B)s1 and s2 reference to different String objects
44)Which of the following is the correct header of the main method? (Choose all that apply.)
A)static void main(String[ ] args)
B)public static void main(String args[ ])
C)public static void main(String x[ ])
D)public static void main(String[ ] x)
E)public static void main(String[ ] args)
45)What is displayed by the following statement?
System.out.println("Java is neat".replaceAll("is", "AAA")); 45) ______
A)JavaAAA neat B) Java AAAneat C)Java AAA neat D) JavaAAAneat
46)"AbA".compareToIgnoreCase("abC") returns ________. 46) ______
A)2 B) -1 C) -2 D) 0 E) 1
compareToIgnoreCase不區分大小寫的比較,從兩個字符串的第一位開始比較, 如果遇到不同的字符,則馬上返回這兩個字符的ascii值差值.返回值是int類型
47)The StringBuilder methods ________ not only change the contents of a string buffer, but also returns a reference to the string buffer. (Choose all that apply.) 47) ______
A)insert B)replace C)delete D)append E)reverse
48)________ returns true. (Choose all that apply.) 48) ______
A)"peter".equalsIgnoreCase("Peter")
B)"peter".compareToIgnoreCase("peter")
C)"peter".compareToIgnoreCase("Peter")
D)"peter".equals("peter")
E)"peter".equalsIgnoreCase("peter")
equalsIgnoreCase不區分大小寫比較
49)The following program displays ________.
public class Test { public static void main(String[ ] args) { String s = "Java"; StringBuilder buffer = new StringBuilder(s); change(buffer); System.out.println(buffer); } private static void change(StringBuilder buffer) { buffer.append(" and HTML"); } }
A)Java B) Java and HTML C)nothing is displayed D) and HTML
StringBuilder是可變類!!
50)Suppose s is a string with the value "java". What will be assigned to x if you execute the following code?
char x = s.charAt(4);
A)'a' B)'v'
C)Nothing will be assigned to x, because the execution causes the runtime error StringIndexOutofBoundsException.
51)What is the output of the following code?
public class Test { public static void main(String[ ] args) { String s1 = new String("Welcome to Java!"); String s2 = new String("Welcome to Java!"); if (s1 == s2) System.out.println("s1 and s2 reference to the same String object"); else System.out.println("s1 and s2 reference to different String objects"); } }
這里s1與s2都是新new出來的,指向兩個對象!
A)s1 and s2 reference to different String objects B)s1 and s2 reference to the same String object
52)________ returns a string. (Choose all that apply.) 52) ______
A)String.valueOf(new char[ ]{'a', 'b', 'c'})
B)String.valueOf(123)
C)String.valueOf(12.53)
D)String.valueOf(false)
String 類別中已經提供了將基本數據型態轉換成 String 的 static 方法 ,也就是 String.valueOf() 這個參數多載的方法
有以下幾種
(1)String.valueOf(boolean b) : 將 boolean 變量 b 轉換成字符串
(2)String.valueOf(char c) : 將 char 變量 c 轉換成字符串
(3)String.valueOf(char[] data) : 將 char 數組 data 轉換成字符串
(4)String.valueOf(char[] data, int offset, int count) : 將 char 數組 data 中 由 data[offset] 開始取 count 個元素 轉換成字符串
(5)String.valueOf(double d) : 將 double 變量 d 轉換成字符串
(6)String.valueOf(float f) : 將 float 變量 f 轉換成字符串
(7)String.valueOf(int i) : 將 int 變量 i 轉換成字符串
(8)String.valueOf(long l) : 將 long 變量 l 轉換成字符串
(9)String.valueOf(Object obj) : 將 obj 對象轉換成 字符串, 等於 obj.toString()
53)Suppose you enter 34.3 57.8 789, then press the ENTER key. Analyze the following code.
Scanner scanner = new Scanner(System.in); int intValue = scanner.nextInt(); int doubleValue = scanner.nextInt(); String line = scanner.nextLine();
A)After the last statement is executed, line contains characters '7', '8', '9', '\n'.
B)After the last statement is executed, intValue is 34.
C)After the last statement is executed, line contains characters '7', '8', '9'.
D)The program has a runtime error because 34.3 is not an integer.
54)Given the following program:
public class Test { public static void main(String[ ] args) { for (int i = 0; i < args.length; i++) { System.out.print(args[i] + " "); } } }
What is the output, if you run the program using
java Test 1 2 3
A)3 B) 1 2 C) 1 D) 1 2 3
該程序有三個參數!
55)What is the output of the following code?
public class Test { public static void main(String[ ] args) { String s1 = "Welcome to Java!"; String s2 = s1; if (s1 == s2) System.out.println("s1 and s2 reference to the same String object"); else System.out.println("s1 and s2 reference to different String objects"); } }
A)s1 and s2 reference to the same String object B)s1 and s2 reference to different String objects
56)Which of the following is the correct statement to return JAVA? 56) ______
A)"Java".toUpperCase() B) "Java".toUpperCase("Java")
C)toUpperCase("Java") D) String.toUpperCase("Java")
57)What is the output of the following code?
String s = "University";
s.replace("i", "ABC");
System.out.println(s);
A)University B) UnABCversABCty C)UnABCversity D) UniversABCty
s.replace("i", "ABC");沒有返回對象!
58)Assume s is "ABCABC", the method ________ returns a new string "aBCaBC". 58) ______
A)s.replace("ABCABC", "aBCaBC")
B)s.toLowerCase()
C)s.replace('A', 'a')
D)s.toLowerCase(s)
E)s.replace('a', 'A')
59)What is the output of the following code?
public class Test { public static void main(String[ ] args) { String s1 = new String("Welcome to Java!"); String s2 = s1.toUpperCase(); if (s1 == s2) System.out.println("s1 and s2 reference to the same String object"); else if (s1.equals(s2)) System.out.println("s1 and s2 have the same contents"); else System.out.println("s1 and s2 have different contents"); } }
A)s1 and s2 have the same contents
B)s1 and s2 reference to the same String object
C)s1 and s2 have different contents