Skip to content

Instantly share code, notes, and snippets.

@m-haramoto
Last active June 28, 2023 14:53
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save m-haramoto/121dc43453661816f4eef8fe15f86827 to your computer and use it in GitHub Desktop.
Save m-haramoto/121dc43453661816f4eef8fe15f86827 to your computer and use it in GitHub Desktop.

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

Ruby技術者認定試験Silverの問題集です。

作成者自身の試験対策用に作った問題を、整理してUPしました。全部で350問以上あります。

原本 羚央    @HaramotoReo

補足

・ある程度のRubyの知識と経験があることを想定しています。基礎的な事柄についての説明は記載していません。

・この対策問題集はオーバースペック気味なので、難しすぎると感じた問題は飛ばしてもいいと思います。それでも8割(できれば9割)解けるようにしておくのが無難だと思います。

・問題の解説は現状ほとんど書けていませんが、徐々に埋めていく予定です。

・分からない問題が多い場合は、Ruby技術者認定試験合格教本で学習することを強くおすすめします。

・コードの動作確認にはpaiza.ioが便利です。


文法 1 (14問)

文法 1-1

Rubyにおいて偽の値を示すものをすべて選択してください。

1.   0

2.   -1

3.   false

4.   null

5.   nil

答えを見る

正答

3.   false

5.   nil

解説

Rubyにおいて偽の値と評価されるのはfalsenilだけです。


文法 1-2

Rubyの予約語として正しいものを2つ選択してください。

1.   go

2.   self

3.   this

4.   begin

5.   goto

答えを見る

正答

2.   self

4.   begin

解説

予約語 = 特別な意味を持っていて、クラス名や変数名に用いることはできない単語

selfは自分自身を表す予約語。またbeginは例外処理で使われる。

参考:Rubyの予約語一覧

https://docs.ruby-lang.org/ja/latest/doc/spec=2flexical.html#reserved


文法 1-3

以下のコードの出力として正しいものを1つ選択してください。

p 9 / 2

1.   0

2.   1

3.   4

4.   4.5

5.   5

答えを見る

正答

3.   4

解説

・/ 演算子は、数値の除算(割り算)をおこない、その商を返す

・整数同士の除算の場合、返ってくる値は必ず整数になる

p 9 / 2
# => 4
# 4.5ではない

文法 1-4

8と出力されるコードを1つ選択してください。

1.   puts "%{3 ** 2}"

2.   puts "%{2 ** 3}"

3.   puts "${3 ** 2}"

4.   puts "${2 ** 3}"

5.   puts "#{3 ** 2}"

6.   puts "#{2 ** 3}"

答えを見る

正答

6.   puts "#{2 ** 3}"

解説

ダブルクォーテーションを使うと、演算の式を 文字列の中に展開することができる。展開したい式は、"#{式}"という形で記述する。

"#{2 ** 3}"
↓
"#{8}"
↓
"8"

参考:文字列の中に式を展開 https://www.javadrive.jp/ruby/string/index5.html

なお、 **演算子は べき乗の計算をおこなう演算子です。


文法 1-5

Rubyのローカル変数名として適切でないものを2つ選択してください。

1.   a_b

2.   a0b

3.   1a

4.   _ab

5.   ?ab

答えを見る

正答

3.   1a

5.   ?ab

解説

・先頭に数値は不可(他のプログラミング言語でもこの制限があることが多い)。先頭以外であればOK。

・「?」を含めることはできない。例えば、arr? という変数名はNG。しかしメソッド名だと話は別になる。

・アンダーバーを使うことは可能。名前の先頭でも途中でも問題ない。

コメント:使う機会はないと思いますが、アンダーバーのみの名前でもOKのようです。

____ = "abc"
p ____
# => "abc"

文法 1-6

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

x = "rb" + "rb" - "rb"
puts x

1.   rbと出力される

2.   rbrbと出力される

3.   rbrbrbと出力される

4.   例外が発生する

答えを見る

正答

4.   例外が発生する

解説

文字列同士の足し算は可能だが、引き算はできない。

例1

puts "abab" + "ab"
# => ababab

例2

puts "abab" - "ab"
# NoMethodErrorが発生する

文法 1-7

次の出力が得られるコードを1つ選択してください。

10
20
30

1.  

arr = [10, 20, 30]
for n to arr
  puts n
end

2.  

arr = [10, 20, 30]
for arr to n
  puts n
end

3.  

arr = [10, 20, 30]
for n in arr
  puts n
end

4.  

arr = [10, 20, 30]
for arr in n
  puts n
end
答えを見る

正答

3

解説

for式の書式は次のとおり

for 変数 in オブジェクト do
  繰り返して実行する処理
end

コメント:実務ではforを使う機会はあまりないと思います(eachを使うため)。試験対策と割り切って覚えましょう。


文法 1-8

以下のコードの出力として正しいものを1つ選択してください。

puts "#{3 * 3}" + '#{3 * 3}'

1.   99

2.   9#{3 * 3}

3.   #{3 * 3}9

4.   #{3 * 3}#{3 * 3}

答えを見る

正答

2.   9#{3 * 3}

解説

ダブルクォーテーションを使うと、演算の式を 文字列の中に展開することができる。展開したい式は、"#{式}"という形で記述する。

シングルクォーテーションを使った場合は、式の展開はおこなわれない。

puts "#{3 * 3}" + '#{3 * 3}'
 ↓
puts "#{9}" + '#{3 * 3}'
 ↓
puts "9" + '#{3 * 3}'
# => 9#{3 * 3}

文法 1-9

1と出力されるコードを1つ選択してください。

1.   puts 9 % 2

2.   puts 9 / 2

3.   puts 9 mod 2

4.   puts 9 & 2

答えを見る

正答

1.   puts 9 % 2

解説

puts 9 % 2
# => 1
# 除算の余りが出力される

puts 9 / 2
# => 4
# 除算の商が出力される

puts 9 mod 2
# => syntax error
# Rubyではmodは定義されていない

puts 9 < 2
# => false
# 「9は2より小さい」は成り立たない。つまり式の評価値はfalse。よってfalseと出力される

文法 1-10

Rubyの予約語として正しいものを2つ選択してください。

1.   ensure

2.   index

3.   let

4.   const

5.   alias

答えを見る

正答

1.   ensure

5.   alias

解説

予約語 = 特別な意味を持っていて、クラス名や変数名に用いることはできない単語

ensureは例外処理で使われる。aliasは、メソッドやグローバル変数に別名をつける時に使う(ひとまずaliasが予約語であることを覚えておけばOK)。

参考:Rubyの予約語一覧

https://docs.ruby-lang.org/ja/latest/doc/spec=2flexical.html#reserved


文法 1-11

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

URL = 'https://www.exam-rb'
URL = URL + '.com'
puts URL

1.   https://www.exam-rbと表示される

2.   https://www.exam-rb.comと表示される

3.   警告が表示され、かつhttps://www.exam-rbと表示される

4.   警告が表示され、かつhttps://www.exam-rb.comと表示される

5.   例外が発生する

答えを見る

正答

4.   警告が表示され、かつhttps://www.exam-rb.comと表示される

解説

URL = 'https://www.exam-rb' のURLは大文字であることから定数とわかる。定数に再代入をおこなうと警告が出力される。しかし、値を更新すること自体はできる。

コメント:定数には再代入できないプログラミング言語も多いと思います。しかしRubyでは再代入できてしまいます。わりと問われるポイントだと思うので覚えておきましょう。


文法 1-12

以下のコードの出力として正しいものを1つ選択してください。

x = 5 * 2 ** 3
puts x

1.   27

2.   40

3.   45

4.   1000

5.   10000

6.   100000

答えを見る

正答

2.   40

解説

掛け算と累乗の計算では、累乗が優先される。

5 * 2 ** 3
↓
5 * (2 ** 3)
↓
5 * 8
↓
40

文法 1-13

以下のコードの出力として正しいものを1つ選択してください。

puts "rb\nrb"
puts 'rb\nrb'

1.  

rb
rb
rb
rb

2.  

rb\nrb
rb\nrb

3.  

rb
rb
rb\nrb

4.  

rb\nrb
rb
rb
答えを見る

正答

3

解説

ダブルクォーテーションとシングルクォーテーションの違いを問う問題。

puts "rb\nrb" の場合、\nは改行を表すコードとして認識される。そのため、

rb
rb

と出力される。

その一方で、puts 'rb\nrb'の場合、\nは改行ではなくただの文字列として認識される。そのため、

rb\nrb

と出力される。


文法 1-14

以下のコードの出力として正しいものを1つ選択してください。

def sample(x, y)
  x = y
  puts x * y
end

sample(3, 4)

1.   0

2.   9

3.   12

4.   16

5.   sample(3, 4)

答えを見る

正答

4.   16

解説

処理の流れは次のとおり

def sample(x, y)  # ②
  x = y   # ③
  puts x * y   # ④
end

sample(3, 4)  # ①

① メソッドsampleを呼ぶ。そのときに値を2つ渡す。

② メソッドsampleを開始する。引数xの値は3に、yの値は4になる

③ xにyを割り当てる。その結果、xの値は3から4になる。 yの値は4のままで変化なし。

④ x * y の結果を出力する。 4 * 4 なので16と出力される。


文法 2 (19問)

文法 2-1

以下のコードの出力として正しいものを1つ選択してください。

puts [].class

1.   false

2.   nil

3.   Array

4.   Hash

5.   true

答えを見る

正答

3.   Array

解説

classメソッドはオブジェクトのクラスを返す。

puts [].class
# => Array
# []は空の配列

puts "ABC".class
# => String

文法 2-2

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

puts "a23b5".to_i

1.   0と出力される

2.   5と出力される

3.   23と出力される

4.   235と出力される

5.   例外が発生する

答えを見る

正答

1.   0と出力される

解説

String#to_iは、文字列を数値に変換する。文字列の中に、数値に変換できない文字がある場合は、その文字以降が無視される。また、1文字目が数値に変換できない場合は、0が返る。

puts "a23b5".to_i
# => 0
# 最初の文字aは数値に変換できない

puts "23b5".to_i
# => 23
# 23までは数値に変換できる

文法 2-3

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

arr = [10, 20, 30]
for n in arr
  ret = n * 3
end
puts ret

1.   20と出力される

2.   30と出力される

3.   60と出力される

4.   90と出力される

5.   例外が発生する

答えを見る

正答

4.   90と出力される

解説

変数retはfor式の中で定義されているが、for式の外でも使える(=スコープが作られない)。 よって、putsメソッド実行時に例外は発生しない。

arr = [10, 20, 30]
for n in arr
  ret = n * 3
end
puts ret

# => 90
# 変数retの値は30, 60, 90の順に変わる

文法 2-4

以下のコードを実行したところ101と出力されました。【 1 】に入る適切な記述を2つ選択してください。

number = 100
【 1 】
puts number

1.   number++

2.   number += 1

3.   number =+ 1

4.   number == number + 1

5.   number = number + 1

答えを見る

正答

2.   number += 1

5.   number = number + 1

解説

number =+ 1 だとnumberの値は1に変わってしまうので間違い。これは number = +1number = 1 と同じ。

また、number == number + 1 は 右辺と左辺を比較するだけなので、numberの値は100から変化しない。

なお、number++ という書き方はRubyには用意されていない。


文法 2-5

次のコードの実行結果として正しいものを1つ選択してください。

p 0x10

1.   8と出力される

2.   10と出力される

3.   16と出力される

4.   Aと出力される

5.   例外が発生する

答えを見る

正答

3.   16と出力される

解説

0x10は16進数表記の数値を表す。しかし、pメソッドの結果は10進数で表示される。 16進数の10は、10進数で表すと16。よって答えは16となる。

p 0x10
# =>16

p 0x9
# =>15

p 0xA
# =>10

p 0xFF
# => 255

文法 2-6

実行後、何も表示されないコードを1つ選択してください。

1.  

s1 = 'abc'
s2 = 'abc'
if !(s1 == s2)
  puts 'A'
elsif s1.equal?(s2)
  puts 'B'
end

2.  

s1 = 'abc'
s2 = 'abc'
if !(s1 == s2)
  puts 'A'
else
  puts 'B'
end

3.  

s1 = 'abc'
s2 = 'abc'
if s1 == s2
  puts 'A'
elsif s1.equal?(s2)
  puts 'B'
end

4.  

s1 = 'abc'
s2 = 'abc'
if s1 == s2
  puts 'A'
else
  puts 'B'
end
答えを見る

正答

1

解説

-


文法 2-7

9と出力されるコードを1つ選択してください。

1.   puts 0b1001

2.   puts 0b1011

3.   puts 0x1001

4.   puts 0x1011

答えを見る

正答

1.   puts 0b1001

解説

数値の先頭に特殊な記述を加えることで、10進数以外の数値を表すことができる。先頭に0b は2進数を表す(bはbinaryのb)。また先頭に0x は16進数を表す。


puts 0b1001
# => 9
# 2進数の1001は、10進数の9

puts 0x000A
# => 10
# 16進数のAは、10進数の10

文法 2-8

次のコードの出力として正しいものを1つ選択してください。

p 011

1.   9

2.   11

3.   17

4.   011

答えを見る

正答

1.   9

解説

0から始まる数値は、8進数を表す。よって、011は8進数の11であり、10進数の11ではない。なおpメソッドを使うと10進数で表示されることにも注意。

コメント:よく出るひっかけ問題だと思います

p 011
# => 9

p 010
# => 8

p 007
# => 7

文法 2-9

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

puts "12a45".to_i

1.   0と出力される

2.   1と出力される

3.   12と出力される

4.   1245と出力される

5.   例外が発生する

答えを見る

正答

3.   12と出力される

解説

String#to_iは、文字列を数値に変換する。文字列の中に、数値に変換できない文字がある場合は、その文字以降が無視される。

puts "12a45".to_i
# => 12
# 12までは数値に変換できる

文法 2-10

以下のコードのうち、実行するとloseと出力されるものを1つ選択してください。

1.  

num = 9.999
num > 10 ? ret = "win" : ret = "lose"
puts ret

2.  

num = 9.999
num < 10 ? ret = "win" : ret = "lose"
puts ret

3.  

num = 9.999
if num > 10 ? ret = "win" : ret = "lose"
puts ret

4.  

num = 9.999
if num < 10 ? ret = "win" : ret = "lose"
puts ret
答えを見る

正答

1

解説

三項演算子は、条件式 ? 式1 : 式2という書式

条件式が成立する場合は式1の結果を返す。条件式が成立しない場合は式2の結果を返す。

num = true ? 1 : 0 
p num
# => 1

文法 2-11

以下の出力が得られるコードを1つ選択してください。

0100

1.   puts sprint("%04b", 4)

2.   puts sprintf("%04b", 4)

3.   puts sprint("%04x", 4)

4.   puts sprintf("%04x", 4)

答えを見る

正答

2.   puts sprintf("%04b", 4)

解説

sprintf関数は書式を揃えるときに使う。第1引数にはフォーマットを指定する。第2引数にフォーマットしたい値を指定する。

本設問では、数値の4をフォーマットして、文字列の0100を出力している(つまり2進数表記で出力)。

コメント:bはbinaryのb


文法 2-12

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

arr = [10, 20, 30]
arr.each do
  ret = n * 3
end
p ret

1.   20と出力される

2.   30と出力される

3.   60と出力される

4.   90と出力される

5.   例外が発生する

答えを見る

正答

5.   例外が発生する

解説

eachメソッドはスコープを作る。そのためeachメソッド内で定義したローカル変数は、eachメソッドの外で使うことはできない。

arr = [10, 20, 30]
arr.each do
  ret = n * 3
end
p ret  # ここで例外が発生

コメント:for式の場合は話が異なるので注意が必要です。下記のコードを実行しても例外は発生しません。

arr = [10, 20, 30]
for n in arr
  ret = n * 3
end
p ret  # => 90

文法 2-13

例外が生じるコードの組み合わせとして正しいものを、次の中から1つ選択してください。

コード1

a = 1
if a > 1
  b = 5
end
p b

コード2

x = 1
y = 5 if x > 1
p y

1.   コード1

2.   コード2

3.   コード1とコード2

4.   どちらも例外は発生しない

答えを見る

正答

4.   どちらも例外は発生しない

解説

変数の宣言(初出の変数への値の代入)とif式を組み合わせた場合に、判定結果に関わらず変数自体は確保される。
引用:Ruby技術者認定試験合格教本

a = 1
if a > 1
  b = 5  # 5が代入されなくても変数bは確保される
end
p b  # => nil

文法 2-14

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

x = ("rb" * 3 ** 2).length
puts x

1.   2と出力される

2.   6と出力される

3.   12と出力される

4.   18と出力される

5.   例外が発生する

答えを見る

正答

4.   18と出力される

解説

("rb" * 3 ** 2).length
↓
("rb" * 9).length
↓
("rbrbrbrbrbrbrbrbrb").length
↓
18

文法 2-15

以下のコードの出力として正しいものを1つ選択してください。

