日本発のプログラミング言語「Ruby」の正しい知識を身につけたエンジニアの育成と,Rubyによるシステム開発の普及を目指して作られたRuby検定。2007年10月には第1回の試験が行われました。その予想問題をピックアップしたのが,このRuby検定。ソフトウエア開発者の皆さん,ぜひチャレンジしてみてください。

検定問題は1回しか受験できません。慎重にご回答下さい。
すでに受験した方は,前回の回答結果を参照できます。
前回の受験結果ページへ 前回の受験結果ページへ
解答の解説記事 解答の解説記事
検定の講評記事 検定の講評記事



【問題1】
if文の条件において,真と判断されるものをすべて選択してください。

A)1
B)0
C)true
D)""
E)nil


【問題2】
Rubyの予約語をすべて選択してください。

A)do
B)end
C)goto
D)until
E)case
F)this
G)super


【問題3】
以下のコードを実行した時の出力として正しいものを選択してください。

 if !nil then
   p "真"
 else
   p "偽"
 end

A)"真"
B)実行時にエラーになる
C)"偽"
D)何も出力されない


【問題4】
以下のコードを実行した時の出力として正しいものを選択してください。

 p (1000000000000 / 100000000 ).class

A)100
B)Bignum
C)Fixnum
D)nil


【問題5】
以下のコードを実行した時の出力として正しいものを選択してください。

 even_number = 101 % 2 == 0
 
 if even_number == true
   p "偶数"
 elsif even_number
   p "奇数"
 end

A)"偶数"
B)"奇数"
C)何も表示されない
D)nil
E)実行時にエラーになる


【問題6】
以下のコードを実行した時の出力として正しいものを選択してください。

 a = [1,2]
 b = "hello"
 a.each{ p b }

A) "hello"
"hello"
B)実行時にエラーになる
C) nil
nil

D) ""
""

E) 1
2


【問題7】
以下のコードを実行した時の出力として正しいものを一つ選択してください。

 a = [1,2]
 b = "world!"
 a.each{|b| a[0] = "hello"}
 print a[0], " ", b, "\n"

A)hello world!
B)hello 2
C)1 world!
D)1 2


【問題8】
以下のコードを実行した時の出力として正しいものを選択してください。

 a = [1, 2]
 a.each{ p c }

A)実行時にエラーになる
B)""
C)nil
D)何も表示されない


【問題9】
以下のコードを実行した時の出力として正しいものを選択してください。

 a = "asdf"
 b = "hello"
 b = a
 a.reverse!
 p b

A)"fdsa"
B)"asdf"
C)nil
D)""
E)"hello"


【問題10】
以下のコードを実行した時の出力として正しいものを選択してください。

 a = "asdf"
 b = "asdf"
 
 puts a.eql?(b)
 puts a.equal?(b)

A) true
true

B) true
false

C) false
false

D) false
true


【問題11】
以下の記述から例外処理の説明として正しいものを選択してください。

A)例外を捕捉するためには,tryとcatchを使用する
B)例外を捕捉するためには,beginとrescueを使用する
C)例外を捕捉するためには,catchとthrowを使用する
D)例外を捕捉するためには,beginとcatchを使用する


【問題12】
以下の出力になるコードがあります。__(A)__に入る適切な記述を選択してください。

 __(A)__ {|x| print x}
 
 [出力]
 123

A)(1..3).each
B)1...3.each
C)(1...3).each
D)(1)..(3).each


【問題13】
以下の出力になるコードがあります。__(A)__に入る適切な記述を選択してください。

 h = { "a" => 1 }
 
 puts __(A)__
 
 [出力]
 1

A)h[:a]
B)h['a']
C)h["a"]
D)h[$a]


【問題14】
以下のコードを実行した時の出力として正しいものを選択してください。

 a = "asdf"
 a.reverse
 p a

A)"fdsa"
B)"asdf"
C)nil
D)""


【問題15】
以下のコードを実行した時の出力として正しいものを選択してください。

 (1...10).each{puts "Ruby"}

A)文法エラーになる
B)Rubyと10回表示される
C)Rubyと9回表示される
D)Rubyと11回表示される


【問題16】
以下のRubyの演算子の中で再定義可能なメソッドとして定義されているものをすべて選択してください。

A)[]
B)!
C)=
D)<=>


【問題17】
以下のコードの実行結果として正しいものを選択してください。

 ary1 = ["Windows", "MacOS", "Solaris", "Linux"]
 ary2 = ["MacOS", "Linux", "FreeBSD"]
 p ary1 - ary2

A) ["Windows", "Solaris", "FreeBSD"]
B)["Windows", "Solaris"]
C)["Windows", "MacOS", "Solaris", "Linux", "FreeBSD"]
D)実行時にエラーになる


【問題18】
2つの配列を連結し,重複する要素は一つにまとめるコードがあります。__(A)__に入る適切な記述を選択してください。

 ary1 = ["Windows", "MacOS", "Solaris", "Linux"]
 ary2 = ["MacOS", "Linux"]
 p ary1 __(A)__ ary2
 
 [出力]
 ["Windows", "MacOS", "Solaris", "Linux"]

A)+
B)-
C)|
D)&


【問題19】
以下のコードを実行した時の出力として正しいものを選択してください。

 p "foo".delete("o")

A)"foo"
B)"fo"
C)"f"
D)"fff


【問題20】
以下のコードを実行した時の出力として正しいものを選択してください。

 t1 = Time.parse("S54.7.16 12:00")
 puts t1.strftime("%Y/%m/%d %H:%M:%S")

A)parseメソッドが定義されていないため実行時にエラーとなる
B)「1979/07/16 12:00:00」と標準出力に表示される
C)年数は和暦(S54)での入力が許されないので実行時にエラーとなる
D)dateライブラリが読み込まれていないため実行時にエラーとなる


【お知らせの有無】
ITpro編集部より,この問題の解説記事を公開したときなどにお知らせメールをお送りさせていただきます。

お知らせメールを受け取る


検定問題は1回しか受験できません。慎重にご回答下さい。