Questão nº 31

Questão de Tecnologia da Informação · FCC TRF4 2019 (nº 31)

FCC2019Técnico Judiciário - Área Apoio Especializado - Especialidade Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Dver comentário ↓

Considere o programa em pseudocódigo abaixo, que não apresenta erros.

```
var var1=1, var2=2: inteiro

funcao1()
inicio
var var1=100, var2=100: inteiro
imprima("Variaveis dentro da funcao1(): var1= ", var1, " var2=", var2)
fim

funcao2()
inicio
var1 = var1 +1;
var2 = var2 +2;
imprima("Variaveis dentro da funcao2(): var1= ", var1, " var2=", var2)
fim

inicio
imprima("Variaveis antes de chamar a funcao1(): var1= ", var1, " var2=", var2)
funcao1()
imprima("Variaveis depois de chamar a funcao1():var1= ", var1, " var2=", var2)
funcao2()
imprima("Variaveis depois de chamar a funcao2():var1= ", var1, " var2=", var2)
fim
```

O pseudocódigo, ao ser executado, imprimirá

Resposta comentada

Gabarito Alternativa D

O escopo de variáveis define a área do código onde uma variável existe e pode ser acessada. Variáveis declaradas no início do programa são globais e podem ser vistas e alteradas por qualquer parte do código; já as declaradas dentro de uma função são locais a ela, existem apenas enquanto a função executa e não afetam variáveis globais com o mesmo nome.

(A) Incorreta: A primeira linha do programa `var var1=1, var2=2: inteiro` inicializa as variáveis globais `var1` e `var2` com 1 e 2, respectivamente. Portanto, antes de qualquer chamada de função, elas valem 1 e 2, não 0 e 0.
(B) Incorreta: Dentro da `funcao1()`, são declaradas novas variáveis locais `var1=100` e `var2=100`. A função imprime os valores dessas variáveis locais, que são 100 e 100, não 1 e 2.
(C) Incorreta: A `funcao2()` não declara variáveis locais, então ela opera sobre as variáveis globais. Antes de `funcao2()` ser chamada, as variáveis globais `var1` e `var2` ainda valem 1 e 2 (pois `funcao1()` usou variáveis locais e não as alterou). Assim, `var1` se torna `1+1=2` e `var2` se torna `2+2=4`. A função imprimiria `var1=2 var2=4`. A armadilha aqui é confundir o escopo, imaginando que `funcao1()` alterou as variáveis globas para 100 e 100, o que não ocorreu.
(D) Correta: Após a `funcao1()` ser executada, as variáveis globais `var1` e `var2` permanecem com seus valores originais (1 e 2, respectivamente). Isso acontece porque a `funcao1()` declarou e utilizou suas próprias variáveis locais com os mesmos nomes, que são independentes das globais e são destruídas ao final da função, sem impactar as variáveis globais.
(E) Incorreta: Conforme explicado em (C), após a `funcao2()` ser chamada, as variáveis globais `var1` e `var2` terão seus valores alterados para 2 e 4, respectivamente.

Fonte: FCC TRF4 2019 Técnico Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho