Questão nº 40
Questão de Tecnologia da Informação · FCC TRT-12 2023 (nº 40)
Considere a função em PHP abaixo que gera uma string aleatória formada por caracteres restritos a letras maiúsculas e números. O tamanho da string é passado como parâmetro e a string resultante tem essa quantidade de caracteres.
function geraStringAleatoria($tamanho) {
$caracteres = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$stringAleatoria = '';
for ($i = 0; $i < $tamanho; $i++) {
I
......
}
return $stringAleatoria;
}
Para que esta função, posteriormente, seja incluída em um código e testada em condições ideais, a lacuna I deve ser corretamente preenchida com:
- A
$stringAleatoria += $caracteres[random(1, strlen($caracteres))]; - B
$stringAleatoria .= $caracteres[rand(0, strlen($caracteres) - 1)];(alternativa correta) - C
$stringAleatoria = $caracteres[random(0, strlen($caracteres))]; - D
$stringAleatoria = $caracteres[srand(1, strlength($caracteres-1))]; - E
$stringAleatoria =. $caracteres[rand(0, strlen($caracteres) - 1)];
Resposta comentada
Gabarito Alternativa B
Para gerar um caractere aleatório de uma lista e adicioná-lo repetidamente a uma string, precisamos de uma função que gere um número aleatório (índice), usar esse índice para pegar um caractere da lista e, em seguida, anexar esse caractere à string final.
- (A) Incorreta: A função
random()não existe no PHP para gerar números aleatórios; o operador+=é para adição numérica, não concatenação de strings; e o intervalo de índices1astrlen($caracteres)está incorreto, pois índices de string começam em0. - (B) Correta: A função
rand(0, strlen($caracteres) - 1)gera um número aleatório dentro do intervalo correto de índices da string$caracteres(de0até o comprimento menos1). O operador.= é o correto para concatenar (adicionar) um caractere à string$stringAleatoria. - (C) Incorreta: A função
random()não existe no PHP; o operador=atribui um valor, sobrescrevendo a string em cada iteração, em vez de adicionar caracteres; e o índicestrlen($caracteres)estaria fora dos limites da string. - (D) Incorreta: A função
srand()é para inicializar o gerador de números aleatórios, não para gerar um número;strlength()é um erro de digitação (o correto éstrlen()); e$caracteres-1é uma operação inválida para strings. - (E) Incorreta: O operador
=.é sintaticamente incorreto no PHP; o correto para concatenação e atribuição é.=. Esta é uma armadilha da banca que testa a atenção ao operador de concatenação.
Fonte: FCC TRT-12 2023 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 003). Reproduzida para fins de estudo.