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

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

研修コース検索

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

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

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

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

問11.以下のコードの実行結果から__(1)__に当てはまるものを選択してください。

[コード]
 class Foo
   def __(1)__
    puts "foo"
  end
 end
 Foo.foo

[実行結果] foo
1. class.foo
2. this.foo
3. Foo.foo
4. foo
問11の解答と解説

解答:3

解説
クラスメソッドはクラスをレシーバにして呼び出すことができます。
クラスメソッドは「クラス.メソッド」の形式で定義できます。

問12.以下のコードを実行した結果を選択してください。

[コード]
 class Foo
   def foo
     self
   end
 end
 class Bar < Foo
   def bar
     foo
   end
 end
 p Bar.new.bar.class
1. Object
2. Foo.foo
3. Bar
4. Class
問12の解答と解説

解答:3

解説
BarクラスはFooクラスを継承しておりますので、Barクラスのインスタンスからfooメソッドを呼ぶことができます。また、fooメソッド内にある「self」は、barメソッドを呼び出したBarクラスのオブジェクトを参照します。このオブジェクトに対してclassメソッドが呼ばれますので、結果としてBarが返されます。

問13.以下の実行結果にならないようにするために__(1)__に当てはまるものを選択してください。

[コード]
 class Foo
   def bar
     self.foo
   end
   __(1)__
   def foo
     puts "foo"
   end
 end
 Foo.new.bar

[実行結果] foo
1. public
2. protected
3. private
4. なにも記述されない
問13の解答と解説

解答:3

解説
privateメソッドはレシーバを指定して呼び出すことはできません。
また何も記述しない場合はpublicメソッドになりますので、なにも記述しなくてもfooメソッドを呼び出すことができます。

問14.以下のコードの実行結果から__(1)__に当てはまるものを選択してください。

[コード]
 puts [1,2,3].__(1)__

[実行結果] 6
1. sum
2. inject(0){|sum, i| sum * i }
3. inject(0){|sum, i| sum + i }
4. add
問14の解答と解説

解答:3

解説
injectメソッドは引数で初期値を取り、レシーバの要素の先頭から順にブロック内の処理を実行し結果を求めていくメソッドです。回答のコードをeachメソッドに置き換えると以下のようになります。

		sum = 0
		[1,2,3].each{|i| sum = sum + i }
		puts sum   #=> 6
		

問15.以下の実行結果にならないようにするために__(1)__に当てはまるものを選択してください。

[コード]
 puts __(1)__

[実行結果] 2.5
1. 5 / 2
2. 5.0 / 2.0
3. 5.0 / 2
4. 5 / 2.0
問15の解答と解説

解答:1

解説
整数と浮動小数点数で演算処理すると結果が浮動小数点数で返されます。
すべての数値が整数であれば整数が返されます。
回答では整数同士でのみ演算処理していますので、整数で結果が返されます。

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

[コード]
 char = { :a => "A" }.freeze
 char[:a] = "B"
 p char
1. "A"
2. "B"
3. エラーが発生する
4. nil
問16の解答と解説

解答:3

解説
freezeメソッドはオブジェクトを変更不可能にするメソッドです。
ハッシュオブジェクトの値を変更しようとしている行でエラーが発生し、プログラムが終了します。

問17.以下のコードの実行結果から__(1)__に当てはまるものを選択してください。

[コード]
 sum = Proc.new{|x, y| x + y}
 puts __(1)__

[実行結果] 3
1. sum.call(1, 2)
2. sum(1, 2).call
3. sum(1, 2)
4. sum
問17の解答と解説

解答:1

解説
Proc.newではブロックで指定した手続きを表すオブジェクトです。
手続きを呼び出す時はProcオブジェクトに対してcallメソッドを呼びます。
ブロック引数はcallメソッドの引数で渡すことができます。

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

1. 文字列をIOオブジェクトのように扱うことができる
2. 文字列をファイル入出力専用で扱うことができる
3. StringIOクラスはIOクラスのサブクラスである
4. 文字列をファイルに読み書きすることができる
問18の解答

解答:1

問19.以下のコードを実行した結果を選択してください。

[コード]
 require 'yaml'
 dir = <<EOY
 file1:
   name: file1.txt
   data: text
 EOY
 p YAML.load(dir)
1. {"file1"=>{"name"=>"file1.txt", "data"=>"text"}}
2. {"file1"=>["name", "file1.txt", "data", "text"]}
3. ["file1", ["name", "file1.txt", "data", "text"]]
4. ["file1", ["name", "file1.txt"], ["data", "text"]]
問19の解答と解説

解答:1

解説
yamlライブラリを使用すれば、人間が読めるテキスト形式でオブジェクトを表現することができます。
問題中のコードでは、まずハッシュのキーを指定し、さらにインデントでハッシュを指定しています。

問20.Rubyで使用可能なオプションではないものを選択してください。

1. -e
2. -t
3. -d
4. -r
問20の解答

解答:2

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

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

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