Escolar Documentos
Profissional Documentos
Cultura Documentos
ESTRUTURA DE DADOS
Lupa
2a aula
PPT MP3
1a Questão
a = b - a;
b = a * 2;
a = b * 2;
return a;
int x = 2, y = 3, z;
cout << x << "; " << y << "; " << z;
2; 2; 4
1; 2; 4
2; 2; 1
1; 3; 1
4; 2; 4
Respondido em 23/05/2020 22:28:16
Explicação:
a recebeu 1
b recebeu 2
a recebeu um novo valor, que é 4.
Voltando para a main temos que z recebeu o retorno da função que é 4, x não se alterou, valendo 2 e y recebeu 4, devido a
alteração na função no parâmetro b, passado por referência.
simulado.estacio.br/alunos/?user_cod=2253538&matr_integracao=201901306054 1/6
25/05/2020 EPS
2a Questão
Nas linguagens C e C++, ao se declarar qualquer função, a especificação de tipo de dados que antecede o nome desta função
define
Explicação:
Por definição, antes do nome da função colocamos o tipo de dados retornado. Por exemplo, int, double, char ... Quando a função
nada retorna colocamos void.
3a Questão
void FUNC1()
int B = -100;
void FUNC2() {
int B = -200;
int main() {
int B = 10;
B = 20;
FUNC1();
B = 30;
FUNC2();
Valor de B: 10 Valor de B dentro da função FUNC1: -100 Valor de B: 20 Valor de B dentro da função FUNC2: -200 Valor de
B: 30
Valor de B: 10 Valor de B dentro da função FUNC1: -100 Valor de B: 20 Valor de B dentro da função FUNC2: -400 Valor de
B: 30
Valor de B: 10 Valor de B dentro da função FUNC1: -100 Valor de B: 10 Valor de B dentro da função FUNC2: -200 Valor de
B: 30
Valor de B: 10 Valor de B dentro da função FUNC1: -100 Valor de B: 20 Valor de B dentro da função FUNC2: -200 Valor de
B: 20
Valor de B: 10 Valor de B dentro da função FUNC1: -200 Valor de B: 20 Valor de B dentro da função FUNC2: -200 Valor de
B: 30
Respondido em 23/05/2020 22:38:42
Explicação:
A execução começa pela main. Na main, B recebe 10. E daí é impresso : Valor de B : 10
simulado.estacio.br/alunos/?user_cod=2253538&matr_integracao=201901306054 2/6
25/05/2020 EPS
DEpois, B muda e recebe 20.
Em seguida, é chamada a função FUNC1. Dentro desta função, existe um outro B que recebe -100. Então, é impresso :
A função termina e voltamos para a main, onde existe um outro cout que imprime o valor de B, que na main vale 20. Então, será
impresso na tela :
Valor de B : 20
Em seguida, ainda na main, B recebe 30 e logo depois, FUNC2 é chamada. Executando FUNC2 temos que um B, local à função,
recebe -200 e logo em seguida é impresso : Valor de B dentro da função FUNC2 : -200
Terminando a execução de FUNC2, voltamos para a main onde é impresso o valor do B (local à main) : Valor de B : 30
Valor de B : 10
Valor de B : 20
Valor de B : 30
4a Questão
Após uma análise das afirma vas acima, escolha a opção correta.
Gabarito
Coment.
5a Questão
Diga, para o trecho do programa abaixo, qual a opção que representa a saída em tela. Considere que o programa será compilado sem erros, e irá executar também
sem problemas.
int tmp;
tmp = *y;
*y = x;
x = tmp;
int main() {
simulado.estacio.br/alunos/?user_cod=2253538&matr_integracao=201901306054 3/6
25/05/2020 EPS
int a = 13, b = 10;
troca( a, &b );
system("pause");
Valores: 31 01
Valores: 13 10
Valores: 10 10
Valores: 10 13
Valores: 13 13
Respondido em 23/05/2020 22:40:09
Explicação:
A execução começa pela main. São passados o valor de a, que é 13 e o endereço de b, que vale 10. Em seguida, é chamada a
função troca e são passados o valor de a e o endereço de b.
Executando a função troca, x recebe 13 e *y recebe 10. Mas ocorre a troca, usando tmp como auxiliar. Então x recebe 10 e *y
recebe 13. Ao terminar a execução da função, voltamos para a main e temos a sem mudanças e b com a mudança ocorrida na
função. Note que x é um parâmetro passado por valor e y é um parÂmetro passado por referência.
6a Questão
I) Os vetores em C++, quando passados como parâmetros de funções, são obrigatoriamente passados "por valor" e não "por
referência".
II) Variáveis globais são um recurso adequado para troca de informações entre funções distintas.
III) Caso uma função necessite retornar mais de um valor ao programa que a chamou, deve fazê-lo usando parâmetros passados
"por valor".
Apenas I
Apenas I e II
Apenas II
Nenhuma está correta
Apenas III
Respondido em 23/05/2020 22:41:08
Explicação:
I. Falso. Em C++ os vetores passados como parâmetros são sempre passados por referência.
II. FAlso. Variáveis globais são uma péssima forma de usar recursos, comprometendo principalmente a manutenção do programa.
III. FAlso. A função poderá retornar explicitamente um valor com return, mas terá que passar o outro parâmetro por referência e
não por valor. Outra forma, será passar todos os parâmetros por referência.
7a Questão
simulado.estacio.br/alunos/?user_cod=2253538&matr_integracao=201901306054 4/6
25/05/2020 EPS
Quais valores serão impressos na tela quando o seguinte programa principal for executado?
int main()
{ int a = 18, b = 28;
inverte(a, b);
cout << a <<" e "<< b;
return 0; }
18 e 28
28 e 08
08 e 18
28 e 18
18 e 18
Respondido em 23/05/2020 22:42:38
Explicação:
Teste de Mesa
a b x y aux
18 28 //Na main()
18 28 18 28 //Quando a função é chamada x, recebe o endereço de a e y, o de b. Logo
acessam os mesmos endereços
18 28 18 28 18 //Na função, aux é declarada e inicializada com o valor de x
18 28 28 28 18 //Na função x = y; Deixará x com valor 28
18 28 28 18 18 //Na função y = aux; Deixará y com valor 18
Como a função é void, nada retorna e nem precisa porque os valores foram trocados pela função
misterio(...) que recebeu por passagem por referência.
8a Questão
Considere a função a seguir e a chamada da mesma efetuada no programa principal abaixo. Indique a opção que contem o que
será impresso.
x = y * 2;
y = ++x;
return x + y;
int main () {
cout << a << ", " << b << ", " << c;
4, 5, 9
3, 2, 8
3, 5, 8
2, 2, 9
2, 5, 10
Respondido em 23/05/2020 22:43:02
Explicação:
Ao iniciar a execução da função executar temos que x é passado por valor e y por referência. Iniciando a função temos :
Mas como y é passado por referência, a variável b na chamada da função foi alterada para 5. Nada, no entanto, ocorreu
com a na chamada da função, pois x foi passado por valor.
simulado.estacio.br/alunos/?user_cod=2253538&matr_integracao=201901306054 6/6