Article:
Chứng chỉ Ruby
1238
ngocdaothanh.myopenid.com 172Updated over 3 years ago |
Có học là có thi, có kiến thức là có chứng chỉ nhằm chuẩn hoá. Hiệp hội Ruby đã đề ra chứng chỉ Ruby gồm 3 cấp độ: Silver, Gold, Platinum. Thi bằng tiếng Nhật hoặc Anh trên máy tính. Cấp Gold và Platinum từ khoảng 2009 mới bắt đầu thi.
Dưới đây là 20 câu hỏi mẫu (thi thật 50 câu) đã được dịch từ tiếng Nhật sang tiếng Việt của cấp Silver. Chú ý nếu có nhiều câu trả lời đúng, thì phải chọn hết.
1. Ở điều kiện if, giá trị nào sau đây được coi là đúng?
- 1
- 0
- true
- ""
- null
2. Chọn từ khoá của Ruby.
- do
- end
- goto
- until
- case
- this
- super
3. Khi chạy đoạn mã sau, giá trị xuất ra là gì?
if !nil then
p "true"
else
p "false"
end
- "true"
- Khi chạy bị lỗi
- "false"
- Không xuất gì ra
4. Khi chạy đoạn mã sau, giá trị xuất ra là gì?
p (1000000000000/10000000000).class
- 100
- Bignum
- Fixnum
- nil
5. Khi chạy đoạn mã sau, giá trị xuất ra là gì?
even_number = 101%2 == 0
if even_number == true
p "even number"
elsif even_number
p "odd number"
end
- "even number"
- "odd number"
- Không xuất ra gì
- nil
- Khi chạy bị lỗi
6. Khi chạy đoạn mã sau, giá trị xuất ra là gì?
a = [1, 2]
b = "hello"
a.each { p b }
"hello"
"hello"- Khi chạy bị lỗi
nil
nil
""
""
1
2
7. Khi chạy đoạn mã sau, giá trị xuất ra là gì?
a = [1, 2]
b = "world"
a.each { |b| a[0] = "hello" }
print a[0], " ", b, "\n"
- hello world!
- hello 2
- 1 world!
- 1 2
8. Khi chạy đoạn mã sau, giá trị xuất ra là gì?
a = [1, 2]
a.each { p c }
- Khi chạy bị lỗi
- ""
- nil
- Không xuất ra gì
9. Khi chạy đoạn mã sau, giá trị xuất ra là gì?
a = "asdf"
b = "hello"
b = a
a.reverse!
p b
- "fdsa"
- "asdf"
- nil
- ""
- "hello"
10. Khi chạy đoạn mã sau, giá trị xuất ra là gì?
a = "asdf"
b = "asdf"
puts a.eql?(b)
puts a.equal?(b)
true
true
true
false
false
false
false
true
11. Chọn giải thích đúng về xử lí lỗi: "Để bắt lỗi, dùng..."
- try và catch
- begin và rescue
- catch và throw
- begin và catch
12. Để giá trị xuất ra như ở dưới, _(1)_ phải là gì?
_(1)_ { |x| print x }
[Xuất ra]
123
- (1..3).each
- 1...3.each
- (1...3).each
- (1)..(3).each
13. Để giá trị xuất ra như ở dưới, _(1)_ phải là gì?
h = {"a" => 1}
puts _(1)_
[Xuất ra]
1
- h[:a]
- h['a']
- h["a"]
- h[$a]
14. Khi chạy đoạn mã sau, giá trị xuất ra là gì?
a = "asdf"
a.reverse
p a
- "fdsa"
- "asdf"
- nil
- ""
15. Khi chạy đoạn mã sau, giá trị xuất ra là gì?
(1...10).each { puts "Ruby" }
- Khi chạy bị lỗi
- Hiện 10 dòng Ruby
- Hiện 9 dòng Ruby
- Hiện 11 dòng Ruby
16. Toán tử nào dưới đây có thể được định nghĩa lại?
- []
- !
- =
- <=>
17. Khi chạy đoạn mã sau, giá trị xuất ra là gì?
ary1 = ["Windows", "MacOS", "Solaris", "Linux"]
ary2 = ["MacOS", "Linux", "FreeBSD"]
p ary1 - ary2
- ["Windows", "Solaris", "FreeBSD"]
- ["Windows", "Solaris"]
- ["Windows", "MacOS", "Solaris", "Linux", "FreeBSD"]
- Khi chạy bị lỗi
18. Để giá trị xuất ra như ở dưới, _(1)_ phải là gì?
ary1 = ["Windows, "MacOS", "Solaris", "Linux"]
ary2 = ["MacOS", "Linux"]
p ary1 _(1)_ ary2
[Xuất ra]
["Windows", "MacOS", "Solaris", "Linux"]
- +
- -
- |
- &
19. Khi chạy đoạn mã sau, giá trị xuất ra là gì?
p "foo".delete("o")
- "foo"
- "fo"
- "f"
- "fff
20. Khi chạy đoạn mã sau, giá trị xuất ra là gì?
t1 = Time.parse("S54.7.16 12:00")
puts t1.strtime("%Y/%m/%d %H:%M:%S")
- Khi chạy bị lỗi vì phương thức parse chưa được định nghĩa
- Xuất ra "1979/07/16 12:00:00"
- Khi chạy bị lỗi vì không cho nhập năm có dạng S54
- Khi chạy bị lỗi vì thư viện date chưa được load
172