Buscar

Avaliação III - Linguagens de Programação e Estruturas de Dados

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 7 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 7 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

Prévia do material em texto

Disciplina: Linguagens de Programação e Estruturas de Dados (ADS12)
Avaliação: Avaliação Final (Objetiva) - Individual FLEX ( Cod.:513366) ( peso.:3,00)
Prova: 19292811
Nota da 
Prova: 10,00
Legenda: Resposta Certa Sua Resposta Errada 
1. A classe CountOccurrence escrita na linguagem Java tem por objetivo localizar e 
contar quantas ocorrências de um determinado valor existem em um conjunto 
predeterminado de valores, retornando a quantidade de vezes que um determinado 
valor se repete no conjunto.
public class CountOccurrence {
 public boolean hasValue(int searchValue, int[] array, int i) {
 if (i >= array.length)
 return false;
 
 if (array[i] == searchValue)
 return true;
 else
 return hasValue(searchValue, array, i + 1);
 }
 
 public int count(int countValue, int[] array, int i) {
 if (!hasValue(countValue, array, i) '' i >= array.length)
 return 0;
 
 int c = 0;
 if (array[i] == countValue)
 c++;
 
 c += count(countValue, array, i+1);
 return c;
 }
 
 public static void main(String[] args) {
 int[] array = {2, 3, 5, 6, 9, 7, 8, 8, 9};
 CountOccurrence co = new CountOccurrence();
 System.out.println(co.count(5, array, 0));
 }
}
Considerando o requisito proposto e o código apresentado, avalie as asserções a 
seguir e a relação proposta entre elas:
I- Para que o algoritmo funcione corretamente, deve-se alterar a linha 21, de 
c += count( countValue, array, i );
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE=
para
c += count(countValue, array, i + 1);
PORQUE
II- Da forma como o código está escrito, o código não compilará por estar chamando 
o mesmo método dentro dele indefinidamente.
Assinale a alternativa CORRETA:
 a) As duas asserções são proposições falsas.
 b) As duas asserções são proposições verdadeiras, mas a segunda não é uma 
justificativa correta da primeira.
 c) A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição 
falsa.
 d) A primeira asserção é uma proposição falsa, e a segunda, uma proposição 
verdadeira.
2. A alocação dinâmica de memória para armazenamento de objetos é uma das 
alternativas à utilização de vetores e matrizes, apresentando, entretanto, alguma 
complexidade adicional no que se refere à própria estrutura de armazenamento e 
busca. Considerando uma lista encadeada que faça uso da alocação dinâmica de 
memória, assinale a alternativa CORRETA:
 a) Não podemos afirmar que os elementos de uma lista encadeada estão colocados 
na memória de forma contígua.
 b) O último elemento da lista encadeada não é referenciado por nenhum dos 
anteriores, indicando o final da lista.
 c) Uma lista encadeada exige que se conheça inicialmente o número de objetos a 
serem alocados.
 d) O primeiro elemento de uma lista encadeada sempre possuirá uma referência para 
null, indicando os demais elementos da lista.
3. O algoritmo a seguir recebe um vetor v de números inteiros e rearranja esse vetor de 
tal forma que seus elementos, ao final, estejam ordenados de forma crescente. 
Considerando que nesse algoritmo há erros de lógica que devem ser corrigidos para 
que os elementos sejam ordenados de forma crescente, avalie as afirmativas a seguir:
I- A linha 04 deve ser corrigida da seguinte forma: for(i = 1; i < n - 1 ; i ++) 
II- A linha 08 deve ser corrigida da seguinte forma: while( j >= 0 && v[j] >chave)
III- A linha 10 deve ser corrigida do seguinte modo: v [ j + 1] = v [ j];
IV- a linha 13 deve ser corrigida do seguinte modo: v [ j - 1] = chave;
Assinale a alternativa CORRETA:
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE=
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE=
 a) As afirmativas I e II estão corretas.
 b) As afirmativas III e IV estão corretas.
 c) As afirmativas I e IV estão corretas.
 d) As afirmativas II e III estão corretas.
