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

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

研修コース検索

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

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

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

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

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

 [コード1]
 class Foo
  Const = "foo"
  def foo
   puts Const
  end
 end
 Foo.new.foo

[コード2] module M def foo puts Const end end class Foo Const = "foo" include M end Foo.new.foo
1. [コード1]
foo
[コード2]
foo
2. [コード1]
例外が発生する
[コード2]
foo
3. [コード1]
foo
[コード2]
例外が発生する
4. [コード1]
例外が発生する
[コード2]
例外が発生する
問41の解答と解説

解答:3

解説
コード1のfooメソッドはクラス内で定義した定数Constを参照しておりますので、エラーになりません。
コード2のfooメソッドはモジュール内で定義した定数Constを参照してしまい、未定義なのでエラーになります。

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

 [コード1]
 class Foo
  def foo
   puts "foo"
  end
 end
 class Bar < Foo
  def foo
   puts "bar"
  end
 end
 class Bar
  undef_method :foo
 end
 Bar.new.foo

[コード2] class Foo def foo puts "foo" end end class Bar < Foo def foo puts "bar" end end class Bar remove_method :foo end Bar.new.foo
1. [コード1]
foo
[コード2]
bar
2. [コード1]
bar
[コード2]
foo
3. [コード1]
foo
[コード2]
エラーになる
4. [コード1]
エラーになる
[コード2]
foo
問42の解答と解説

解答:4

解説
コード1でfooメソッドは未定義化されておりますのでメソッド呼び出し時にエラーになります。
コード2では、メソッドの未定義化にremove_methodを使用しておりますが、このメソッドはスーパークラスに同名のメソッドがある場合にそれが呼ばれるので、エラーになりません。

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

[コード]
 class Foo
  def foo
   "foo"
  end
 end

class Bar < Foo def foo super + "bar" end alias bar foo undef foo end puts Bar.new.bar
1. foo
2. foobar
3. 実行時にエラーになる
4. bar
問43の解答と解説

解答:2

解説
aliasはメソッドに別名をつけるためのキーワードです。
undefはメソッドを未定義化するためのキーワードです。
問題文中のコードでは、fooメソッドが定義された後に未定義化されておりますので、fooメソッドの呼び出しでは、superによって問題なく親クラスの同名のメソッドが呼ばれます。

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

[コード]
 CONST = "message1"
 class Foo
  CONST = "message2"
  def foo
   puts __(1)__
  end
 end
 Foo.new.foo
[実行結果]
 message1
1. CONST
2. ::CONST
3. CONST::
4. :CONST:
問44の解答と解説

解答:2

解説
定数名の先頭の「::」はトップレベルを表し、「::Const」でトップレベルにある定数を参照することができます。

問45.クラス変数の説明として正しいものを選択してください。

1. クラス変数の変数名の先頭には「@」を付ける必要がある
2. クラス変数はインスタンス毎に独立した値を保持できる
3. クラス変数の変数名の先頭には「@@」を付ける必要がある
4. クラス変数はプログラムのどこからでも参照することができる
問45の解答

解答:3

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

[コード]
 class Person
  def initialize(name)
   @name = name
  end
  def __(1)__
   "My name is #{@name}"
  end
 end
 p Person.new("taro")

[実行結果] My name is taro.
1. p
2. to_s
3. inspect
4. toString
問46の解答と解説

解答:3

解説
inspectメソッドはpメソッドでオブジェクトそのものを出力した際の文字列表現を指定するメソッドです。

問47.FileTestモジュールに存在しないメソッドを選択してください。

1. file?
2. directory?
3. socket?
4. child?
問47の解答と解説

解答:4

解説
FileTestモジュールはファイルやディレクトリの検査を行う機能をまとめたモジュールです。

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

[コード]
 class Foo
  def initialize(obj)
   obj.foo
  end
  def foo
   puts "foofoofoo"
  end
 end
 class Bar
  def foo
   puts "barbarbar"
  end
 end
 Foo.new(Bar.new)
1. このコードを実行すると「foofoofoo」と出力される
2. このコードを実行すると「barbarbar」と出力される
3. このコードを実行するとシンタックスエラーになる
4. このコードを実行すると呼び出されるメソッドが存在しないためエラーになる
問48の解答

解答:2

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

[コード]
 class Bar
  def foo
   puts "barbarbar"
  end
 end
 class Foo < Bar
  def initialize(obj)
   obj.foo
  end
  def foo
   puts "foofoofoo"
  end
 end
 Foo.new(Foo.new(Bar.new))
1. foofoofoo
2. barbarbar
3. foofoofoo
barbarbar
4. barbarbar
foofoofoo
問49の解答

解答:4

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

[コード]
 p Class.superclass
1. エラーになる
2. Object
3. Class
4. Module
問50の解答と解説

解答:4

解説
ClassクラスのスーパークラスはModuleクラスです。

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

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

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