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

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

研修コース検索

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

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

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

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

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

[コード]
 module Mod
  __(1)__
  def func
   puts "Hello Module"
  end
 end

Mod.func
[実行結果] Hello Module
1. module_function
2. module_method
3. function_module
4. method_module
問31の解答と解説

解答:1

解説
「モジュール名.メソッド名」の形式で呼び出せるメソッドをモジュール関数と呼びます。モジュール関数を定義する場合、メソッドの前に「module_function」を記述します。

問32.以下のコードの説明として正しいものを選択してください。なお行の先頭に記述されているのは行番号です。

[コード]
 1: obj = Object.new
 2: def obj.hello
 3:  puts "hello"
 4: end
 5: obj.hello
 6: Object.new.hello
1. hello
hello
2. hello
nil
3. 2行目で文法エラーが発生する
4. 6行目でエラーが発生する
問32の解答と解説

解答:4

解説
Rubyには特定のオブジェクトにのみメソッドを定義することができます。これを特異メソッドと呼びます。特異メソッドは問題文のように「オブジェクト.メソッド名」のように定義します。

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

[コード]
 def foo(__(1)__)
  puts arg
 end
 foo

[実行結果] default
1. arg:"default"
2. arg="default"
3. arg=>"default"
4. arg<="default"
問33の解答と解説

解答:2

解説
メソッド定義時に引数にデフォルト値を指定することができます。デフォルト値の指定は「引数名=デフォルト値」という形式で指定します。

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

[コード]
 class Foo
  def foo
   puts "foo"
  end
 end
 class Foo
  def bar
   puts "bar"
  end
 end
1. 2回目のFooクラスの定義でエラーが発生する
2. Fooクラスにはfooメソッドとbarメソッドが定義される
3. Fooクラスにはfooメソッドのみ定義される
4. Fooクラスにはbarメソッドのみ定義される
問34の解答と解説

解答:2

解説
Rubyにはオープンクラスという特徴があり、一度定義したクラスに後からメソッドなどを追加することができます。

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

1. モジュールはクラスと同様にインスタンスを生成することができる
2. モジュールはMix-inすることで定数やメソッドなどをクラスに追加することができる
3. モジュール定義内にクラスを定義することはできない
4. モジュールをMix-inする場合、通常extendを使用する
問35の解答と解説

解答:2

解説
モジュールは名前空間を提供し、includeによってクラスにMix-inして使用することができます。

問36.メソッドのアクセス制限に関する説明として正しいものを選択してください。

1. メソッドのアクセス制限を指定しなかった場合、デフォルトでpublicになる
2. メソッドのアクセス制限を指定しなかった場合、デフォルトでprotectedになる
3. メソッドのアクセス制限を指定しなかった場合、デフォルトでprivateになる
4. メソッドのアクセス制限を省略することはできない
問36の解答と解説

解答:1

解説
メソッド定義時にpublic、protected、privateの3つのアクセス制限を指定することができます。アクセス制限を指定しなかった場合は、デフォルトでpublicになり、メソッドが公開されます。

問37.引数の個数を固定せずに可変長にしたい場合の指定として正しい記述を選択してください。

1. *引数
2. $引数
3. @引数
4. %引数
問37の解答と解説

解答:1

解説
メソッドの引数を固定せずに可変長にしたい場合、「*引数」という形式で指定する必要があります。

問38.ブロックを受け取るための引数の指定方法として正しい記述を選択してください。

1. *引数
2. &引数
3. %引数
4. @引数
問38の解答と解説

解答:2

解説
ブロックを受け取る場合、「&引数」という形式で指定する必要があります。

問39.以下のコードと同様な意味となるコードを選択してください。

[コード]
 class Foo
  attr_accessor :foo
 end
1. class Foo
def foo=(foo)
@foo = foo
end
end
2. class Foo
def foo
@foo
end
end
3. class Foo
def foo
@foo
end
def foo=(foo)
@foo = foo
end
end
4. class Foo
def initialize(foo)
@foo = foo
end
end
問39の解答と解説

解答:3

解説
attr_accessorはアクセスメソッドを定義するメソッドです。以下のコードは、すべて同様な意味になります。

		[コード1]
		class Foo
		 attr_accessor :foo
		end
		
[コード2] class Foo  attr_reader :foo  attr_writer :foo end
[コード3] class Foo  def foo   @foo  end  def foo=(foo)   @foo = foo  end end

問40.以下のようなfile1.rbとfile2.rbがあります。file2.rbを実行した結果として正しいものを選択してください。

 [file1.rb]
 $var += 1

[file2.rb] $var = 0 require "file1.rb" require "file1.rb" puts $var
1. 0
2. 1
3. 2
4. 実行時にエラーが発生する
問40の解答と解説

解答:2

解説
requireはライブラリを読み込むメソッドです。同一のファイルを指定しても2回読み込まれません。

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

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

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