Questão de Programação — Tipos de dados — VUNESP 2025
Programação›Tipos de dados
Código
vu112269
Banca
VUNESP
Órgão
UNESP
Ano
2025
Nível
Superior
Cargo
V - - Assistente de Suporte Acadêmico III - Área de Atuação: Mecatrônica e Software de CAD
Na criação de programas de computador, utilizam-se variáveis para armazenar dados mais simples como números e textos, ou mais complexos como estruturas de dados (listas ou dicionários). As variáveis podem ser mutáveis ou imutáveis. Nesse contexto, é correto afirmar:
Aas variáveis mutáveis podem ter seu valor alterado, mas essa alteração causa necessariamente a alteração do endereço de memória.
Bas variáveis imutáveis podem armazenar variáveis mutáveis, possibilitando a alteração do conteúdo que a variável faz referência.
Cas variáveis mutáveis servem apenas para tipos simples, como números e textos, e não para estruturas de dados.
Das variáveis imutáveis somente são utilizadas para variáveis globais, impedindo que outras partes do programa possam alterá-las.
Eas variáveis mutáveis somente são utilizadas por linguagens dinâmicas em que o tipo da variável não é determinístico.
Revelar gabarito e comentário▾
GabaritoB — as variáveis imutáveis podem armazenar variáveis mutáveis, possibilitando a alteração do conteúdo que a variável faz referência.
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”.
Mutabilidade e Imutabilidade em Programação
Gabarito: letra B. Variáveis imutáveis (como tuplas) podem conter referências para objetos mutáveis (listas, dicionários), permitindo alteração do conteúdo referenciado, embora a variável imutável em si não possa ser modificada. Esse é um conceito central em linguagens como Python.
A questão testa o entendimento de mutabilidade e imutabilidade, especialmente como tipos imutáveis podem armazenar objetos mutáveis. A alternativa B descreve exatamente essa situação.
Característica
Variáveis Mutáveis
Variáveis Imutáveis
Exemplos típicos
Listas, dicionários, conjuntos
Tuplas, strings, inteiros
Alteração de conteúdo
Pode ser feita in-place (sem mudar endereço de memória)
Não pode ser alterada; reatribuição gera novo objeto
Capacidade de armazenar objetos do outro tipo
Podem armazenar objetos imutáveis
Podem armazenar objetos mutáveis (ex.: tupla com lista)
Relação com escopo
Não há relação com escopo global ou local
Não há relação com escopo global ou local
Relação com tipagem da linguagem
Usadas em linguagens com tipagem dinâmica e estática
Usadas em linguagens com tipagem dinâmica e estática
Mutabilidade: Mutável (Altera in-place (mesmo endereço), Ex.: listas, dicionários); Imutável (Reatribuição muda endereço, Ex.: inteiros, strings, tuplas); Tupla com lista (Tupla imutável, Lista interna mutável)
Alternativa A — ❌ Incorreta
Afirma que "a alteração do valor de uma variável mutável causa necessariamente alteração do endereço de memória". Isso é falso. Em linguagens como Python, objetos mutáveis (listas, dicts) podem ser modificados in-place sem que o endereço de memória mude. A alteração de endereço ocorre apenas para tipos imutáveis (ex.: ao reatribuir um inteiro). Portanto, o erro está no termo "necessariamente".
Alternativa B — ✅ Correta ⟵ GABARITO
Variáveis imutáveis (tuplas, strings, inteiros) podem armazenar referências para objetos mutáveis. Exemplo clássico: uma tupla contendo uma lista como elemento. A tupla em si não pode ser modificada, mas a lista interna (mutável) pode ter seu conteúdo alterado, e a alteração é refletida quando acessamos a tupla. A alternativa capta essa possibilidade: "possibilitando a alteração do conteúdo que a variável faz referência". É a definição correta.
Alternativa C — ❌ Incorreta
Afirma que variáveis mutáveis servem apenas para tipos simples (números e textos). Isso é falso: números e textos (strings) são imutáveis em Python e em muitas linguagens; listas, dicionários e conjuntos são exemplos de mutáveis e são usados para estruturas de dados complexas. A afirmação inverte o conceito.
Alternativa D — ❌ Incorreta
Diz que variáveis imutáveis são usadas apenas para variáveis globais. Não há relação entre imutabilidade e escopo global. Variáveis imutáveis podem ser declaradas localmente dentro de funções ou métodos. O conceito de escopo é independente da mutabilidade.
Alternativa E — ❌ Incorreta
Afirma que variáveis mutáveis são usadas apenas em linguagens dinâmicas (tipagem dinâmica). Isso é falso: linguagens estaticamente tipadas (Java, C++) também possuem objetos mutáveis (ex.: ArrayList, structs modificáveis). A mutabilidade não está restrita a linguagens dinâmicas.
PEGA ESSA DICA!
Para fixar, lembre-se: em Python, os tipos imutáveis incluem int, float, bool, string, tuple e frozenset. Os mutáveis incluem list, dict, set e bytearray. Uma variável nomeada como imutável pode referenciar um objeto mutável — a imutabilidade se aplica ao conteúdo direto da variável (a referência), não ao objeto referenciado.