4. Estruturas de Dados (Data Structures) é o nome dado à organização de dados e 
algoritmos de forma coerente e racional de modo a otimizar o seu uso. De acordo 
com o modo como um conjunto de dados são organizados e como as operações são 
efetuadas sobre estes dados, pode-se solucionar de forma simples problemas 
extremamente complexos. Existem diversos modelos de estruturas de dados, sendo 
que os clássicos podem ser utilizados com sucesso na maioria dos casos. Sobre 
pilhas, lista e filas, classifique V para as sentenças verdadeiras e F para as falsas:
( ) As estruturas de dados pilhas, filas e listas armazenam coleções de itens. A 
característica que as distinguem é a ordem em que podem ser retirados os itens 
dessas coleções com relação à ordem em que foram inseridos.
( ) Considere que os itens A, B, C, D, E foram inseridos nessa ordem em uma 
pilha. Necessariamente, o último elemento a ser removido dessa pilha é o elemento 
E.
( ) Considere que os itens A, B, C, D, E foram inseridos nessa ordem em uma lista. 
Necessariamente, o primeiro elemento a ser removido dessa lista é o elemento A. 
( ) Considere que os itens A, B, C, D, E foram inseridos nessa ordem em uma fila. 
Necessariamente, o primeiro elemento a ser removido dessa fila é o elemento A.
Assinale a alternativa que apresenta a sequência CORRETA:
 a) V - V - F - F.
 b) V - F - F - V.
 c) F - F - V - V.
 d) F - V - V - F.
5. Os operadores são aplicados dentro dos algoritmos sempre que se quer fazer uma 
operação matemática, relacional ou lógica entre duas ou mais informações. Apesar 
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE=
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE=
de cada linguagem de programação empregar sua própria sintaxe para representar os 
operadores, a operação que eles representam e o resultado obtido não muda, o que 
facilita sua representação através dos algoritmos. Com relação aos operadores 
matemáticos, relacionais e lógicos, classifique V para as sentenças verdadeiras e F 
para as falsas:
( ) O operador DIV nos traz a parte inteira do resultado de uma divisão.
( ) Para x=5 e y=10, x MOD y retorna o valor 0.
( ) Em uma operação do tipo E, todos os operandos devem ser verdadeiros para que 
o resultado seja verdadeiro.
( ) A expressão "(4<=10) ou (5>8)" tem como resultado o valor FALSO.
( ) O operador <> serve para verificar se dois valores são diferentes.
Assinale a alternativa que apresenta a sequência CORRETA:
 a) V - F - V - F - V.
 b) F - V - F - V - F.
 c) V - V - F - V - V.
 d) V - F - V - F - F.
6. Estruturas de dados são objetos que armazenam dados de forma eficiente, ofertando 
ao usuário uma ordenação eficiente dos dados e buscas por meio de palavras-chave, 
por exemplo. Com relação a uma estrutura de dados LIFO, onde o último elemento a 
entrar é o primeiro a sair, assinale a alternativa CORRETA:
 a) Listas encadeadas.
 b) Vetores.
 c) Matrizes.
 d) Pilhas.
7. Os termos da sequência de Fibonacci são definidos por:
Fibonacci(0) = 0
Fibonacci(1) = 1
Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n-2)
Uma solução recursiva para o cálculo do i-ésimo termo da sequência é dada pela 
função apresentada na imagem a seguir. Sobre a execução recursiva dessa função, 
avalie as asserções a seguir:
I- O método recursivo é o mais eficiente para o cálculo do i-ésimo termo da 
sequência de Fibonacci.
PORQUE
II- Realiza duas chamadas por passo da recursão, cada uma mais simples do que a 
chamada original.
Assinale aalternativa CORRETA:
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE=
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE=
 a) A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição 
falsa.
 b) A primeira asserção é uma proposição falsa, e a segunda, uma proposição 
verdadeira.
 c) As duas asserções são proposições verdadeiras, mas a segunda não é uma 
justificativa correta da primeira.
 d) As duas asserções são proposições verdadeiras, e a segunda é uma justificativa 
correta da primeira.
8. Uma empresa deseja manter seu pequeno estoque em uma matriz, com quatro linhas 
por três colunas. Após o cadastro, o algoritmo deve permitir a busca por código. Crie 
um algoritmo que solicite valores e preencha uma matriz de ordem 4 x 3 (4 linhas 
por 3 colunas). Em seguida, o algoritmo deverá solicitar mais um valor para procurá-
lo na matriz. O algoritmo deverá informar, no fim, em que linha x coluna está o 
valor. Caso o código não for encontrado, enviar um aviso informando que o produto 
não está cadastrado.
Algoritmo busca_vetor;
var
mat : vetor [1..4,1..3] de real;
procurar : real;
l, c : inteiro;
encontrou : lógica;
início
Para l <- 1 até 4 faça
início
 Para c <- 1 até 3 faça
 início
 escreva('Valor: ');
 Leia(mat[l,c]);
 Fim;
 Fim;
escreva('Valor para busca: ');
Leia(procurar);
encontrou <- falso;
Se (not encontrou) então
início
 escreva('Não tem na matriz: ',procurar);