puts sprintf("%04d", 1)

1.   1

2.   1111

3.   1000

4.   0001

答えを見る

正答

4.   0001

解説

sprintf関数は書式を揃えるときに使う。第1引数にはフォーマットを指定する。第2引数にフォーマットしたい値を指定する。

本設問では、数値の1をフォーマットして、文字列の0001を出力している。

puts sprintf("%04d", 1)

%04d04は桁数を表す。今回は4桁になる。dはdecimal(10進数)。


文法 2-16

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

def sample
  n2 = 2
  print n1 + n2
  n1 = 10
  print n1
end

n1 = 1
sample

1.   13と表示される

2.   310と表示される

3.   1210と表示される

4.   22と表示される

5.   例外が発生する

答えを見る

正答

5.   例外が発生する

解説

ローカル変数n1は、メソッドsampleの外で定義されている。そのためメソッドsampleの中では変数n1を参照できない。

def sample
  n2 = 2
  print n1 + n2  # この行で例外が発生する
  n1 = 10
  print n1
end

n1 = 1
sample

文法 2-17

以下のコードの出力として正しいものを1つ選択してください。

x =:abc
y =:abc

print x.eql?(y)
print ' '
print x.equal?(y)

1.   true true

2.   true false

3.   false true

4.   false false

答えを見る

正答

1.   true true

解説

作成したシンボルは、文字の並びが同じであれば、同一のオブジェクトを参照します。文字列リテラルは、文字の並びが同一でも、指定するごとに新たなStringオブジェクトが生成されます。
引用:Ruby技術者認定試験合格教本

つまり、

p :abc.equal?(:abc) => # true
p 'abc'.equal?('abc') => # false

文法 2-18

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

x = 99 % 3 == 0
puts x

1.   0と出力される

2.   1と出力される

3.   trueと出力される

4.   falseと出力される

5.   例外が発生する

答えを見る

正答

3.   trueと出力される

解説

%==では %のほうが演算の優先度が高い。

x = 99 % 3 == 0
↓
x = ((99 % 3) == 0)
↓
x = (0 == 0)
↓
x = true

文法 2-19

以下のコードのうち、実行すると005と表示されるコードを1つ選択してください。

1.   puts "%03d" % 5

2.   puts "%05d" % 3

3.   puts "%03d" : 5

4.   puts "%05d" : 3

5.   puts "%03d" * 5

6.   puts "%05d" * 3

答えを見る

正答

1.   puts "%03d" % 5

%演算子は、sprintf関数と同じく書式を揃えるときに使う。

"%03d" % 5 # => "005"
sprintf("%03d", 5) # => "005"

解説

-


文法 3 (19問)

文法 3-1

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

x = 10
y = 10

unless x.eql?(y)
  puts 'A'
elsif x.equal?(y)
  puts 'B'
else
  puts 'C'
end

1.   Aと表示される

2.   Bと表示される

3.   Cと表示される

4.   エラーが発生する

答えを見る

正答

4.   エラーが発生する

解説

syntax errorが発生する。unlessではelsif節が使えないため。else節は使える。


文法 3-2

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

if 0
  puts "A"
elsif 0.0
  puts "B"
else
  puts "C"
end

1.   Aと出力される

2.   Bと出力される

3.   Cと出力される

4.   例外が発生する

答えを見る

正答

1.   Aと出力される

解説

Rubyでは0は真と評価される。よってコード1行目の条件が成り立つ。

if 0  # この条件が成り立つ
  puts "A"  # このputsメソッドが実行される
elsif 0.0
  puts "B"
else
  puts "C"
end

文法 3-3

次の出力が得られるコードを1つ選択してください。

Ruby
PHP

1.  

text = <<START
Ruby
PHP
END
puts text

2.  

text = <<END
Ruby
PHP
END
puts text

3.  

text = >>START
Ruby
PHP
END
puts text

4.  

text = >>END
Ruby
PHP
END
puts text
答えを見る

正答

2

解説

ヒアドキュメントに関する問題。

ヒアドキュメント (行指向文字列リテラル)
https://docs.ruby-lang.org/ja/latest/doc/spec=2fliteral.html#here


文法 3-4

以下のコードを実行したところ、次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

a = "A"
b = "A"
puts a.object_id
puts b.object_id
【  1  】

出力

20114760
20114720
false

1.   puts a.equal?(b)

2.   puts a.equals?(b)

3.   puts a.eql?(b)

4.   puts a.eq?(b)

答えを見る

正答

1.   puts a.equal?(b)

解説

eql?equal?は、オブジェクトの比較を行うメソッド。equal?メソッドのほうが厳密な比較をおこない、2つのオブジェクトが同一である時のみtrueを返す。

本設問では変数a, bが定義されていて、それぞれに文字列Aが割り当てられている。

a = "A"
b = "A"
puts a.object_id
puts b.object_id

しかし両者のobject_idは異なっているため、同一オブジェクトではないと分かる。

よってequal?メソッドで比較を行うとfalseが返ってくる。
eql?メソッドの比較ではtrueが返ってくる)


文法 3-5

以下のコードの出力として正しいものを1つ選択してください。

puts %w(ABCD)

1.   (ABCD)

2.   ABCD

3.   A B C D

4.   (abcd)

5.   abcd

6.   a b c d

答えを見る

正答

2.   ABCD

解説

パーセント記法に関する問題

%wの場合、空白文字が区切りとなる。しかし本設問では空白文字がない。そのため文字列ABCDが出力される。

コメント: よく分からなければ、

puts %w(ABCD)

puts %w(A B C D)

の違いを動作確認してみましょう。


文法 3-6

trueと表示されるコードを1つ選択してください。

1.   puts 1 = 1

2.   puts 1 != 1

3.   puts 1 == 1

4.   puts 1 !== 1

答えを見る

正答

3.   puts 1 == 1

解説

puts 1 == 1 は左辺と右辺を比較するのでtrueが返る。

puts 1 = 1 はsyntax errorになる。1に1を代入することになるため。

puts 1 !== 1 は syntax errorになる。!== という演算子は存在しないため。


文法 3-7

以下のコードを実行したところ、次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

s1 = 'Rails'
s2 = 'Laravel'

text = 【 1 】
#{s1}
#{s2}
TXT

puts text

出力

#{s1}
#{s2}

1.   <<TXT

2.   <<'TXT'

3.   <<"TXT"

4.   <<-TXT

答えを見る

正答

2.   <<'TXT'

解説

ヒアドキュメントに関する問題

識別子をシングルクォートで囲んだ場合、ヒアドキュメント内の式展開はおこなわれない。本設問では、#{s1}#{s2}がそのまま出力される。

なお、識別子をダブルクォートで囲んだ場合と、何も囲まない場合は式展開がおこなわれる。


文法 3-8

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

$nil = 10
p $nil ** 2

1.   0と出力される

2.   10と出力される

3.   20と出力される

4.   100と出力される

5.   例外が発生する

答えを見る

正答

4.   100と出力される

解説

先頭に$の付いた変数はグローバル変数。nilは予約語だが$nilは予約語ではないため普通に使用することができる。なお**は累乗の計算をおこなう演算子。

文法 3-9

以下のコードの出力として正しいものを1つ選択してください。

puts 12_04_56

1.   12_04_56

2.   12_4_56

3.   120456

4.   12456

答えを見る

正答

3.   120456

解説

Rubyならではの特徴として、数値リテラルの中でアンダースコア「_」が指定できることを覚えましょう。Rubyインタプリタは、「_」を無視するので、例えば、桁数を見やすく記述することなどに利用します。
引用:Ruby技術者認定試験合格教本

つまり、

p 10_000_000 # => 10000000


文法 3-10

以下のコードの出力として正しいものを1つ選択してください。

puts 100 <=> 50

1.   0

2.   1

3.   -1

4.   true

5.   false

答えを見る

正答

2.   1

解説

UFO演算子に関する問題。

UFO演算子は、

・左辺の値のほうが大きい場合は1を返す
・右辺の値のほうが大きい場合は-1を返す
・両者が等しい場合は0を返す

ソートの条件を指定する時などに使われる。

コメント: 覚え方としては、数直線の逆。数直線だと右側がプラスになるが、UFO演算子だと右側がマイナス(というイメージです)。


文法 3-11

以下のコードを実行したところ、次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

def sample
  【 1 】
    Ruby
    Java
  TXT
end

p sample

出力

"    Ruby\n    Java\n"

1.   <<TXT

2.   <<'TXT'

3.   <<"TXT"

4.   <<-TXT

答えを見る

正答

4.   <<-TXT

解説

通常、ヒアドキュメントでは、終端を示す識別子の前に文字列を記述することはできない(スペースも不可)

しかし、本設問では終端を示す識別子TXTの前に半角スペースが2つ存在する。 �� スペースを許容するには、開始を示す識別子の先頭にハイフンを付ける必要がある。


文法 3-12

以下のコードの出力として正しいものを1つ選択してください。

v1 = "123"
v2 = v1
v1 += "456"
puts v2

1.   123

2.   456

3.   123456

4.   v1

5.   v2

答えを見る

正答

1.   123

解説

v1 = "123"   # ①
v2 = v1      # ②
v1 += "456"  # ③
puts v2      # ④

②の時点では、変数v1とv2は同じオブジェクト。

③でv1の指し示す内容は変わる。しかしv2の指し示す内容は変わらない(つまり文字列"123"のまま)。

コメント: よく分からなければ次のコードを試してください(オブジェクトIDは例です)。

v1 = "123"
v2 = v1
p v1.object_id  # => 60
p v2.object_id  # => 60

v1 += "456"
p v1.object_id  # => 80(変化した)
p v2.object_id  # => 60(変化無し)

文法 3-13

エラーが発生するコードをすべて選択してください。

1.   puts 070

2.   puts '070'

3.   puts 079

4.   puts '079'

5.   puts 090

6.   puts '090'

答えを見る

正答

3.   puts 079

5.   puts 090

解説

-


文法 3-14

以下のコードの出力として正しいものを1つ選択してください。

num = 1
3.times do |num|
  num += 100
end
puts num

1.   1

2.   100

3.   101

4.   300

5.   301

答えを見る

正答

1.   1

解説

-


文法 3-15

以下のコードの出力として正しいものを1つ選択してください。

def sample(x)
  x *= 2
  puts x
end

v1 = 100
sample(v1)
puts v1

1.  

2
2

2.  

2
100

3.  

100
100

4.  

100
200

5.  

200
100

6.  

200
200
答えを見る

正答

5.  

200
100

解説

-


文法 3-16

以下のコードの出力として正しいものを1つ選択してください。

 p ?A + ?B

1.   "AB"

2.   nil

3.   "A"

4.   131

5.   6566

答えを見る

正答

1.   "AB"

解説

-


文法 3-17

以下の出力が得られるコードを1つ選択してください。

[10, 13, 16, 19]

1.  

ret = []
7.step(20, 3) do |n|
  ret << n 
end
p ret

2.  

ret = []
10.step(20, 3) do |n|
  ret << n 
end
p ret

3.  

ret = []
7.step(3, 20) do |n|
  ret << n 
end
p ret

4.  

ret = []
10.step(3, 20) do |n|
  ret << n 
end
p ret
答えを見る

正答

2

解説

-


文法 3-18

以下のコードを実行したところRuby on Railsと出力されました。空欄【 1 】に入る適切な記述をすべて選択してください。

def sample
  s = "Ruby"
  【   1   】
#{s} on Rails
  END
end

puts sample

1.   <<END

2.   <<-END

3.   <<"END"

4.   <<'END'

5.   <<-"END"

6.   <<-'END'

答えを見る

正答

2.   <<-END

5.   <<-"END"

解説

-


文法 3-19

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

$super = 100

def sample
  $super = 200
end

sample
puts $super

1.   100と出力される

2.   200と出力される

3.   0と出力される

4.   nilと出力される

5.   例外が発生する

答えを見る

正答

2.   200と出力される

解説

-



文法 4 (22問)

文法 4-1

以下のコードの出力として正しいものを1つ選択してください。

puts -1 || 0.0

1.   -1

2.   0

3.   0.0

4.   true

5.   false

答えを見る

正答

1.   -1

解説

-


文法 4-2

次のコードの実行結果として正しいものを1つ選択してください。

def sample(x, y = 100)
  x + y
end

puts sample(3, 4)

1.   7と表示される

2.   100と表示される

3.   103と表示される

4.   104と表示される

5.   107と表示される

6.   例外が発生する

答えを見る

正答

1.   7と表示される

解説

-


文法 4-3

以下のコードの出力として正しいものを1つ選択してください。

x, y = nil, 1

if x && y
  print "OK,"
else
  print "NG,"
end

if x || y
  print "OK,"
else
  print "NG,"
end

1.   OK,OK,

2.   OK,NG,

3.   NG,OK,

4.   NG,NG,

答えを見る

正答

3.   NG,OK,

解説

-


文法 4-4

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

unless 10 <=> 10
  puts 'A'
else
  puts 'B'
end

1.   Aと表示される

2.   Bと表示される

3.   何も表示されない

4.   エラーが発生する

答えを見る

正答

2.   Bと表示される

解説

-


文法 4-5

以下のコードの出力として正しいものを1つ選択してください。

x = nil
y = 1
p x && y

1.   nil

2.   1

3.   false

4.   true

5.   0

答えを見る

正答

1.   nil

解説

-


文法 4-6

以下のコードの出力として正しいものを1つ選択してください。

puts 1.0.class

1.   Integer

2.   Single

3.   Double

4.   Float

5.   FixNum

6.   BigNum

答えを見る

正答

4.   Float

解説

-


文法 4-7

以下のコードの出力として正しいものを1つ選択してください。

puts 1 && 5

1.   1

2.   2

3.   5

4.   6

5.   true

6.   false

答えを見る

正答

3.   5

解説

-


文法 4-8

以下のコードの出力として正しいものを1つ選択してください。

x = 10
y = 10.0
print x == y
print ','
print x.eql?(y)

1.   true,true

2.   true,false

3.   false,true

4.   false,false

答えを見る

正答

2.   true,false

解説

-


文法 4-9

以下のコードを実行したところ50と表示されました。空欄【 1 】に入る適切な記述を2つ選択してください。

def sample(a, b = 10)
  a * b
end

puts 【 1 】

1.   sample(10, 5)

2.   sample(5)

3.   sample(50)

4.   sample(5, 5)

答えを見る

正答

1.   sample(10, 5)

2.   sample(5)

解説

-


文法 4-10

以下のコードの出力として正しいものを1つ選択してください。

x = 0
y = false
p x && y

1.   0

2.   false

3.   true

4.   0false

答えを見る

正答

2.   false

解説

-


文法 4-11

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

num = 100
num = if num < 100
    10
  elsif num < 200
    20
  else
    30
  end
puts num

1.   10と表示される

2.   20と表示される

3.   30と表示される

4.   例外が発生する

答えを見る

正答

2.   20と表示される

解説

-


文法 4-12

以下のコードの出力として正しいものを1つ選択してください。

s = "Rails"
s = s || "Ruby"
puts s

1.   Ruby

2.   Rails

3.   RailsRuby

4.   false

5.   true

答えを見る

正答

2.   Rails

解説

-


文法 4-13

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

def sample(a = 10, b)
  puts a + b
end

a = 3
sample(a)

1.   0と表示される

2.   3と表示される

3.   10と表示される

4.   13と表示される

5.   例外が発生する

答えを見る

正答

4.   13と表示される

解説

-


文法 4-14

以下のコードの出力として正しいものを1つ選択してください。

p !!(0 && nil)

1.   0

2.   nil

3.   1

4.   true

5.   false

答えを見る

正答

5.   false

解説

-


文法 4-15

Rubyの変数名として正しいものをすべて選択してください

1.   @s

2.   @@s

3.   @@@s

4.   #s

5.   $s

6.   $$s

答えを見る

正答

1.   @s

2.   @@s

5.   $s

解説

-


文法 4-16

以下のコードを実行したところ、次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

def sample(【  1  】)
  p x
end
sample(1, 2, 3)

出力

[1, 2, 3]

1.   x

2.   @x

3.   *x

4.   +x

5.   >>x

答えを見る

正答

3.   *x

解説

-


文法 4-17

以下のコードの出力として正しいものを1つ選択してください。

x = nil
y = -1
p x || y

1.   nil

2.   -1

3.   true

4.   false

答えを見る

正答

2.   -1

解説

-


文法 4-18

エラーにならずに正常に実行できるコードをすべて選択してください。

1.   puts '%x' + 10

2.   puts '%x' - 10

3.   puts '%x' * 10

4.   puts '%x' % 10

5.   puts '%x' / 10

答えを見る

正答

3.   puts '%x' * 10

4.   puts '%x' % 10

解説

-


文法 4-19

以下のコードの出力として正しいものを1つ選択してください。

p !!(0 || false)

1.   false

2.   nil

3.   true

4.   0

5.   -1

答えを見る

正答

3.   true

解説

-


文法 4-20

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

