Ruby技術者認定試験Silverの問題集です。
作成者自身の試験対策用に作った問題を、整理してUPしました。全部で350問以上あります。
原本 羚央 @HaramotoReo
・ある程度のRubyの知識と経験があることを想定しています。基礎的な事柄についての説明は記載していません。
・この対策問題集はオーバースペック気味なので、難しすぎると感じた問題は飛ばしてもいいと思います。それでも8割(できれば9割)解けるようにしておくのが無難だと思います。
・問題の解説は現状ほとんど書けていませんが、徐々に埋めていく予定です。
・分からない問題が多い場合は、Ruby技術者認定試験合格教本で学習することを強くおすすめします。
・コードの動作確認にはpaiza.ioが便利です。
Rubyにおいて偽の値を示すものをすべて選択してください。
1.
0
2.
-1
3.
false
4.
null
5.
nil
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つ選択してください。
p 9 / 2
1.
0
2.
1
3.
4
4.
4.5
5.
5
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
なお、 **演算子は べき乗の計算をおこなう演算子です。
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つ選択してください。
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つ選択してください。
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つ選択してください。
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と出力されるコードを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と出力される
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つ選択してください。
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つ選択してください。
x = 5 * 2 ** 3
puts x
1.
27
2.
40
3.
45
4.
1000
5.
10000
6.
100000
以下のコードの出力として正しいものを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つ選択してください。
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)
以下のコードの出力として正しいものを1つ選択してください。
puts [].class
1.
false
2.
nil
3.
Array
4.
Hash
5.
true
答えを見る
3.
Array
classメソッドはオブジェクトのクラスを返す。
例
puts [].class
# => Array
# []は空の配列
puts "ABC".class
# => String
以下のコードの実行結果として正しいものを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までは数値に変換できる
以下のコードの実行結果として正しいものを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の順に変わる
以下のコードを実行したところ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 = +1
や number = 1
と同じ。
また、number == number + 1
は 右辺と左辺を比較するだけなので、numberの値は100から変化しない。
なお、number++
という書き方はRubyには用意されていない。
次のコードの実行結果として正しいものを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
実行後、何も表示されないコードを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
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
次のコードの出力として正しいものを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
以下のコードの実行結果として正しいものを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までは数値に変換できる
以下のコードのうち、実行すると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
以下の出力が得られるコードを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
以下のコードの実行結果として正しいものを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
例外が生じるコードの組み合わせとして正しいものを、次の中から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
以下のコードの実行結果として正しいものを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
以下のコードの出力として正しいものを1つ選択してください。
puts sprintf("%04d", 1)
1.
1
2.
1111
3.
1000
4.
0001
答えを見る
4.
0001
sprintf
関数は書式を揃えるときに使う。第1引数にはフォーマットを指定する。第2引数にフォーマットしたい値を指定する。
本設問では、数値の1
をフォーマットして、文字列の0001
を出力している。
puts sprintf("%04d", 1)
%04d
の04
は桁数を表す。今回は4桁になる。d
はdecimal(10進数)。
以下のコードの実行結果として正しいものを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
以下のコードの出力として正しいものを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
以下のコードの実行結果として正しいものを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
以下のコードのうち、実行すると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つ選択してください。
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. エラーが発生する
以下のコードの実行結果として正しいものを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
次の出力が得られるコードを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
以下のコードを実行したところ、次の出力が得られました。空欄【 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が返ってくる)
以下のコードの出力として正しいものを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)
の違いを動作確認してみましょう。
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になる。!==
という演算子は存在しないため。
以下のコードを実行したところ、次の出力が得られました。空欄【 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}
がそのまま出力される。
なお、識別子をダブルクォートで囲んだ場合と、何も囲まない場合は式展開がおこなわれる。
以下のコードの実行結果として正しいものを1つ選択してください。
$nil = 10
p $nil ** 2
1.
0
と出力される
2.
10
と出力される
3.
20
と出力される
4.
100
と出力される
5. 例外が発生する
答えを見る
4.
100
と出力される
先頭に$
の付いた変数はグローバル変数。nil
は予約語だが$nilは予約語ではないため普通に使用することができる。なお**
は累乗の計算をおこなう演算子。
以下のコードの出力として正しいものを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
以下のコードの出力として正しいものを1つ選択してください。
puts 100 <=> 50
1.
0
2.
1
3.
-1
4.
true
5.
false
答えを見る
2.
1
UFO演算子に関する問題。
UFO演算子は、
・左辺の値のほうが大きい場合は1を返す
・右辺の値のほうが大きい場合は-1を返す
・両者が等しい場合は0を返す
ソートの条件を指定する時などに使われる。
コメント: 覚え方としては、数直線の逆。数直線だと右側がプラスになるが、UFO演算子だと右側がマイナス(というイメージです)。
以下のコードを実行したところ、次の出力が得られました。空欄【 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つ存在する。
��
スペースを許容するには、開始を示す識別子の先頭にハイフンを付ける必要がある。
以下のコードの出力として正しいものを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(変化無し)
エラーが発生するコードをすべて選択してください。
1.
puts 070
2.
puts '070'
3.
puts 079
4.
puts '079'
5.
puts 090
6.
puts '090'
以下のコードの出力として正しいものを1つ選択してください。
num = 1
3.times do |num|
num += 100
end
puts num
1.
1
2.
100
3.
101
4.
300
5.
301
以下のコードの出力として正しいものを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
以下のコードの出力として正しいものを1つ選択してください。
p ?A + ?B
1.
"AB"
2.
nil
3.
"A"
4.
131
5.
6566
以下の出力が得られるコードを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
以下のコードを実行したところ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'
以下のコードの実行結果として正しいものを1つ選択してください。
$super = 100
def sample
$super = 200
end
sample
puts $super
1.
100
と出力される
2.
200
と出力される
3.
0
と出力される
4.
nil
と出力される
5. 例外が発生する
以下のコードの出力として正しいものを1つ選択してください。
puts -1 || 0.0
1.
-1
2.
0
3.
0.0
4.
true
5.
false
次のコードの実行結果として正しいものを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つ選択してください。
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,
以下のコードの実行結果として正しいものを1つ選択してください。
unless 10 <=> 10
puts 'A'
else
puts 'B'
end
1.
A
と表示される
2.
B
と表示される
3. 何も表示されない
4. エラーが発生する
以下のコードの出力として正しいものを1つ選択してください。
x = nil
y = 1
p x && y
1.
nil
2.
1
3.
false
4.
true
5.
0
以下のコードの出力として正しいものを1つ選択してください。
puts 1.0.class
1.
Integer
2.
Single
3.
Double
4.
Float
5.
FixNum
6.
BigNum
以下のコードの出力として正しいものを1つ選択してください。
puts 1 && 5
1.
1
2.
2
3.
5
4.
6
5.
true
6.
false
以下のコードの出力として正しいものを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
以下のコードを実行したところ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つ選択してください。
x = 0
y = false
p x && y
1.
0
2.
false
3.
true
4.
0false
以下のコードの実行結果として正しいものを1つ選択してください。
num = 100
num = if num < 100
10
elsif num < 200
20
else
30
end
puts num
1.
10
と表示される
2.
20
と表示される
3.
30
と表示される
4. 例外が発生する
以下のコードの出力として正しいものを1つ選択してください。
s = "Rails"
s = s || "Ruby"
puts s
1.
Ruby
2.
Rails
3.
RailsRuby
4.
false
5.
true
以下のコードの実行結果として正しいものを1つ選択してください。
def sample(a = 10, b)
puts a + b
end
a = 3
sample(a)
1.
0
と表示される
2.
3
と表示される
3.
10
と表示される
4.
13
と表示される
5. 例外が発生する
以下のコードの出力として正しいものを1つ選択してください。
p !!(0 && nil)
1.
0
2.
nil
3.
1
4.
true
5.
false
Rubyの変数名として正しいものをすべて選択してください
1.
@s
2.
@@s
3.
@@@s
4.
#s
5.
$s
6.
$$s
以下のコードを実行したところ、次の出力が得られました。空欄【 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
以下のコードの出力として正しいものを1つ選択してください。
x = nil
y = -1
p x || y
1.
nil
2.
-1
3.
true
4.
false
エラーにならずに正常に実行できるコードをすべて選択してください。
1.
puts '%x' + 10
2.
puts '%x' - 10
3.
puts '%x' * 10
4.
puts '%x' % 10
5.
puts '%x' / 10
以下のコードの出力として正しいものを1つ選択してください。
p !!(0 || false)
1.
false
2.
nil
3.
true
4.
0
5.
-1
以下のコードの実行結果として正しいものを1つ選択してください。
def sample(x, y, *z)
p z
end
sample(1, "A", "B", 2)
1.
2
と出力される
2.
[2]
と出力される
3.
B2
と出力される
4.
["B", 2]
と出力される
5. 例外が発生する
以下のコードの出力として正しいものを1つ選択してください。
p (0 && -1) && (true || nil)
1.
0
2.
-1
3.
true
4.
nil
5.
false
以下のコードの実行結果として正しいものを1つ選択してください。
p (1..4).to_a
1.
"1234"
と出力される
2.
"(1234)"
と出力される
3.
[1234]
と出力される
4.
[1, 2, 3, 4]
と出力される
5. 例外が発生する
以下のコードのうち、実行すると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つ選択してください。
puts 'ABCDE'.slice(3)
1.
AB
2.
ABC
3.
DE
4.
D
5.
E
以下のコードの出力として正しいものを1つ選択してください。
p "090-9999-0000".split('-')
1.
["090", "9999", "0000"]
2.
["09099990000"]
3.
"09099990000"
4.
"090", "9999", "0000"
以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。
コード
puts "abc".【 1 】
出力
ABC
1.
upcase
2.
uppercase
3.
downcase
4.
lowercase
以下のコードの出力として正しいものを1つ選択してください。
p "Ruby\r\n".chop
1.
"Ruby"
2.
"Ruby\r"
3.
"Ruby\n"
4.
"Ruby\r\n"
RubyのStringクラスに存在しないメソッドを2つ選択してください。
1.
shift
2.
scan
3.
join
4.
split
5.
replace
実行するとtrueと出力されるコードをすべて選択してください。
1.
puts [].empty?
2.
puts [].blank?
3.
puts [].nil?
4.
puts "".empty?
5.
puts "".blank?
6.
puts "".nil?
以下のコードの実行結果として正しいものを1つ選択してください。
p "+5-3".to_i
1.
0
と出力される
2.
2
と出力される
3.
5
と出力される
4.
nil
と出力される
5. 例外が発生する
以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。
コード
puts "ruby".【 1 】
出力
Ruby
1.
lstrip
2.
swapcase
3.
capitalize
4.
reverse
以下のコードの出力として正しいものを1つ選択してください。
p "\r1234\r\r".strip
1.
"1234"
2.
"1234\r"
3.
"\r1234"
4.
"\r1234\r"
以下のコードの出力として正しいものを1つ選択してください。
p "12\n\r\n".chomp
1.
"12"
2.
"12\n"
3.
"12\n\r"
4.
"12\n\r\n"
以下のコードの出力として正しいものを1つ選択してください。
puts "abbxxcc".count('a-c')
1.
abbcc
2.
abb
3.
2
4.
3
5.
5
以下の出力が得られるコードを1つ選択してください。
" ab "
1.
p "ab".space(6)
2.
p "ab".center(6)
3.
p "ab".trim(6)
4.
p "ab".just(6)
以下の出力が得られるコードを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
以下のコードの出力として正しいものを1つ選択してください。
p (1..4).to_s
1.
"1..4"
2.
[1, 2, 3, 4]
3.
"1234"
4.
"14"
5.
"(1234)"
RubyのStringクラスに存在しないメソッドを2つ選択してください。
1.
reverse
2.
reject
3.
reverse!
4.
fill
5.
concat
true
と表示されるコードを1つ選択してください。
1.
p 'b' < 'ab'
2.
p 'aa' <=> 'b'
3.
p 'aa' < 'b'
4.
p 'a' == 'A'
以下のコードの出力として正しいものを1つ選択してください。
s = "abcde"
s[2, 2] = "123"
puts s
1.
abcde
2.
ab12e
3.
ab123
4.
ab123e
5.
123
以下のコードの出力として正しいものを1つ選択してください。
puts '123456'.slice(2...4)
1.
23
2.
234
3.
2345
4.
34
5.
345
6.
3456
以下のコードの出力として正しいものを1つ選択してください。
s = '123456'
s.slice!(2, 3)
puts s
1.
34
2.
345
3.
126
4.
1256
5.
123456
以下のコードの出力として正しいものを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
以下のコードを実行したところUTF-8と表示されました。空欄【 1 】に入る適切な記述を1つ選択してください。
puts "ABC".【 1 】
1.
encode
2.
encoding
3.
charset
4.
charsetting
以下のコードの出力として正しいものを1つ選択してください。
puts "890101".sub('01', 'ab')
1.
89ab01
2.
89abab
3.
ab0101
4.
890101
実行後、何も表示されないコードをすべて選択してください。
1.
puts 'ruby'.slice(4, 2)
2.
puts 'ruby'.slice(-4)
3.
puts 'ruby'.slice(-5)
4.
puts 'ruby'.slice(-1, 5)
以下のコードの出力として正しいものを1つ選択してください。
puts "ab".rjust(6, "*")
1.
****ab
2.
ab****
3.
******ab
4.
ab******
以下のコードの出力として正しいものを1つ選択してください。
puts "abc".include?("ac")
1.
true
2.
false
3.
a
4.
ac
5.
0
以下のコードの出力として正しいものを1つ選択してください。
puts 5 / 2 * 2 + 5 * 2 / 2
1.
8
2.
9
3.
10
4.
19
5.
20
0と出力されるコードをすべて選択してください。
1.
p "0123".to_i
2.
p "-0001".to_i
3.
p "".to_i
4.
p nil.to_i
5.
p [].to_i
以下のコードの出力として正しいものを1つ選択してください。
s = "A!BC!DEF!G"
puts s.index("!", 3)
1.
2
2.
4
3.
5
4.
8
5.
9
以下のコードの実行結果として正しいものを1つ選択してください。
s = "123456"
puts s[3...-1]
1.
345
と表示される
2.
3456
と表示される
3.
45
と表示される
4.
456
と表示される
5. 何も表示されない
以下のコードを実行したところ、dと出力されました。空欄【 1 】に入る適切な記述を1つ選択してください。
puts 100.【 1 】
1.
chr
2.
string
3.
char
4.
str
5.
convert
以下のコードの出力として正しいものを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
以下のコードの出力として正しいものを1つ選択してください。
puts "RUBY on RAILS".capitalize
1.
Ruby on Rails
2.
Ruby on rails
3.
ruby ON rails
4.
Ruby On Rails
以下のコードの出力として正しいものを1つ選択してください。
5.downto 2 do |n|
print n
end
1.
54
2.
45
3.
543
4.
345
5.
5432
6.
2345
以下のコードの出力として正しいものを1つ選択してください。
puts "890101".gsub('01', 'AB')
1.
89ABAB
2.
89AB01
3.
AB0101
4.
890101
以下のコードの出力として正しいものを1つ選択してください。
puts "1_005_000"
1.
1005000
2.
1_005_000
3.
150
4.
1_5_0
以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。
コード
puts "Ruby PHP".【 1 】
出力
rUBY php
1.
swapcase
2.
capitalize
3.
rstrip
4.
scan
以下のコードの出力として正しいものを1つ選択してください。
s = "Ruby"
s.upcase.downcase.swapcase
puts s
1.
ruby
2.
Ruby
3.
RUBY
4.
rUBY
以下のコードを実行したところ、1と出力された。空欄【 1 】に入る適切な記述を1つ選択してください。
puts "B".【 1 】 - "A".【 1 】
1.
chr
2.
char
3.
ord
4.
to_i
5.
numeric
以下のコードの出力として正しいものを1つ選択してください。
s = "A!A!BB!"
p s.index("!", 7)
1.
3
2.
6
3.
7
4.
nil
5.
false
以下のコードの実行結果として正しいものを1つ選択してください。
5.upto 3 do |n|
print n
end
1.
543
と出力される
2.
567
と出力される
3.
678
と出力される
4. 何も出力されない
以下のコードの実行結果として正しいものを1つ選択してください。
s = "abcde"
puts s.slice("abc").slice("b")
1.
ac
と表示される
2.
b
と表示される
3.
de
と表示される
4. 何も表示されない
以下のコードの出力として正しいものを1つ選択してください。
s = "123456789"
puts s.delete("1-46-")
1.
5789
2.
56789
3.
235789
4.
5
5.
789
以下のコードの出力として正しいものを1つ選択してください。
puts "012345".gsub(/[^1-3]/, 'ab')
1.
0ababab45
2.
0ab45
3.
ab123abab
4.
ab12345
5.
01abab45
以下のコードの出力として正しいものを1つ選択してください。
x = "A"
y = x
y = y + "B"
y = y + "C"
puts x
1.
A
2.
C
3.
AB
4.
BC
5.
ABC
以下のコードの出力として正しいものを1つ選択してください。
s = "1234567"
puts s[-2, 3]
1.
1
2.
56
3.
67
4.
123
5.
567
6.
671
以下のコードの出力として正しいものを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 】に入る適切な記述を1つ選択してください。
コード
p "Ruby\r\n".【 1 】
出力
"Rub"
1.
chomp.chomp.chop
2.
chop.chomp.chomp
3.
chop.chop.chop
4.
chomp.chomp.chomp
RubyのStringクラスのメソッドのうち、レシーバ自身を書き換えるものをすべて選択してください。
1.
strip
2.
concat
3.
replace
4.
reverse
5.
delete
以下のコードの出力として正しいものを1つ選択してください。
puts %w(Ruby \ JAVA)
1.
Ruby \ JAVA
2.
["Ruby", " JAVA"]
3.
Ruby
JAVA
4.
["Ruby", "/JAVA"]
5.
Ruby
\
JAVA
以下のコードの出力として正しいものを1つ選択してください。
x = "1..3"
x.scan(/./)
p x
1.
".."
2.
"1..3"
3.
["1", "3"]
4.
["1", ".", ".", "3"]
以下のコードの出力として正しいものを1つ選択してください。
x = "A"
y = x
y << "B"
y << "C"
puts x
1.
A
2.
C
3.
AB
4.
BC
5.
ABC
以下のコードの実行結果として正しいものを1つ選択してください。
puts 'abcdef'[2..3][-1]
1.
b
と出力される
2.
c
と出力される
3.
d
と出力される
4.
ab
と出力される
5.
de
と出力される
6. 例外が発生する
以下の出力が得られるコードを1つ選択してください。
s = '01234'
puts s.delete('0-2', '1-3')
1.
4
2.
34
3.
012
4.
034
以下のコードの出力として正しいものを1つ選択してください。
p "1181111".chomp("11")
1.
8
2.
118
3.
11811
4.
1181111
5.
118111111
以下のコードの出力として正しいものを1つ選択してください。
s1 = "ab"
s2 = s1
s1.reverse
s2 = s1.reverse
puts s1 + s2
1.
abab
2.
abba
3.
baab
4.
baba
以下のコードの出力として正しいものを1つ選択してください。
s = "1234567-"
puts s.delete("-3-51")
1.
2
2.
12
3.
267
4.
267-
5.
1267
6.
1267-
以下のコードの出力として正しいものを1つ選択してください。
s = "A!A!BB!"
s = s.sub("!", "")
p s.rindex("B")
1.
1
2.
2
3.
3
4.
4
5.
5
6.
6
以下のコードの実行結果として正しいものを1つ選択してください。
puts "bar" ** 2 * 2
1.
barbarbarbar
と出力される
2.
barbar
と出力される
3.
bar4
と出力される
4.
bar ** 2 * 2
と出力される
5. 例外が発生する
RubyのStringクラスのメソッドのうち、レシーバ自身を書き換えるものを2つ選択してください。
1.
slice!
2.
scan!
3.
delete!
4.
split!
5.
replace!
以下のコードの出力として正しいものを1つ選択してください。
s1 = "ab"
s2 = s1 + "2"
s1.reverse!
puts s1 + s2
1.
abab2
2.
abba2
3.
baab2
4.
baba2
以下のコードの出力として正しいものを1つ選択してください。
x = "Ru"
x.chop.chomp
x << "by"
x.reverse
puts x
1.
by
2.
yb
3.
Rby
4.
ybR
5.
Ruby
6.
ybuR
以下のコードの出力として正しいものを1つ選択してください。
a = [1, 2, 3]
b = a
a.clear
p b
1.
nil
2.
[]
3.
[1, 2, 3]
4.
[""]
以下のコードの出力として正しいものを1つ選択してください。
arr = %w(Ruby Python PHP)
arr.each { |v| puts v == "PHP" }
true
2.
false
false
true
3.
PHP
4.
Ruby
Python
PHP
以下の出力が得られるコードを1つ選択してください。
["みずほ", "三井住友", "りそな"]
1.
p %w(みずほ 三井住友 りそな)
2.
p %s(みずほ 三井住友 りそな)
3.
p %q(みずほ 三井住友 りそな)
4.
p %(みずほ 三井住友 りそな)
以下のコードの出力として正しいものを1つ選択してください。
s = ["A", "B", "C"]
puts s.join
1.
ABC
2.
A B C
3.
A,B,C
4.
A B C
以下のコードの出力として正しいものを1つ選択してください。
arr = ["A", "B", "C", "D", "E"]
puts arr[2..3].join
1.
BC
2.
CD
3.
BCD
4.
CDE
以下のコードの出力として正しいものを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]
以下のコードの出力として正しいものを1つ選択してください。
arr = [5, 4, 3, 2, 1]
p arr.index(2)
1.
2
2.
3
3.
4
4.
false
5.
nil
以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。
コード
arr = [5, 4, 3, 2, 1]
p arr.【 1 】
出力
[]
1.
remove
2.
delete_all
3.
destroy
4.
clear
5.
reset
以下のコードを実行したところ次の出力が得られました。空欄【 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)
以下のコードの出力として正しいものを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]
以下のコードの出力として正しいものを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つ選択してください。
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]
以下のコードの出力として正しいものを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]
以下のコードの実行結果として正しいものを1つ選択してください。
p [].size
1.
-1と出力される
2.
0と出力される
3.
1と出力される
4.
nilと出力される
5.
例外が発生する
以下のコードの出力として正しいものを1つ選択してください。
a = ["C", "A", "B"]
a.sort
p a
1.
["A", "B", "C"]
と出力される
2.
["C", "A", "B"]
と出力される
3.
["C", "B", "A"]
と出力される
4.
[]
と出力される
5. 例外が発生する
以下のコードの出力として正しいものを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]
以下のコードの出力として正しいものを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]
Arrayクラスのmapメソッドと同じ動作をするメソッドを1つ選択してください。
1.
select
2.
each
3.
collect
4.
find
5.
detect
以下のコードの出力として正しいものを1つ選択してください。
arr = [3, 5, 1, 4]
p arr.detect { |n| n > 3 }
1.
2
2.
3
3.
5
4.
[5]
5.
[4, 5]
以下のコードの出力として正しいものを1つ選択してください。
arr = [3, 5, 1, 4]
p arr.find { |n| n > 5 }
1.
false
と表示される
2.
5
と表示される
3.
0
と表示される
4.
-1
と表示される
5.
nil
と表示される
6. 例外が発生する
以下のコードの出力として正しいものを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つ選択してください。
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"
以下のコードの出力として正しいものを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
以下のコードの出力として正しいものを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つ選択してください。
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]
以下のコードの実行結果として正しいものを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. 例外が発生する
以下のコードを実行したところ次の出力が得られました。空欄【 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
以下のコードを実行したところ次の出力が得られました。空欄【 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
以下のコードの出力として正しいものを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]
以下のコードの出力として正しいものを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つ選択してください。
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つ選択してください。
arr = [1, 2, 3, 4]
arr.shift(3)
p arr
1.
[1, 2, 3]
2.
[1, 2, 4]
3.
[4]
4.
[3, 4]
以下のコードの出力として正しいものを1つ選択してください。
p [1, 2, 3, 4, 1, 2].uniq
1.
[3]
2.
[3 ,4]
3.
[1, 2]
4.
[1, 2, 3, 4]
以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。
コード
a = [1, nil, 2, nil]
p 【 1 】
出力
[1, 2]
1.
uniq
2.
unique
3.
unshift
4.
compact
5.
flatten
Arrayクラスのdetectメソッドと同じ動作をするメソッドを1つ選択してください。
1.
inject
2.
find
3.
map
4.
select
5.
find_by
Arrayクラスのselectメソッドと同じ動作をするメソッドを1つ選択してください。
1.
inject
2.
find
3.
zip
4.
find_all
5.
detect
以下のコードの出力として正しいものを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]
以下のコードの出力として正しいものを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]
以下のコードを実行したところ次の出力が得られました。空欄【 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 】に入る適切な記述を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 }
以下のコードを実行したところ次の出力が得られました。空欄【 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")
以下のコードの出力として正しいものを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.
[]
RubyのArrayクラスのメソッドのうち、レシーバ自身を書き換えるものをすべて選択してください。
1.
shift
2.
pop
3.
join
4.
flatten
5.
fill
RubyのArrayクラスに存在しないメソッドを2つ選択してください
1.
pop
2.
scan
3.
length
4.
invert
5.
concat
以下のコードの出力として正しいものを1つ選択してください。
arr = ["A", "B", "C", "D", "E", "F"]
puts arr[2, 3].join
1.
BC
2.
CD
3.
BCD
4.
CDE
以下のコードの実行結果として正しいものを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. 例外が発生する
以下のコードの出力として正しいものを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
以下のコードの出力として正しいものを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つ選択してください。
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.
[]
以下のコードを実行したところ次の出力が得られました。空欄【 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)
以下のコードの出力として正しいものを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 】に入る適切な記述をすべて選択してください。
コード
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つ選択してください。
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. 例外が発生する
以下のコードの出力として正しいものを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]
以下のコードを実行したところ次の出力が得られました。空欄【 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
以下のコードを実行したところ次の出力が得られました。空欄【 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("-")
以下のコードを実行したところ次の出力が得られました。空欄【 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つ選択してください。
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]]
以下のコードの出力として正しいものを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]]
以下のコードの実行結果として正しいものを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. 例外が発生する
以下のコードの出力として正しいものを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]
以下のコードの出力として正しいものを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"]
以下の出力が得られるコードを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つ選択してください。
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]
以下のコードの出力として正しいものを1つ選択してください。
a = ["1", "2", "3"]
p a.delete(1)
1.
[2, 3, 4]
2.
[1, 2, 3]
3.
[1]
4.
[2]
5.
nil
以下のコードの出力として正しいものを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]
以下のコードの出力として正しいものを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. 例外が発生する
以下のコードの実行結果として正しいものを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. 例外が発生する
以下のコードを実行したところ次の出力が得られました。空欄【 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!
以下のコードを実行したところ次の出力が得られました。空欄【 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)
以下のコードの出力として正しいものを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]]
以下のコードの出力として正しいものを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]]
以下のコードの出力として正しいものを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 】に入る適切な記述を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)
以下のコードを実行したところ次の出力が得られました。空欄【 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 = [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]
以下のコードを実行したところ次の出力が得られました。空欄【 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つ選択してください。
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つ選択してください。
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]
以下のコードの出力として正しいものを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"]
以下のコードの出力として正しいものを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]
以下のコードの出力として正しいものを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]
以下のコードの出力として正しいものを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]
以下のコードの出力として正しいものを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]]
RubyのArrayクラスのメソッドのうち、レシーバ自身を書き換えるものをすべて選択してください。
1.
delete
2.
sort
3.
concat
4.
clear
5.
select
以下のコードの出力として正しいものを1つ選択してください。
h = {"Ruby" => 1, "JS" => 2}
p h.size
1.
0
2.
1
3.
2
4.
4
5.
nil
組み込みクラスHashのメソッドを2つ選択してください。
1.
each
2.
each_index
3.
each_values
4.
each_pair
以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。
コード
h1 = {"Ruby" => 1, "JS" => 2}
h1.【 1 】
p h1
出力
{}
1.
clear
2.
delete
3.
destroy
4.
delete_all
5.
remove
以下のコードを実行したところ、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 】に入る適切な記述を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 }
以下のコードを実行したところ次の出力が得られました。空欄【 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
以下のコードを実行したところ、Hashと出力されました。空欄【 1 】に入る適切な記述をすべて選択してください。
h = 【 1 】
p h.class
1.
[]
2.
{}
3.
Hash.new
4.
Hash[]
5.
Hash{}
以下のコードの出力として正しいものを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++"}
以下のコードの出力として正しいものを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++"}
以下のコードの出力として正しいものを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つ選択してください。
h = {"Ruby" => 1, "PHP" => 2}
p h.member?("PHP")
1.
2
2.
false
3.
true
4.
"PHP"
5.
["PHP", 2]
以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。
コード
h = {"Ruby" => 1, "JS" => 2}
p 【 1 】
出力
[1, 2]
1.
h.value
2.
h.values
3.
h.fetch
4.
h.select
以下のコードの実行結果として正しいものを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 】に入る適切な記述を1つ選択してください。
コード
h = {"Ruby" => 1, "Perl" => 2}
p h.【 1 】
出力
["Ruby", "Perl"]
1.
key
2.
keys
3.
value
4.
values
以下のコードを実行したところ次の出力が得られました。空欄【 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
ハッシュを生成するコードとして正しいものを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]
-
以下のコードの出力として正しいものを1つ選択してください。
h = {"Ruby" => 1, "PHP" => 2}
p h.value?("PHP")
1.
2
2.
"PHP"
3.
false
4.
true
5.
[2]
組み込みクラスHashのメソッドではないものを2つ選択してください。
1.
remove
2.
replace
3.
shift
4.
clear
5.
delete_all
以下のコードを実行したところ次の出力が得られました。空欄【 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++")
以下のコードの出力として正しいものを1つ選択してください。
h = {"Ruby" => 1, "PHP" => 2, "C++" => 3}
p h.fetch("Ruby")
1.
0
2.
1
3.
true
4.
["Ruby", 1]
5.
{"Ruby"=>1}
以下のコードを実行したところ、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")
以下のコードの出力として正しいものを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}
以下のコードの出力として正しいものを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"]
以下のコードの出力として正しいものを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}
以下のコードの出力として正しいものを1つ選択してください。
h1 = {"Ruby" => 1, "JS" => 2}
h2 = h1
h1 = nil
p h2
1.
{"Ruby"=>1, "JS"=>2}
と出力される
2.
nil
と出力される
3.
{}
と出力される
4. 例外が発生する
以下のコードの出力として正しいものを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}
以下のコードの出力として正しいものを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 】に入る適切な記述を1つ選択してください。
コード
h = {:a => 1, :b => 2}
h.shift
h.shift
p h.【 1 】
出力
true
1.
empty?
2.
include?
3.
blank?
4.
nil?
RubyのHashクラスのメソッドのうち、レシーバ自身を書き換えるものを2つ選択してください。
1.
merge
2.
update
3.
delete
4.
fetch
5.
reject
以下のコードの出力として正しいものを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}
以下のコードの出力として正しいものを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}
RubyのHashクラスに存在しないメソッドをすべて選択してください。
1.
merge
2.
pop
3.
shift
4.
unshift
5.
filter
以下のコードを実行したところ次の出力が得られました。空欄【 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 }
以下のコードの実行結果として正しいものを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. 例外が発生する
以下のコードを実行したところ次の出力が得られました。空欄【 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つ選択してください。
h = {"Ruby" => 1, "Perl" => 2, "C++" => 1}
p h.values_at(1)
1.
"Ruby"
2.
["Ruby"]
3.
nil
4.
[nil]
5.
["Ruby", "C++"]
以下のコードの出力として正しいものを1つ選択してください。
h = {1 => "C++", 2 => "C++", 3 => "Ruby"}
p h.fetch("C++", 3)
1.
"C++"
2.
2
3.
"Ruby"
4.
3
5.
false
RubyのHashクラスのメソッドで、レシーバ自身を書き換えるものを2つ選択してください。
1.
invert!
2.
merge!
3.
select!
4.
delete!
5.
clear!
Fileクラスのメソッドの中で、ファイルを開くメソッドとして正しいものをすべて選択してください。
1.
new
2.
read
3.
touch
4.
open
5.
show
6.
view
以下のコードを実行したところ、ファイル「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
FIleクラスのメソッドの中で、ファイルを削除するものを1つ選択してください。
1.
delete
2.
rm
3.
remove
4.
destroy
5.
kill
以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。
コード
File.【 1 】("/Users/guest/test.rb")
出力
/Users/guest
1.
dir
2.
dirname
3.
extname
4.
split
5.
path
以下のコードを実行したところ次の出力が得られました。空欄【 1 】に入る適切な記述を1つ選択してください。
コード
puts File.【 1 】("/Users", "guest")
出力
/Users/guest
1.
compact
2.
concat
3.
join
4.
combine
5.
append
以下のコードを実行したところ、test.rbと出力されました。空欄【 1 】に入る適切な記述を1つ選択してください。
puts File.【 1 】("/Users/guest/test.rb")
1.
name
2.
filename
3.
extname
4.
basename
5.
shortname
コードの空欄【 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
次のコードは、指定されたファイルを開き、Ruby on Railsという文字列を書き込みます。コードの挙動として正しいものをすべて選択してください。
File.open("sample.txt", "w") do |f|
f.write("Ruby on Rails")
end
1. 指定されたファイルが存在していれば、ファイル内容を空にしてから書き込む。
2. 指定されたファイルが存在していれば、ファイル内容の末尾から書き込む。
3. 指定されたファイルが存在していない場合、エラーが発生する。
4. 指定されたファイルが存在していない場合、ファイルを作成してから書き込む。
以下のコードを実行したところ、カレントディレクトリ内のファイル「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つ選択してください。
puts File.extname("/Users/guest/test.rb")
1.
test
2.
rb
3.
.rb
4.
test.rb
以下のコードの出力として正しいものを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
カレントフォルダにファイル「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
以下のコードの実行結果として正しいものを**2つ **選択してください。
File.open("sample.txt", "a") do |f|
f.write("Ruby Practice")
end
1. 指定されたファイルが存在していれば、ファイル内容を空にしてから書き込む。
2. 指定されたファイルが存在していれば、ファイル内容の末尾から書き込む。
3. 指定されたファイルが存在していない場合、エラーが発生する。
4. 指定されたファイルが存在していない場合、ファイルを作成してから書き込む。
FIleクラスのメソッドの中で、指定されたパスを絶対パスに展開するものを1つ選択してください。
1.
expath
2.
exfile
3.
abs_path
4.
abs_file
5.
expand_path
6.
expand_file
以下のコードの実行結果として正しいものを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. 例外が発生する
以下のコードを実行したところ、ファイル「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+"
以下のコードの実行結果として正しいものを1つ選択してください。なお、カレントディレクトリにはファイル「1.txt」が存在し、ファイル内にはABCという文字列が書かれているものとします。
File.open("1.txt") do |f|
puts f.write("XYZ")
end
1.
ファイルの内容は文字列ABC
のまま変わらない
2.
ファイルの内容が文字列XYZ
に変わる
3.
ファイルの内容が文字列ABCXYZ
に変わる
4. ファイルの内容が空の文字列に変わる
5. エラーが発生する
コード実行後のファイル「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つ選択してください。なお、カレントディレクトリ内にはファイル「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
以下のコードのうち、実行すると例外が発生するものをすべて選択してください。なお、カレントディレクトリ内にはファイル「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
以下のコードの出力として正しいものを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"]
Fileクラスのメソッドについて述べた次の文章のうち、内容が正しいものをすべて選択してください。
1. deleteメソッドはファイルを削除する。指定したファイルが元々存在しない場合は何もしない。エラーは発生しない。
2. deleteメソッドはファイルを削除する。指定したファイルが元々存在しない場合はエラーが発生する。
3. renameメソッドはファイルの名前を変更する。リネーム先のファイルが存在する場合はファイルを上書きする。エラーは発生しない。
4. renameメソッドはファイルの名前を変更する。リネーム先のファイルが存在する場合は何もしない。エラーは発生しない。
5. renameメソッドはファイルの名前を変更する。リネーム先のファイルが存在する場合はエラーが発生する。
以下のコードの出力として正しいものを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
以下のコードの実行結果として正しいものを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. 例外が発生する
以下のコードは、ファイル「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
以下のコードの出力として正しいものを1つ選択してください。
File.open("test.txt") do |f|
puts f.atime
end
1. ファイルの最終更新日時が出力される
2. ファイルの最終アクセス日時が出力される
3. ファイルの状態が変更された日時が出力される
4. ファイルが作成された日時が出力される
以下のコードの実行結果として正しいものを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++
以下のコードを実行したところ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つ選択してください。なお、カレントディレクトリ内にはファイル「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"
次の文は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 】に入る適切な記述をすべて選択してください。なお、コード実行前・後のファイル「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+"
以下のコードの実行結果として正しいものを1つ選択してください。
コード
puts File.join("/Users", "/guest", "1.rb")
1.
/Users/guest/1.rb
と出力される
2.
//Users//guest/1.rb
と出力される
3.
/Users/guest1.rb
と出力される
4. 例外が発生する
以下のコードの出力として正しいものを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.
"."
以下のコードの出力として正しいものを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
以下のコードを