Considere o seguinte programa C esquemático:
void main()
{
int a, b, c;
...
}
void fun1()
{
int b, c, z;
...
}
void fun2()
{
int c, y, z;
...
}
void fun3()
{
int x, y, z;
...
}
Dadas as seguintes sequências de chamada e supondo-se que seja usado o escopo dinâmico, quais variáveis são visíveis durante a execução da última função chamada? Inclua, em cada variável visível, o nome da função em que ela foi definida
main
chama fun1
; fun1
chama fun2
; fun2
chama fun3
.main
chama fun1
; fun1
chama fun3
.main
chama fun2
; fun2
chama fun3
; fun3
chama fun1
.main
chama fun3
; fun3
chama fun1
.main
chama fun1
; fun1
chama fun3
; fun3
chama fun2
.main
chama fun3
; fun3
chama fun2
; fun2
chama fun1
.
a. main
chama fun1
; fun1
chama fun2
; fun2
chama fun3
.
x
, y
e z
de fun3
; c
de fun2
; b
de fun1
; a
de main
(y
e z
de fun2
; c
e z
de fun1
; b
e c
de main
estão ocultos)
b. main
chama fun1
; fun1
chama fun3
.
x
, y
e z
de fun3
; b
e c
de fun1
; a
de main
(z
de fun1
; b
e c
de main
estão ocultos)
c. main
chama fun2
; fun2
chama fun3
; fun3
chama fun1
.
b
, c
e z
de fun1
; x
e y
de fun3
; a
de main
(z
de fun3
; c
, y
e z
de fun2
; b
e c
de main
estão ocultos)
d. main
chama fun3
; fun3
chama fun1
.
b
, c
e z
de fun1
; x
e y
de fun3
; a
de main
(z
de fun3
; b
e c
de main
estão ocultos)
e. main
chama fun1
; fun1
chama fun3
; fun3
chama fun2
.
c
, y
e z
de fun2
; x
de fun3
; b
de fun1
; a
de main
(y
e z
de fun3
; c
e z
de fun1
; b
e c
de main
estão ocultos)
f. main
chama fun3
; fun3
chama fun2
; fun2
chama fun1
.
b
, c
e z
de fun1
; y
de fun2
; x
de fun3
; a
de main
(c
e z
de fun2
; y
e z
de fun3
; b
e c
de main
estão ocultos)