def sample(x, y, *z)
  p z
end
sample(1, "A", "B", 2)

1.   2と出力される

2.   [2]と出力される

3.   B2と出力される

4.   ["B", 2]と出力される

5.   例外が発生する

答えを見る

正答

4.   ["B", 2]と出力される

解説

-


文法 4-21

以下のコードの出力として正しいものを1つ選択してください。

p (0 && -1) && (true || nil)

1.   0

2.   -1

3.   true

4.   nil

5.   false

答えを見る

正答

3.   true

解説

-


文法 4-22

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

p (1..4).to_a

1.   "1234"と出力される

2.   "(1234)"と出力される

3.   [1234]と出力される

4.   [1, 2, 3, 4]と出力される

5.   例外が発生する

答えを見る

正答

4.   [1, 2, 3, 4]と出力される

解説

-



String 1 (20問)

String 1-1

以下のコードのうち、実行すると4と表示されるコードをすべて選択してください。

1.   p "Ruby".size

2.   p "Ruby".count

3.   p "Ruby".number

4.   p "Ruby".chomp

5.   p "Ruby".scan

6.   p "Ruby".length

答えを見る

正答

1.   p "Ruby".size

6.   p "Ruby".length

解説

-


String 1-2

以下のコードの出力として正しいものを1つ選択してください。

puts 'ABCDE'.slice(3)

1.   AB

2.   ABC

3.   DE

4.   D

5.   E

答えを見る

正答

4.   D

解説

-


String 1-3

以下のコードの出力として正しいものを1つ選択してください。

p "090-9999-0000".split('-')

1.   ["090", "9999", "0000"]

2.   ["09099990000"]

3.   "09099990000"

4.   "090", "9999", "0000"

答えを見る

正答

1.   ["090", "9999", "0000"]

解説

-


String 1-4

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

puts "abc".【  1  】

出力

ABC

1.   upcase

2.   uppercase

3.   downcase

4.   lowercase

答えを見る

正答

1.   upcase

解説

-


String 1-5

以下のコードの出力として正しいものを1つ選択してください。

p "Ruby\r\n".chop

1.   "Ruby"

2.   "Ruby\r"

3.   "Ruby\n"

4.   "Ruby\r\n"

答えを見る

正答

1.   "Ruby"

解説

-


String 1-6

RubyのStringクラスに存在しないメソッドを2つ選択してください。

1.   shift

2.   scan

3.   join

4.   split

5.   replace

答えを見る

正答

1.   shift

3.   join

解説

-


String 1-7

実行するとtrueと出力されるコードをすべて選択してください。

1.   puts [].empty?

2.   puts [].blank?

3.   puts [].nil?

4.   puts "".empty?

5.   puts "".blank?

6.   puts "".nil?

答えを見る

正答

1.   puts [].empty?

4.   puts "".empty?

解説

-


String 1-8

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

p "+5-3".to_i

1.   0と出力される

2.   2と出力される

3.   5と出力される

4.   nilと出力される

5.   例外が発生する

答えを見る

正答

3.   5と出力される

解説

-


String 1-9

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

puts "ruby".【  1  】

出力

Ruby

1.   lstrip

2.   swapcase

3.   capitalize

4.   reverse

答えを見る

正答

3.   capitalize

解説

-


String 1-10

以下のコードの出力として正しいものを1つ選択してください。

p "\r1234\r\r".strip

1.   "1234"

2.   "1234\r"

3.   "\r1234"

4.   "\r1234\r"

答えを見る

正答

1.   "1234"

解説

-


String 1-11

以下のコードの出力として正しいものを1つ選択してください。

p "12\n\r\n".chomp

1.   "12"

2.   "12\n"

3.   "12\n\r"

4.   "12\n\r\n"

答えを見る

正答

2.   "12\n"

解説

-


String 1-12

以下のコードの出力として正しいものを1つ選択してください。

puts "abbxxcc".count('a-c')

1.   abbcc

2.   abb

3.   2

4.   3

5.   5

答えを見る

正答

5.   5

解説

-


String 1-13

以下の出力が得られるコードを1つ選択してください。

"  ab  "

1.   p "ab".space(6)

2.   p "ab".center(6)

3.   p "ab".trim(6)

4.   p "ab".just(6)

答えを見る

正答

2.   p "ab".center(6)

解説

-


String 1-14

以下の出力が得られるコードを1つ選択してください。

"12\r\n3"

1.   p "12\r\n34".strip

2.   p "12\r\n34".rstrip

3.   p "12\r\n34".chop

4.   p "12\r\n34".chomp

答えを見る

正答

3.   p "12\r\n34".chop

解説

-


String 1-15

以下のコードの出力として正しいものを1つ選択してください。

p (1..4).to_s

1.   "1..4"

2.   [1, 2, 3, 4]

3.   "1234"

4.   "14"

5.   "(1234)"

答えを見る

正答

1.   "1..4"

解説

-


String 1-16

RubyのStringクラスに存在しないメソッドを2つ選択してください。

1.   reverse

2.   reject

3.   reverse!

4.   fill

5.   concat

答えを見る

正答

2.   reject

4.   fill

解説

-


String 1-17

trueと表示されるコードを1つ選択してください。

1.   p 'b' < 'ab'

2.   p 'aa' <=> 'b'

3.   p 'aa' < 'b'

4.   p 'a' == 'A'

答えを見る

正答

3.   p 'aa' < 'b'

解説

-


String 1-18

以下のコードの出力として正しいものを1つ選択してください。

s = "abcde"
s[2, 2] = "123"
puts s

1.   abcde

2.   ab12e

3.   ab123

4.   ab123e

5.   123

答えを見る

正答

4.   ab123e

解説

-


String 1-19

以下のコードの出力として正しいものを1つ選択してください。

puts '123456'.slice(2...4)

1.   23

2.   234

3.   2345

4.   34

5.   345

6.   3456

答えを見る

正答

4.   34

解説

-



String 2 (23問)

String 2-1

以下のコードの出力として正しいものを1つ選択してください。

s = '123456'
s.slice!(2, 3)
puts s

1.   34

2.   345

3.   126

4.   1256

5.   123456

答えを見る

正答

3.   126

解説

-


String 2-2

以下のコードの出力として正しいものを1つ選択してください。

s = "A.S.A.P"
puts s.split('.', 3)

1.  

S.A.P

2.  

A
S
P

3.  

A
S
A.P

4.  

A.S.A
P
答えを見る

正答

3.  

A
S
A.P

解説

-


String 2-3

以下のコードを実行したところUTF-8と表示されました。空欄【 1 】に入る適切な記述を1つ選択してください。

puts "ABC".【  1  】

1.   encode

2.   encoding

3.   charset

4.   charsetting

答えを見る

正答

2.   encoding

解説

-


String 2-4

以下のコードの出力として正しいものを1つ選択してください。

puts "890101".sub('01', 'ab')

1.   89ab01

2.   89abab

3.   ab0101

4.   890101

答えを見る

正答

1.   89ab01

解説

-


String 2-5

実行後、何も表示されないコードをすべて選択してください。

1.   puts 'ruby'.slice(4, 2)

2.   puts 'ruby'.slice(-4)

3.   puts 'ruby'.slice(-5)

4.   puts 'ruby'.slice(-1, 5)

答えを見る

正答

1.   puts 'ruby'.slice(4, 2)

3.   puts 'ruby'.slice(-5)

解説

-


String 2-6

以下のコードの出力として正しいものを1つ選択してください。

puts "ab".rjust(6, "*")

1.   ****ab

2.   ab****

3.   ******ab

4.   ab******

答えを見る

正答

1.   ****ab

解説

-


String 2-7

以下のコードの出力として正しいものを1つ選択してください。

puts "abc".include?("ac")

1.   true

2.   false

3.   a

4.   ac

5.   0

答えを見る

正答

2.   false

解説

-


String 2-8

以下のコードの出力として正しいものを1つ選択してください。

puts 5 / 2 * 2 + 5 * 2 / 2

1.   8

2.   9

3.   10

4.   19

5.   20

答えを見る

正答

2.   9

解説

-


String 2-9

0と出力されるコードをすべて選択してください。

1.   p "0123".to_i

2.   p "-0001".to_i

3.   p "".to_i

4.   p nil.to_i

5.   p [].to_i

答えを見る

正答

3.   p "".to_i

4.   p nil.to_i

解説

-


String 2-10

以下のコードの出力として正しいものを1つ選択してください。

s = "A!BC!DEF!G"
puts s.index("!", 3)

1.   2

2.   4

3.   5

4.   8

5.   9

答えを見る

正答

2.   4

解説

-


String 2-11

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

s = "123456"
puts s[3...-1]

1.   345と表示される

2.   3456と表示される

3.   45と表示される

4.   456と表示される

5.   何も表示されない

答えを見る

正答

3.   45と表示される

解説

-


String 2-12

以下のコードを実行したところ、dと出力されました。空欄【 1 】に入る適切な記述を1つ選択してください。

puts 100.【  1  】

1.   chr

2.   string

3.   char

4.   str

5.   convert

答えを見る

正答

1.   chr

解説

-


String 2-13

以下のコードの出力として正しいものを1つ選択してください

url = "http://www.exam-rb.com"
puts url.delete("www.")

1.   http://exam-rb.com

2.   http://exam-rbcom

3.   http://www.exam-rb.com

4.   http://www.exam-rbcom

答えを見る

正答

2.   http://exam-rbcom

解説

-


String 2-14

以下のコードの出力として正しいものを1つ選択してください。

puts "RUBY on RAILS".capitalize

1.   Ruby on Rails

2.   Ruby on rails

3.   ruby ON rails

4.   Ruby On Rails

答えを見る

正答

2.   Ruby on rails

解説

-


String 2-15

以下のコードの出力として正しいものを1つ選択してください。

5.downto 2 do |n| 
  print n
end

1.   54

2.   45

3.   543

4.   345

5.   5432

6.   2345

答えを見る

正答

5.   5432

解説

-


String 2-16

以下のコードの出力として正しいものを1つ選択してください。

puts "890101".gsub('01', 'AB')

1.   89ABAB

2.   89AB01

3.   AB0101

4.   890101

答えを見る

正答

1.   89ABAB

解説

-


String 2-17

以下のコードの出力として正しいものを1つ選択してください。

puts "1_005_000"

1.   1005000

2.   1_005_000

3.   150

4.   1_5_0

答えを見る

正答

2.   1_005_000

解説

-


String 2-18

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

puts "Ruby PHP".【  1  】

出力

rUBY php

1.   swapcase

2.   capitalize

3.   rstrip

4.   scan

答えを見る

正答

1.   swapcase

解説

-


String 2-19

以下のコードの出力として正しいものを1つ選択してください。

s = "Ruby"
s.upcase.downcase.swapcase
puts s

1.   ruby

2.   Ruby

3.   RUBY

4.   rUBY

答えを見る

正答

2.   Ruby

解説

-


String 2-20

以下のコードを実行したところ、1と出力された。空欄【 1 】に入る適切な記述を1つ選択してください。

puts "B".【  1  】 - "A".【  1  】

1.   chr

2.   char

3.   ord

4.   to_i

5.   numeric

答えを見る

正答

3.   ord

解説

-


String 2-21

以下のコードの出力として正しいものを1つ選択してください。

s = "A!A!BB!"
p s.index("!", 7)

1.   3

2.   6

3.   7

4.   nil

5.   false

答えを見る

正答

4.   nil

解説

-


String 2-22

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

5.upto 3 do |n| 
  print n
end

1.   543と出力される

2.   567と出力される

3.   678と出力される

4.   何も出力されない

答えを見る

正答

4.   何も出力されない

解説

-


String 2-23

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

s = "abcde"
puts s.slice("abc").slice("b")

1.   acと表示される

2.   bと表示される

3.   deと表示される

4.   何も表示されない

答えを見る

正答

2.   bと表示される

解説

-



String 3 (20問)

String 3-1

以下のコードの出力として正しいものを1つ選択してください。

s = "123456789"
puts s.delete("1-46-")

1.   5789

2.   56789

3.   235789

4.   5

5.   789

答えを見る

正答

1.   5789

解説

-


String 3-2

以下のコードの出力として正しいものを1つ選択してください。

puts "012345".gsub(/[^1-3]/, 'ab')

1.   0ababab45

2.   0ab45

3.   ab123abab

4.   ab12345

5.   01abab45

答えを見る

正答

3.   ab123abab

解説

-


String 3-3

以下のコードの出力として正しいものを1つ選択してください。

x = "A"
y = x
y = y + "B"
y = y + "C"
puts x

1.   A

2.   C

3.   AB

4.   BC

5.   ABC

答えを見る

正答

1.   A

解説

-


String 3-4

以下のコードの出力として正しいものを1つ選択してください。

s = "1234567"
puts s[-2, 3]

1.   1

2.   56

3.   67

4.   123

5.   567

6.   671

答えを見る

正答

3.   67

解説

-


String 3-5

以下のコードの出力として正しいものを1つ選択してください。

p "12\r\n\r\n".chomp("")

1.   12

2.   12\r

3.   12\r\n

4.   12\r\n\r

5.   12\r\n\r\n

答えを見る

正答

1.   12

解説

-


String 3-6

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

p "Ruby\r\n".【   1   】

出力

"Rub"

1.   chomp.chomp.chop

2.   chop.chomp.chomp

3.   chop.chop.chop

4.   chomp.chomp.chomp

答えを見る

正答

1.   chomp.chomp.chop

解説

-


String 3-7

RubyのStringクラスのメソッドのうち、レシーバ自身を書き換えるものをすべて選択してください。

1.   strip

2.   concat

3.   replace

4.   reverse

5.   delete

答えを見る

正答

2.   concat

3.   replace

解説

-


String 3-8

以下のコードの出力として正しいものを1つ選択してください。

puts %w(Ruby \ JAVA)

1.  

Ruby \ JAVA

2.  

["Ruby", " JAVA"]

3.  

Ruby
 JAVA

4.  

["Ruby", "/JAVA"]

5.  

Ruby
\
JAVA
答えを見る

正答

3.  

Ruby
 JAVA

解説

-


String 3-9

以下のコードの出力として正しいものを1つ選択してください。

x = "1..3"
x.scan(/./)
p x

1.   ".."

2.   "1..3"

3.   ["1", "3"]

4.   ["1", ".", ".", "3"]

答えを見る

正答

2.   "1..3"

解説

-


String 3-10

以下のコードの出力として正しいものを1つ選択してください。

x = "A"
y = x
y << "B"
y << "C"
puts x

1.   A

2.   C

3.   AB

4.   BC

5.   ABC

答えを見る

正答

5.   ABC

解説

-


String 3-11

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

puts 'abcdef'[2..3][-1]

1.   bと出力される

2.   cと出力される

3.   dと出力される

4.   abと出力される

5.   deと出力される

6.   例外が発生する

答えを見る

正答

3.   dと出力される

解説

-


String 3-12

以下の出力が得られるコードを1つ選択してください。

s = '01234'
puts s.delete('0-2', '1-3')

1.   4

2.   34

3.   012

4.   034

答えを見る

正答

4.   034

解説

-


String 3-13

以下のコードの出力として正しいものを1つ選択してください。

p "1181111".chomp("11")

1.   8

2.   118

3.   11811

4.   1181111

5.   118111111

答えを見る

正答

3.   11811

解説

-


String 3-14

以下のコードの出力として正しいものを1つ選択してください。

s1 = "ab"
s2 = s1
s1.reverse
s2 = s1.reverse
puts s1 + s2

1.   abab

2.   abba

3.   baab

4.   baba

答えを見る

正答

2.   abba

解説

-


String 3-15

以下のコードの出力として正しいものを1つ選択してください。

s = "1234567-"
puts s.delete("-3-51")

1.   2

2.   12

3.   267

4.   267-

5.   1267

6.   1267-

答えを見る

正答

3.   267

解説

-


String 3-16

以下のコードの出力として正しいものを1つ選択してください。

s = "A!A!BB!"
s = s.sub("!", "")
p s.rindex("B")

1.   1

2.   2

3.   3

4.   4

5.   5

6.   6

答えを見る

正答

4.   4

解説

-


String 3-17

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

puts "bar" ** 2 * 2

1.   barbarbarbarと出力される

2.   barbarと出力される

3.   bar4と出力される

4.   bar ** 2 * 2と出力される

5.   例外が発生する

答えを見る

正答

5.   例外が発生する

解説

-


String 3-18

RubyのStringクラスのメソッドのうち、レシーバ自身を書き換えるものを2つ選択してください。

1.   slice!

2.   scan!

3.   delete!

4.   split!

5.   replace!

答えを見る

正答

1.   slice!

3.   delete!

解説

-


String 3-19

以下のコードの出力として正しいものを1つ選択してください。

s1 = "ab"
s2 = s1 + "2"
s1.reverse!
puts s1 + s2

1.   abab2

2.   abba2

3.   baab2

4.   baba2

答えを見る

正答

3.   baab2

解説

-


