Rubyと仲良くなりたい٩( 'ω' )و

Rubyと仲良くなりたい日々のこと

Ruby技術者認定試験 Silver こんな問題が出てた気がする話

Ruby技術者認定試験 Silverを受けました。
Ruby技術者認定試験 Silver よかった教材の話で紹介している模擬問題がメインとなりますが、実際に受験してみてこんな問題も出るんだーと思ったので、書きます。

模擬問題と違うなと思ったポイント

たまたまなのかもわかりませんが、ん?と思った傾向を紹介します。

  • ファイル操作関連問題(EOFエラー、File.openのオプション、DirクラスとFileクラスなど)の比率が高かった。5問くらいは出ていた気がする。
  • 配列の範囲など、優しめな問題は少なめ。そして、必ず何か罠がある。
  • 模擬問題ではあまり見かけなかったeach_with_objecteach_charなど、eachなんちゃらメソッドが何問か出ていた。
  • 存在しないメソッドも登場する。

模擬問題とは違うなと思った問題

模擬問題で紹介した模擬問題とは少し毛並みが違う問題、またはそれの引っ掛けと思しき問題を紹介します。 問われた内容はともかく、式や数値や選択肢はうろ覚えで、これを聞きたかった問題なんだろうなという想像で補っていますので、ご了承くださいmm

問題1.

24時間後の時間を表示するために__(1)__に入る適切な記述を選択してください。

t = Date.today
p __(1)__

(1) t.add(606024)

(2) t.add(24)

(3) t += (606024)

(4) t += (24)

問題2.

以下のコードを実行したときの出力として適切なものを1つ選択してください。

a = "a\nb\nc\n"
a.each_char do |n|
  print (n) 
end

(1)
"a"
"\n"
"b"
"\n"
"c"
"\n"

(2)
"a\nb\nc\n"

(3)
"a\nb\nc\n"
"a\nb\nc\n"
"a\nb\nc\n"

(4)
a
b
c

(5)
エラーになる

問題3.

以下のコードを実行したときの出力として適切なものを1つ選択してください。

a = "a\nb\nc\n"
a.each do |n|
  print (n) 
end

(1)
"a"
"\n"
"b"
"\n"
"c"
"\n"

(2)
"a\nb\nc\n"

(3)
"a\nb\nc\n"
"a\nb\nc\n"
"a\nb\nc\n"

(4)
a
b
c

(5)
エラーになる

問題4.

以下のコードを実行したときの出力として適切なものを1つ選択してください。

# coding: us-ascii
s = "あいうえお"
p s.encoding.name

(1) エラー

(2) Encoding:US-ASCII

(3) Encoding:UTF-8

問題5.

以下のコードを実行した時の出力に対して__(1)__に入る適切なものを選択してください。

y = true
y __(1)__ (raise "failed")
puts("succeeded!")

出力結果

succeeded!

(1) &

(2) &&

(3) |

(4) ||

問題6.

以下のコードを実行した時の出力に対して__(1)__に入る適切なものを選択してください。(複数選択)

arry = { 'a' => 1, 'b' => 2, 'c' => 3 }
___(1)___

出力結果

a[1]
b[2]
c[3]

(1) arry.invert

(2) arry.reverse

(3)

arry.each_with_object([]) do |(x, y), z|
   print x, z=[y], "\n"
end

(4)

arry.each_with_object([]) do | x,(y, z) |
  print x, "\n"
end