Rubyがミニツク

あなたのRubyの技術に関するより詳しい知識と理解を増やします。

Ruby技術者認定試験(Silver)対策コース

このコースについて

このコースでは、Ruby技術者認定試験(Silver)に合格できるだけのRubyの知識を得ることを目的としています。Ruby技術者認定試験とは、Rubyによるシステム開発をおこなう能力を技術者が持っているかを公平に評価するためのRubyアソシエーションの認定試験制度です。

コンテンツ一覧

ヒント レッスンの名前をクリックすると、その内容を表示します。

次のレッスン ホームへ戻る

Ruby技術者認定試験(Silver)対策問題集4

コンテンツ概要

Ruby技術者認定試験(Silver)を前提とした試験対策問題を解き、認定試験合格を目指しましょう。本問題集では、Ruby技術者認定試験(Silver)で出題される組み込み関数や組み込みクラスについて学習します。なお、特に断りの無い限り、Rubyのバージョンは1.8.7を前提とします。

このドリルは10問の問題があります。


はじめる

問題

以下のコードを実行した出力結果として正しいものを選択肢の中から選択してください。

class Integer
  def foo
    self + 0.0
  end

  def bar
    self.next
  end
end

num = 1
num = num.integer? ? num.foo : num.bar
p num.class

選択肢を選ぶ

(d) Integer

(a) Bignum

(c) Float

(b) Fixnum


次の問題へ進む

問題

以下のコードの(A)に入れて実行した出力結果として、barを返すものを選択肢の中から選択してください。

module Foo
  Bar = "bar"
end

class Baz
  include Foo
end

puts (A)  #=> bar

出力結果:

bar

選択肢を選ぶ

(a) Baz::Bar

(d) Bar

(b) Foo::Baz::Bar

(c) Baz::Foo::Bar


次の問題へ進む

問題

以下のコードを実行した出力結果として正しいものを選択肢の中から選択してください。

o1 = Object.new
o2 = Object.new

if o1.equal?(o2)
  puts("o1")
else
  puts("o2")
end

選択肢を選ぶ

(d) nil

(c) o2

(a) 何も出力しない

(b) o1


次の問題へ進む

問題

以下のコードの(A)に入れて実行した出力結果として、fooを返すものを選択肢の中から選択してください。

class Object
  def foo
    puts "foo"
  end
end

(A)

出力結果:

foo

選択肢を選ぶ

(c) self.foo

(a) Object::foo

(b) foo

(d) Object.foo


次の問題へ進む

問題

以下のコードの(A)に入れて実行した出力結果として、fooを返すものを選択肢の中から選択してください。

module Foo
  (A)
end

class Bar
  extend Foo
end

Bar.foo  #=> foo

出力結果:

  foo

選択肢を選ぶ

(d)

class << self
  def foo
    puts("foo")
  end
end

(b)

def self.foo
  puts("foo")
end

(a)

def foo
  puts("foo")
end

(c)

def Foo.foo
  puts("foo")
end


次の問題へ進む

問題

以下のコードを実行した出力結果として正しいものを選択肢の中から選択してください。

class Foo
  @@count = 0

  def count
    @@count
  end

  def increment
    @@count += 1
  end
end

class Bar < Foo; end
class Baz < Bar; end

baz = Baz.new
baz.increment
bar = Bar.new
bar.increment
foo = Foo.new
p foo.count

選択肢を選ぶ

(b) 1

(a) 0

(c) 2

(d) 3


次の問題へ進む

問題

以下のコードを実行した出力結果として正しいものを選択肢の中から選択してください。

Foo = "main"

class Bar
  Foo = "foo"

  def self.foo
    ::Foo
  end
end

p Bar.foo

選択肢を選ぶ

(b) "foo"

(c) nil

(d) "warning: already initialized constant Foo"が標準エラーに出力される

(a) "main"


次の問題へ進む

問題

以下のコードを実行した出力結果として正しいものを選択肢の中から選択してください。

a = "foo"
b = a
b.slice!(0, 1)
print(a, b)

選択肢を選ぶ

(a) "foofoo"

(b) "ff"

(d) "fofo"

(c) "oooo"


次の問題へ進む

問題

以下のコードを実行した出力結果として正しいものを選択肢の中から選択してください。マシンのポインタのサイズは31ビット幅とします。

p (0x3FFFFFFF + 0x10000000).class

選択肢を選ぶ

(d) Regexp

(c) String

(a) Bignum

(b) Fixnum


次の問題へ進む

問題

以下のコードの(A)に入れて実行した出力結果として、barを返すものを選択肢の中から選択してください。

class Foo
  attr_accessor :foo
end

class Bar < Foo
  def initialize(foo)
    @foo = foo
  end
end

(A)
puts(bar.foo)  #=> bar

出力結果:

bar

選択肢を選ぶ

(c) bar = Bar.new("bar")

(d) bar = Bar.new.foo

(b) bar = Bar.new

(a) bar = Foo.new


次のレッスン ホームへ戻る