String 3-20

以下のコードの出力として正しいものを1つ選択してください。

x = "Ru"
x.chop.chomp
x << "by"
x.reverse
puts x

1.   by

2.   yb

3.   Rby

4.   ybR

5.   Ruby

6.   ybuR

答えを見る

正答

5.   Ruby

解説

-



Array 1 (20問)

Array 1-1

以下のコードの出力として正しいものを1つ選択してください。

a = [1, 2, 3]
b = a
a.clear
p b

1.   nil

2.   []

3.   [1, 2, 3]

4.   [""]

答えを見る

正答

2.   []

解説

-


Array 1-2

以下のコードの出力として正しいものを1つ選択してください。

arr = %w(Ruby Python PHP)
arr.each { |v| puts v == "PHP" }
  1.   
true

2.  

false
false
true

3.  

PHP

4.  

Ruby
Python
PHP
答えを見る

正答

2.  

false
false
true

解説

-


Array 1-3

以下の出力が得られるコードを1つ選択してください。

["みずほ", "三井住友", "りそな"]

1.   p %w(みずほ 三井住友 りそな)

2.   p %s(みずほ 三井住友 りそな)

3.   p %q(みずほ 三井住友 りそな)

4.   p %(みずほ 三井住友 りそな)

答えを見る

正答

1.   p %w(みずほ 三井住友 りそな)

解説

-


Array 1-4

以下のコードの出力として正しいものを1つ選択してください。

s = ["A", "B", "C"]
puts s.join

1.   ABC

2.   A B C

3.   A,B,C

4.   A B C

答えを見る

正答

1.   ABC

解説

-


Array 1-5

以下のコードの出力として正しいものを1つ選択してください。

arr = ["A", "B", "C", "D", "E"]
puts arr[2..3].join

1.   BC

2.   CD

3.   BCD

4.   CDE

答えを見る

正答

2.   CD

解説

-


Array 1-6

以下のコードの出力として正しいものを1つ選択してください。

arr = [5, 4, 3, 2, 1]
arr.delete(2)
arr.delete(1)
p arr

1.   [3, 2, 1]

2.   [5, 2, 1]

3.   [5, 4, 3, 2, 1]

4.   [5, 4, 3]

5.   [5, 4, 3, nil, nil]

答えを見る

正答

4.   [5, 4, 3]

解説

-


Array 1-7

以下のコードの出力として正しいものを1つ選択してください。

arr = [5, 4, 3, 2, 1]
p arr.index(2)

1.   2

2.   3

3.   4

4.   false

5.   nil

答えを見る

正答

2.   3

解説

-


Array 1-8

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

arr = [5, 4, 3, 2, 1]
p arr.【  1  】

出力

[]

1.   remove

2.   delete_all

3.   destroy

4.   clear

5.   reset

答えを見る

正答

4.   clear

解説

-


Array 1-9

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

s = 【  1  】
p s

出力

["Java", "Ruby", "Python", "Haskell"]

1.   &w(Java Ruby Python Haskell)

2.   %w(Java Ruby Python Haskell)

3.   &w("Java" "Ruby" "Python" "Haskell")

4.   %w("Java" "Ruby" "Python" "Haskell")

5.   &w(Java, Ruby, Python, Haskell)

6.   %w(Java, Ruby, Python, Haskell)

答えを見る

正答

2.   %w(Java Ruby Python Haskell)

解説

-


Array 1-10

以下のコードの出力として正しいものを1つ選択してください。

arr = [1, 2, 3, "A"]
arr.shift
p arr

1.   [1, 2, 3, "A"]

2.   [2, 3, "A", 1]

3.   [2, 3, "A"]

4.   [1, 2, 3]

答えを見る

正答

3.   [2, 3, "A"]

解説

-


Array 1-11

以下のコードの出力として正しいものを1つ選択してください。

arr = [1, 2, 3, 4]
arr.pop(2)
p arr

1.   [1, 2]

2.   [3, 4]

3.   [1, 3, 4]

4.   [1, 2, 3, 4, 2]

5.   [2, 1, 2, 3, 4]

答えを見る

正答

1.   [1, 2]

解説

-


Array 1-12

以下のコードの出力として正しいものを1つ選択してください。

arr = [1, 2, 3, 4]
arr.unshift(2)
p arr

1.   [1, 2]

2.   [3, 4]

3.   [1, 2, 3, 4, 2]

4.   [2, 1, 2, 3, 4]

5.   [1, 3, 4]

答えを見る

正答

4.   [2, 1, 2, 3, 4]

解説

-


Array 1-13

以下のコードの出力として正しいものを1つ選択してください。

arr = [1, 2, 3, 4]
arr.push(3)
p arr

1.   [3, 1, 2, 3, 4]

2.   [1, 2, 3, 4, 3]

3.   [1, 2, 4]

4.   [1, 2, 3]

答えを見る

正答

2.   [1, 2, 3, 4, 3]

解説

-


Array 1-14

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

p [].size

1.   -1と出力される

2.   0と出力される

3.   1と出力される

4.   nilと出力される

5.   例外が発生する

答えを見る

正答

2.   0と出力される

解説

-


Array 1-15

以下のコードの出力として正しいものを1つ選択してください。

a = ["C", "A", "B"]
a.sort
p a

1.   ["A", "B", "C"] と出力される

2.   ["C", "A", "B"] と出力される

3.   ["C", "B", "A"] と出力される

4.   [] と出力される

5.   例外が発生する

答えを見る

正答

2.   ["C", "A", "B"] と出力される

解説

-


Array 1-16

以下のコードの出力として正しいものを1つ選択してください。

a1 = [1, 2, 3]
a2 = a1.collect { |n| n == 2 }
p a2

1.   [2]

2.   [2, 4, 6]

3.   true

4.   [false, true, false]

答えを見る

正答

4.   [false, true, false]

解説

-


Array 1-17

以下のコードの出力として正しいものを1つ選択してください。

a1 = [1, 2, 3]
a2 = a1.map { |n| n += 2 }
p a2

1.   [1, 2, 3, 2]

2.   [1, 2, 5]

3.   [3, 4, 5]

4.   [1, 2, 3]

答えを見る

正答

3.   [3, 4, 5]

解説

-


Array 1-18

Arrayクラスのmapメソッドと同じ動作をするメソッドを1つ選択してください。

1.   select

2.   each

3.   collect

4.   find

5.   detect

答えを見る

正答

3.   collect

解説

-


Array 1-19

以下のコードの出力として正しいものを1つ選択してください。

arr = [3, 5, 1, 4]
p arr.detect { |n| n > 3 }

1.   2

2.   3

3.   5

4.   [5]

5.   [4, 5]

答えを見る

正答

3.   5

解説

-


Array 1-20

以下のコードの出力として正しいものを1つ選択してください。

arr = [3, 5, 1, 4]
p arr.find { |n| n > 5 }

1.   false と表示される

2.   5 と表示される

3.   0 と表示される

4.   -1 と表示される

5.   nil と表示される

6.   例外が発生する

答えを見る

正答

5.   nil と表示される

解説

-



Array 2 (24問)

Array 2-1

以下のコードの出力として正しいものを1つ選択してください。

a = ["1", "2", "3"]
print a.join("2")
print ' '
print a.class

1.   12223 Array

2.   12223 String

3.   12 Array

4.   12 String

5.   123 Array

6.   123 String

答えを見る

正答

1.   12223 Array

解説

-


Array 2-2

以下のコードの出力として正しいものを1つ選択してください。

a = %w(1 2 3 4 5)
p a[5]
p a[-1]

1.  

nil
nil

2.  

nil
"5"

3.  

"5"
nil

4.  

"5"
"5"
答えを見る

正答

2.  

nil
"5"

解説

-


Array 2-3

以下のコードの出力として正しいものを1つ選択してください。

a = %w(1 2 3 4 5)
puts a[-2...-1].join

1.   0

2.   21

3.   12

4.   4

5.   45

6.   54

答えを見る

正答

4.   4

解説

-


Array 2-4

以下のコードの出力として正しいものを1つ選択してください。

arr = [5, 4, 3, 2, 1]
p arr.slice!(2..3)
p arr

1.  

[3, 2]
[5, 4, 1]

2.  

[5, 4, 1]
[3, 2]

3.  

[3, 2]
[3, 2]

4.  

[5, 4, 1]
[5, 4, 1]
答えを見る

正答

1.  

[3, 2]
[5, 4, 1]

解説

-


Array 2-5

以下のコードの出力として正しいものを1つ選択してください。

arr = [1, 5, 3, 4, 2]
arr.delete_if { |n| n > 3 }
p arr

1.   [1, 2, 3]

2.   [1, 3, 2]

3.   [5, 4]

4.   [4, 5]

5.   [1, 5, 3, 4, 2]

答えを見る

正答

2.   [1, 3, 2]

解説

-


Array 2-6

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

a1 = [1, 2, 3, 4, 5]
a2 = [2, 4, 6]
p a1 - a2

1.   []と出力される

2.   [1, 3, 5]と出力される

3.   [1, 2, 3, 5, 6]と出力される

4.   [2, 4, 6]と出力される

5.   例外が発生する

答えを見る

正答

2.   [1, 3, 5]と出力される

解説

-


Array 2-7

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

a1 = [1, 2, 3, 4, 5]
a2 = [2, 4, 6]
p 【  1  】

出力

[2, 4]

1.   a1 + a2

2.   a1 & a2

3.   a1 && a2

4.   a1 | a2

5.   a1 || a2

答えを見る

正答

2.   a1 & a2

解説

-


Array 2-8

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

p1 = ["Ruby", "PHP", "Java", "Python"]
p2 = ["JavaScript", "PHP"]
p 【   1   】

出力

["Ruby", "Java", "Python"]

1.   p1 | p2

2.   p1 & p2

3.   p1 * p2

4.   p1 - p2

答えを見る

正答

4.   p1 - p2

解説

-


Array 2-9

以下のコードの出力として正しいものを1つ選択してください。

x = [2, 3]
y = [2, 4]
p x + x - y

1.   [3]

2.   [2, 3]

3.   [3, 3]

4.   [2, 3, 3]

5.   [3, 4]

答えを見る

正答

3.   [3, 3]

解説

-


Array 2-10

以下のコードの出力として正しいものを1つ選択してください。

arr = [1, 2, 3, "A", 3, "A"]
arr.delete_at(3)
p arr

1.   [1, 2, 3, 3, "A"]

2.   [1, 2, 3, 3]

3.   [1, 2, "A", 3, "A"]

4.   [1, 2, "A", "A"]

5.   [1, 2, 3, "A", 3, "A"]

答えを見る

正答

1.   [1, 2, 3, 3, "A"]

解説

-


Array 2-11

以下のコードの出力として正しいものを1つ選択してください。

arr = [1, 2, 3, 4]
print arr.shift
print arr.shift

1.   12

2.   [2, 3, 4][3, 4]

3.   1

4.   [3, 4]

答えを見る

正答

1.   12

解説

-


Array 2-12

以下のコードの出力として正しいものを1つ選択してください。

arr = [1, 2, 3, 4]
arr.shift(3)
p arr

1.   [1, 2, 3]

2.   [1, 2, 4]

3.   [4]

4.   [3, 4]

答えを見る

正答

3.   [4]

解説

-


Array 2-13

以下のコードの出力として正しいものを1つ選択してください。

p [1, 2, 3, 4, 1, 2].uniq

1.   [3]

2.   [3 ,4]

3.   [1, 2]

4.   [1, 2, 3, 4]

答えを見る

正答

4.   [1, 2, 3, 4]

解説

-


Array 2-14

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

a = [1, nil, 2, nil]
p 【  1  】

出力

[1, 2]

1.   uniq

2.   unique

3.   unshift

4.   compact

5.   flatten

答えを見る

正答

4.   compact

解説

-


Array 2-15

Arrayクラスのdetectメソッドと同じ動作をするメソッドを1つ選択してください。

1.   inject

2.   find

3.   map

4.   select

5.   find_by

答えを見る

正答

2.   find

解説

-


Array 2-16

Arrayクラスのselectメソッドと同じ動作をするメソッドを1つ選択してください。

1.   inject

2.   find

3.   zip

4.   find_all

5.   detect

答えを見る

正答

4.   find_all

解説

-


Array 2-17

以下のコードの出力として正しいものを1つ選択してください。

a = [1, 2, 3]
a.fill(4)
p a

1.   [1, 2, 3, 4]

2.   [4, 4, 4]

3.   [1, 2, 3, nil, 4]

4.   [1, 2, 3, nil, nil, 4]

答えを見る

正答

2.   [4, 4, 4]

解説

-


Array 2-18

以下のコードの出力として正しいものを1つ選択してください。

a = [5, 4, 3, 2, 1]
p a.first(3)

1.   2

2.   3

3.   [3, 2, 1]

4.   [5, 4, 3]

5.   [5, 4, 3, 2]

答えを見る

正答

4.   [5, 4, 3]

解説

-


Array 2-19

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

a = %w(Ruby Python PHP)
p 【  1  】

出力

"Python"

1.   a.fetch(1)

2.   a.fetch(2)

3.   a.find(1)

4.   a.find(2)

5.   a.pop(1)

6.   a.pop(2)

答えを見る

正答

1.   a.fetch(1)

解説

-


Array 2-20

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

arr = [1, 2, 3]
【  1  】

出力

0
2
4

1.   arr.map { |v| puts v * 2 }

2.   arr.each { |v| puts v * 2 }

3.   arr.each_index { |v| puts v * 2 }

4.   arr.inject { |v| puts v * 2 }

答えを見る

正答

3.   arr.each_index { |v| puts v * 2 }

解説

-


Array 2-21

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

a = "ABCABCABC"
p 【   1   】

出力

6

1.   a.index("ABC", 2)

2.   a.index(2, "ABC")

3.   a.index("ABC", 4)

4.   a.index(4, "ABC")

答えを見る

正答

3.   a.index("ABC", 4)

解説

-


Array 2-22

以下のコードの出力として正しいものを1つ選択してください。

a = [1, 2, 3, 4]
p a.shift(3).shift(2)

1.   [3, 2]

2.   [1, 4]

3.   [1, 2]

4.   [3, 2, 1, 2, 3, 4]

5.   nil

6.   []

答えを見る

正答

3.   [1, 2]

解説

-


Array 2-23

RubyのArrayクラスのメソッドのうち、レシーバ自身を書き換えるものをすべて選択してください。

1.   shift

2.   pop

3.   join

4.   flatten

5.   fill

答えを見る

正答

1.   shift

2.   pop

5.   fill

解説

-


Array 2-24

RubyのArrayクラスに存在しないメソッドを2つ選択してください

1.   pop

2.   scan

3.   length

4.   invert

5.   concat

答えを見る

正答

2.   scan

4.   invert

解説

-



Array 3 (21問)

Array 3-1

以下のコードの出力として正しいものを1つ選択してください。

arr = ["A", "B", "C", "D", "E", "F"]
puts arr[2, 3].join

1.   BC

2.   CD

3.   BCD

4.   CDE

答えを見る

正答

4.   CDE

解説

-


Array 3-2

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

arr = [1, 2, 3, 4, 10]
arr.delete!(5)
p arr

1.   []と出力される

2.   [1, 2, 3, 4]と出力される

3.   [1, 2, 3, 4, 10]と出力される

4.   falseと出力される

5.   例外が発生する

答えを見る

正答

5.   例外が発生する

解説

-


Array 3-3

以下のコードの出力として正しいものを1つ選択してください。

arr = [5, 4, 3, 2, 1]
p arr.delete(4)
p arr.delete(4)

1.  

[5, 3, 2, 1]
[5, 3, 2, 1]

2.  

[5, 3, 2, 1]
nil

3.  

[5, 3, 2, 1]
[]

4.  

4
4

5.  

4
nil
答えを見る

正答

5.  

4
nil

解説

-


Array 3-4

以下のコードの出力として正しいものを1つ選択してください。

arr1 = [1, 2, 3, 4]
arr2 = arr1.reject { |n| n % 2 }
p arr2

1.   []

2.   [1, 3]

3.   [2, 4]

4.   [1, 2, 3, 4]

答えを見る

正答

1.   []

解説

-


Array 3-5

以下のコードの出力として正しいものを1つ選択してください。

a1 = [3]
a2 = [1, 2, 3, 4]
a3 = [2, 6]
p a1 | a2 | a3

1.   [3, 1, 2, 3, 4, 2, 6]

2.   [3, 1, 2, 4, 6]

3.   [2, 6]

4.   [3]

5.   []

答えを見る

正答

2.   [3, 1, 2, 4, 6]

解説

-


Array 3-6

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

a = [1, 2, 3]
b = [3]
p 【   1   】

出力

[1, 2, 3]

1.   (a | b) + (a | b)

2.   (a | b) + (a & b)

3.   (a - b) + (a & b)

4.   (a - b) + (a | b)

答えを見る

正答

3.   (a - b) + (a & b)

解説

-


Array 3-7

