O escopo de uma variável é definido pelos blocos onde a variável pode ser utilizada. Variáveis declaradas no mesmo escopo precisam ter nomes diferentes, mas nomes podem ser "reaproveitados" em outros escopos.
#include #include 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 ); system("pause"); return 0; } Fonte: Disponível emAcesso.14.Ago.2018.
Neste contexto, julgue as afirmações que se seguem. I. 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, são variáveis diferentes. II. Para a função fat, o parâmetro n funciona como uma variável local, juntamente com a variável res. A diferença é que o parâmetro n recebe seu valor no instante da chamada. III. O programa sempre inicia sua execução pela função fat, que solicita a entrada de um valor para n. IV. A linha res = fat(n+1)/(n+1); chama a função fat. Como n=2, então o valor 3 é passado para a função, ou seja, esse valor é atribuido ao parâmetro fat, que começa a executar seu corpo. V. O fatorial de 3 é calculado e o valor 6 é atribuido à variável res. Neste caso o parâmetro n é utilizado como variável, o que é permitido pela linguagem C. É correto apenas o que se afirma em: Escolha uma: a. I, III,e IV. b. I, II e V. c. II e V. d. III e IV. e. I e III.
Lista de comentários
alternativa B) I, II e V