Você está na página 1de 6

Fechar

Tipo de Avaliação: AV

Professor: ANITA LUIZA MACIEL LOPES Turma: 9001/AA

1a Questão (Ref.: 201311078367) Pontos: 0,5 / 1,5

Os agentes Leo e Lia receberam sequências de números de seus contatos. Para


saberem qual o próximo passo da missão, precisam descobrir que números se repetem
nas sequências recebidas por cada um.

Faça uma função que receba dois vetores v e w de inteiros como parâmetros e gere um vetor z,
resultante da interseção entre v e w.

Protótipo da função :

bool intersecao(int v[ ], int w[ ], int z [ ], int nv , int nw , int &n);

onde nv: quantidade de elementos em v

nw : quantidade de elementos em w

n : quantidade de elementos no vetor z

Note :
 Inicialmente n vale zero.
 Deverá ser retornado true (sucesso na interseção) ou false (fracasso na interseção).

Resposta: bool intersecao(int v[], int w[], int z[], int nv, int nw, int &n){ bool teste; int x, i; n = 0; for (i = 0; i
< nv; i++){ teste = false; for (x = 0; x < nw; x++){ if (v[i] == w[x]){ teste = true; break; } if (teste = false)
z[n++] = v[i]; } } if (n > 0) return true; else return false; }

Gabarito:

bool intersecao(int v[], int w[], int inter[], int nv , int nw , int &n) {

bool achou = false;

for (int i = 0; i < nv; i++)

for (int j = 0; j < nw; j++)

if (v[i] == w[j]) {

inter[n] = v[i];

achou = true;
n++;

return achou;

2a Questão (Ref.: 201311252522) Pontos: 0,0 / 1,5

Listas encadeadas são estruturas cujos nodos são alocados dinamicamente, isto é em tempo de
execução, na medida em que se necessite de mais espaço. Sendo um nodo representado por:

struct elemento{
string nome;
int idade;
elemento *prox;
};

Escreva em linguagem C++ uma função de nome criaNodo( ), que crie um novo nodo para ser inserido
no final da lista, e forneça um ponteiro com o endereço do nodo criado.

Resposta: elemento * criaNodo(){ elemento el = new elemento; el.prox = null; return el; }

Gabarito:
elemento * criaNodo ( )
{
elemento *p=new elemento;
p->prox=null;
return p;
}

3a Questão (Ref.: 201311252482) Pontos: 0,0 / 0,5

As estruturas de dados podem ser caracterizadas como sendo uma forma organizada de armazenar
dados ou informações na memória, de modo a otimizar o acesso a estes. Muitas vezes existem
algoritmos de manipulação dados associados a estas estruturas. Verifique as seguintes sentenças:

I-Filas são estruturas que recuperam os dados na ordem direta em que estes foram armazenados.

II-As Pilhas são estruturas que recuperam os dados na ordem reversa em que estes
foram armazenados.

III-As Pilhas são estruturas que recuperam os dados na ordem direta em que estes
foram armazenados.

IV-As Filas são estruturas que recuperam os dados na ordem reversa em que estes
foram armazenados.

Marque a alternativa CORRETA:

Todas as alternativas estão corretas.


As alternativas I e II estão corretas
As alternativas I e III estão corretas.
As alternativas II e IV estão corretas.
As alternativas III e IV estão corretas.

4a Questão (Ref.: 201311041795) Pontos: 0,0 / 0,5

Analise as seguintes afirmações: I. Na Passagem por Referência, o parâmetro que vai ser passado na chamada
da função deve ser uma variável, de tal forma que uma alteração de valor neste parâmetro também altera a
variável correspondente. II. Uma recursão consiste em uma função chamar ela mesma com argumentos sempre
do mesmo valor. III. Considerando-se o escopo das variáveis, é correto afirmar que uma variável é dita global
quando a sua passagem no momento da chamada de uma função se dá tanto por valor quanto por referência.
Uma variável é dita local quando esta passagem se dá apenas por valor. Indique a opção que contenha todas as
afirmações verdadeiras.

somente a alternativa I.
I e II.
I e III.
II e III.
somente a alternativa e II.

5a Questão (Ref.: 201311252492) Pontos: 0,5 / 0,5

Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos, geralmente,
agrupados sob uma lógica e associados por um nome.
Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a definição de
uma estrutura como:

struct aluno {
string nome;
float nota;
};

Suponha ainda que exista um vetor desta estrutura, definido como:


aluno vet [ 100];

Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo elemento deste
vetor.

vet[10].nota=5.7;
aluno.vet[10].nota=5.7;
aluno.vet[10]=5.7;
vet[10].aluno.nota=5.7 ;
vet[10]=aluno.5.7;

6a Questão (Ref.: 201311050140) Pontos: 0,0 / 0,5

Analise o seguinte trecho de algoritmo de ordenação de dados, cujos elementos estão dispostos em um vetor de
nome v com n elementos.
...

int i, j, aux;

for (j = 1; j < n; j++)

for (i=j; i > 0 && v[i-1]> v[i]; i--) {

aux = v[i-1];

v[i-1] = v[i];

v[i] = aux;

...

Assinale o método ao qual o trecho de algoritmo pertence.

Bolha
Inserção
Quicksort
Heapsort
Seleção

7a Questão (Ref.: 201311252499) Pontos: 0,0 / 0,5

As estruturas de dados são utilizadas para manter dados ou informações organizados na memória, o que
possibilita a otimização do uso destes dados. Porém, as estruturas guardam características especiais na
manipulação destes dados, assim deve-se escolher a estrutura certa ou mais adequada para uma determinada
aplicação. Portanto marque a opção que representa a melhor estrutura, quando se tem como requisitos
principais o acesso aleatório aos dados e alocação destes de forma contínua na memória.

Lista Sequencial
Fila Sequencial
Pilha Encadeada
Lista Encadeada
Pilha Sequencial

8a Questão (Ref.: 201311255005) Pontos: 0,0 / 0,5

Considere uma pilha sequencial P com capacidade para n elementos.


Sabendo que P é do tipo Pilha definido a seguir, marque a opção que corretamente
implementa a operação de empilhamento, considerando que o topo da pilha recebeu -1 na
inicialização.

struct Pilha {
int v[n], topo;
};

void empilhar(Pilha &P, int valor) {


if (P.topo == n - 1)
cout << "Pilha cheia.";
else {
P.topo++;
P.v[P.topo] = valor;
}
}
void empilhar(Pilha &P, int valor) {
if (P.topo == n - 1)
cout << "Pilha cheia.";
else
P.v[P.topo] = valor;
}

void empilhar(Pilha P, int valor) {


if (P.topo == n - 1)
cout << "Pilha cheia.";
else {
P.topo++;
P.v[P.topo] = valor;
}
}
void empilhar(Pilha &P, int valor) {
if (topo == n - 1)
cout << "Pilha cheia.";
else {
topo++;
v[topo] = valor;
}
}
void empilhar(Pilha P, int valor) {
if (P.topo == n)
cout << "Pilha cheia.";
else {
P.topo++;
P.v[P.topo] = valor;
}
}

9a Questão (Ref.: 201311050200) Pontos: 1,0 / 1,0

Qual das alternativas a seguir pode definir uma estrutura de fila?

Entrada e saída de dados pelo início.


Entrada de dados pelo final e saída pelo início.
Entrada de dados pelo início e saída pelo final.
Entrada e saída de dados pelo final.
Entrada e saída de dados em qualquer local.

10a Questão (Ref.: 201311050242) Pontos: 1,0 / 1,0

O espaço necessário para a representação dos dados pode ser alocado à medida que se torne necessário,
através da alocação dinâmica. Uma estrutura armazenada através de encadeamento apresenta seus nodos
alocados em posições aleatórias na memória, e não lado a lado. Dessa forma, existem várias vantagens no uso
de representar os dados por encadeamento. Marque a alternativa correta que apresenta estas vantagens.

Previsão de espaço físico, estruturas complexas, procedimentos menos intuitivos.


Proteção de memória, transferência de dados, estruturas simples.
Compartilhamento de memória, maleabilidade e facilidade para inserção e remoção de componentes.
Transferência de dados, gerenciamento de memória e procedimentos menos intuitivos.
Acesso, representação, compartilhamento de memória.

Período de não visualização da prova: desde 19/08/2014 até 04/09/2014.

Você também pode gostar