以下のコードの出力として正しいものを1つ選択してください。

x = ["a", "b"]
y = ["a", "A", "B"]

p x && y && x

1.   ["a", "b"]

2.   ["a", "A", "B"]

3.   ["a", "A"]

4.   ["A", "B"]

答えを見る

正答

1.   ["a", "b"]

解説

-


Array 3-8

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述をすべて選択してください。

コード

arr = [1, 2, 3, 1, 2, 3]
arr.【   1   】
p arr

出力

[1, 2, 1, 2]

1.   delete(3)

2.   delete_if(3)

3.   delete_if { |n| n == 3 }

4.   reject { |n| n == 3 }

5.   reject_if { |n| n == 3 }

6.   reject! { |n| n == 3 }

答えを見る

正答

1.   delete(3)

3.   delete_if { |n| n == 3 }

6.   reject! { |n| n == 3 }

解説

-


Array 3-9

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

arr = %w(A B C D)
arr.shift(2)
arr.unshift
arr.push(1)
p arr

1.   [] と表示される

2.   ["A"] と表示される

3.   ["C"] と表示される

4.   ["C", "D", 1] と表示される

5.   例外が発生する

答えを見る

正答

4.   ["C", "D", 1] と表示される

解説

-


Array 3-10

以下のコードの出力として正しいものを1つ選択してください。

arr = (-2..0).to_a
tmp = arr.shift
arr.push(tmp)

p arr

1.   [-2, -1]

2.   [-1, -2]

3.   [0, -1, -2]

4.   [-1, 0, -2]

5.   [0, -2, -1]

答えを見る

正答

4.   [-1, 0, -2]

解説

-


Array 3-11

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

a = %w(A B C)
p 【  1  】

出力

"ABC"

1.   a.concat

2.   a.join

3.   a.to_s

4.   a.to_sym

5.   a.chain

答えを見る

正答

2.   a.join

解説

-


Array 3-12

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

dt = "2020/12/31"
p 【   1   】

出力

"2020-12-31"

1.   dt.join("/").split("-")

2.   dt.concat("/").join("-")

3.   dt.join("/").concat("-")

4.   dt.split("/").join("-")

答えを見る

正答

4.   dt.split("/").join("-")

解説

-


Array 3-13

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

a = [1, nil, 2, nil]
p 【  1  】

出力

[nil, 2, nil, 1]

1.   a.shuffle

2.   a.rand

3.   a.randomize

4.   a.flatten

答えを見る

正答

1.   a.shuffle

解説

-


Array 3-14

以下のコードの出力として正しいものを1つ選択してください。

a1 = ["A", "B"]
a2 = [1, 2]
a3 = a1.zip(a2)
p a3

1.   ["A", 1, "B", 2]

2.   ["A", "B", 1, 2]

3.   [["A", 1], ["B", 2]]

4.   [["A", "B"], [1, 2]]

答えを見る

正答

3.   [["A", 1], ["B", 2]]

解説

-


Array 3-15

以下のコードの出力として正しいものを1つ選択してください。

x = [1, 3]
y = [2, 4]
x.concat(y)
p x

1.   [1, 3]

2.   [1, 3, 2, 4]

3.   [1, 3, [2, 4]]

4.   [[1, 3], [2, 4]]

答えを見る

正答

2.   [1, 3, 2, 4]

解説

-


Array 3-16

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

a1 = [1, 2]
a2 = [3, 4]
a3 = a1 + a2
p a3.flatten!

1.   [1, 2, 3, 4]と表示される

2.   [1, 3, 2, 4]と表示される

3.   nilと表示される

4.   例外が発生する

答えを見る

正答

3.   nilと表示される

解説

-


Array 3-17

以下のコードの出力として正しいものを1つ選択してください。

arr = [3, 5, 1, 4]
arr.insert(3, "A")
p arr

1.   [3, 5, 1, 4]

2.   [3, 5, 1, "A"]

3.   [3, 5, 1, "A", 4]

4.   [3, 5, 1, 4, "A"]

5.   ["A", 5, 1, 4]

答えを見る

正答

3.   [3, 5, 1, "A", 4]

解説

-


Array 3-18

以下のコードの出力として正しいものを1つ選択してください。

arr = [1, 2, 3, 4, 5]
arr[2..4] = "A"
arr[5] = "B"
p arr

1.   [1, 2, 3, 4, 5]

2.   [1, "A", "B"]

3.   [1, "A", "A", "A", "B"]

4.   [1, 2, "A", "A", "B"]

5.   [1, 2, "A", "A", "A", "B"]

6.   [1, 2, "A", nil, nil, "B"]

答えを見る

正答

6.   [1, 2, "A", nil, nil, "B"]

解説

-


Array 3-19

以下の出力が得られるコードを1つ選択してください。

出力

"0 Ruby"
"1 Python"
"2 PHP"

1.  

a = %w(Ruby Python PHP)
a.each_with_index do |w, i|
  p "#{i} #{w}"
end

2.  

a = %w(Ruby Python PHP)
a.each_with_index do |i, w|
  p "#{i} #{w}"
end

3.  

a = %w(Ruby Python PHP)
a.each_pair do |w, i|
  p "#{i} #{w}"
end

4.  

a = %w(Ruby Python PHP)
a.each_pair do |i, w|
  p "#{i} #{w}"
end
答えを見る

正答

1

解説

-


Array 3-20

以下のコードの出力として正しいものを1つ選択してください。

a = [0, 10, 20]
a.each_with_index { |x, y| p [x, y] }

1.  

[0, 0]
[1, 10]
[2, 20]

2.  

[0, 0]
[10, 1]
[20, 2]

3.  

[1, 0]
[2, 10]
[3, 20]

4.  

[0, 1]
[10, 2]
[20, 3]
答えを見る

正答

2.  

[0, 0]
[10, 1]
[20, 2]

解説

-


Array 3-21

以下のコードの出力として正しいものを1つ選択してください。

a = ["1", "2", "3"]
p a.delete(1)

1.   [2, 3, 4]

2.   [1, 2, 3]

3.   [1]

4.   [2]

5.   nil

答えを見る

正答

5.   nil

解説

-



Array 4 (20問)

Array 4-1

以下のコードの出力として正しいものを1つ選択してください。

a = [1, 3, 5, 7]
a[3] = 4
a.shift(2)
a.push(7)
a.unshift(1)
p a

1.   [1, 5, 7]

2.   [1, 5, 4, 7]

3.   [1, 3, 5, 7]

4.   [3, 5, 4, 7]

5.   [2, 3, 5, 4, 7]

答えを見る

正答

2.   [1, 5, 4, 7]

解説

-


Array 4-2

以下のコードの出力として正しいものを1つ選択してください。

a = [3, 4, 1, 2]
a.pop
a.join
p a

1.   "341" と出力される

2.   "3412" と出力される

3.   [3, 4, 1] と出力される

4.   [3, 4, 1, 2] と出力される

5.   例外が発生する

答えを見る

正答

3.   [3, 4, 1] と出力される

解説

-


Array 4-3

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

a = [1, 4, 3, 2]
a.shift
a.join!
p a

1.   "432" と出力される

2.   "1432" と出力される

3.   [4, 3, 2] と出力される

4.   [1, 4, 3, 2] と出力される

5.   例外が発生する

答えを見る

正答

5.   例外が発生する

解説

-


Array 4-4

以下のコードを実行したところ次の出力が得られました。空欄【 1 】【 2 】に入る適切な記述を1つ選択してください。

コード

a = [1, nil, 2, nil]
a.【  1  】
a.【  2  】
p a

出力

[2, nil, 1]

1.   【 1 】uniq 【 2 】reverse

2.   【 1 】uniq 【 2 】reverse!

3.   【 1 】uniq! 【 2 】reverse

4.   【 1 】uniq! 【 2 】reverse!

答えを見る

正答

4.   【 1 】uniq! 【 2 】reverse!

解説

-


Array 4-5

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

x = [1, 2]
y = [3, 4]
【  1  】
p x

出力

[1, 2, [3, 4]]

1.   x + y

2.   x << y

3.   x.concat(y)

4.   x.zip(y)

5.   x.map(y)

答えを見る

正答

2.   x << y

解説

-


Array 4-6

以下のコードの出力として正しいものを1つ選択してください。

a1 = ["A", "B"]
a2 = [1]
a3 = a1.zip(a2)
a3.flatten!
p a3

1.   ["A", 1, "B"]

2.   ["A", 1, "B", nil]

3.   [["A", 1], ["B"]]

4.   [["A", 1], ["B", nil]]

答えを見る

正答

2.   ["A", 1, "B", nil]

解説

-


Array 4-7

以下のコードの出力として正しいものを1つ選択してください。

a = [nil, 2, nil]
a.compact
a.concat([4, 5])
p a

1.   [2, 4, 5]

2.   [2, nil, 4, 5]

3.   [nil, 2, nil, 4, 5]

4.   [2, [4, 5]]

5.   [nil, 2, nil, [4, 5]]

答えを見る

正答

3.   [nil, 2, nil, 4, 5]

解説

-


Array 4-8

以下のコードの出力として正しいものを1つ選択してください。

x = %w(Ruby PHP)
y = %w(Python JS)
z = y
y.concat(x)

p z

1.   ["Python", "JS", "Ruby", "PHP"]

2.   ["Python", "JS"]

3.   ["Ruby", "PHP"]

4.   ["Python", "JS", ["Ruby", "PHP"]]

答えを見る

正答

1.   ["Python", "JS", "Ruby", "PHP"]

解説

-


Array 4-9

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

a1 = %w(Ruby PHP)
a2 = %w(Python)
a3 = a1
【  1  】
p a3

出力

["Ruby", "PHP", "Python"]

1.   a1 << a2

2.   a2 << a1

3.   a1.concat(a2)

4.   a2.concat(a1)

5.   a1.join(a2)

6.   a2.join(a1)

答えを見る

正答

3.   a1.concat(a2)

解説

-


Array 4-10

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

arr = [3, 5, 1]
【  1  】
p arr

出力

[3, 5, 1, nil, nil, "A"]

1.   arr.insert(5, "A")

2.   arr.insert("A", 5)

3.   arr.insert!(5, "A")

4.   arr.insert!("A", 5)

答えを見る

正答

1.   arr.insert(5, "A")

解説

-


Array 4-11

以下のコードの出力として正しいものを1つ選択してください。

arr = [1, 2, 3, 4, 5]
arr.fill("A", 2)
p arr

1.   [1, "A", 3, 4, 5]

2.   ["A", "A", 3, 4, 5]

3.   [1, 2, "A", "A", "A"]

4.   [1, 2, 3, 4, 5, "A", "A"]

5.   [1, 2, 3, 4, 5]

答えを見る

正答

3.   [1, 2, "A", "A", "A"]

解説

-


Array 4-12

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述をすべて選択してください。

コード

a = %w(Ruby Python PHP)
p 【  1  】

出力

"PHP"

1.   a[2]

2.   a.at(2)

3.   a.value(2)

4.   a.values_at(2)

5.   a.index(2)

6.   a.fetch(2)

答えを見る

正答

1.   a[2]

2.   a.at(2)

6.   a.fetch(2)

解説

-


Array 4-13

以下のコードの出力として正しいものを1つ選択してください。

arr = [1, 2] * 3
arr.reverse
p arr

1.   [1, 2, 1, 2, 1, 2]

2.   [2, 1, 2, 1, 2, 1]

3.   [3, 6]

4.   [6, 3]

答えを見る

正答

1.   [1, 2, 1, 2, 1, 2]

解説

-


Array 4-14

以下のコードの出力として正しいものを1つ選択してください。

a1 = [1, 3] * 3
a2 = a1.select { |n| n > 1 }
p a2

1.   [3]

2.   [9]

3.   [3, 9]

4.   [3, 3, 3]

5.   [9, 9, 9]

答えを見る

正答

4.   [3, 3, 3]

解説

-


Array 4-15

以下のコードの出力として正しいものを1つ選択してください。

a = ["Z", "AAA", "B3"]
p a.sort { |x, y| x.size - y.size }

1.   ["AAA", "B3", "Z"]

2.   ["Z", "B3", "AAA"]

3.   ["Z", "B3", "AAA"]

4.   ["AAA", "Z", "B3"]

5.   ["B3", "AAA", "Z"]

答えを見る

正答

2.   ["Z", "B3", "AAA"]

解説

-


Array 4-16

以下のコードの出力として正しいものを1つ選択してください。

a = [5, 6, 7]
p a.sort_by { |x| x % 3 }

1.   [7, 6, 5]

2.   [6, 7, 5]

3.   [7, 5, 6]

4.   [6, 5, 7]

5.   [5, 7, 6]

答えを見る

正答

2.   [6, 7, 5]

解説

-


Array 4-17

以下のコードの出力として正しいものを1つ選択してください。

arr = [1, 2, 3]
arr.unshift(["A", 2])
p arr

1.   ["A", "A", 1, 2, 3]

2.   [1, "A", 2, 3]

3.   [1, 2, "A", 3]

4.   [["A", 2], 1, 2, 3]

答えを見る

正答

4.   [["A", 2], 1, 2, 3]

解説

-


Array 4-18

以下のコードの出力として正しいものを1つ選択してください。

arr = [["Java", 1], ["Ruby", 2]]
arr.each do |a|
  puts a
end

1.  

Java
Ruby

2.  

Java
1
Ruby
2

3.  

Java
Ruby
1
2

4.  

["Java", 1]
["Ruby", 2]
答えを見る

正答

2.  

Java
1
Ruby
2

解説

-


Array 4-19

以下のコードの出力として正しいものを1つ選択してください。

p [[1,2], [1,2], [1]].uniq.flatten

1.   [1]

2.   [1, 2]

3.   [1, 2, 1]

4.   [[1], [2], [1]]

5.   [[1,2], [1,2], [1]]

答えを見る

正答

3.   [1, 2, 1]

解説

-


Array 4-20

RubyのArrayクラスのメソッドのうち、レシーバ自身を書き換えるものをすべて選択してください。

1.   delete

2.   sort

3.   concat

4.   clear

5.   select

答えを見る

正答

1.   delete

3.   concat

4.   clear

解説

-



Hash 1 (23問)

Hash 1-1

以下のコードの出力として正しいものを1つ選択してください。

h = {"Ruby" => 1, "JS" => 2}
p h.size

1.   0

2.   1

3.   2

4.   4

5.   nil

答えを見る

正答

3.   2

解説

-


Hash 1-2

組み込みクラスHashのメソッドを2つ選択してください。

1.   each

2.   each_index

3.   each_values

4.   each_pair

答えを見る

正答

1.   each

4.   each_pair

解説

-


Hash 1-3

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

h1 = {"Ruby" => 1, "JS" => 2}
h1.【  1  】
p h1

出力

{}

1.   clear

2.   delete

3.   destroy

4.   delete_all

5.   remove

答えを見る

正答

1.   clear

解説

-


Hash 1-4

以下のコードを実行したところ、trueと出力されました。空欄【 1 】に入る適切な記述をすべて選択してください。

h = {"Ruby" => 1, "PHP" => 2}
p 【  1  】

1.   h.key?("PHP")

2.   h.has_key?("PHP")

3.   h.key_exist?("PHP")

4.   h.exist_key?("PHP")

5.   h.include_key?("PHP")

答えを見る

正答

1.   h.key?("PHP")

2.   h.has_key?("PHP")

解説

-


Hash 1-5

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

h1 = {:a => 1, :b => 2, :c => 3}
h2 = h1.【   1   】
p h2

出力

{:a=>1, :c=>3}

1.   reject { |v, k| v == 2 }

2.   reject { |k, v| v == 2 }

3.   delete { |v, k| v == 2 }

4.   delete { |k, v| v == 2 }

答えを見る

正答

2.   reject { |k, v| v == 2 }

解説

-


Hash 1-6

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

h1 = {"1" => "Ruby", "2" => "JS"}
p 【  1  】

出力

{"Ruby"=>"1", "JS"=>"2"}

1.   h1.invert

2.   h1.merge

3.   h1.sort

4.   h1.fetch

5.   p h1.replace

答えを見る

正答

1.   h1.invert

解説

-


Hash 1-7

以下のコードを実行したところ、Hashと出力されました。空欄【 1 】に入る適切な記述をすべて選択してください。

h = 【  1  】
p h.class

1.   []

2.   {}

3.   Hash.new

4.   Hash[]

5.   Hash{}

答えを見る

正答

2.   {}

3.   Hash.new

4.   Hash[]

解説

-


Hash 1-8

以下のコードの出力として正しいものを1つ選択してください。

h = {3 => "Ruby", 2 => "Perl", 1 => "C++"}
h.delete(1)
p h

1.   {2=>"Perl", 1=>"C++"}

2.   {3=>"Ruby", 1=>"C++"}

3.   {3=>"Ruby", 2=>"Perl"}

4.   {1=>"C++"}

5.   {3=>"Ruby", 2=>"Perl", 1=>"C++"}

答えを見る

正答

