Buscar

Estrutura de dados Simulados 2017.1

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 9 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 9 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 9, do total de 9 páginas

Prévia do material em texto

1a Questão (Ref.: 201502370902) Pontos: 0,1 / 0,1 
As funções em programação permitem que se possa realizar a modularização do código diminuindo assim sua 
complexidade. Analise a função abaixo e assinale alternativa que descreve corretamente o tipo de função: 
int funcao (int x){ 
 if(x == 0) 
 return 0; 
else 
 funcao(x-1); 
} 
 
 Recursiva 
 
Igual a zero 
 
Passagem por referência 
 
Condicional de seleção 
 
Sequencial 
 
 
 
 2a Questão (Ref.: 201503008436) Pontos: 0,1 / 0,1 
Supondo que um vetor de inteiros vet foi preenchido com a seguinte sequência de números 24, 11, 50, 45, 12, 
34, 10, 53, 9, 29 . Qual o valor da variável temp, analisando o trecho de código abaixo desenvolvido em C? 1. 
int vet[10]; 2. int temp = vet[0]; 3. for (int i = 0; i < 10; i++) { 4. if(vet[i] >= temp ) { 5. vet[i] = temp; 6. } 
7. } 8. printf("%d", temp); 
 
 24 
 
29 
 
50 
 
53 
 
0 
 
 
 
 3a Questão (Ref.: 201502948494) Pontos: 0,0 / 0,1 
A forma correta para imprimir o valor do último elemento de um vetor v com n posições é: 
 
 
cin >> v[-1]; 
 cout << v[n]; 
 
cout << v[ultimo]; 
 
cout << v[n+1]; 
 cout << v[n-1]; 
 
 
 
 4a Questão (Ref.: 201503095332) Pontos: 0,1 / 0,1 
o programa de computador necessita preencher uma lista de alunos (nome e nota) até que a lista esteja cheia. 
Sabe-se que a lista tem capacidade para 25 alunos. Utilizando agregados heterogêneos, qual o trecho de código 
que exibe a melhor forma de solucionar este problema? 
 
 
for (int i = 0; i <= 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; } 
 
int i = 0; while( i < 25) { cin >> lista[i].nome; cin >> lista[i].cargo; i ++; } 
 
for (int i = 0; i < 25; i++) { cin >> lista[i]->nome; cin >> lista[i]->nota; } 
 for (int i = 0; i < 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; } 
 
for (int i = 0; i < 25; i++) { cin >> lista->nome; cin >> lista->nota; } 
 
 
 
 5a Questão (Ref.: 201503033895) Pontos: 0,1 / 0,1 
O QUE IRÁ APARECER NA TELA APÓS A EXECUÇÃO DO PROGRAMA 
ABAIXO: 
 
 
 0 0 0 0 1 
0 0 0 1 0 
0 0 1 0 0 
0 1 0 0 0 
1 0 0 0 0 
 
 1 0 1 0 1 
0 1 0 1 0 
1 0 1 0 1 
0 1 0 1 0 
1 0 1 0 1 
 
 1 0 0 0 0 
0 1 0 0 0 
0 0 1 0 0 
0 0 0 1 0 
0 0 0 0 1 
 
 1 0 1 0 1 
1 0 1 0 1 
1 0 1 0 1 
1 0 1 0 1 
1 0 1 0 1 
 
 0 0 0 0 0 
1 1 1 1 1 
0 0 0 0 0 
1 1 1 1 1 
0 0 0 0 0 
 
 
 
 1a Questão (Ref.: 201502438056) Pontos: 0,1 / 0,1 
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. 
 É preciso definir a função antes do programa principal. 
 
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. 
 
O programa não funcionará de forma alguma. 
 Gabarito Comentado. 
 
 
 
 2a Questão (Ref.: 201502984449) Pontos: 0,1 / 0,1 
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 primeiro elemento deste 
vetor. 
 
 
vet[10].aluno.nota=5.7 ; 
 
aluno.vet[10].nota=5.7; 
 
aluno.vet[10]=5.7; 
 
vet[10]=aluno.5.7; 
 vet[10].nota=5.7; 
 
 
 
 3a Questão (Ref.: 201502601651) Pontos: 0,1 / 0,1 
