Por favor, se eu estiver errado me corrija! =D
a) FALSO! O comando reject retorna um novo array com os itens do array original que atendem a condição. Já o comando reject! retorna o mesmo array eliminando os itens que não atendem a condição.
Fonte: http://ruby-doc.org/core-2.2.0/Array.html#method-i-reject
b) VERDADE!
O operador de compraração <=>, numa situação a <=>b, retorna 0 se a = b, retorna 1 se a > b e retorna -1 se a < b.
Fonte: https://www.tutorialspoint.com/ruby/ruby_operators.htm
c) FALSO! O comando any? retorna verdadeiro ou falso.
Fonte: http://ruby-doc.org/core-2.2.0/Enumerable.html#method-i-any-3F
d)FALSO! Os blocos de uma linha são delimitados por CHAVES {...} e não parênteses.
Fonte: http://rubylearning.com/satishtalim/ruby_blocks.html
e)Fiquei bem confuso com esse item. Encontrei um texto ( http://ruby-doc.org/core-2.3.1/Enumerable.html#method-i-inject ) explicando o funcionamento do comando.
Parece uma pegadinha por erro de tradução ou o fato dela estar incompleta. Na primeira linha diz: "Combines all elements of enum by applying a binary operation, specified by a block or a symbol that names a method or operator."
traduzindo de forma livre: "Combina todos os elementos da enumeração através da aplicação de uma operação binária, especificado por um bloco ou um símbolo que da nome a um método ou operador."
O comando realiza operações sucessivas em um enum e retorna o resultado.
Aqui também tem outra explicação: http://villesiltanen.com/blog/2014/11/06/rubys-inject-method-explained/