3.   {3=>"Ruby", 2=>"Perl"}

解説

-


Hash 1-9

以下のコードの出力として正しいものを1つ選択してください。

h = {3 => "Ruby", 2 => "Perl", 1 => "C++"}
h[1] = "PHP"
h[0] = "C#"
p h

1.   {3=>"Ruby", 2=>"Perl", 1=>"PHP"}

2.   {3=>"Ruby", 2=>"Perl", 1=>"PHP", 0=>"C#"}

3.   {3=>"C#", 2=>"PHP", 1=>"C++"}

4.   {3=>"Ruby", 2=>"PHP", 1=>"C++"}

答えを見る

正答

2.   {3=>"Ruby", 2=>"Perl", 1=>"PHP", 0=>"C#"}

解説

-


Hash 1-10

以下のコードの出力として正しいものを1つ選択してください。

h = {"Ruby" => 1, "PHP" => 2, "C++" => 2}
p h.find { |k, v| v == 2 }

1.   ["PHP", 2]

2.   {"PHP"=>2}

3.   [["PHP", 2], ["C++", 2]]

4.   {"PHP"=>2, "C++"=>2}

答えを見る

正答

1.   ["PHP", 2]

解説

-


Hash 1-11

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

h = {"Ruby" => 1, "PHP" => 2}
p h.member?("PHP")

1.   2

2.   false

3.   true

4.   "PHP"

5.   ["PHP", 2]

答えを見る

正答

3.   true

解説

-


Hash 1-12

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

h = {"Ruby" => 1, "JS" => 2}
p 【  1  】

出力

[1, 2]

1.   h.value

2.   h.values

3.   h.fetch

4.   h.select

答えを見る

正答

2.   h.values

解説

-


Hash 1-13

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

h = {1 => "Ruby", 2 => "Perl"}
h.replace({0 => "C#"})
p h

1.   {0=>"C#"} と表示される

2.   {0=>"C#", 1=>"Ruby", 2=>"Perl"} と表示される

3.   {1=>"Ruby", 2=>"Perl"} と表示される

4.   例外が発生する

答えを見る

正答

1.   {0=>"C#"} と表示される`

解説

-


Hash 1-14

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

h = {"Ruby" => 1, "Perl" => 2}
p h.【  1  】

出力

["Ruby", "Perl"]

1.   key

2.   keys

3.   value

4.   values

答えを見る

正答

2.   keys

解説

-


Hash 1-15

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

h = {"Ruby" => 1, "PHP" => 2, "C++" => 3}
p h.【  1  】 { |k, v| k == "PHP" }

出力

{"PHP"=>2}

1.   find

2.   select

3.   find_all

4.   fetch

答えを見る

正答

2.   select

解説

-


Hash 1-16

ハッシュを生成するコードとして正しいものを3つ選択してください。

1.   h = {Ruby: 1, PHP: 2, Go: 3}

2.   h = {:Ruby=>1, :PHP=>2, :Go=>3}

3.   h = Hash[:Ruby, 1, :PHP, 2, :Go, 3]

4.   h = Hash[Ruby, 1, PHP, 2, Go, 3]

5.   h = Hash{Ruby, 1, PHP, 2, Go, 3}

答えを見る

正答

1.   h = {Ruby: 1, PHP: 2, Go: 3}

2.   h = {:Ruby=>1, :PHP=>2, :Go=>3}

3.   h = Hash[:Ruby, 1, :PHP, 2, :Go, 3]

解説

-


Hash 1-17

以下のコードの出力として正しいものを1つ選択してください。

h = {"Ruby" => 1, "PHP" => 2}
p h.value?("PHP")

1.   2

2.   "PHP"

3.   false

4.   true

5.   [2]

答えを見る

正答

3.   false

解説

-


Hash 1-18

組み込みクラスHashのメソッドではないものを2つ選択してください。

1.   remove

2.   replace

3.   shift

4.   clear

5.   delete_all

答えを見る

正答

1.   remove

5.   delete_all

解説

-


Hash 1-19

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

h = {"Ruby" => 1, "PHP" => 2, "C++" => 3}
p 【  1  】

出力

[3]

1.   h["C++"]

2.   h.value_at("C++")

3.   h.values_at("C++")

4.   h.value("C++")

答えを見る

正答

3.   h.values_at("C++")

解説

-


Hash 1-20

以下のコードの出力として正しいものを1つ選択してください。

h = {"Ruby" => 1, "PHP" => 2, "C++" => 3}
p h.fetch("Ruby")

1.   0

2.   1

3.   true

4.   ["Ruby", 1]

5.   {"Ruby"=>1}

答えを見る

正答

2.   1

解説

-


Hash 1-21

以下のコードを実行したところ、trueと出力されました。空欄【 1 】に入る適切な記述を2つ選択してください。

h = {"Python" => 1, "C++" => 2}
p 【  1  】

1.   h.has_value?("C++")

2.   h.exist?("C++")

3.   h.include?("Python")

4.   h.include?(1)

5.   h.member?("Python")

答えを見る

正答

3.   h.include?("Python")

5.   h.member?("Python")

解説

-


Hash 1-22

以下のコードの出力として正しいものを1つ選択してください。

h = {1 => "Ruby", 2 => "Perl", 3 => "C++"}
p h.invert

1.   ["Ruby", "Perl", "C++"]

2.   [1, 2, 3]

3.   {1=>"Ruby", 2=>"Perl", 3=>"C++"}

4.   {"Ruby"=>1, "Perl"=>2, "C++"=>3}

答えを見る

正答

4.   {"Ruby"=>1, "Perl"=>2, "C++"=>3}

解説

-


Hash 1-23

以下のコードの出力として正しいものを1つ選択してください。

h = {3 => "Ruby", 2 => "Perl", 1 => "C++"}
p h.delete(2)

1.   nil

2.   "Perl"

3.   {3=>"Ruby", 1=>"C++"}

4.   {3=>"Ruby", 2=>"Perl"}

5.   [2, "Perl"]

答えを見る

正答

2.   "Perl"

解説

-



Hash 2 (16問)

Hash 2-1

以下のコードの出力として正しいものを1つ選択してください。

h = {"Ruby" => 1, "PHP" => 2, "C++" => 2}
p h.select { |k, v| v == 2 }

1.   ["PHP", 2]

2.   {"PHP"=>2}

3.   [["PHP", 2], ["C++", 2]]

4.   {"PHP"=>2, "C++"=>2}

答えを見る

正答

4.   {"PHP"=>2, "C++"=>2}

解説

-


Hash 2-2

以下のコードの出力として正しいものを1つ選択してください。

h1 = {"Ruby" => 1, "JS" => 2}
h2 = h1
h1 = nil
p h2

1.  

{"Ruby"=>1, "JS"=>2} と出力される

2.   nil と出力される

3.   {} と出力される

4.   例外が発生する

答えを見る

正答

1.   {"Ruby"=>1, "JS"=>2} と出力される

解説

-


Hash 2-3

以下のコードの出力として正しいものを1つ選択してください。

h = {:a => 1, :b => 2, :c => 3}
p h.shift
p h

1.  

{:a=>1}
{:b=>2, :c=>3}

2.  

[:a, 1]
{:b=>2, :c=>3}

3.  

{:a=>1}
{:a=>1, :b=>2, :c=>3}

4.  

[:a, 1]
{:a=>1, :b=>2, :c=>3}

5.  

nil
{:a=>1, :b=>2, :c=>3}
答えを見る

正答

2.  

[:a, 1]
{:b=>2, :c=>3}

解説

-


Hash 2-4

以下のコードの出力として正しいものを1つ選択してください。

h1 = {"Ruby" => 1, "C++" => 2}
h2 = h1
h2.replace({"C++" => 3})
p h1

1.   {"C++"=>3}

2.   {"Ruby"=>1, "C++"=>2}

3.   {"Ruby"=>1, "C++"=>3}

4.   {"Ruby"=>1, "C++"=>2, "C++"=>3}

答えを見る

正答

1.   {"C++"=>3}

解説

-


Hash 2-5

欠番

答えを見る

正答

解説

-


Hash 2-6

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

h = {:a => 1, :b => 2}
h.shift
h.shift
p h.【  1  】

出力

true

1.   empty?

2.   include?

3.   blank?

4.   nil?

答えを見る

正答

1.   empty?

解説

-


Hash 2-7

RubyのHashクラスのメソッドのうち、レシーバ自身を書き換えるものを2つ選択してください。

1.   merge

2.   update

3.   delete

4.   fetch

5.   reject

答えを見る

正答

2.   update

3.   delete

解説

-


Hash 2-8

以下のコードの出力として正しいものを1つ選択してください。

h = {"Ruby" => 1, "PHP" => 2, "C++" => 3}
p h.find_all{ |k, v| v < 3 }

1.   ["Ruby", 1]

2.   {"Ruby"=>1}

3.   [["Ruby", 1], ["PHP", 2]]

4.   {"Ruby"=>1, "PHP"=>2}

答えを見る

正答

3.   [["Ruby", 1], ["PHP", 2]]

解説

-


Hash 2-9

以下のコードの出力として正しいものを1つ選択してください。

h1 = {"Ruby" => 1, "JS" => 2}
h2 = h1
h1.clear
h1 = {"PHP" => 3}

p h2

1.   {}

2.   {"PHP" => 3}

3.   {"Ruby"=>1, "JS"=>2}

4.   {"Ruby"=>1, "JS"=>2, "PHP" => 3}

答えを見る

正答

1.   {}

解説

-


Hash 2-10

RubyのHashクラスに存在しないメソッドをすべて選択してください。

1.   merge

2.   pop

3.   shift

4.   unshift

5.   filter

答えを見る

正答

2.   pop

4.   unshift

解説

-


Hash 2-11

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

h = {:a => 1, :b => 2, :c => 3}
h.【   1   】
p h

出力

{:a=>1, :c=>3}

1.   delete { |k, v| v == 2 }

2.   delete_if { |k, v| v == 2 }

3.   reject { |k, v| v == 2 }

4.   clear { |k, v| v == 2 }

5.   destroy { |k, v| v == 2 }

答えを見る

正答

2.   delete_if { |k, v| v == 2 }

解説

-


Hash 2-12

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

h = Hash["Ruby", "PHP", "Go", 1, 2, 3]
p h

1.   {"Ruby"=>1, "PHP"=>2, "Go"=>3} と出力される

2.   {"Ruby"=>"PHP", "Go"=>1, 2=>3} と出力される

3.   {"Ruby"=>["PHP", "Go", 1, 2, 3]} と出力される

4.   例外が発生する

答えを見る

正答

2.   {"Ruby"=>"PHP", "Go"=>1, 2=>3} と出力される

解説

-


Hash 2-13

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を2つ選択してください。

コード

h = {1 => "Ruby", 2 => "Perl", 3 => "C++"}
【   1   】
p h

出力

{1=>"Ruby", 2=>"Perl"}

1.  

h = h.reject do |v|
  v == 3
end

2.  

h = h.reject do |v|
  v == "C++"
end

3.  

h = h.reject do |v1, v2|
  v2 == 3
end

4.  

h = h.reject do |v1, v2|
  v2 == "C++"
end
答えを見る

正答

1  

4  

解説

-


Hash 2-14

以下のコードの出力として正しいものを1つ選択してください。

h = {"Ruby" => 1, "Perl" => 2, "C++" => 1}
p h.values_at(1)

1.   "Ruby"

2.   ["Ruby"]

3.   nil

4.   [nil]

5.   ["Ruby", "C++"]

答えを見る

正答

4.   [nil]

解説

-


Hash 2-15

以下のコードの出力として正しいものを1つ選択してください。

h = {1 => "C++", 2 => "C++", 3 => "Ruby"}
p h.fetch("C++", 3)

1.   "C++"

2.   2

3.   "Ruby"

4.   3

5.   false

答えを見る

正答

4.   3

解説

-


Hash 2-16

RubyのHashクラスのメソッドで、レシーバ自身を書き換えるものを2つ選択してください。

1.   invert!

2.   merge!

3.   select!

4.   delete!

5.   clear!

答えを見る

正答

2.   merge!

3.   select!

解説

-



File・IO1 (20問)

File・IO 1-1

Fileクラスのメソッドの中で、ファイルを開くメソッドとして正しいものをすべて選択してください。

1.   new

2.   read

3.   touch

4.   open

5.   show

6.   view

答えを見る

正答

1.   new

4.   open

解説

-


File・IO 1-2

以下のコードを実行したところ、ファイル「sample.rb」の内容がすべて出力されました。空欄【 1 】に入る適切な記述をすべて選択してください。

sample.rbの内容

sample file
ruby plactice

コード

f = File.open("sample.rb")
puts f.【  1  】

1.   read

2.   read_all

3.   gets

4.   readlines

5.   readbyte

答えを見る

正答

1.   read

4.   readlines

解説

-


File・IO 1-3

FIleクラスのメソッドの中で、ファイルを削除するものを1つ選択してください。

1.   delete

2.   rm

3.   remove

4.   destroy

5.   kill

答えを見る

正答

1.   delete

解説

-


File・IO 1-4

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

File.【  1  】("/Users/guest/test.rb")

出力

/Users/guest

1.   dir

2.   dirname

3.   extname

4.   split

5.   path

答えを見る

正答

2.   dirname

解説

-


File・IO 1-5

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

puts File.【  1  】("/Users", "guest")

出力

/Users/guest

1.   compact

2.   concat

3.   join

4.   combine

5.   append

答えを見る

正答

3.   join

解説

-


File・IO 1-6

以下のコードを実行したところ、test.rbと出力されました。空欄【 1 】に入る適切な記述を1つ選択してください。

puts File.【  1  】("/Users/guest/test.rb")

1.   name

2.   filename

3.   extname

4.   basename

5.   shortname

答えを見る

正答

4.   basename

解説

-


File・IO 1-7

コードの空欄【 1 】に当てはまる記述として正しいものをすべて選択してください。なお、ファイル「sample.txt」の内容とコードの出力結果は次の通りとします。

コード

f = File.open("sample.rb")
puts f.【  1  】
puts f.【  1  】

ファイルの内容

ruby
practice

出力

ruby
practice

1.   read

2.   readline

3.   readlines

4.   get

5.   gets

6.   find

答えを見る

正答

2.   readline

5.   gets

解説

-


File・IO 1-8

次のコードは、指定されたファイルを開き、Ruby on Railsという文字列を書き込みます。コードの挙動として正しいものをすべて選択してください。

File.open("sample.txt", "w") do |f|
  f.write("Ruby on Rails")
end

1.   指定されたファイルが存在していれば、ファイル内容を空にしてから書き込む。

2.   指定されたファイルが存在していれば、ファイル内容の末尾から書き込む。

3.   指定されたファイルが存在していない場合、エラーが発生する。

4.   指定されたファイルが存在していない場合、ファイルを作成してから書き込む。

答えを見る

正答

1  

4  

解説

-


File・IO 1-9

以下のコードを実行したところ、カレントディレクトリ内のファイル「foo.rb」の名前が「bar.rb」に変更されました。空欄【 1 】に入る適切な記述を1つ選択してください。

File.【  1  】

1.   rename("foo.rb", "bar.rb")

2.   rename("bar.rb", "foo.rb")

3.   change("foo.rb", "bar.rb")

4.   change("bar.rb", "foo.rb")

5.   chname("foo.rb", "bar.rb")

6.   chname("bar.rb", "foo.rb")

答えを見る

正答

1.   rename("foo.rb", "bar.rb")

解説

-


File・IO 1-10

以下のコードの出力として正しいものを1つ選択してください。

puts File.extname("/Users/guest/test.rb")

1.   test

2.   rb

3.   .rb

4.   test.rb

答えを見る

正答

3.   .rb

解説

-


File・IO 1-11

以下のコードの出力として正しいものを1つ選択してください。なお、ファイル「sample.txt」には次の内容が書かれているものとします。

sample.txtの内容

sample
ruby

コード

f = File.open("sample.rb")
puts f.read(2)
puts f.read(2)

1.  

sa
mp

2.  

sa
sa

3.  

ru
ru

4.  

sample
ruby
sample
ruby
答えを見る

正答

1.  

sa
mp

解説

-


File・IO 1-12

カレントフォルダにファイル「test.txt」が存在しないとき、「ファイルが見つかりませんでした」と出力するコードを1つ選択してください。

1.  

if File.nil?("test.txt")
  puts "ファイルが見つかりませんでした" 
end

2.  

if File("test.txt").nil?
  puts "ファイルが見つかりませんでした" 
end

3.  

unless File.exist?("test.txt")
  puts "ファイルが見つかりませんでした" 
end

4.  

unless File("test.txt").exist?
  puts "ファイルが見つかりませんでした" 
end
答えを見る

正答

3  

解説

-


File・IO 1-13

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

File.open("sample.txt", "a") do |f|
  f.write("Ruby Practice")
end

1.   指定されたファイルが存在していれば、ファイル内容を空にしてから書き込む。

2.   指定されたファイルが存在していれば、ファイル内容の末尾から書き込む。

3.   指定されたファイルが存在していない場合、エラーが発生する。

4.   指定されたファイルが存在していない場合、ファイルを作成してから書き込む。

答えを見る

正答

2  

4  

解説

-


File・IO 1-14

FIleクラスのメソッドの中で、指定されたパスを絶対パスに展開するものを1つ選択してください。

1.   expath

2.   exfile

3.   abs_path

4.   abs_file

5.   expand_path

6.   expand_file

答えを見る

正答

5.   expand_path

解説

-


File・IO 1-15

以下のコードの実行結果として正しいものを1つ選択してください。なお、カレントディレクトリ内にはファイル「sample.txt」が存在し、その内容は次のとおりとします。

ファイル内容

Ruby

コード

open("sample.txt", "r+") do |io|
  text = io.read.downcase
  puts io.write(text)
end

1.   ファイル内容は文字列Rubyのまま変わらない

2.   ファイル内容が文字列rubyに変わる`