Fim;
Fim.
Baseado nessa solicitação e no código apresentado, analise as sentenças a seguir:
I- O algoritmo está correto e vai buscar um valor dentro do vetor.
II- O algoritmo não está selecionando um valor dentro do vetor.
III- O algoritmo está com a declaração de variáveis incorreto.
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE=
IV- O algoritmo solicita e armazena corretamente os valores.
Assinale a alternativa CORRETA:
 a) As sentenças II e IV estão corretas.
 b) As sentenças I, III e IV estão corretas.
 c) As sentenças I, II e III estão corretas.
 d) As sentenças II e III estão corretas.
9. As pilhas são estruturas de dados utilizadas para diversas finalidades na computação 
e na programação de computadores. Suas características são adequadas para a 
resolução de problemas em que há a necessidade de se empilhar informações, fazer o 
seu processamento e depois retirá-las da pilha. Sobre as características das estruturas 
de dados conhecidas como pilhas, classifique V para as sentenças verdadeiras e F 
para as falsas: 
( ) Uma das características da pilha é que os elementos são retirados na mesma 
ordem em que foram inseridos.
( ) As pilhas possuem essencialmente duas operações básicas: empilhar e 
desempilhar.
( ) As pilhas utilizam o princípio Last in - First out (LIFO) para a inserção e 
retirada de elementos.
( ) O nodo que realiza o controle da estrutura pilha é conhecido como TOPO.
Assinale a alternativa que apresenta a sequência CORRETA:
 a) F - F - V - F.
 b) V - V - F - V.
 c) F - V - V - V.
 d) V - F - F - V.
10.Escopo dinâmico: para as linguagens com escopo dinâmico, a vinculação das 
variáveis ao escopo é realizada em tempo de execução. Se uma variável é local ao 
bloco, então o uso da dada variável no bloco será sempre vinculado àquela local. 
Contudo, se a variável for não local, a sua vinculação depende da ordem de 
execução, a última vinculada na execução. A consequência disso é que, em um 
mesmo bloco de comandos, um identificador pode ter significados diferentes, e o 
programador precisa ter a ideia precisa de qual variável está sendo usada. Suponha 
que uma linguagem de programação tenha sido projetada com vinculação e 
verificação estáticas para tipos de variáveis, além de passagem de parâmetros por 
valor. Também é exigido pela especificação da linguagem que programas sejam 
compilados integralmente e que não é permitido compilar bibliotecas separadamente. 
Durante uma revisão da especificação da linguagem, alguém propôs que seja 
adicionado um mecanismo para suporte a variáveis com escopo dinâmico. Sobre a 
proposta de modificação da linguagem, analise as seguintes sentenças:
I- As variáveis com escopo dinâmico podem ser tratadas como se fossem parâmetros 
para os subprogramas que as utilizam, sem que o programador tenha que especificá-
las ou declarar seu tipo (o compilador fará isso). Assim, eliminasse a necessidade de 
polimorfismo e é possível verificar tipos em tempo de compilação.
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE=
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE=
II- Como diferentes subprogramas podem declarar variáveis com o mesmo nome 
mas com tipos diferentes, se as variáveis com escopo dinâmico não forem declaradas 
no escopo onde são referenciadas, será necessário que a linguagem suporte 
polimorfismo de tipos.
III- Se as variáveis dinâmicas forem declaradas tanto nos escopos onde são criadas 
como nos subprogramas em que são referenciadas, marcadas como tendo escopo 
dinâmico, será possível identificar todos os erros de tipo em tempo de compilação. 
Assinale a alternativa CORRETA:
 a) As sentenças II e III estão corretas.
 b) Somente a sentença II está correta.
 c) As sentenças I e III estão corretas..
 d) Somente a sentença I está correta.
11.(ENADE, 2011) A pilha é uma estrutura de dados que permite a inserção/remoção de 
itens dinamicamente seguindo a norma de último a entrar, primeiro a sair. Suponha 
que para uma estrutura de dados, tipo pilha, são definidos os comandos:
PUSH (p, n): Empilha um número "n" em uma estrutura de dados do tipo pilha "p";
POP (p): Desempilha o elemento no topo da pilha.
Considere que, em uma estrutura de dados tipo pilha "p", inicialmente vazia, sejam 
executados os seguintes comandos:
PUSH (p, 10)
PUSH (p, 5)
PUSH (p, 3)
PUSH (p, 40)
POP (p)
PUSH (p, 11)
PUSH (p, 4)
PUSH (p, 7)
POP (p)
POP (p)
Após a execução dos comandos, o elemento no topo da pilha "p" e a soma dos 
elementos armazenados na pilha "p" são, respectivamente:
 a) 4 e 80.
 b) 11 e 80.
 c) 7 e 29.
 d) 11 e 29.
https://portaldoalunoead.uniasselvi.com.br/ava/notas/request_gabarito_n2.php?action1=RkxYMjI4Mg==&action2=QURTMTI=&action3=NTEzMzY2&action4=MjAyMC8x&prova=MTkyOTI4MTE=

Outros materiais