Pular para o conteúdo principal

Questão de Programação — Tipos de dados — VUNESP 2025

ProgramaçãoTipos 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:
  1. 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.
  2. 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.
  3. Cas variáveis mutáveis servem apenas para tipos simples, como números e textos, e não para estruturas de dados.
  4. Das variáveis imutáveis somente são utilizadas para variáveis globais, impedindo que outras partes do programa possam alterá-las.
  5. 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

1Mutável
Altera in-place (mesmo endereço)
Ex.: listas, dicionários
2Imutável
Reatribuição muda endereço
Ex.: inteiros, strings, tuplas
3Tupla com lista
Tupla imutável
Lista interna mutável
Mutabilidade
LEVELsoulevel.com.br
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.

Gabarito: letra B

Link permanente: /questoes/vu112269