Buscar

aula 02

Prévia do material em texto

09/11/2018 EPS
http://estacio.webaula.com.br/Classroom/index.html?id=2200085&classId=982800&topicId=2652602&p0=03c7c0ace395d80182db07ae2c30f034… 1/5
CCT0753_EX_A2_201708105212_V1
 
 
 
 ESTRUTURA DE DADOS 2a aula
 Lupa 
Vídeo
 
PPT
 
MP3
 
 
Exercício: CCT0753_EX_A2_201708105212_V1 02/10/2018 11:48:58 (Finalizada)
Aluno(a): BRUNO EUFRASIO ALVES 2018.3 EAD
Disciplina: CCT0753 - ESTRUTURA DE DADOS 201708105212
 
 
 1a 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 .
void troca (int x, int y){
 int tmp;
 tmp = y;
 y = x;
 x = tmp;
 }
int main( ) {
 int a = 13, b = 10;
 troca( a, b );
 cout<<"Valores: "<< a<<"\t"<< b<<< endl;
 system("pause");
 }
Valores: 13 13
Valores: 31 01
 Valores: 13 10
Valores: 10 13
Valores: 10 10
 
 
Explicação:
Acompanhando passo a passo a execução do trecho dado temos :
void troca (int x, int y){
 int tmp;
 tmp = y;
 y = x;
 x = tmp;
 }
int main( ) {
 int a = 13, b = 10;
 troca( a, b );
 cout<<"Valores: "<< a<<"\t"<< b<<< endl;
 system("pause");
 }
A execução começa pela main e os valores 13 e 10 são passados para a função na chamada em troca(a,b);
Ao iniciar a execução em troca, temos que x recebe 13 e y recebe 10. Mas x e y são parâmetros passados por valor então, nada
ocorrerá com a e b na main. ASsim, após a função terminar sua execução e voltarmos para a main temos a seguinte impressão na
09/11/2018 EPS
http://estacio.webaula.com.br/Classroom/index.html?id=2200085&classId=982800&topicId=2652602&p0=03c7c0ace395d80182db07ae2c30f034… 2/5
tela :
Valores : 13 10
 
 
 
 2a Questão
Considere a função abaixo:
int func (int a, int& b){
 a = b - a;
 b = a * 2;
 a = b * 2;
 return a;
}
Considere o seguinte código na função main:
 int x = 2, y = 3, z;
 z = func (x, y);
 cout << x << "; " << y << "; " << z;
O que será impresso?
1; 2; 4
4; 2; 4
1; 3; 1
 2; 2; 4
2; 2; 1
 
 
Explicação:
a recebeu o valor de x que era 2
b recebeu 3, a partir de y, que foi passado por referência.
 
Executando a função, passo a passo, tem-se :
a recebeu 1
 b recebeu 2
 a recebeu um novo valor, que é 4.
Daí a função retorna o valor de a, 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.
 Daí, na tela será impresso : 2; 2; 4
 
 
 
 3a Questão
Considere a função Adivinhe , n = 4 e que X é formado pela sequência "algoritmo". Assinale a opção que corretamente mostra o
vetor Y ao fim da execução da função Adivinhe.
void Adivinhe (char X[ ], char Y [ ], int n) {
 int i, j;
 j = 0;
 for ( i = n; i >= 0; i--)
 {
 Y[j] = X[i];
 j++;
 }
09/11/2018 EPS
http://estacio.webaula.com.br/Classroom/index.html?id=2200085&classId=982800&topicId=2652602&p0=03c7c0ace395d80182db07ae2c30f034… 3/5
 Y[j] = '\0';
}
 Ocorre erro, pois a função, que é do tipo void, não retorna o vetor Y.
algo
algor
ogla
 rogla
 
 
Explicação:
Não há outra opção, pois a questão é objetiva. Vejamos passo a passo :
X armazena "algoritmo" e Y será gerado.
j i
0 4
1 3
2 2
3 1
4 0
5 -1 ... falha o teste i >= 0
A cada rodada do loop temos, considerando os valores de j e i acima, as seguintes atribuições :
Y[0] recebe X[4], que é 'r'
Y[1] recebe X[3], que é 'o'
Y[2] recebe X[2], que é 'g'
Y[3] recebe X[1], que é 'l'
Y[4] recebe X[0], que é 'a'
Y[5] recebe '\0'
Daí, Y será rogla
 
 
 
 4a Questão
Assinale a alternativa que apresenta duas formas de passagem de parâmetros para uma rotina ou função:
Por inferência e por valor.
Por teste e por reforço.
 Por valor e por referência
Por memória e por disco.
Por reforço e por referência.
 
 
Explicação:
Questão super objetiva. Só pode ser por valor e por referência.
Gabarito Coment.
 
 
 
 5a Questão
As variáveis em programação são utilizadas para armazenar um valor de determinado tipo em um espaço reservado na memória.
Em algumas linguagens de programação podemos declarar, ou seja, reservar um espaço na memória, fora do escopo da função
principal, e fora do escopo de qualquer outra função. Ao fazer a declaração desta forma estamos declarando uma variável do tipo:
09/11/2018 EPS
http://estacio.webaula.com.br/Classroom/index.html?id=2200085&classId=982800&topicId=2652602&p0=03c7c0ace395d80182db07ae2c30f034… 4/5
 Global
Inteiro
Constante
Local
Real
Gabarito Coment.
 
 
 
 6a Questão
 Assinale a opção CORRETA. O protótipo da função que permitirá calcular o volume de um paralelepípedo com medidas a, b e c de
acordo com o trecho da chamada : cout << "Volume = " << volume(a,b,c);
void volume (float , float);
void volume (float, float, float &);
float volume (float ; float ; float);
 float volume (float, float, float);
float volume (float, float);
 
 
Explicação:
Resposta única.
Pela chamada da função
cout << "Volume = " << volume(a,b,c);
temos que a função retorna um valor, que pelo enunciado, vemos que é do tipo float. Há ainda os valores de a, b e c que são
medidas de uma figura geométrica. Logo, a, b e c são do tipo float.
Como protótipo é uma declaração temos :
tipo de retorno da função seguido do seu nome seguido de parênteses e dentro dos parênteses, temos os tipos das variáveis
que estavam na chamada da função.
Logo : float volume(float, float, float); 
Note a vírgula para separar os tipos e o ponto e vírgula ao final.
 
 
 
 
 7a Questão
Informe qual deverá ser a saída do programa abaixo: 
 
#include 
void func(int *x) 
{ 
 do{ 
 cout << *x << " "; 
 (*x)--; 
 }while(*x>0); 
} 
 
main() 
{ 
 int x=5; 
 func(&x); 
 cout << x; 
 system("pause"); 
} 
5 3 4 2 1 4
5 4 3 2 1 6
 5 4 3 2 1 0
 5 3 4 2 1 0
5 4 3 2 1 5
09/11/2018 EPS
http://estacio.webaula.com.br/Classroom/index.html?id=2200085&classId=982800&topicId=2652602&p0=03c7c0ace395d80182db07ae2c30f034… 5/5
 
 
 
 8a Questão
Considere a função abaixo: 
int func (int a, int &b) {
a = b - a;
b = a * 2;
a = b * 2;
return a;
}
Considere também o seguinte trecho de código no main :
int x=2, y=3, z;
z = func (x,y);
cout << x << "; " << y<< "; " << z;
Após a execução do cout, seria impresso:
 2; 2; 4
1; 2; 4
4; 2; 4
2; 2; 1
1; 3; 1
 
 
Explicação:
Começando a execução pela main, temos que x recebe 2 e y recebe 3.
Chamando a função, são passados os valores 2 e 3, respectivamente para a e b. Note que b é passado por referência.
Dentro da função tem-se o seguinte :
a recebe 1, depois b recebe 2 e então, novamente, a é alterado e recebe 4. Daí, o valor de a igual a 4 é retornado para a main e é
atribuído a z.
Voltando para a main, temos que x não mudou, ficando igual a 2. Temos ainda que z recebeu 4, o valor retornado pela função e
finalmente, y foi alterado para 2.
Portanto, foi impresso 2;2;4, pois foram impressos os valores de x, y e z, respectivamente.

Continue navegando