...

Ruby技術者認定試験Silverで実際に出題された問題をまとめてみた

Ruby技術者認定試験Silverで実際に出た問題まとめ

どうもおはようポテト(@ohayoupoteto22)です。

Ruby技術者認定試験Silverで出た問題が知りたいんだぞ

ということで今回は

  • Ruby技術者認定試験の過去問や頻出問題を探している
  • そもそも試験がどんなレベルか知りたい

という方に向けてRuby技術者認定試験Silverで実際に出た問題を思い出せる範囲でまとめました。

参考になれば幸いです⸝⸝- ̫ -⸝⸝

ブログ主

早速いってみよう!

実際にRuby技術者認定試験Silverで出題された問題

本試験を受けて印象に残っていた問題を思い出せる範囲でまとめました。

ブログ主が試験を受けるにあたっての勉強方法についてなどは以下の記事をご参照ください。
Ruby技術者認定試験Silverに合格した際の勉強法【体験談】Ruby技術者認定試験Silverに合格した際の勉強法

zipとtransposeの違いについての問題

a=["松","竹","梅"]
b=["松","たか","子"]

a.zip(b) do |i|#選択肢1
  p i
end

[a,b].zip do |i|#選択肢2
  p i
end

[a,b].transpose.each do |x,y|#選択肢3
  p [x,y]
end

[a,b].transpose.each do |i|#選択肢4
  p i
end

この中で同じ出力結果になるのはどれかという問題。

基本的にほとんどの問題で「〇つ選択」と指定があるのですが、この問題含めたまーに「複数選択」というのがあるので注意が必要ですね。めんどくさいったらありゃしない。

正規表現に関する問題

この中から「Ruby」もしくは「ruby」という文字列にのみマッチする正規表現を2つ選べ、という問題。

/^[Rr]uby$/
/^Ruby|ruby$/
/^[Rr][u][b][y]$/
/^R|ruby$/

確かこれは参考書の練習問題でも出ていたので助かりました。例えば選択肢4の場合、行頭がRならなんでも許されて「Roland」でもマッチしてしまうので注意が必要ですね。

「?A」についての問題

p ?A

これも参考書の練習問題で出たもので、「これさぁ、本番で出るわけないじゃん?ww」と高を括ってたら本当に出ました。草。

grepメソッドに関する問題

a=["a","8","b","114514","c"]

p a.grep(/d/).length

grepはその配列を、引数の正規表現にマッチする要素のみにするというのは理解していたのですが、この場合「*とか+無いから一桁である8のみ?」「それとも114514の方も?」となり迷いました。

答えとしてはどちらも当てはまります。2が出力されます。

exitにまつわる問題

begin
  p 1/0
rescue ZeroDivisionError
  p "異世界転生したい"
  exit 1
ensure
  p "ハーレム生活を送りたい"
end

実行結果を聞かれるものでした。

文字コードの設定

# coding:Shift-JIS
# -*- charset: Shift-JIS -*-
# encoding:Shift-JIS

「この中で文字コードをShift-JISに設定できるものはどれですか」的な問題でした。4つ目の選択肢は忘れました。

確かこれも参考書の問題で出たので助かりました。アーメン。

!の付かない破壊的メソッドにまつわる問題

本試験でもちょくちょく、そのメソッドが破壊的か非破壊的か覚えてないと解けないような問題がありました。

なので先に”!の付かない破壊的メソッド“を全て覚えてしまえば、「それ以外のメソッドは!が付かない限り非破壊的だ」となるので楽でした。

ブログ主

てことでまとめてみたよ

Stringクラス

concatinsertreplace
<<[]=

 

Arrayクラス

popshiftunshift
pushconcatinsert
fillreplacedelete
delete_atdelete_ifclear
<<[]=

 

Hashクラス

shiftreplacedelete
delete_ifclearupdate
[]=

 

破壊的メソッドに関しては以下の記事で詳しくまとめてあります。

Rubyの破壊的メソッドRuby技術者認定試験に出やすい「!」の付かない破壊的メソッド一覧

破壊的メソッドの返り値を問われる問題

a=[810,114514,072]

p a.delete(810) #=>810
p a.slice!(0,1) #=>114514

ブログ主の場合、破壊的メソッドの返り値についてよく意識していました。

例えばdeleteやslice!の場合返されるのは、要素が消された配列ではなく”消した要素”である…と。

引数にまつわる細かい問題

chomp()とchomp(“”)や、split()とsplit(“”)のように、些細な引数の指定による違いの挙動を問われる問題もありました。
Rubyのsplit【Ruby】split()とsplit(”)の違いをまとめてみた

まとめ

以上、Ruby技術者認定試験Silverで実際に出た問題まとめでした。

過去問などは公表されていないので、参考書の問題だけやっててもいまいちイメージがつかないかもしれませんが、本番の問題は参考書やサイトの問題を少しいじったようなものしか(僕が受けた時には)出なかったので大丈夫だと思います。

参考になれば幸いです!では⸝⸝- ̫ -⸝⸝

参考になったらシェアしよう

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA