IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

Ruby技術者認定試験【Gold】模擬問題(51~60) - Rubyの研修・教育ならCTC教育サービス

Ruby技術者認定試験【Gold】模擬問題

模擬問題 51~60 (1~10 / 11~20 / 21~30 / 31~40 / 41~50

問題は四択で10問ずつ合計60問あります。各問題には解答がついていますが、はじめは閉じた状態でトライしてみてください。
10問毎に「終了/採点」ボタンをクリックすると採点ができます。繰り返しトライすることも可能です。

問51.以下のコードの説明として正しいものを選択してください。

[コード]
 class Foo
  private
  def foo
   puts "foofoofoo"
  end
 end
 puts Foo.new.respond_to?(:foo)
1. このコードを実行すると「foofoofoo」が出力される
2. このコードを実行すると「true」が出力される
3. このコードを実行すると「false」が出力される
4. 引数には文字列を指定すべきなので実行するとエラーになる
問51の解答と解説

解答:3

解説
respond_to?メソッドは、レシーバが引数で指定した名前のpublicメソッドを持っているか調べるメソッドです。第2引数にtrueを指定すれば、指定した名前のprivateメソッドを持っているかを調べることができます。

問52.webrickライブラリの説明として正しいものを選択してください。

1. webrickは組込みライブラリなので「require 'webrick'」を記述しなくても使用できる
2. webrickライブラリは、Webサーバを実装するためのライブラリでRuby on Railsでも使用されている
3. webrickライブラリはSSL通信に対応していない
4. webrickライブラリを使用する場合は、gemなどでインストールする必要がある
問52の解答

解答:2

問53.以下のコードの説明として正しいものを選択してください。

[コード]
 require 'socket'
 p TCPSocket.ancestors.member?(IO)
1. このコードを実行すると「true」が出力される
2. このコードを実行すると「false」が出力される
3. socketライブラリは組込みライブラリなので「require 'socket'」を記述する必要はない
4. socketライブラリにTCPSocketというクラスは存在しない
問53の解答と解説

解答:1

解説
TCPSocketはIOクラスを継承しており、Fileクラスなどと同様な操作でソケットを扱うことができます。

問54.Threadライブラリを使用して新たなスレッドを生成するメソッドではないものを選択してください。

1. start
2. new
3. fork
4. open
問54の解答と解説

解答:4

解説
Threadクラスのクラスメソッド、new、start、forkはそれぞれ新しいスレッドを生成するメソッドです。

問55.以下のコードで誤りのある行を選択してください。

[コード]
 1: i = 0
 2: while i <= 5 do
 3:  print i
 4:  ++i
 5: end
1. 1
2. 2
3. 3
4. 4
問55の解答と解説

解答:4

解説
Rubyには「++i」という構文はありません。インクリメントする場合は「i += 1」などと記述します。

問56.以下の実行結果を出力するコードとして__(1)__にあてはまるものを選択してください。

[コード]
 class Log
  [:debug, :info, :notice].each do |level|
   __(1)__(level) do
    @state = level
   end
  attr_reader :state
 end
 log = Log.new
 log.debug  ; p log.state
 log.info   ; p log.state
 log.notice ; p log.state

[実行結果] :debug :info :notice
1. method_define
2. define_method
3. send
4. __send__
問56の解答と解説

解答:2

解説
define_methodメソッドは引数で指定した名前のメソッドを定義するためのメソッドです。

問57.以下のコードを実行したときの出力結果として正しいものを選択してください。

[コード]
 var = lambda { puts "hello" }
 p var.class
1. エラーになる
2. Lambda
3. Proc
4. Object
問57の解答と解説

解答:3

解説
lambdaキーワードはProcオブジェクトを生成するためのキーワードです。

問58.以下のコードの説明として正しいものを選択してください。

[コード]
 1: module M
 2:  def foo
 3:   puts "foo"
 4:  end
 5: end
 6:
 7: class Foo
 8:  extend M
 9: end
 10:
 11: Foo.new.foo
1. 実行すると「foo」と出力される
2. 8行目でエラーになる
3. 11行目でエラーになる
4. 実行すると「nil」と出力される
問58の解答と解説

解答:3

解説
extendはモジュールで定義したメソッドをクラスメソッドとして追加しますので、メソッドを呼び出す場合は、「Foo.foo」と記述する必要があります。

問59.Marshalモジュールの説明として正しいものを選択してください。

1. Rubyで扱うすべてのオブジェクトをシリアライズすることができる
2. Marshalモジュールはそれ自身がオブジェクトをファイルに記録する機能を持っている
3. IOオブジェクトや特異メソッドを持つオブジェクトはシリアライズすることができない
4. Marshalモジュールは「require 'marshal'」を記述して使用することができる
問59の解答

解答:3

問60.標準添付ライブラリによって提供されていないクラスを選択してください。

1. TCPSocket
2. Thread
3. Test::Unit
4. Swap
問60の解答

解答:4

※解答完了後は「終了/採点」をクリックし、結果が表示されるのをお待ちください。

※解答をクリアしてもう一度解答される場合は「解答をクリア」をクリックしてください。

模擬問題 51~60 (1~10 / 11~20 / 21~30 / 31~40 / 41~50