Buscar

teste conhecimento aula 02

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

CCT0753_EX_A2_200801097536_V1
ESTRUTURA DE DADOS
2a aula
Lupa
Vídeo PPT MP3
Exercício: CCT0753_EX_A2_200801097536_V1 14/08/2018 11:21:21 (Finalizada)
Aluno(a): GABRIEL MARINHO PINHEIRO WEBLER 2018.3 EAD
Disciplina: CCT0753 - ESTRUTURA DE DADOS 200801097536
Ref.: 200802272203
1a Questão
Caso uma estrutura homogênea (vetor) seja passada como parâmetro para uma função, então:
Essa passagem é "por valor"
Todos os valores contidos no vetor são copiados para a função
Haverá um erro de compilação, pois vetores não podem ser parâmetros de funções
Essa passagem pode ser "por valor" ou "por referência"
Essa passagem é "por referência"
Explicação:
Quando o vetor é um parâmetro de uma função ele é sempre passado por referência, não havendo outra possibilidade. Não
ocorrerá erro, se o vetor for devidamente passado para a função.
Ref.: 200801202569
2a Questão
Assinale a opção certa.
 Quando não se escreve o protótipo de uma função ...
A chamada da função poderá ser feita em qualquer hipótese.
A definição da função deverá ser escrita, obrigatoriamente, após o programa principal.
A chamada da função não poderá ser feita em qualquer hipótese.
É preciso definir a função antes do programa principal.
O programa não funcionará de forma alguma.
Ref.: 200802291493
EPS http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_s...
1 of 6 14/08/2018 12:46
3a Questão
Considere o trecho de um programa escrito em C++ : 
int func1 (int n1, int n2) {
 int soma=0;
 for ( ; n1 < n2 ; n1 += 2) {
 soma += n1;
 }
 return soma;
}
main() {
 cout << func1(1.20);
}
Marque a opção correta que mostra o que é impresso na tela.
90
100
80
104
102
Explicação:
int func1 (int n1, int n2) {
 int soma=0;
 for ( ; n1 < n2 ; n1 += 2) {
 soma += n1;
 }
 return soma;
}
main() {
 cout << func1(1,20);
}
Fazendo passo a passo :
n1 n2 soma
1 20 0
3 1
5 4
7 9
9 16
11 25
13 36
15 49
17 64
19 81
21 ... Teste dará falso 100
EPS http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_s...
2 of 6 14/08/2018 12:46
Retorna o valor 100 que é impresso na main.
Ref.: 200801937433
4a Questão
O que será mostrado na tela pelo programa abaixo ? 
#include < iostream >
using namespace std;
int a,b;
void dobro(int x){ //x passado por valor
 x=2*x;
}
int triplo(int y){ //y passado por valor
 return 3*y;
}
void altera(int x, int &y) { //x passado por valor e y passado por referencia
 x=x+a;
 y=x+b;
} 
 
int main (){
 a=2;
 b=3;
 dobro(a);
 b=triplo(b);
 altera(a,b);
 cout<< a << " e " << b << endl;
}
2 e 13
4 e 12
4 e 9
2 e 9
9 e 16
Explicação:
Executando o programa, passo a passo, temos :
Na main, a recebe 2 e b recebe 3. Note que a e b são variáveis globais.
Daí, ainda na main, a função dobro é chamada. Ao executar dobro, temos que o valor 2 é passado e x (local à dobro) recebe 2 *
2, que dá 4.
Ao terminar a função dobro, volta-se para a main, mas o valor de a passado não mudou, continuando 2.
Após a execução de dobro, a função triplo é chamada na main e é passado o valor de b, que é 3. Iniciando a execução da
função triplo, temos que y recebe 3 e a função retorna 3 * 3, que é 9. Voltando para a main, temos que b recebe o valor
retornado pela função, que é 9.
Até este ponto, temos que a vale 2 e b mudou para 9.
Em seguida, a função altera é chamada e são passados 2 e 9, respectivamente, para x e y. Executando a função altera, temos
que x recebe 2+2, que dá 4 e y recebe 4+9, que dá 13. Como x é passado por valor e y por referência, temos que a mudará e b
mudará (ambas na main).
Então, voltando para main temos que a vale 2 e que b vale 13. Assim, será impresso na tela
 2 e 13
Ref.: 200802291505
EPS http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_s...
3 of 6 14/08/2018 12:46
5a Questão
Considere o trecho de um programa escrito em C++.
int func1 (int vtx[], int tam) {
 int soma=0;
 for (int i=0 ; i < tam; i++) {
 if (i % 2 !=0)
 soma += vtx[i]; 
 }
 return soma;
}
int main() {
 int vt[5] = {10,20,30,40,50};
 cout << func1 (vt,5);
}
Marque a opção correta que mostra o que é impresso na tela.
40
20
30
60
50
Explicação:
int func1 (int vtx[], int tam) {
 int soma=0; //inicializa soma com zero.
 for (int i=0 ; i < tam; i++) {
 if (i % 2 !=0) //testa se i é ímpar. Se for, acumula na soma o valor de vtx[i]
 soma += vtx[i]; 
 }
 return soma;
}
Fazendo um teste de mesa parcial ...
vetor tam soma i
{10, 20, 30, 40, 50} 5 0 0
20 1
2
E continua ... se vê que a função está somando os elementos do vetor que possuem índices ímpares. Logo, serão somados 20 e
40, que dará 60.
A soma 60 é retornada e impressa na main.
Ref.: 200803941279
EPS http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_s...
4 of 6 14/08/2018 12:46
6a 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: 10 13
Valores: 10 10
Valores: 13 10
Valores: 31 01
Valores: 13 13
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 tela :
Valores : 13 10
Ref.: 200802133169
7a Questão
Considere as seguintes afirmativas :
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".
As afirmativas corretas são:
Apenas III
Apenas II
Apenas I e II
EPS http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_s...
5 of 6 14/08/2018 12:46
Apenas I
Nenhuma está correta
Explicação:
Analisando cada afirmativa ...
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.
Portanto, não opção correta.
Ref.: 200801748957
8a Questão
Blocos únicos de códigos que realizam diversas tarefas distintas são de difícil manutenção. Portanto, utiliza-se a técnica da
modularização de programas, a fim de facilitar a implementação e a manutenção dos programas. Esta técnica tem como principal
elemento:
As funções
As Estruturas de Dados
Os Vetores
As Filas
Os Grafos
EPS http://simulado.estacio.br/bdq_simulados_exercicio_preview.asp?num_s...6 of 6 14/08/2018 12:46

Continue navegando

Outros materiais