Questão de Programação — C++ (mais mais) — Quadrix 2023
Programação›C++ (mais mais)
Código
qg027834
Banca
Quadrix
Órgão
CRM-MG
Ano
2023
Nível
Superior
Cargo
CRM - MG - Analista de Sistemas
#include <iostream>#include <cctype>int main() {std::string texto;std:: cout << “Digite um texto: ”;std::getline(std::cin, texto);for (char& c : texto) {c = std::toupper(c);}std::cout << “Resultado: ” << texto << std::endl;return 0;}O programa em C++ acima tem a função de
Aconverter caracteres em maiúsculo.
Bconverter caracteres em minúsculo.
Cconcatenar caracteres.
Dcontar a quantidade de caracteres em um texto.
Eremover do texto somente os caracteres maiúsculos
Revelar gabarito e comentário▾
GabaritoA — converter caracteres em maiúsculo.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Conversão de caracteres em C++
Gabarito: letra A. O programa lê uma string, percorre cada caractere e aplica std::toupper(c), que converte o caractere para maiúsculo, modificando a string original. A função toupper da biblioteca <cctype> é a chave da questão.
O código apresentado é um exemplo clássico de manipulação de strings em C++. Vamos entender o fluxo:
Inclusão de bibliotecas: #include <iostream> para entrada/saída padrão e #include <cctype> para funções de classificação e conversão de caracteres.
Declaração da string: std::string texto; cria uma variável para armazenar o texto.
Entrada de dados: std::getline(std::cin, texto); lê uma linha inteira do usuário, incluindo espaços.
Laço de repetição: for (char& c : texto) é um range-based for loop (disponível desde C++11) que percorre cada caractere da string. O uso de char& (referência) é crucial: permite modificar diretamente o caractere na string original, sem precisar de uma cópia.
Conversão: c = std::toupper(c); chama a função toupper que, para cada caractere, retorna sua versão em maiúscula (se for uma letra minúscula). O resultado é atribuído de volta ao caractere c, que, por ser uma referência, altera a string texto.
Saída: std::cout << "Resultado: " << texto << std::endl; imprime o texto já convertido.
A função std::toupper é definida no cabeçalho <cctype> e, na versão mais comum, recebe um int (que representa um caractere) e retorna o caractere convertido para maiúsculo. Se o caractere não for uma letra minúscula, ele é retornado inalterado. É importante notar que, em C++, a versão de toupper da <cctype> opera com valores unsigned char ou EOF, e o comportamento com caracteres acentuados (como 'ç', 'ã') pode não ser o esperado, pois depende da codificação local. Para uma conversão robusta com caracteres acentuados, seria necessário usar std::towupper (para wchar_t) ou bibliotecas de internacionalização.
A pegadinha desta questão está em reconhecer que o laço modifica a string original e que a função toupper converte para maiúsculo, não para minúsculo. A alternativa B inverte o sentido, e as demais descrevem operações completamente diferentes.
1Lê a string
2Percorre cada caractere
3Converte para maiúsculo
4Imprime o resultado
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa descreve exatamente o que o código faz: converter caracteres em maiúsculo. O laço for (char& c : texto) percorre cada caractere, e c = std::toupper(c); transforma cada letra minúscula em maiúscula. O uso da referência char& garante que a alteração seja feita na string original, e o resultado é impresso. É a função toupper da biblioteca <cctype> que realiza a conversão.
Alternativa B — ❌ Incorreta
Afirma que o programa converte caracteres em minúsculo. Isso está errado: a função std::toupper converte para maiúsculo. A função que converteria para minúsculo seria std::tolower. A banca inverteu o sentido da conversão para confundir o candidato.
Alternativa C — ❌ Incorreta
Diz que o programa concatena caracteres. Concatenar significa juntar duas ou mais strings ou caracteres em uma só. O código não faz nenhuma junção; ele apenas lê uma string e a modifica caractere por caractere. Não há operador + ou método append sendo utilizado para concatenar.
Alternativa D — ❌ Incorreta
Afirma que o programa conta a quantidade de caracteres em um texto. Para contar caracteres, seria necessário usar o método length() ou size() da classe std::string e armazenar o resultado. O código não faz nenhuma contagem; ele apenas percorre a string para modificar cada caractere.
Alternativa E — ❌ Incorreta
Diz que o programa remove do texto somente os caracteres maiúsculos. O código não remove nenhum caractere; ele apenas converte os minúsculos em maiúsculos. Para remover caracteres, seria necessário usar funções como erase ou construir uma nova string sem os caracteres indesejados. A conversão não remove nada.