3.   ファイル内容が文字列Rubyrubyに変わる

4.   ファイル内容が空になる

5.   例外が発生する

答えを見る

正答

3.   ファイル内容が文字列Rubyrubyに変わる

解説

-


File・IO 1-16

以下のコードを実行したところ、ファイル「sample.txt」内のアルファベットがすべて大文字に変更されました。空欄【 1 】に入る適切な記述を1つ選択してください。

io = open("sample.txt", 【  1  】)
text = io.gets.upcase
io.rewind
io.write text

1.   "w"

2.   "w+"

3.   "rw"

4.   "r+"

5.   "rw+"

6.   "a+"

答えを見る

正答

4.   "r+"

解説

-


File・IO 1-17

以下のコードの実行結果として正しいものを1つ選択してください。なお、カレントディレクトリにはファイル「1.txt」が存在し、ファイル内にはABCという文字列が書かれているものとします。

File.open("1.txt") do |f|
  puts f.write("XYZ")
end

1.   ファイルの内容は文字列ABCのまま変わらない

2.   ファイルの内容が文字列XYZに変わる

3.   ファイルの内容が文字列ABCXYZに変わる

4.   ファイルの内容が空の文字列に変わる

5.   エラーが発生する

答えを見る

正答

5.   エラーが発生する

解説

-


File・IO 1-18

コード実行後のファイル「test.txt」の内容として正しいものを1つ選択してください。

open("test.txt", "w") do |io|
  io.write(["A", "B", "C"])
end

1.  

["A", "B", "C"]

2.  

"A", "B", "C"

3.  

A
B
C

4.  

"A"
"B"
"C"
答えを見る

正答

1.  

["A", "B", "C"]

解説

-


File・IO 1-19

以下のコードを実行後のファイル内容として正しいものを1つ選択してください。なお、カレントディレクトリ内にはファイル「sample.txt」が存在し、その内容は次のとおりとします。

コード

open("sample.txt", "r+") do |io|
  puts io.write("PHP")
end

ファイル内容

Ruby
Rails

1.  

PHP

2.  

PHP
Rails

3.  

Ruby
Rails

4.  

PHPy
Rails

5.  

PHPy
PHPs
答えを見る

正答

4.  

PHPy
Rails

解説

-


File・IO 1-20

以下のコードのうち、実行すると例外が発生するものをすべて選択してください。なお、カレントディレクトリ内にはファイル「sample.txt」が存在し、その内容は次のとおりとします。

ファイル内容

PHP
Java

1.  

open("sample.txt") do |io|
  2.times do
    p io.gets
  end
end

2.  

open("sample.txt") do |io|
  3.times do
    p io.gets
  end
end

3.  

open("sample.txt") do |io|
  2.times do
    p io.readline
  end
end

4.  

open("sample.txt") do |io|
  3.times do
    p io.readline
  end
end
答えを見る

正答

4

解説

-



File・IO 2 (18問)

File・IO 2-1

以下のコードの出力として正しいものを1つ選択してください。

p File.split("/Users/guest/sample.rb")

1.   ["Users", "guest", "sample.rb"]

2.   ["/Users", "/guest", "sample.rb"]

3.   ["/Users/guest", "sample.rb"]

4.   ["/Users/guest/sample.rb"]

答えを見る

正答

3.   ["/Users/guest", "sample.rb"]

解説

-


File・IO 2-2

Fileクラスのメソッドについて述べた次の文章のうち、内容が正しいものをすべて選択してください。

1.   deleteメソッドはファイルを削除する。指定したファイルが元々存在しない場合は何もしない。エラーは発生しない。

2.   deleteメソッドはファイルを削除する。指定したファイルが元々存在しない場合はエラーが発生する。

3.   renameメソッドはファイルの名前を変更する。リネーム先のファイルが存在する場合はファイルを上書きする。エラーは発生しない。

4.   renameメソッドはファイルの名前を変更する。リネーム先のファイルが存在する場合は何もしない。エラーは発生しない。

5.   renameメソッドはファイルの名前を変更する。リネーム先のファイルが存在する場合はエラーが発生する。

答えを見る

正答

2  

3  

解説

-


File・IO 2-3

以下のコードの出力として正しいものを1つ選択してください。

puts File.join("Users", "guest", "1.rb")

1.   Usersguest1.rb

2.   /Usersguest1.rb

3.   Users guest 1.rb

4.   Users/guest/1.rb

5.   /Users/guest/1.rb

答えを見る

正答

4.   Users/guest/1.rb

解説

-


File・IO 2-4

以下のコードの実行結果として正しいものを1つ選択してください。なお、ファイル「sample.txt」の内容は次の通りとします。

コード

File.open("sample.txt", "a") do |io_f|
  p io_f.read
end

ファイルの内容

Ruby on Rails
Rails Tutorial

1.   "Ruby on Rails\nRails Tutorial" と出力される

2.   "Ruby on Rails\n" と出力される

3.   "Ruby on Rails" と出力される

4.   "" と出力される

5.   例外が発生する

答えを見る

正答

5.   例外が発生する

解説

-


File・IO 2-5

以下のコードは、ファイル「sample.txt」の内容のうち、クエスチョンマークをすべてピリオドに置き換えます。空欄【 1 】に入る適切な記述を1つ選択してください。

open("sample.txt", "r+") do |io|
  text = io.read.tr("?", ".")
  io.【  1  】
  puts io.write(text)
end

1.   pos

2.   rewind

3.   seek

4.   clear

5.   reset

答えを見る

正答

2.   rewind

解説

-


File・IO 2-6

以下のコードの出力として正しいものを1つ選択してください。

File.open("test.txt") do |f|
  puts f.atime
end

1.   ファイルの最終更新日時が出力される

2.   ファイルの最終アクセス日時が出力される

3.   ファイルの状態が変更された日時が出力される

4.   ファイルが作成された日時が出力される

答えを見る

正答

2.   ファイルの最終アクセス日時が出力される

解説

-


File・IO 2-7

以下のコードの実行結果として正しいものを1つ選択してください。なお、カレントディレクトリ内にはファイル「sample.txt」が存在し、その内容は次のとおりとします。

コード

open("sample.txt") do |io|
  io.seek(3)
  puts io.read
end

ファイルの内容

Ruby,PHP,C++

1.   Rub

2.   y,PHP,C++

3.   Ruby,PHP,C++

4.   C++

答えを見る

正答

2.   y,PHP,C++

解説

-


File・IO 2-8

以下のコードを実行したところ11と出力されました。空欄【 1 】に入る適切な記述を1つ選択してください。なお、カレントディレクトリ内にはファイル「sample.txt」が存在し、その内容は次のとおりとします。

コード

f = File.open("sample.txt")
f.gets
puts f.【  1  】

ファイル内容

Ruby Lesson

1.   pos

2.   seek

3.   current

4.   length

5.   rewind

答えを見る

正答

1.   pos

解説

-


File・IO 2-9

以下のコードの実行後、標準出力に出力される内容を1つ選択してください。なお、カレントディレクトリ内にはファイル「sample.txt」が存在するものとします。

open("test.txt", "w") do |io|
  arr = %w(Ruby PHP)
  io.puts arr
end

open("test.txt", "r") do |io|
  p io.read
end

1.   "Ruby PHP"

2.   "Ruby PHP\n"

3.   "Ruby\nPHP"

4.   "Ruby\nPHP\n"

答えを見る

正答

4.   "Ruby\nPHP\n"

解説

-


File・IO 2-10

次の文はFileクラスのメソッドについて述べたものです。内容が正しいものを1つ選択してください。

ファイルの最終更新日時を取得するメソッドは【 1 】である。また、状態が変更された日時を取得するメソッドは【 2 】である。

1.   【 1 】 mtime 【 2 】 ctime

2.   【 1 】 mktime 【 2 】 chtime

3.   【 1 】 utime 【 2 】 atime

4.   【 1 】 uptime 【 2 】 actime

答えを見る

正答

1.   【 1 】 mtime 【 2 】 ctime

解説

-


File・IO 2-11

以下のコードを実行したところ、ファイルの内容が変更されました。空欄【 1 】に入る適切な記述をすべて選択してください。なお、コード実行前・後のファイル「test.txt」の内容は次の通りとします。

コード

File.open("test.txt", 【  1  】) do |f|
  f.write(" on Rails")
end

実行前のファイル内容

Ruby

実行後のファイル内容

Ruby on Rails

1.   w+

2.   a

3.   a+

4.   "w+"

5.   "a"

6.   "a+"

答えを見る

正答

5.   "a"

6.   "a+"

解説

-


File・IO 2-12

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

コード

puts File.join("/Users", "/guest", "1.rb")

1.   /Users/guest/1.rbと出力される

2.   //Users//guest/1.rbと出力される

3.   /Users/guest1.rbと出力される

4.   例外が発生する

答えを見る

正答

1.   /Users/guest/1.rbと出力される

解説

-


File・IO 2-13

以下のコードの出力として正しいものを1つ選択してください。

f = "/Users/guest/1.txt"
f = File.basename(f)
p File.dirname(f)

1.   "/Users/guest/1.txt"

2.   "/1.txt"

3.   "1.txt"

4.   "1"

5.   "."

答えを見る

正答

5.   "."

解説

-


File・IO 2-14

以下のコードの出力として正しいものを1つ選択してください。なお、カレントディレクトリ内にはファイル「test.txt」が存在し、その内容は次のとおりとします。

コード

File.open("test.txt") do |f|
  f.readline("On")
  f.lineno = 2
  p f.read
end

ファイルの内容

RubyOnRails

1.   "RubyOnRails"

2.   "OnRails"

3.   "Rails"

4.   "byOnRails"

5.   nil

答えを見る

正答

3.   "Rails"

解説

-


File・IO 2-15

以下のコードを実行後のファイル内容として正しいものを1つ選択してください。なお、カレントディレクトリ内にはファイル「sample.txt」が存在し、その内容は次のとおりとします。

コード

open("sample.txt", "a+") do |io|
  text = io.read(4).upcase
  puts io.write(text)
end

ファイル内容

Ruby
Rails

1.  

RUBY

2.  

RUBY
Rails

3.  

RubyRUBY
Rails

4.  

Ruby
RailsRUBY
答えを見る

正答

4.  

Ruby
RailsRUBY

解説

-


File・IO 2-16

以下のコードの実行結果として正しいものを1つ選択してください。なお、カレントディレクトリ内にはファイル「sample.txt」が存在し、その内容は次のとおりとします。

コード

f = File.open("sample.txt")
f.gets
f.seek(1)
puts f.gets

ファイルの内容

PHP
Java

1.   P

2.   J

3.   HP

4.   ava

5.   PHP

6.   JAVA

答えを見る

正答

3.   HP

解説

-


File・IO 2-17

以下のコードの実行後、標準出力に出力される内容を1つ選択してください。なお、カレントディレクトリ内にはファイル「sample.txt」が存在し、その内容は次のとおりとします。

コード

File.open("test.txt") do |f|
  f.gets("Django")
  f.gets
  p f.gets
end

ファイル内容

Rails
Django
Laravel

1.   nil

2.   "Rails\n"

3.   "Django\n"

4.   "Laravel"

5.   "Django\nLaravel"

答えを見る

正答

4.   "Laravel"

解説

-


File・IO 2-18

以下のコードを実行したところ、Ruby on Railsと出力されました。空欄【 1 】に入る適切な記述をすべて選択してください。なお、カレントディレクトリ内にはファイル「test.txt」が存在し、その内容は次のとおりとします。

コード

File.open("test.txt") do |f|
  f.read
  f.【  1  】
  p f.read
end

ファイルの内容

Ruby on Rails

1.   rewind(0)

2.   rewind

3.   pos(0)

4.   pos = 0

5.   lineno

6.   lineno = 0

答えを見る

正答

2.   rewind

4.   pos = 0

解説

-



Dir (6問)

Dir -1

以下のコードのうち、実行するとカレントディレクトリの絶対パスが出力されるものを1つ選択してください。

1.   puts Dir.curdir

2.   puts Dir.current

3.   puts Dir.pwd

4.   puts Dir.pass

答えを見る

正答

3.   puts Dir.pwd

解説

-


Dir -2

Dirクラスのメソッドのうち、ディレクトリの移動をおこなうメソッドを1つ選択してください。

1.   chdir

2.   mkdir

3.   movedir

4.   pwd

5.   open

答えを見る

正答

1.   chdir

解説

-


Dir -3

以下のコードを実行したところディレクトリが作成されました。空欄【 1 】に入る適切な記述を1つ選択してください。

Dir.【  1  】("test")

1.   create

2.   make

3.   save

4.   mkdir

5.   new

答えを見る

正答

4.   mkdir

解説

-


Dir -4

以下のコードを実行したところディレクトリが削除されました。空欄【 1 】に入る適切な記述を1つ選択してください。

Dir.【  1  】("test")

1.   destroy

2.   delete

3.   remove

4.   rm

5.   rmdir

答えを見る

正答

5.   rmdir

解説

-


Dir -5

次の文はDirクラスのmkdirメソッドとrmdirメソッドについて述べたものです。内容が正しいものをすべて選択してください。

1.   ディレクトリが存在しない状態でrmdirメソッドを実行すると、エラーが発生する。

2.   ディレクトリの中にファイルが存在する状態でrmdirメソッドを実行すると、ファイルごとディレクトリが削除される。

3.   ディレクトリが存在する状態でmkdirメソッドを実行すると、新たなディレクトリは作成されない。エラーは発生しない。

4.   ディレクトリが存在する状態でmkdirメソッドを実行すると、すでに存在していたディレクトリは削除され、新たなディレクトリが作成される。

5.   ディレクトリが存在する状態でmkdirメソッドを実行すると、エラーが発生する。

答えを見る

正答

1  

5  

解説

-


Dir -6

Dirクラスのgetwdメソッドの説明として正しいものを1つ選択してください。

1.   カレントディレクトリを取得する

2.   ディレクトリを移動する

3.   ディレクトリ中に含まれるファイルの名前一覧を取得する

4.   ディレクトリの作成日時を取得する

答えを見る

正答

1.   カレントディレクトリを取得する

解説

-



Time (10問)

Time -1

Timeクラスのメソッドの中で、生成されるTimeオブジェクトのタイムゾーンが必ずUTCになるものを、次の中からすべて選択してください。

1.   Time.gm

2.   Time.new

3.   Time.now

4.   Time.mktime

5.   Time.global

6.   Time.utc

答えを見る

正答

1.   Time.gm

6.   Time.utc

解説

-


Time -2

以下のコードの出力として正しいものを1つ選択してください。

p Time.gm(12)

1.   0012-01-01 00:00:00 UTCと出力される

2.   0000-12-01 00:00:00 UTCと出力される

3.   0000-01-12 00:00:00 UTCと出力される

4.   0000-01-01 12:00:00 UTCと出力される

5.   例外が発生する

答えを見る

正答

1.   0012-01-01 00:00:00 UTCと出力される

解説

-


Time -3

以下の出力が得られるコードをすべて選択してください。なお、コードは日本国内で実行し、日時は2020年5月24日だったものとします。

2020-05-24 22:01:20 +0900

1.   puts Time.now

2.   puts Time.local

3.   puts Time.new

4.   puts Time.at

5.   puts Time.current

答えを見る

正答

1.   puts Time.now

3.   puts Time.new

解説

-


Time -4

以下の出力が得られるコードを1つ選択してください。なお、コードは日本国内で実行し、日時は2020年5月25日だったものとします。

2020-05-25 12:00:05 +0900

1.   p Time.local(2020:05:25:12:00:05)

2.   p Time.local(2020-05-25 12:00:05)

3.   p Time.local("2020-05-25 12:00:05")

4.   p Time.local(2020, 5, 25, 12, 0, 5)

答えを見る

正答

4.   p Time.local(2020, 5, 25, 12, 0, 5)

解説

-


Time -5

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

出力

2020-11-30 12:00:10

コード

t = Time.mktime(2020, 11, 30, 12, 00, 10)
puts t.【  1  】("%Y-%m-%d %H:%M:%S")

