Prévia do material em texto
Questão 1 Respondida Conforme Mizrahi (2008) o escopo de uma variável é definido pelas regiões (blocos) onde a variável pode ser utilizada e é nesta hora que surge o conceitos das variáveis globais e variáveis locais. Variáveis globais são aquelas declaradas no início de um algoritmo. São visíveis, ou seja, podem ser utilizadas no algoritmo principal e por todos as funções. As variáveis locais são aquelas declaradas no início de uma função. São visíveis, ou seja, podem ser utilizadas somente pela função onde foram declaradas. Observe o programa a seguir: #include <stdio.h>int fat (int n){ int res = 1; while (n > 1) { res = res * n; n--; } return res;}int main ( ){ int n, res; printf("Entre com o valor de n: "); scanf("%d", &n); res = fat(n+1) / (n+1); printf("Fatorial de %d = %d\n", n, res ); return 0;} Considerando o programa apresentado, avalie as afirmativas a seguir: I. O programa apresentado está errado pois a variável res foi declarada duas vezes, causando um erro de compilação. II. A função fat está escrita antes da função main ( ) porém, o programa começa sempre pela função main ( ) independentemente da quantidade de funções que possam ter antes do main ( ). III. Para a função fat, o parâmetro n funciona como uma variável local (ou seja, válida dentro da função apenas), juntamente com a variável res. IV. A função fat possui a variável n e a variável n recebe seu valor no instante da chamada da função dentro da função main ( ). É correto o que se afirma em: Apenas as afirmativas II, III e IV estão corretas. Apenas as afirmativas I, III e IV estão corretas. Apenas as afirmativas I, II e III estão corretas. Apenas as afirmativas I, II e IV estão corretas. As afirmativas I, II, III e IV estão corretas. Sua resposta Apenas as afirmativas II, III e IV estão corretas. A frase corretamente preenchida é: Apenas as afirmativas II, III e IV estão corretas. A função main e fat possuem ambas variáveis com o nome res, e que main possui uma variável chamada n, que é o nome do parâmetro da função fat. Apesar do mesmo nome, elas são variáveis diferentes. Para a função fat, o parâmetro n funciona como uma variável local (ou seja, válida dentro da função apenas), juntamente com a variável res. A diferença é que o parâmetro n recebe seu valor no instante da chamada. O programa sempre inicia sua execução pela função main. **************************************************************************** Questão 2 Respondida Podemos remover um elemento da lista ligada, porém é necessário ter certos cuidados. De acordo com Celes (2004), a função para remover um elemento é mais trabalhosa e complexa, e precisa de informações como parâmetros para remoção, o valor do elemento e a lista. Tendo como referência a remoção de elementos de lista, avalie as seguintes asserções e a relação proposta entre elas: I. Caso o primeiro elemento da lista seja o elemento a ser retirado, devemos atualizar o valor da lista com o ponteiro para o segundo elemento e assim, liberar o espaço alocado do elemento retirado. PORQUE II. Se o elemento a ser retirado da lista pela função estiver no meio da lista, o elemento anterior deve apontar para o elemento seguinte do qual será removido e, após isso, liberarmos a alocação do elemento removido. Agora assinale a alternativa correta. As afirmativas I e II são falsas. A afirmativa I é verdadeira e afirmativa II é falsa. A afirmativa I é falsa e afirmativa II é verdadeira. As afirmativas I e II são verdadeiras e a II é uma justificativa da I. As afirmativas I e II são verdadeiras, mas a II não é uma justificativa da I. Sua resposta As afirmativas I e II são verdadeiras e a II é uma justificativa da I. Resolução: As duas afirmativas são verdadeiras e a segunda complementa a primeira. O primeiro elemento da lista seja o elemento a ser retirado, deve atualizar o valor da lista com o ponteiro para o segundo elemento e assim, liberar o espaço alocado do elemento retirado. Se o elemento a ser retirado da lista pela função estiver no meio da lista, o elemento anterior deve apontar para o elemento seguinte do qual será removido, e após isso, liberarmos a alocação do elemento removido.