Considere a seguinte função: void dobro(int x) { x = 2 * x; } Qual valor será impresso na tela quando o 
seguinte programa principal for executado? int main() { int n; n = 5; dobro(n); cout << n; return 0; } 
 
 
Haverá um erro de compilação 
 
20 
 
0 
 
10 
 5 
 
 
 
 4a Questão (Ref.: 201502370906) Pontos: 0,1 / 0,1 
As estruturas de dados são importantes para a programação porque facilitam a pesquisa, pois permitem a 
ordenação dos dados de forma crescente ou decrescente. Dessa forma, assinale a alternativa correta que define 
um tipo de dado estruturado. 
 
 Permitem agregar mais do que um valor em uma variável, existindo uma relação estrutural entre seus 
elementos. 
 
Podem armazenar apenas um valor de cada vez, se algum valor for atribuído o anterior é apagado. 
 
Consiste da definição do conjunto de valores (denominado domínio) que uma variável pode assumir ao 
longo da execução de um programa. 
 
São tipos de dados indivisíveis. 
 
Também são denominados tipos primitivos, não é possível decompor em partes menores. 
 Gabarito Comentado. 
 
 
 
 5a Questão (Ref.: 201502961797) Pontos: 0,1 / 0,1 
 Os irmãos Silva irão viajar por vários países da Europa e por isso, traçaram no mapa o percurso que farão, de cidade 
a cidade. Qual a estrutura de dados mais adequada para modelar este problema ? 
 
 Grafo 
 Fila 
 Lista 
 Pilha 
 Árvore 
 
 
 1a Questão (Ref.: 201502370349) Pontos: 0,1 / 0,1 
Um apontador é uma variável que contém o endereço de outra variável. Apontadores são muito usados, em 
parte porque são, às vezes, a única forma de se expressar um processo de computação e, em parte, porque, 
normalmente, implicam um código mais compacto e eficiente que o obtido de outras formas. Considerando o 
uso de apontadores nas linguagens procedurais atuais, julgue os itens que se seguem com E se for errado e C 
se for certo. 
( ) O uso de apontadores como argumentos de funções que realizem chamada por valor não permite alteração 
de seus conteúdos de memória na função. 
( ) Com apontadores, é possível criar funções que retornem estruturas de dados complexas. 
( ) Para recuperar o valor da variável apontada, basta que o apontador seja atribuído a uma variável de mesmo 
tipo. 
( ) Arranjos de apontadores podem ser usados em funções que recebam como argumentos um número variável 
de cadeias de caracteres. 
( ) Em geral, para que um arranjo seja percorrido por um ponteiro, para cada elemento do arranjo deve-se 
adicionar ao ponteiro o número de bytes que o elemento ocupa em memória. 
 
 
d) E - C - E - C - C 
 
b) C - C - E - E - E 
 
e) C - E - C - E - C 
 
c) E - E - C - C - E 
 a) E - C - E - C - E 
 Gabarito Comentado. 
 
 
 
 2a Questão (Ref.: 201503018431) Pontos: 0,1 / 0,1 
q Considere 
 
int *p, *q, *r; 
int x = 10, y = 20; 
 
Após seguir cada instrução na ordem dada a seguir : 
 
p = &x; 
q = &y; 
*p = *p + *q; 
(*q)++; 
r = q; 
q = p; 
 
identifique a opção que fornece correta e respectivamente, os valores de *p, *q , *r , x e y : 
 
 
 30 21 21 10 20 
 30 20 0 30 21 
 30 30 21 30 21 
 30 30 21 10 20 
 30 20 20 10 20 
 
 
 
 3a Questão (Ref.: 201502940753) Pontos: 0,1 / 0,1 
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 a ordem reversa dos de armazenamento de dados e alocação destes de forma contínua na memória. 
 
 
Lista Sequencial 
 PilhaSequencial 
 
Lista Encadeada 
 
Fila Sequencial 
 
Pilha Encadeada 
 
 
 
 4a Questão (Ref.: 201502933984) Pontos: 0,0 / 0,1 
Estude atentamente o código a segir: 
int deciframe(int v[ ], int tam, int e){ 
int i = 0, f = tam -1, m; 
while ( i <= f ){ 
m = ( i + f ) / 2; 
if ( v[m] == e ) { return m; } 
if ( e < v[m] ) { f = m - 1; } 
else { i = m + 1; } 
} 
return -1; 
} 
Sabendo que a chamada da mesma foi feita com os parâmetros: 
v[10] = {0, 2, 4, 6, 8, 10, 20, 100} 
tam = 8 
e = 6 
É sabido que a mesma retornaria o valor 3, porque: 
 
 
Seria o retorno do while 
 Porque ele não achou o elemento na coleção 
 
É a metade do valor de e 
 É a posição do elemento e no vetor v 
 
Seria o retorno do segundo if 
 
 
 
 5a Questão (Ref.: 201502370888) Pontos: 0,1 / 0,1 
Sistemas operacionais utilizam filas para gerenciar, tarefas, processos e recursos. Qual é a ordenação dos 
elementos armazenados aleatoriamente em uma lista do tipo LIFO? 
 
 
Primeiro que entra é o primeiro a sair 
 
Ordem crescente 
 
Posições aleatórias 
 
Ordem decrescente 
 Ordem de entrada 
 
 
 1a Questão (Ref.: 201503019168) Pontos: 0,1 / 0,1 
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< 
 system("pause"); 
} 
 
 
Valores: 10 10 
 
Valores: 13 10 
 
Valores: 10 13 
 
Valores: 31 01 
 Valores: 13 13 
 
 
 
 2a Questão (Ref.: 201502370787) Pontos: 0,1 / 0,1 
Suponha que uma pilha, P1, esta descrita através de uma lista encadeada como apresentado na figura a seguir: 
 
Imagine uma segunda pilha, P2, inicialmente vazia. 
Suponha ainda que, a pilha P2 fosse preenchida com os elementos removidos de P1. 
Qual seria a saída apresentada na tela, caso o conteúdo da pilha P2 fosse sendo removido e, cada elemento retirado de P2, 
fosse apresentado na tela? 
 
Suponha agora que ao invés da pilha P2, uma fila F1 (inicialmente vazia) fosse usada. Assim, fila F1 fosse preenchida com 
os elementos removidos da pilha P1. 
Qual seria a saída apresentada na tela, caso o conteúdo da fila F1 fosse sendo removido e, cada elemento retirado de F1, 
fosse apresentado na tela? 
A resposta para cada uma das perguntas respectivamente seria. 
 
 MARROCOS/SOCORRAM. 
 
SOCORRAM/SOCORRAM. 
 
SOCORRAM/MARROCOS. 
 
MARROCOS/MARROCOS. 
 
Nada seria apresentado, pois a pilha P2, assim como a fila F1 estão vazias. 
 
 
 
 3a Questão (Ref.: 201502984454) Pontos: 0,0 / 0,1 
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. 
 
 
Pilha Encadeada 
 Lista Sequencial 
 Pilha Sequencial 
 
Fila Sequencial 
 
Lista Encadeada 
 
 
 
 4a Questão (Ref.: 201503096218) Pontos: 0,0 / 0,1 
Qual o valor de x no final do programa? int main() { int x, *p, y; x = 3; p = &x; y = *p; y = 7; (*p)++; (*p) 
+= y; return(0); } 
 
 Nenhuma das anteriores. O programa possui um erro de sintaxe. 
 
-4 
 
7 
 11 
 
3 
 
 
 
 5a Questão (Ref.: 201502933979) Pontos: 0,0 / 0,1 
Estude atentamente o código a segir: 
int deciframe(int v[ ], int tam, int e){ 
int i = 0, f = tam -1, m; 
while ( i <= f ){ 
m = ( i + f ) / 2; 
if ( v[m] == e ) { return m; } 
if ( e < v[m] ) { f = m - 1; } 
else { i = m + 1; } 
}return -1; 
} 
Sabendo que a chamada da mesma foi feita com os parâmetros recebendo os seguintes valores, o que ela 
retornaria? 
v[10] = {0, 2, 4, 6, 8, 10, 20, 100} 
tam = 8 
e = 6 
 
 
4 
 -1 
 3 
 
0 
 
6

Outros materiais