1.   sprintf

2.   strtime

3.   strftime

4.   to_s

答えを見る

正答

3.   strftime

解説

-


Time -6

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

p Time.now + 60

1.   実行時の日時から60ミリ秒後の日時が表示される

2.   実行時の日時から60秒後の日時が表示される

3.   実行時の日時から60分後の日時が表示される

4.   実行時の日時から60日後の日時が表示される

5.   例外が発生する

答えを見る

正答

2.   実行時の日時から60秒後の日時が表示される

解説

-


Time -7

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

t1 = Time.mktime(2020, 5, 1, 0, 0)
t2 = Time.mktime(2020, 5, 1, 1, 0)
p (t2 - t1).to_i

1.   0と出力される

2.   60と出力される

3.   3600と出力される

4.   例外が発生する

答えを見る

正答

3.   3600と出力される

解説

-


Time -8

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。

コード

t = Time.mktime(2021, 12, 25)
puts 【  1  】

出力

2021-12-25

1.   t.strftime("%y-%m-%d")

2.   t.strftime("%y-%m-%d")

3.   t.strftime("%Y-%m-%d")

4.   t.strftime("%Y-%M-%d")

答えを見る

正答

3.   t.strftime("%Y-%m-%d")

解説

-


Time -9

以下のコードの出力として正しいものを1つ選択してください。

t = Time.mktime(2020, 10, 1, 12, 30)
t += 600
puts t.strftime("%H:%M:%S")

1.   12:30:01

2.   12:30:10

3.   12:40:00

4.   13:30:00

答えを見る

正答

3.   12:40:00

解説

-


Time -10

以下の出力が得られるコードを1つ選択してください。

1970-01-01 00:00:01 UTC

1.   Time.at(1).utc

2.   Time.local(1).utc

3.   Time.new(1).utc

4.   Time.to(1).utc

答えを見る

正答

1.   Time.at(1).utc

解説

-



例外処理 (8問)

例外処理 -1

以下のコードを実行したところ「例外発生」と表示されました。空欄【 1 】【 2 】に入る適切な記述を1つ選択してください。

s = "abc"
【  1  】
  puts s - 2
【  2  】
  puts '例外発生'
end

1.   【 1 】 begin 【 2 】 rescue

2.   【 1 】 catch 【 2 】 throw

3.   【 1 】 begin 【 2 】 throw

4.   【 1 】 catch 【 2 】 rescue

答えを見る

正答

1.   【 1 】 begin 【 2 】 rescue

解説

-


例外処理 -2

以下のコードを実行したところ「例外発生」と出力されました。空欄【 1 】に入る適切な記述を2つ選択してください。

begin
  puts arr
rescue 【   1   】
  puts '例外発生'
end

1.   SyntaxError

2.   RuntimeError

3.   NoMethodError

4.   StandardError

5.   NameError

答えを見る

正答

4.   StandardError

5.   NameError

解説

-


例外処理 -3

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を、1つ選択してください。

コード

arr = [1, 2, 3]
begin
  puts arr.text
rescue => ex
  puts ex.【   1   】
end

出力

undefined method `to_r' for [1, 2, 3]:Array

1.   text

2.   message

3.   information

4.   error_message

5.   error_text

6.   error_information

答えを見る

正答

2.   message

解説

-


例外処理 -4

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を、1つ選択してください。

コード

begin
  puts xy + "z"
rescue 【   1   】
  puts ex.message
end

出力

undefined local variable or method `xy' for main:Object

1.   StandardError >> ex

2.   StandardError = ex

3.   StandardError => ex

4.   StandardError == ex

5.   StandardError -> ex

答えを見る

正答

3.   StandardError => ex

解説

-


例外処理 -5

以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を、1つ選択してください。

コード

begin
  puts xy + "z"
rescue
  puts "例外発生!!"
【   1   】
  puts "終了しました"
end

出力

例外発生!!
終了しました

1.   ensure

2.   else

3.   retry

4.   catch

5.   backtrace

答えを見る

正答

1.   ensure

解説

-


例外処理 -6

以下のコードを実行したときに出力されるものをすべて選択してください。

test = 'A'
begin
  puts test * 3
rescue
  puts "例外発生"
else
  puts "正常終了"
end

1.   test * 3

2.   AAA

3.   例外発生

4.   正常終了

答えを見る

正答

2.   AAA

4.   正常終了

解説

-


例外処理 -7

以下のコードを実行したときに出力されるものをすべて選択してください。

begin
  puts 100 / 0
  puts 'A'
rescue StandardError
  puts 'B'
rescue ZeroDivisionError
  puts 'C'
rescue
  puts 'D'
else
  puts 'E'
ensure
  puts 'F'
end

1.   A

2.   B

3.   C

4.   D

5.   E

6.   F

答えを見る

正答

2.   B

6.   F

解説

-


例外処理 -8

以下のコードの出力として正しいものを1つ選択してください。

num = 0
begin
  puts 100 / num
rescue
  num += 1
  retry
ensure
  puts num 
end

1.  

0

2.  

1

3.  

100

4.  

100
1

5.  

0
100
1
答えを見る

正答

4.  

100
1

解説

-



オブジェクト指向 (26問)

オブジェクト指向 -1

次のコードは、Stringクラスを継承したMyStringクラスを宣言するコードです。空欄【 1 】に当てはまる記述として正しいものを1つ選択してください。

class 【  1  】 String

end

1.   MyString::

2.   MyString <

3.   MyString <<

4.   MyString >

5.   MyString >>

答えを見る

正答

2.   MyString <

解説

-


オブジェクト指向 -2

クラス名として有効なものをすべて選択してください。

1.   my_string

2.   myString

3.   MyString

4.   MYSTRING

5.   MY_STRING

答えを見る

正答

3.   MyString

4.   MYSTRING

5.   MY_STRING

解説

-


オブジェクト指向 -3

以下のコードの出力として正しいものを1つ選択してください。

class User
end

class Admin < User
end

print User.superclass
print ' '
print Admin.superclass

1.   Object Object

2.   Object User

3.   Admin Object

4.   Admin User

答えを見る

正答

2.   Object User

解説

-


オブジェクト指向 -4

以下のコードを実行したところ、Stringと表示されました。空欄【 1 】に入る適切な記述を1つ選択してください。

p "test".【 1 】

1.   type

2.   class

3.   equal

4.   name

答えを見る

正答

2.   class

解説

-


オブジェクト指向 -5

以下のコードを実行したところ、-100と出力されました。空欄【 1 】に入る適切な記述を1つ選択してください。

class Sample
  def 【  1  】(number)
    @number = number * 100
  end

  def number
     @number
  end
end

n = Sample.new(-1)
p n.number

1.   initialize

2.   new

3.   super

4.   load

答えを見る

正答

1.   initialize

解説

-


オブジェクト指向 -6

以下のコードを実行したところStringと出力されました。空欄【 1 】に入る適切な記述を1つ選択してください。

class MyString < String
end

s = MyString.new
p 【  1  】

1.   s.class

2.   s.superclass

3.   s.class.superclass

4.   s.basicclass

5.   s.class.basicclass

答えを見る

正答

3.   s.class.superclass

解説

-


オブジェクト指向 -7

クラス変数の名前として適切なものを1つ選択してください。

1.   @name

2.   @@name

3.   $name

4.   $$name

答えを見る

正答

2.   @@name

解説

-


オブジェクト指向 -8

以下のコードを実行したところ600と出力されました。空欄【 1 】に入る適切な記述を1つ選択してください。

class Test1
  def initialize(number)
    @number = number * 60
  end
end

class Test2 < Test1
  def initialize(number)
    【  1  】(number)
  end

  def number
     @number
  end
end

n = Test2.new(10)
p n.number

1.   initialize

2.   Test1.initialize

3.   super

4.   new

答えを見る

正答

3.   super

解説

-


オブジェクト指向 -9

Objectと出力されるコードを1つ選択してください。

1.   p "Ruby".class

2.   p "Ruby".superclass

3.   p "Ruby".class.superclass

4.   p "Ruby".baseclass

5.   p "Ruby".class.baseclass

答えを見る

正答

3.   p "Ruby".class.superclass

解説

-


オブジェクト指向 -10

以下のコードの出力として正しいものを1つ選択してください。

class Test1
  def initialize(number)
    @number = number * 10
  end
end

class Test2 < Test1
  def initialize(number)
    @number = number * 5
    super(number)
  end

  def number
     @number
  end
end

n = Test2.new(3)
p n.number

1.   0

2.   3

3.   15

4.   30

5.   150

6.   nil

答えを見る

正答

4.   30

解説

-


オブジェクト指向 -11

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

class String
  def to_i
    self.to_f
  end
end

p "0123".to_i

1.   0と出力される

2.   123と出力される

3.   123.0と出力される

4.   nilと出力される

5.   例外が発生する

答えを見る

正答

3.   123.0と出力される

解説

-


オブジェクト指向 -12

以下のコードの出力として正しいものを1つ選択してください。

puts Object.superclass

1.   Comparable

2.   Object

3.   BasicObject

4.   Kernel

答えを見る

正答

3.   BasicObject

解説

-


オブジェクト指向 -13

次のコードは、MyStringクラスを宣言するコードです。この宣言と同じ処理となるものを次の中から1つ選択してください。

class MyString
end

1.  

class MyString < String
end

2.  

class MyString < Object
end

3.  

class MyString < BasicObject
end

4.  

class MyString < SuperObject
end
答えを見る

正答

2.  

class MyString < Object
end

解説

-


オブジェクト指向 -14

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

class Integer
  def to_triple
    self * self * self
  end
end

p 5.to_triple

1.   0と出力される

2.   5と出力される

3.   125と出力される

4.   nilと出力される

5.   例外が発生する

答えを見る

正答

3.   125と出力される

解説

-


オブジェクト指向 -15

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

class Object
  def to_s
    (self * 100).to_s
  end
end

p 1.to_s

1.   "1"と表示される

2.   "100"と表示される

3.   "(self * 100)"と表示される

4.   ""と表示される

5.   例外が発生する

答えを見る

正答

1.   "1"と表示される

解説

-


オブジェクト指向 -16

以下のコードの出力として正しいものを1つ選択してください。

class Animal
  attr_reader :name
  def initialize
    @name = 'クロ'
  end
end

class Cat < Animal
  def initialize
    @name = 'シロ'
  end
end

a = Cat.new
p a.name

1.   ""

2.   "シロ"

3.   "クロ"

4.   nil

答えを見る

正答

2.   "シロ"

解説

-


オブジェクト指向 -17

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

class Test1
  attr_reader :number
  def initialize(number)
    @number = number * 10
  end
end

class Test2 < Test1
  def initialize(number)
    @number = number * 5
    super
  end
end

n = Test2.new(10)
p n.number

1.   10と出力される

2.   50と出力される

3.   100と出力される

4.   例外が発生する

答えを見る

正答

3.   100と出力される

解説

-


オブジェクト指向 -18

次の文は、Rubyのクラスとモジュールについて述べた文です。内容が正しいものを3つ選択してください。

1.   Rubyのクラスは、複数の親クラスを持つことができる

2.   Rubyのモジュールは、それ単独ではインスタンスにすることができない

3.   Rubyのクラスは、複数のモジュールを持つことができる

4.   Rubyのモジュールは、継承することができない

5.   Rubyのモジュールは、importメソッドによってクラスに取り込むことができる

答えを見る

正答

2  

3  

4  

解説

-


オブジェクト指向 -19

以下のコードを実行したところ、シロと出力されました。空欄【 1 】に入る適切な記述を1つ選択してください。

module Cat
  def name
    'シロ'
  end
end

class Bengal
  【  1  】 Cat
end

my_cat = Bengal.new
puts my_cat.name

1.   require

2.   super

3.   extend

4.   import

5.   include

答えを見る

正答

5.   include

解説

-


オブジェクト指向 -20

以下のコードの出力として正しいものを1つ選択してください。

class Product1
  @@price = 1000
  
  def self.price
     @@price
  end
  
  def initialize
    @@price += 10
  end
end

class Product2 < Product1
  def initialize
    @@price += 100
  end
end

Product1.new
Product1.new
Product2.new

p Product1.price

1.   1000

2.   1020

3.   1100

4.   1120

5.   nil

答えを見る

正答

4.   1120

解説

-


オブジェクト指向 -21

module Cat
  def kind
    '猫'
  end
end

class Persian
  include Cat
  def kind
    'ペルシャ'
  end
end

my_cat = Cat.new
puts my_cat.kind

1.   猫と出力される

2.   ペルシャと出力される

3.   空の文字列が出力される

4.   例外が発生する

答えを見る

正答

4.   例外が発生する

解説

-


オブジェクト指向 -22

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

class Animal
  def initialize
    @name = '名無し'
  end
end

class Cat < Animal
  attr_reader :name
  def initialize
    @name = 'シロ'
  end
end

a = Animal.new
p a.name

1.   "名無し"と出力される

2.   "シロ"と出力される

3.   ""と表示される

4.   例外が発生する

答えを見る

正答

4.   例外が発生する

解説

-


オブジェクト指向 -23

以下のコードを実行したところ500と出力されました。空欄【 1 】に入る適切な記述をすべて選択してください。

class Product
  def 【  1  】
    500
  end
end

p Product.price

1.   Product.price

2.   self.price

3.   price

4.   super.price

5.   class.price

答えを見る

正答

1.   Product.price

2.   self.price

解説

-


オブジェクト指向 -24

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

module Cat
  def kind
    '猫'
  end
end

class Bengal
  include Cat

  def kind
    'ベンガル'
  end
end

my_cat = Bengal.new
puts my_cat.kind

1.   猫と出力される

2.   ベンガルと出力される

3.   空の文字列が出力される

4.   例外が発生する

答えを見る

正答

2.   ベンガルと出力される

解説

-


オブジェクト指向 -25

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

class Cat
  attr_accessor :name

  def initialize(name)
    @name = name
  end
end

class Persian < Cat
  def initialize
    @name = 'ペル'
  end
end

my_cat = Persian.new('クロ')
my_cat.name = 'タマ'
p my_cat.name

1.   ペルと出力される

2.   クロと出力される

3.   タマと出力される

4.   例外が発生する

答えを見る

正答

4.   例外が発生する

解説

-


オブジェクト指向 -26

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

class Product1
  def self.price
    1000
  end
end

class Product2 < Product1
  def price
    2000
  end
end

p Product2.price

1.   1000と出力される

2.   2000と出力される

3.   nilと出力される

4.   例外が発生する

答えを見る

正答

1.   1000と出力される

解説

-



正規表現 (8問)

正規表現 -1

以下のコードの出力として正しいものを1つ選択してください。

p "foobar".scan(/[a, b]/)

1.   "ba"

2.   "ab"

3.   ["b"]

4.   ["b", "a"]

5.   ["a", "b"]

答えを見る

正答

4.   ["b", "a"]

解説

-


正規表現 -2

以下のコードの出力として正しいものを1つ選択してください。

p "1234512345"[/^[1-3]+/]

1.   123

2.   1

3.   123123

4.   12

5.   45

答えを見る

正答

1.   123

解説

-


正規表現 -3

以下のコードの出力として正しいものを1つ選択してください。

p "12345"[/[^1-3]+/]

1.   123

2.   1

3.   nil

4.   4

5.   45

答えを見る

正答

5.   45

解説

-


正規表現 -4

以下のコードの出力として正しいものを1つ選択してください。

p "x1x3x5x7"[/..[1-5]./]

1.   nil

2.   "1x3x"

3.   "1x3x5x"

4.   "x1x3x"

5.   "3x5x"

答えを見る

正答

2.   "1x3x"

解説

-


正規表現 -5

以下のコードの出力として正しいものを1つ選択してください。

p "Ruby on Rails".scan(/\s/)

1.   [" ", " "]

2.   ["Ruby"]

3.   ["Ruby", "on", "Rails"]

4.   []

答えを見る

正答

1.   [" ", " "]

解説

-


正規表現 -6

以下のコードの出力として正しいものを1つ選択してください。

s = "Ruby on Rails"
p s.scan(/\w/).size

1.   0

2.   1

3.   2

4.   11

5.   13

答えを見る

正答

4.   11

解説

-


正規表現 -7

以下の正規表現にマッチする文字列を2つ選択してください。

/\A\w[^RUBY].[PHP]/

1.   "RUBY"

2.   "RVBP"

3.   "AUHP"

4.   "ASAP"

5.   "ASAN"

答えを見る

正答

2.   "RVBP"

4.   "ASAP"

解説

-


正規表現 -8

以下の正規表現にマッチする文字列をすべて選択してください。 ※マッチする文字列 ではないかも。あとで文考える

/.\D$/

1.   "A"

2.   "A.S.A.P"

3.   "A10"

4.   "4th"

5.   "1.5"

6.   "Ruby"

答えを見る

正答

2.   "A.S.A.P"

4.   "4th"

6.   "Ruby"

解説

-


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment