Buscar

ESTRUTURA DE DADOS (Estácio) - todas as respostas

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

1.
Preciso fazer uma relação de tudo o que levar em minha viagem de mochila pela Europa. A estrutura de dados mais adequada para armazenar tudo que preciso levar é ...
Certo		lista
2.
 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 ?
Certo		Grafo
3.
Para organizar as fotos de minha família com os ancestrais de várias gerações, minha filha usou uma estrutura de dados que é ..... Assinale a opção certa.
Certo	árvore
4.
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.
Certo		Lista Sequencial
5.
Analise as afirmativas abaixo e selecione a alternativa correta.
I Algumas aplicações da estrutura de dados grafo são: Diagrama de Entidade Relacionamento e Redes de computadores. 
II Árvore e lista duplamente encadeada são estruturas não lineares. 
III A Fila é uma estrutura não linear e a inserção de um elemento acontece ao final. 
IV A Lista é uma das estruturas de dados mais simples, mas não se pode ordená-la.
V O uso de ponteiros é fundamental para construção de listas encadeadas.
Certo		I e V são verdadeiras 
6.
Leia com atenção as afirmativas abaixo e assinale a resposta correta.
I A estrutura de dados que melhor representa os diretórios ou pastas de arquivos do computador é a árvore. 
II A estrutura de dados FILA é não linear assim como o Grafo. 
III O termo folha em uma estrutura de dados é usado para um nó sem filhos e que tem grau 0, 
IV O grau de uma árvore é definido pelo número de subárvores de um nó. 
V O grafo é uma estrutura de dados que tem limitação para o número de vértices. 
VI Uma das aplicações da estrutura de dados grafo é a Computação Gráfica. 
Certo		I, III, IV e VI são afirmativas verdadeiras
7.
A forma correta para imprimir o valor do último elemento de um vetor v com n posições é:
Certo		cout << v[n-1];
8.
O que é estrutura de dados?
Certo		É um modo particular de armazenamento e organização de dados em um computador de modo que possam ser usados eficientemente.
1.
Assinale a alternativa correta sobre tipos abstratos de dados:
 Certo		Um tipo abstrato de dados é composto por um modelo de dados e um conjunto de operadores definidos sobre esses dados.
2.
A que estrutura pertence a definição: " Uma estrutura não linear que é um conjunto de nós e suas conexões entre eles e não há limitação de vértices. Muito utilizada para representação de percursos em mapas."
 Certo		grafos
3.
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:
Certo		As alternativas I e II estão corretas
4.
Sobre estrutura de dados, identifique o que está correto afirmar.
I. Pilha é uma estrutura de dados com acesso restrito aos seus elementos, uma vez que eles são colocados e retirados por um único lado e são ordenados pelo princípio LIFO (last in first out). Assim, sempre que um elemento é adicionado ou retirado seu topo é alterado. 
II. Pilha é o tipo de estrutura usada, por exemplo, na avaliação de expressões numéricas, na recursividade e pelos compiladores, na passagem de parâmetros para as funções. 
III. Registro é uma estrutura básica que permite guardar coleções de dados de diferentes tipos, sendo normalmente utilizado quando um objeto tem diferentes atributos, isto é, contém campos de diferentes tipos. 
IV. Lista pode conter um número qualquer de elementos, expandindo-se ou contraindo-se conforme o elementos são inseridos ou retirados. Nesse tipo de estrutura, os acessos tanto podem ser feitos sequencialmente como diretamente. 
V. Fila, assim como a pilha , é uma versão especial de lista, e como tal, seus elementos são ordenados pelo princípio LIFO (last in first out).
Certo		I, II e III.
5.
 Preciso cadastrar todos os interessados em meu novo curso de programação. Qual a estrutura de dados mais adequada para modelar este problema, visto que não há qualquer preocupação com ordem de chegada ou saída de aluno da turma.
Certo	Lista
6.
Estão entre algumas das possíveis formas de estruturas de dados:
Certo		Árvores binárias, pilhas, vetores
7.
Qual estrutura de dados não linear que é utilizada na implementação de Redes de Computadores, na Computação Gráfica, em modelagem de circuitos digitais e etc. E que se caracteriza por apresentar um conjunto de nós e conexões entre eles.
Certo		Grafos
8.
Em relação a estruturas de dados, avalie a correspondência existente entre as estruturas de dados Lineares e Não Lineares com suas respectivas coleções de dados.
A correta associação entre os elementos das duas tabelas é:
Certo		a1, b1, c2, d1
1.
Estão entre algumas das possíveis formas de se estruturar dados:
Certo		Grafos, lista ordenada, vetores.
1.
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:
Certo		Nenhuma está correta
2.
Uma função possui um valor de retorno inteiro, recebe por valor um inteiro como primeiro parâmetro e por referência um inteiro como segundo parâmetro. Qual das respostas abaixo poderia representar o protótipo dessa função:
 Certo		int func (int a, int &b);
3.
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:
 Certo		Global
4.
Nas linguagens C e C++, ao se declarar qualquer função, a especificação de tipo de dados que antecede o nome desta função define
Certo		o tipo do dado do valor retornado da função para quem a chamou.
5.
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");
}
 Certo		Valores: 13 13
6.
A declaração de variáveis na programação é o ato de reservar um espaço na memória para poder armazenar valores de um determinado tipo. Essas variáveis podem ser classificadas como variáveis locais e globais. Sendo assim, qual das situações abaixo representa melhor o conceito das variáveis globais.
 Certo		Ao modificar o valor da variável 'X' nafunção "modifica" seu valor modificado poderá ser apresentado em qualquer outra função do programa.
7.
No programa abaixo em C++, que sequência de valores serão impressos ? int x; x = 15; if (x > 0) { int x; x = 25; cout << x << endl; } cout << x << endl;
Certo		25 e 15
8.
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?
 Certo		2; 2; 4
1.
Blocos únicos de códigos que realizam diversas tarefas distitintas são de dificil manutenção. Portanto, utiliza-se a tecnica da modularização de programas, a fim de facilitar a implementação e a manutenção dos programas. Esta técnica, também chamada de modularização, tem como principal elemento:
 Certo		As funções
2.
Certo	Auxiliar = 100 Numero1 = 900 Numero2 = 80
3.
Considere o trecho de um programa escrito em C++.
void func1 (bool x, int ini, int fim) {
 for ( int y=ini; y != fim ; y++) {
 x = !x;
 if (x)
 cout << y << endl;
 else
 cout << -y << endl;
 }
}
int main() {
 func1(false, 1, 7);
}
Marque a opção correta que mostra o que é impresso na tela.
 Certo		1, -2, 3, -4, 5, -6
4.
Na passagem por ____________________ , o endereço da variável da função chamadora é passado para a função chamada e, dessa forma, o valor poderá ser alterado, ou não.
Certo		referência
5.
Ao definirmos uma função, podemos afirmar:
I Toda função tem parâmetros
II Quando nada retorna, o tipo é void
III Quando todos os parâmetros são do mesmo tipo, é suficiente usar o tipo uma vez e separar os nomes dos parâmetros por vírgulas
IV Na passagem por valor, o endereço da variável da função chamadora é passado para a função chamada
Após uma análise das afirmativas acima, escolha a opção correta.
 Certo		Somente II está correta
6.
#include < iostream >
 using namespace std;
void SOMA(float a, int b) {
 float result = a+b;
 cout << "A soma de " << a << " com " << b << " é: " << result;
}
int main()
{
int a;
float b;
a = 10; b = 12.3;
SOMA(b,a);
}
A função SOMA acima possui as seguintes características :
 Certo		Não retorna valor e possui parâmetros.
7.
Considere a função:
void dobro(int x) {
 x = 10 * x;
}
Qual será o valor impresso na tela quando o programa principal for executado?
int main() {
int n;
n = 5;
dobro(n);
cout << n;
return 0;
} 
Certo		5
8.
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;
}
Certo		2 e 13
1.
Considere a função abaixo:
void func (int a, int &b) {
 a++;
 b = a*2;
}
e o seguinte trecho de código na função main :
int x=2, y=3;
func (x,y);
func (y,x);
cout << x << " ; " << y;
Após a execução do cout o que será impresso ? 
Certo		14; 6
 
2.
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");
}
Certo		Valores: 13 10
3.
Qual será a saída para o seguinte trecho de código?
 void FUNC1()
{
int B = -100; 
cout << "Valor de B dentro da função FUNC1: " << B;
}
void FUNC2() {
int B = -200;
cout << "Valor de B dentro da função FUNC2: " << B;
}
int main() {
int B = 10;
cout << "Valor de B: " << B;
B = 20;
FUNC1();
cout << "Valor de B: " << B;
B = 30;
FUNC2();
cout << "Valor de B: " << B;
}
 Certo		Valor de B: 10 Valor de B dentro da função FUNC1: -100 Valor de B: 20 Valor de B dentro da função FUNC2: -200 Valor de B: 30
4.
O que será impresso pela função Eureka ? Assinale a opção correta.
void Eureka()
 {
 for (int i = 1; i <= 10; i++)
 if (i % 2 == 0)
 cout << i << " ";
 else
 if (i % 7 == 0)
 return;
 }
Certo		2 4 6
5.
Considere o trecho de um programa escrito em C++ : 
long func1 (int n1) {
 int ft=1, i = 1;
 while ( i <= n1) {
 ft *= i;
 i++;
 }
 return ft;
}
main() {
 cout << func1 (5);
}
Marque a opção correta que mostra o que é impresso na tela.
Certo		120
6.
 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);
Certo		float volume (float, float, float);
7.
Sobre funções, é correto afirmar:
Certo		São blocos de instruções que são executados quando são chamadas em alguma parte do programa.
8.
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++;
 }
 Y[j] = '\0';
}
Certo		rogla
1.
 
Certo		O programa executa perfeitamente independente da ordem das funções já que existem os seus protótipos.
2.
Assinale a alternativa que apresenta duas formas de passagem de parâmetros para uma rotina ou função:
 Certo		Por valor e por referência
3.
Funções são instrumentos de modularização de programas, que tem como finalidade tornar o código mais legível, isto é mais fácil de entender, evita replicação de instruções e permite o reuso das funções em outros programas. Então considere o seguinte código:
#include< iostream >
using namespace std;
int main( )
{
 float a=10.0;
 float b=4.0;
 cout < < media(a,b);
 return 0;
}
float media(float x, float y) { return (x+y)/2;}
Marque a alternativa CORRETA:
Certo		O código não compila, pois há necessidade de se declarar float media(float, float) como protótipo da função float media(float x, float y)antes da função principal.
4.
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:
Certo		2; 2; 4
5.
Para compararmos vetores de char, usaremos a função _____________________ . Para copiarmos o conteúdo de um vetor de char nas posições ocupadas por outro vetor de char, usaremos a função ______________________ .
Certo		strcmp(); e strcpy();
6.
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; }
Certo		5
7.
No programa abaixo, diga em que área de memória serão alocados os elementos de dados y e r, respectivamente.
#include 
using namespace std; 
int x, y; 
float media( float a, float b ) 
{	float tmp; 
tmp = (a + b ) / 2.0; 
return ( tmp ); 
} 
int main() 
{ 
float r; 
cout<<"Informe 2 valores: "; 
cin>>x>> y; 
r = media( x, y ); 
cout<<"\nMedia = "<< r<<"\n"; 
system ("pause"); 
}
Certo		( )	área de dados globais / área de pilha
8.
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:
Certo		As funções
1.
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");
}
Certo		5 4 3 2 1 0
2.
Considera a FUNÇÃO abaixo:
void inverte(int &x, int &y)
{ int aux = x;
x = y;
y = aux; }
Quais valores serão impressos na tela quando o seguinte programa principal for executado?
int main()
{ int a = 18, b = 28;
inverte(a, b);
cout << a <<" e "<< b;
return 0; }
Certo		28 e 18
3.
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 = 3; n = n + 2; dobro(n); cout << n; return 0; }
Certo		5
4.
Considere o trecho de um programa escrito em C++ : 
int func1 (long num) {
 int n, na=1;
 while (num / 10 != 0){
 na += 1;
 num /= 10;
 }
 return na;
}
main() {
 cout << func1 (132041);
}
Marque a opção correta que mostra o que é impresso na tela.
 Certo		6
5.
Em programação podemos utilizar um recurso que modulariza o programa chamado função. As funções precisam ser ativadas para que possam ser executadas. Para isso, é necessário chamar a função pelo seu nome e enviar, quando necessário, os valores respectivos para os parâmetros de entrada. Ao enviar os valores para os parâmetros de entrada, o programa pode fazer uma cópia deste valor ou trabalhar em um endereço enviado. Quando se envia o endereço estamos ativando a função por meio de:
 Certo		Ponteiros.
6.
Funções são semelhantes aos procedimentos, exceto que uma função sempre retorna um valor. Um exemplo de função seria o conjunto de instruções para calcular o fatorial de um número e após a função ser executada, ela deve retornar o fatorial do número pedido. Marque a opção que representa um protótipo de função válido.
Certo		retorno nomeFuncao(parametros);
7.
Caso uma estrutura homogênea (vetor) seja passada como parâmetro para uma função, então:
Certo		Essa passagem é "por referência"
8.
Assinale a opção certa.
 Quando não se escreve o protótipo de uma função ...
Certo		É preciso definir a função antes do programa principal.
1.
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.
 Certo		100
2.
Considere o trecho de um programa escrito em C++.
 int func1 (int n1, int n2) {
 int aux = n1 % n2;
 while ( aux != 0) {
 n1 = n2;
 n2 = aux;
 aux = n1 % n2;
 }
 return n2;
}
int main() {
 cout << func1 (27, 18);
}
Marque a opção correta que mostra o que é impresso na tela.
 Certo		9
3.
Considere os trechos abaixo:
int valor = 100;
void eureka (int &z) {
 int temp = 25;
 z--;
 temp = temp - 10;
 valor = valor - temp;
 cout << "Auxiliar = " << temp << endl;
}
int main() {
 int R = 1000;
 eureka(R);
 cout << "Result = " << R << " Valor = " << valor << endl;
}
Assinale a opção correta.
 Certo		Será impresso
Auxiliar = 15
Result = 999 Valor = 85
sendo que z é um parâmetro passado por referência
4.
Considere a função a seguir e a chamada da mesma efetuada no programa principal abaixo. Indique a opção que contem o que será impresso.
int executar (int x, int &y) {
 x = y * 2;
 y = ++x;
 return x + y;
}
int main () {
int a=2, b=2, c=2;
c = executar (a, b);
cout << a << ", " << b << ", " << c;
}
 Certo		
2, 5, 10
5.
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.
 Certo		60
6.
A declaração de variáveis na programação é o ato de reservar um espaço na memória para poder armazenar valores de um determinado tipo. Essas variáveis podem ser classificadas como variáveis locais e globais. Sendo assim, qual das situações abaixo representa melhor o conceito das variáveis globais.
 Certo		Ao modificar o valor da variável 'X' na função "modifica" seu valor modificado poderá ser apresentado em qualquer outra função do programa.
7.
Uma função possui um valor de retorno inteiro, recebe por valor um inteiro como primeiro parâmetro e por referência um inteiro como segundo parâmetro. Qual das respostas abaixo poderia representar o protótipo dessa função:
 Certo		int func (int a, int &b);
8.
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:
 Certo		Global
1.
Qual das seguintes estruturas de dados é classificada como heterogênea?
 Certo		Registro
2.
Marque a afirmativa correta para a "Inserção em lista linear sequencial ordenada".
 Certo		Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
3.
Em C++, quando uma variável é declarada como uma struct, o acesso para atribuição e leitura dos membros (campos) deste registro se dá pelo operador :
 Certo		∙ (ponto).
4.
Os métodos de ordenação são muito utilizados em estruturas de dados para facilitar a busca e a recuperação posterior de itens de conjuntos ordenados. Existem vários métodos de ordenação, por este motivo, marque corretamente a alternativa que apresenta o código do método de seleção.
 Certo		void ordena(int v[], int n){ 
int i, j, menor, aux; 
for (j = 0; j < n-1; j++) { 
 for (i = j+1; i < n; i++) { 
 if (v[i] < v[j]) { 
 aux = v[j]; 
 v[j] = v[i]; 
 v[i] = aux; 
 } 
 } 
} 
}
5.
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?
 Certo		for (int i = 0; i < 25; i++) { cin >> lista[i].nome; cin >> lista[i].nota; }
6.
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 media; }; Suponha ainda que exista um vetor desta estrutura, definido como: aluno vet [ 10]; Marque a alternativa em que é atribuída de forma correta a media 6.0 para o quarto elemento deste vetor.
 Certo		vet[3].media=6.0;
7.
Marque a opção correta, considerando 
struct Livro { 
int codigo; 
float preco; 
} liv; 
 Certo		liv.preco = 30.70;
8.
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 destevetor.
 Certo		vet[10].nota=5.7;
1.
Dadas as afirmativas abaixo, identifique as corretas e marque a alternativa verdadeira.
I- Vetores e matrizes servem apenas para construir agregados de dados heterogêneos.
II- Registros em C++ são tipos de dados compostos formados por mais de um tipo de dados.
III- Na Linguagem C++, "struct" é uma palavra reservada que serve para definir registros.
IV- Registros são tipos de dados heterogêneos.
 Certo		estão corretas apenas as afirmativas II, III e IV.
2.
Com relação à struct, é correto afirmar que :
 Certo		Cada elemento da struct é denominado membro ou campo, sendo que a struct pode armazenar elementos de tipos diferentes ou não.
1.
Considere a seguinte função busca escrita em linguagem C++ :
bool busca(int vetor[ ], int n, int tam)
{
 int ini=0, mid;
 while (ini <= tam)
 {
 cout << " x ";
 mid = (ini + tam)/2;
 if (vetor[mid] == n)
 return true;
 else if (n > vetor[mid])
 ini = mid+1;
 else
 tam = mid-1;
 }
 return false;
}
Qual a quantidade total de impressões da letra x nas buscas pelos números n = 4, n = 2 e n = 0 no vetor [1,2,3,4,5,6,7,8], sendo tam = 7 ?
int vetor[] = {1,2,3,4,5,6,7,8};
busca(vetor, 4, 7);
busca(vetor, 2, 7);
busca(vetor, 0, 7);
 Certo	6
2.
Considere as afirmativas a seguir.
I. Uma forma muito simples de fazer uma busca em um vetor consiste em percorrer o vetor, elemento a elemento, para verificar se o elemento procurado é igual a um dos elementos do vetor.
II. A pesquisa sequencial é extremamente simples e eficiente quando o número de elementos do vetor for muito grande.
III. Na pesquisa binária, a cada interação do algoritmo o tamanho do vetor é dividido ao meio.
IV. A pesquisa binária funciona corretamente quanto o conjunto de dados estiver desordenado.
Assinale a alternativa correta.
 Certo		Somente as afirmativas I e III são corretas.
3.
Qual a importância de se entender a "ordenação" de dados ?
 Certo		A ordenação é a base na qual, muitos algoritmos são construídos. Entendendo a ordenação, tem-se conhecimento para resolver outros problemas.
4.
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 -1, porque:
 Certo		Porque ele não achou o elemento na coleção
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.
 Certo		Inserção
6.
Em relação à classificação do método de ordenação, assinale abaixo aquele que, durante o processo de ordenação, só usa a memória principal:
 Certo		Ordenação Interna
7.
Qual característica NÃO podemos atribuir a PESQUISA BINÁRIA.
 Certo		A lista pode estar desordenada.
8.
Marque a afirmativa correta para a "inserção incremental".
 Certo		Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
1.
Em uma pesquisa sequencial a lista deve estar?
 Certo		ordenada ou desordenada.
2.
Existem vários algoritmos de busca em estruturas de dados, um destes realiza a busca em vetores, e requer acesso aleatório aos elementos desta estrutura e parte do pressuposto de que os dados do vetor estejam ordenados e utiliza a técnica de divisão e conquista comparando o elemento desejado com o elemento do meio do vetor. Esta técnica ainda verifica se o elemento do meio do vetor for o desejado, a busca termina. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor. O algoritmo que utiliza esta metodologia é:
 Certo		Pesquisa binária
3.
É um método de pesquisa ou busca, cujo algoritmo parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca, comparando o elemento buscado (chave) com o elemento no meio do vetor. Se o elemento do meio do vetor for a chave, a busca termina com sucesso. Caso contrário, se o elemento do meio vier antes do elemento buscado, então a busca continua na metade posterior do vetor. E finalmente, se o elemento do meio vier depois da chave, a busca continua na metade anterior do vetor.
A descrição apresentada trata-se do método denominado busca ...... 
 Certo		binária.
4.
O processo de rearranjar um conjunto de dados em uma ordem crescente ou decrescente é chamado de ordenação. Existem várias técnicas de ordenação, entretanto a técnica que procura o menor valor entre todos os elementos do vetor e troca-o pelo primeiro elemento; para os n - 1 elementos restantes, determinação do elemento de menor valor e troca pelo segundo elemento e assim sucessivamente, é chamado de:
 Certo		Seleção
5.
Considere a função misterio e o trecho abaixo.
void misterio(int v[ ], int n) { //n é o número de elementos de v
 int i, j, m, aux;
 for (j = 0; j < n-1; j++) {
 m = j;
 for (i = j+1; i < n; i++) {
 if (v[i] < v[m])
 m = i;
 }
 aux = v[j];
 v[j] = v[m];
 v[m] = aux;
 }
}
Trecho na main : 
int v[4] = {40,30,10,20};
misterio(v, 4);
Marque a opção correta. Como ficará o vetor após a execução da função misterio ?
 Certo		10 20 30 40 
6.
Seja a seguinte função de ordenação:
void ordena( int n, int v[])
{
 int i, j, x;
 for (j = 1; j < n; ++j) {
 x = v[j];
 for (i = j-1; i >= 0 && v[i] > x; --i) 
 v[i+1] = v[i];
 v[i+1] = x;
 }
}
Pode-se dizer que é uma função de ordenação:
 Certo		Que utiliza o método inserção e realiza uma ordenação crescente nos elementos do vetor v.
7.
Analisando o trecho de código a seguir:
inicio=0; 
fim= tamanho - 1;
meio=(inicio+fim)/2; 
while(procura != nomeVetor[meio] && inicio != fim)
{
 if(procura > nomeVetor[meio]) 
 inicio=meio+1;
 else 
 fim=meio; 
 meio=(inicio+fim)/2; 
}
if(nomeVetor[meio]==procura)
 cout<<"\n....: "< < outroVetor[meio]<else 
 cout<<"\nDado nao encontrado\n";
Pode-se afirmar que:
 Certo		trata-se da implementação do algortimo de busca binária.
8.
Entre os diversos algoritmos de pesquisa existentes, certamente os mais famosos são os da pesquisa sequencial e o da pesquisa binária. A busca ou pesquisa sequencial pode ser aplicada em vetores independente destes estarem ordenados, entretanto a busca binária só se aplica em vetores ordenados.
Seja o vetor A= {10,35,41,55,69,70,98}, suponha que o número 70 foi pesquisado pelo algoritmo da busca sequencial e também pelo algoritmo da busca binária, ambos algoritmos realizam testes nos elementos do vetor até achar o que procuram ou definirem que o elemento não se encontra no vetor. Sendo assim marque a alternativa que expressa o número de testes realizados pela busca sequencial e o número de testes realizados pela busca binária, respectivamente, até encontrarem o 70.
 Certo		6 e 2
1. 
 Certo		
if(vet[j-1] < vet[j] )
 { 
 aux=vet[j];
 vet[j]= vet[j-1];
 vet[j-1]=aux; 
 }
2.
Os algoritmos de busca são muito utilizados em estrutura de dados. Sendo assim, o algoritmo que realiza a busca em vetores e que exige acesso aleatório aos elementos do mesmo e que parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço debusca comparando o elemento que se deseja com o elemento do meio do vetor, é chamado de:
 Certo		Pesquisa binária
3.
Este vetor foi ordenado pelo método:
 Certo		Método da bolha (bubble sort). 
4.
O seguinte trecho de programa abaixo representa qual tipo de estrutura de ordenação?
void ordenar(float v[], int n) // n é o no. de elementos em v
{
 int i , // índice
 aux, // auxiliar para troca
trocou = true,
fim = n - 1;
while (trocou)
{
 trocou = false; // sinaliza que é falso que trocou
 for (i = 0; i < fim; i++)
 {
 if (v[i] > v[i+1])
 {
 aux = v[i];
 v[i] = v[i+1];
 v[i+1] = aux;
 // sinaliza que é verdadeiro que trocou
 trocou = true;
 } // fim if
 } // fim for
 fim--; // decrementa o fim
} // fim while
} // fim da função
 Certo		Bublesort
5.
Suponha uma listagem, contendo número de inscrição e pontuação (ordenada pelo número de inscrição) dos candidatos para o cargo de Analista de Sistemas de uma grande empresa pública. São 1024 candidatos inscritos e o sistema implementado para consulta do resultado, permite busca binária ou busca sequencial pelo número de inscrição. O número máximo de comparações executadas se fosse utilizada a busca binária e se fosse utilizada busca sequencial, respectivamente, seria de:
 Certo		10 e 1024
6.
"Algoritmo de ordenação por trocas que varre um vetor um Certo número de vezes, comparando os elementos vizinhos dois a dois. A cada varredura, se o par de elementos está em ordem crescente, nada é feito, caso contrário os elementos do par são permutados". Esta definição está descrevendo o algoritmo de ordenação conhecido por :
 Certo		BubbleSort
7.
Nos métodos de ordenação interna, quais são aqueles classificados como tipo método simples?
 Certo		Selection Sort, Insert Sort e Bubble Sort
8.
O resultado do concurso para o cargo de uma empresa está armazenado em um vetor, que contém em cada um de seus elementos o nome e a nota obtida pelo candidato. Deseja-se que este vetor seja ordenado pela nota, em ordem decrescente. Sendo o vetor pequeno (poucos elementos), o programador responsável por desenvolver este algoritmo, escolheu um método de ordenação que executa os seguintes passos:
Selecione candidato com maior nota entre todos e troque-o com o candidato que está na primeira posição do vetor;
Selecione o segundo maior e troque-o com o candidato que está na segunda posição;
Os passos descritos anteriormente são seguidos para a terceira nota, quarta nota e assim por diante até que reste apenas um candidato.
O algoritmo utilizado pelo programador trata-se do método de ordenação denominado:
 Certo		Seleção
1.
Existem vários tipos de algoritmos para realizar a ordenação dos elementos, onde um algoritmo de ordenação deve rearranjar o vetor de forma a estabelecer uma ordem entre os elementos. Marque a alternativa correta que cita o algoritmo cuja descrição é: "considera cada elemento uma vez inserindo-o em seu lugar correto entre os elementos que já estão em ordem". E o seu passo a passo pode ser descrito como: "o elemento é inserido entre os ordenados movendo-se os elementos maiores que ele uma posição para a direita e posteriormente inserindo-o na posição vaga".
 Certo		Inserção
2.
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 = 0
 Certo		0
3.
Sobre o funcionamento da busca binária, é correto afirmar que dividindo seu vetor em duas metades.
 Certo		Se o item for igual ao item que está na metade do vetor, o item foi encontrado.
4.
Sabendo-se que o método de ordenção bolha ou bubble sort realiza a troca de elementos adjacentes até que todos os elementos de um vetor esteja ordenado. Então, se submetermos a sequencia de inteiros armazenada em um vetor inicialmente na seguinte ordem : 4, 2, 5, 1.
Pode-se dizer que quando o maior elemento do vetor alcançar sua posição final, a ordenação apresentada no vetor é:
 Certo		2,4,1,5
5.
Marque a afirmativa correta para a "Ordenação em Listas Lineares Sequenciais".
 Certo		É o processo pelo qual um conjunto de dados é colocado em uma ordem crescente ou decrescente.
6.
Entre os diversos algoritmos de pesquisa existentes, certamente os mais famosos são os da pesquisa sequencial e o da pesquisa binária. A busca ou pesquisa sequencial pode ser aplicada em vetores independente destes estarem ordenados, entretanto a busca binária só se aplica em vetores ordenados. Seja o vetor A= {10,35,41,55,69,70,98}, suponha que o número 70 foi pesquisado pelo algoritmo da busca sequencial e também pelo algoritmo da busca binária, ambos algoritmos realizam testes nos elementos do vetor até achar o que procuram ou definirem que o elemento não se encontra no vetor. Sendo assim marque a alternativa que expressa o número de testes realizados pela busca sequencial e o número de testes realizados pela busca binária, respectivamente, até encontrarem o 70.
 Certo		6 e 2
7.
Os métodos de ordenação são muito utilizados para facilitar a recuperação posterior de itens ordenados. Existem vários métodos de ordenação, por esse motivo, assinale corretamente a alternativa que mostra o nome do método que utiliza a estratégia de ordenação por trocas de vizinhos e é considerado o método mais simples.
 Certo		Bolha
8.
Sabendo-se que o método de seleção também é um método de ordenação que baseia seu algoritmo em trocas entre os elementos de um vetor, se submetermos a sequencia de inteiros armazenada em um vetor inicialmente na seguinte ordem : 13, 23, 3, 8, 1. Pode-se dizer que quando o menor elemento do vetor alcançar sua posição final, a ordenação apresentada no vetor é:
 Certo		1,23,3,8,13
1.
Com a utilização das estruturas de dados e seus tipos, em algumas situações é imprescindível a criação de funções que façam determinada verificação ou ação nestas estruturas. Dessa forma, analise a função abaixo e marque corretamente a alternativa que descreve as funcionalidades desta.
int funcao(float v[], float vl, int n)
{
 for (int i = 0; i < n; i++)
 if (v[i] == vl)
 return i;
 return -1;
}
 Certo		Retorna a posição de v se o valor vl foi encontrado.
2.
Qual papel do for mais interno na função ordena abaixo ?
void ordena( int n, int v[])
{
 int i, j, x;
 for (j = 1; j < n; ++j) {
 x = v[j];
 for (i = j-1; i >= 0 && v[i] > x; --i) 
 v[i+1] = v[i];
 v[i+1] = x;
 }
}
 Certo		Encontrar o ponto onde v[j] deve ser inserido em v[0..j-1].
3.
Para consultarmos uma estrutura de dados, normalmente, empregamos um tipo de pesquisa de dados. O trecho de programa a seguir refere-se a uma pesquisa por um elemento único (sua primeira ocorrência), em um conjunto de elementos de dados armazenado em uma estrutura de acesso indexado e aleatório. Selecione a opção correspondente ao algoritmo utilizado, no programa, para a referida pesquisa:
int busca(float v[], float valor, int n) {
int ini = 0, fim = n -1, meio;
while (ini <= fim) {
meio = (ini + fim)/2;
if (v[meio] == valor) return meio;
if (valor < v[meio]) fim = meio -1;
 else ini = meio+1;
}
return -1;
}
 Certo		pesquisa binária
4.
Marque a afirmativa correta para a "Busca ou pesquisa binária".
 Certo		Consiste em fazer uma busca em um vetor já ordenado, dividindo o espaço de busca ao meio e verificando se o dado está no meio ou, antes do meio ou depois do meio.
5.
O resultado do concurso para o cargo de uma empresa está armazenado em um vetor, que contém em cada um de seus elementos o número de inscrição, o nome e a nota obtida pelo candidato.Este vetor está ordenado pelo número de inscrição. Para realização de uma consulta que, dado um número de inscrição, apresenta o nome e nota do candidato, um programador utilizou um algoritmo de busca que realiza sucessivas divisões no vetor, comparando o número de inscrição procurado com o número de inscrição do candidato posicionado no meio do vetor. Se o candidato posicionado do meio do vetor tiver o número de inscrição igual ao número de inscrição procurado, a busca termina com sucesso. Caso contrário, se candidato posicionado do meio do vetor tiver número de inscrição menor que o procurado, então a busca continua na metade posterior do vetor. E finalmente, se candidato posicionado do meio do vetor tiver número de inscrição maior que o procurado, a busca continua na metade anterior do vetor. O algoritmo utilizado pelo programador trata-se do método denominado busca:
 Certo		binária.
6.
Caso seja empregada uma busca binária em uma lista sequencial ordenada com 2048 valores, qual seria o número máximo de comparações para encontrar um valor que esteja na lista?
 Certo		11
1.
São métodos ou algoritmos conhecidos de ordenação de dados por troca:
 Certo		bubble sort e quicksort.
2.
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.
 Certo		Lista Sequencial
3.
Considere uma lista sequencial L com n fichas de professores, sendo que cada ficha de professor é modelada pela struct : 
struct professor { 
int matricula; 
char titulo[30]; 
}; 
e a lista L é assim declarada : professor L[n]; 
Assinale o trecho que corretamente exibe todas as matrículas e titulações de todos os n professores de L . 
 Certo		for (int i = 0; i < n; i++)
cout << L[i].matricula << " " << L[i].titulo << endl;
4.
As estruturas de dados em programação são muito utilizadas para tornar o acesso aos dados mais eficiente e organizado. A estrutura de dados considerada mais simples e tem como característica apresentar apenas uma dimensão é:
 Certo		Vetor
5.
Considere as seguintes afirmações: I. Só podemos ter uma matriz de no máximo duas dimensões. Exemplo: C[100][100]. II. Ao declararmos um vetor int A[10], se escrevemos A[2] acessamos o segundo elemento do vetor. III. Uma string declarada como char B[30] armazena no máximo 30 caracteres. Escolha a alternativa correta:
 Certo		Nenhuma afirmação está correta.
6.
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
 Certo		-1
7.
 Certo		for (int i = 0; i < n; i++)
 cout << L[i].matricula << " " << L[i].nome << endl;
8.
Considere uma lista com n livros, em que cada livro é modelado pela struct :
struct Livro {
 string titulo, editora, autor;
 float preco;
};
A função X abaixo
void X (Livro v[ ], int &n, Livro L)
{
 v[n] = L;
 n++;
 cout << "Operação realizada com sucesso.";
}
implementa a operação de :
 Certo		Inserção
1.
Considere as seguintes afirmações sobre Listas Sequenciais:
I - São estruturas lineares que utilizam as primeiras posições de um vetor para armazenar os dados de interesse.
II - São compostas pelo conjunto dos dados que se deseja armazenar e por uma variável inteira que indica a quantidade de dados armazenados.
III - Os dados são sempre inseridos ou removidos no final da lista, tomando-se o cuidado de atualizar a quantidade de dados da mesma.
IV - A lista pode admitir ou não admitir que haja dados repetidos (listas podem ser com ou sem repetição).
Marque a opção que contém apenas todas as afirmações verdadeiras:
 Certo		I, II, IV
2.
Em relação às listas sequenciais, considere as seguintes afirmações:
I - são estruturas lineares que utilizam vetores para armazenamento dos dados;
II - os componentes da lista são os dados que se deseja armazenar e um valor inteiro com a quantidade de dados da lista;
III - os dados são sempre inseridos ou removidos no final da lista, tomando-se sempre o cuidado de atualizar a quantidade de dados da lista;
IV - listas podem apresentar dados repetidos ou não admitir repetição (listas com e sem repetição).
Assinale a opção que contém apenas todas as afirmativas corretas:
 Certo		I, II, IV
3.
Com relação as listas lineares sequenciais:
I - Uma lista linear sequencial é um vetor em linguagens estruturadas, também chamado de array.
II - Um elemento de uma lista linear sequencial pode ser acessado diretamente através de um índice.
III - Uma lista linear sequencial pode ter elementos de um mesmo tipo, ou de tipos diferentes.
 Certo		Apenas as afirmações I e II estão corretas.
4.
Analise a função abaixo, considerando o tipo Livro e marque a opção correta.
int R2D2 (Livro v[ ], int c, int n) {
for (int i = 0; i < n; i++)
 if (v[i].codigo == c)
 return i;
 return -1;
}
onde 
struct Livro {
 int codigo;
 char autor[30];
 };
 Certo		Retorna a posição do valor c em v , se o valor c for encontrado em v.
5.
__________________________ é uma lista linear em que a alocação de memória pode ser estática, e que a forma de armazenamento é contígua ou sequencial na memória. Usamos este tipo de lista quando se tem em mente um tamanho pré-definido, ou seja, quando se sabe até onde a lista pode crescer.
 Certo		Lista Linear Sequencial
2.
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
Certo		-1
1.
 Ao treinar macacos, foi realizado um jogo para avaliar sua memória. O cientista fornecia sequências de cartas com figuras geométricas e o macaco devia reproduzir a sequência inversa usando figuras geométricas reais. Qual a estrutura de dados mais adequada para modelar esse jogo ?
 Certo		pilha
2.
Seja S uma pilha inicialmente vazia. Primeiramente, o elemento A é inserido em S. Em seguida, o elemento B, e assim por diante, até a inclusão final do elemento E. Ao término dessas operações, qual elemento estará no topo de S?
 Certo		E.
3.
Considere uma pilha sequencial de números reais representada por
 struct Pilha {
 int topo;
 float v[10];
 };
onde temos Pilha p;
Marque a opção que corretamente inicializa a pilha :
 Certo		p.topo = -1;
4.
Tanto a operação TOP (acessa topo), quanto à operação POP (remover), permite acessar o último elemento armazenado em uma Pilha. Quanto à diferença entre ambas as operações em relação ao estado da Pilha é correto afirmar:
 Certo		Somente a operação POP altera o estado da Pilha
5.
Um dos conceitos muito úteis na ciência da computação é a estrutura de dados chamada pilha. Uma pilha é um conjunto________ de itens, no qual novos itens podem ser inseridos no(a) ________ e itens podem ser retirados do(a)________ da pilha, por meio das operações________ e _________,respectivamente. Assinale a alternativa que completa corretamente as lacunas.
 Certo		ordenado - topo - topo - empilhar ou push - desempilhar ou pop
6.
Analise as afirmativas sobre uma pilha estática e assinale a opção correta.
I Ordenar é uma operação que não se faz com pilha. 
II Inserir dados é uma operação que se faz com a pilha. 
III Remover dados em qualquer posição é uma operação que se faz com a pilha. 
IV Verificar se a Pilha está cheia é necessário quando se deseja inserir nela. 
V Inicializar uma pilha significa zerar todas as variáveis do vetor.
 Certo		I, II e IV estão corretas.
7.
A estrutura de dados linear que obedece o seguinte critério: o último elemento inserido será o primeiro elemento a ser retirado (LIFO) é:
 Certo		Pilha
8.
Algoritmo Pilha
Inicio
IniciarPilha(s)
enquanto (não for o final das entradas) faca
leia (num)
se (num != 3) então
 Empilhar (s, num)
senão
 Desempilhar(s)
 x := ElementoTopo(s)
fimse
fimenquanto
fimalgoritmo
Considere que, no trecho do algoritmo acima, representado por seu pseudocódigo, seja fornecido para num, sucessivamente, os valores inteiros 1, 2, 3, 4, 5, 3 e 6. Nesse caso, ao final da execução do algoritmo, o valor de x será igual a ...
 Certo		5 e a pilha terá os valores 6, 4 e 1.
1.
Um jogo de memória fornece sequências de números e o jogador deve dizer qual a sequência inversa para cada nova sequência fornecida pelo jogo. Qual a estrutura de dados mais adequada para modelar esse jogo ?
 Certo		pilha
2.
Para uma aplicação em que deseja-se recuperar a ordem reversa de armazenamento dos dados em um vetor, a estrutura de dados mais apropriada a ser utilizada na implementação da aplicação é:
 Certo		Pilha
3.
Quando as inserções e as remoções ocorrem sempre no mesmo lado da lista, trata-se de uma estrutura de dados denominada
 Certo		Pilha
4.
A estrutura de dados linear que obedece o seguinte critério: o último elemento inserido será o primeiro elemento a ser retirado (LIFO) é:
 Certo		pilha.
5.
Considere que, em uma estrutura de dados p do tipo pilha, 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 :
 Certo		11 e 29
6.
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.
 Certo		Pilha Sequencial
7.
Existem vários tipos de estruturas de dados do tipo dinâmicas, entretanto, uma estrutura considerada simples são as listas. Pode-se implementar vários tipos de listas, entretanto, a estrutura que apresenta o conceito de LIFO é:
 Certo		Pilha
8.
Pilha é uma estrutura de dados
 Certo		Cujo acesso aos seus elementos segue a lógica LIFO.
1.
Em termos da estrutura de dados do tipo PILHA, a sequência de ações empilha(10), empilha(3), empilha(5), empilha(8), desempilha(), desempilha(), empilha(20), promoveria a configuração da estrutura a partir do topo :
 Certo		20 3 10
2.
Observar os quadros abaixo e reponder o que se pede:
O que aparecerá no topo da PILHA apos os comandos do quadro II?
 Certo		SANTA_CATARINA
3.
Respeitando as ordens de inserção e de retirada dos dados, uma estrutura de:
 Certo		pilha é também denominada LIFO ou FILO.
4.
A estrutura de dados que segue a lógica LIFO (Last in First Out) é denominada :
 Certo		Pilha
5.
Na pequena pizzaria de Dom Leopoldo os pedidos são anotados em uma planilha e assim que montam um lote com 5 pizzas, as entregas começam. As pizzas são organizadas no veículo de entrega respeitando a ordem da entrega, ou seja, a 1a. pizza a ser entregue fica na frente de todas e assim, sucessivamente. Dessa forma, a última pizza a ser entregue ficará no final do veículo, após todas as outras pizzas. Qual a estrutura de dados é mais adequada para modelar a organização das pizzas no veículo de entrega ?
 Certo		pilha
6.
 Navegadores para internet armazenam os últimos endereços visitados em uma estrutura de dados. Cada vez que um novo site é visitado, o endereço do site é adicionado na estrutura de endereços. Quando se aciona o retorno ("back"), o navegador permite que o usuário retorne no último site visitado e retira o endereço do site da estrutura de dados.
Assinale a estrutura de dados mais adequada para este problema.
 Certo		pilha
7.
A técnica LIFO, utilizada em programação estruturada, é fundamentada no conceito de:
 Certo		Pilha.
8.
Abaixo temos algumas afirmativas sobre o uso da estrutura pilha de forma estática e sequencial. Leia com muita atenção e assinale a opção correta.
I Não existe movimentação na pilha quando inserimos ou removemos um elemento. Apenas o valor da variável que controla o topo é alterado. 
II Não podemos usar estruturas homogêneas, ou heterogêneas e uma variável para controlar o topo na alocação sequencial. 
III Um dos fatores que limita o crescimento da pilha é a quantidade de memória alocada quando usamos matrizes. 
IV Quando formos empilhar um elemento, é preciso verificar se a pilha não está cheia. Isso evita underflow. 
V Quando formos desempilhar um elemento, é preciso verificar se a pilha não está vazia. Isso evita overflow.
 Certo		I e III estão corretas
1.
Assinale a opção que apresenta uma estrutura de dados embasada no princípio last in, first out (LIFO) ¿ último a entrar, primeiro a sair ¿, na qual, conforme a inserção, os dados inseridos primeiramente na estrutura são os últimos a serem removidos.
 Certo		pilhas
2.
Assumindo que estamos com uma estrutura de dados do tipo LIFO, as operações abaixo vão resultar em que elementos na mesma: PUSH(2), PUSH(3), PUSH(4), POP(), POP(), PUSH(5), PUSH(7), POP()
 Certo		2 5
3.
Na estrutura de dados tipo pilha, há duas operações básicas para empilhamento e desempilhamento. Essas operações são conhecidas como:
 Certo		PUSH e POP.
4.
Pilhas são estruturas de dados que se utilizam do algoritmo LIFO, last in first out, ou melhor, o último a entrar é o primeiro a sair. Desta forma pode-se abstrair que existe apenas um local para a saída e a entrada de dados, ou seja o topo da pilha.
Supondo que uma pilha seja implementada por um vetor de inteiros de tamanho 10 e que exista uma variável global chamada topo para indexar esta posição de entrada e saída de dados e ainda quando esta variável assume o valor -1 indica que a pilha está vazia. Marque a opção que melhor ilustra a função de exclusão de um dado do vetor pilha, supondo ainda que o vetor tenha sido declarado inicialmente de forma global.
 Certo		void pop(){ if(topo != -1) topo--;}
5.
A estrutura de dados Pilha funciona de acordo com o seguinte fundamento básico:
 Certo		O primeiro a entrar é o último a sair.
6.
Sobre as pilhas, marque a alternativa correta:
 Certo		A característica principal que define uma Pilha diz respeito às operações de inserção e remoção, que devem ser realizadas exclusivamente na mesma extremidade.
7.
Marque a opção que representa uma característica CORRETA a respeito da estrutura de dados pilha.
 Certo		O último item inserido é o primeiro item a ser retirado.
8.
Qual das alternativas a seguir pode definir uma estrutura de pilha?
 Certo		Entrada e saída de dados pelo final.
1.
O almoxarifado de um órgão pediu ao técnico de informática que elaborasse um sistema de custeio que, para cada saída de material,considerasse o custo do mais recente que houvera dado entrada no almoxarifado. O técnico deve desenvolver um programa para tratar com uma estrutura de dados do tipo?
 Certo		LIFO
2.
Considere que existe uma rotina para inserir um valor inteiro em uma pilha de inteiros com o protótipo abaixo: 
 int push (int pilha[], int valor, int &topo); //retorno: 1=empilhou; 0=não empilhou
Considere que existe uma função que remove um valor de uma pilha, que possui o protótipo abaixo:
 int pop (int pilha[], int &valor, int &topo);//retorno: 1=desempilhou; 0=não desempilhou
Considere ainda a execução do seguinte trecho do programa principal:
int primeira[5], topoP=-1, segunda[5], topoS=-1, numero;
push (primeira, 3, topoP);
push (primeira, 5, topoP);
pop (primeira, numero, topoP);
push (segunda, numero, topoS);
ush (segunda, 7, topoS);
push (primeira, 1, topoP);
 Ao final da execução do techo de código acima, responda, nesta ordem, quantos valores haverá na pilha primeira, quantos valores haverá na pilha segunda, qual é o valor no topo da pilha primeira e qual é o valor no topo da pilha segunda. 
 Certo		2; 2; 1; 7
3.
Considere as seguintes afirmativas:
1- Pilhas são um exemplo de estrutura linear, enquanto filas são um exemplo de estrutura não linear
2- Pilhas são estruturas eficientes quando se trata de inserir ou remover de qualquer posição.
3- Pilhas e filas seguem, respectivamente, as lógicas LIFO e FIFO, nas quais a ordem de inserção e remoção de dados da estrutura são bem definidas.
 Certo		Somente 3 está correta
4.
As pilhas sequenciais são estruturas que guardam a ordem reversa dos dados nelas armazenados, e isto em muitas ocasiões é muito vantajoso. A operação usada para inserir um elemento X numa pilha é conhecida na literatura como PUSH (X). Para remover um elemento de uma pilha a operação é o POP( ). Assim estas duas funções devem implentar o algoritmo LIFO (Last In - First Out ) ou o último a entrar é o primeiro a sair. Sendo assim se aplicarmos as seguintes operações em uma PILHA vazia:
PUSH(10),PUSH(5),POP(),PUSH(7),POP(),PUSH(2),POP(),POP( ).
Quais valores restarão na pilha?
 Certo		Nenhum, a pilha estará vazia.
5.
Considere dados sendo manipulados em uma pilha sequencial em que as operações possíveis são: inserção - push(novo valor) ou remoção - pop().
Se realizarmos a seguinte sequencia de operações:
push(A),push(B),push(C),pop(),pop(),push(D),pop(),pop(),pop().
Pode-se dizer que interior da pilha apresenta-se:
 Certo		Vazio
6.
Quando executado, um programa tem acesso à áreas de memória. A área de memória que se destina, principalmente, à alocação dos registros de ativação denomina-se:
 Certo		( )	área de pilha
7.
Na pequena mercearia do Sr. Manuel os pedidos são anotados no papel e assim que montam um lote com 10 listas de compras dos fregueses, as entregas começam. As compras de cada freguês são postas em uma caixa. As caixas são organizadas no veículo de entrega respeitando a ordem da entrega, ou seja, a 1a. caixa a ser entregue fica na frente das demais caixas e assim, sucessivamente. Dessa forma, a última caixa a ser entregue ficará no final do veículo, após todas as outras caixas que deverão ser entregues primeiro. Qual a estrutura de dados mais adequada que traduz a organização das pizzas no veículo de entrega ?
 Certo		pilha
8.
No contexto de estrutura de dados, uma pilha é:
 Certo		um tipo de lista linear em que as operações de inserção e remoção são realizadas na extremidade denominada topo.
1.
Observe a função que manipula uma pilha e assuma que TAM é uma constante definida com valor 5. Saiba que o nome da função já explícita a finalidade dela.
Considere a chamada da função conforme linha abaixo, sabendo-se que vet é um vetor de tamanho 5 e que não tem nenhum valor ainda:
Analise as afirmativas abaixo que sugerem correções, ou não, na definição na função e assinale a opção que contem as afirmativas corretas.
I Faltou & antes da variável vetor e irá acusar erro. 
II A variável topo está sem tipo.
III O teste está correto porque o índice do primeiro elemento do vetor em C++ é 1, obrigatoriamente. 
IV Na linha comentada deveria estar presente um comando de atribuição que decrementaria a variável topo. 
V A linha vetor[topo]=valor; está correta.
 Certo		II e V estão corretas
2.
Um programador recebeu a tarefa de construir um programa que receba uma cadeia de caracteres e verifique se esta cadeia de caracteres é um PALÍNDROME, sabendo-se que um PALÍNDROME apresenta a mesma sequência de caracteres da esquerda pra direita, quanto da direita para esquerda, marque a opção que possui a estrutura de dados mais adequada a este programa.
 Certo		Pilha Sequencial
3.
Ao remover um elemento armazenado em uma pilha é necessário a atualização da variável (Topo) indicadora de posição. Qual das alternativas abaixo está correta?
 Certo		Após a operação de remoção decrementa a variável indicadora de posição.
4.
É uma Lista Linear Ordenada em que as inserções e remoções seguem o critério LIFO (Last In First Out), ou seja, o último a entrar será o primeiro a sair. Estamos falando do(a) __________________________ .
 Certo		PILHA
5.
As estruturas de dados devem ser especificadas de modo que estas auxiliem as aplicações em sua principal tarefa ou funcionalidade. Sendo assim, pode-se desenvolver uma aplicação capaz de fazer a conversão de números da base 10, para a base binária, octal ou hexadecimal a partir de um algoritmo de divisões sucessivas. Este algoritmo baseia na divisão de um número decimal pela base que se deseja a transformação, armazenando o resto da divisão em uma estrutura de dados, efetuando nova divisão no resultado obtido da divisão prévia, novamente armazenando o resto desta operação na estrutura de dados e assim por diante até que o resultado da divisão seja zero. Neste momento, a estrutura possui exatamente, na ordem reversa, os algarismos correspondentes ao número convertido para a nova base. Analisando esta estratégia poder-se-ia dizer que a estrutura de dados mais propícia para tal tarefa é :
 Certo		Pilha
6.
Inseriu-se em uma pilha os valores A,B,C e D, seguindo essa ordem. Se logo após são executadas duas operações de remoção, pode-se dizer que:
 Certo		Os valores removidos serão D e C, nessa ordem
7.
Considere dados sendo manipulados em uma pilha sequencial em que as operações possíveis são: inserção - push(novo valor) ou remoção - pop().
Se realizarmos a seguinte sequencia de operações:
push(A),push(B),push(C),pop(),pop(),push(D),pop(),pop().
Pode-se dizer que o interior da pilha apresenta-se:
 Certo		Vazio
8.
O que acontece quando tentamos retirar um elemento de uma pilha que já está vazia?
 Certo		Underflow.
1.
Ling Tang, estudante de computação, precisou implementar parte de um jogo de cartões com figuras de animais. Alguns jogadores teriam que jogar os cartões na mesa, enquanto outros deveriam devolver os cartões na sequência inversa à jogada. Ling Tang estudou o mecanismo do jogo e decidiu usar a melhor estrutura de dados na sua implementação. Qual a estrutura escolhida ?
 Certo		 pilha
2.
Sabe-se que Push() coloca um elemento na pilha, Pop() remove um elemento da pilha e Top() exibe o elemento que se encontra no topo.
Assinale a opção que indica o número que aparecerá após a execução das funções abaixo.
Sequencia: Push() / Push()/ Pop()/ Push()/Pop()/ Top() 
Números que deverão ser empilhados nessa ordem: 8/ 15/ 23/ 13 / 18
 Certo		8
3.
Analisando o trecho do algoritmo abaixo,
pode-se afirmar que se trata de uma operação de:
 Certo		Inserção de um elemento em uma estrutura LIFO
4.
Quando as inserções e as remoções ocorrem sempre no mesmo lado da lista, trata-se de uma estrutura de dados denominada.
 Certo		Pilha.
5.
A estrutura de dados do tipo pilha (stack) é um tipo abstrato de dado baseada no princípio:
 Certo		Last In First Out(LIFO).
6.
Para gerenciar o acesso do usuário às URL pelas quais ele já passou utilizando as teclas de avanço para trás e para frente, um navegador (Explorer, Chrome, Firefox, etc.) deve armazenar as URL em estruturas de:
 Certo		Pilhas
7.
Tei Ping, estudante de computação, precisou implementar parte de um jogo que trabalhava com cartas especiais. Cada carta possui um número e uma letra. Alguns jogadores teriam que jogar as cartas na mesa, enquanto outros deveriam devolver as cartas na sequência inversa à jogada. Tei Ping estudou o mecanismo do jogo e decidiu usar a melhor estrutura de dados na sua implementação. Qual a estrutura escolhida ?
 Certo		pilha
1.
A estrutura de dados conhecida pela lógica FIFO (First In First Out) é denominada :
 Certo		Fila
2.
Para organizar o acesso dos processos que demandam recursos do computador (uso da CPU, acesso ao disco rígido e a outros dispositivos de Entrada e Saída), o Sistema Operacional gerencia essas demandas colocando os processos requisitantes em:
 Certo		Filas
3.
Uma fila duplamente terminada, isto é, uma estrutura linear que permite inserir e remover de ambos os extremos é chamada de:
 Certo		Deque.
4.
 Assinale a opção que, corretamente, mostra exemplos em que a estrutura de dados fila é usada, de acordo com o critério de inserções e remoções que rege tal estrutura.
 Certo		
Fila de arquivos para impressão e buffer para gravação de dados em fila.
5.
Um órgão público adotou dois sistemas de senhas para atender os cidadãos na ordem de chegada. O sistema I atende os não idosos. O sistema II atende os idosos. Nessa situação:
 Certo		tanto o sistema I, quanto o II, adotam o esquema FIFO de organização de dados.
6.
Considere as afirmativas a seguir:
I. 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 em relação à ordem em que foram inseridos.
II. 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.
III. 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.
IV. 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.
 Certo		Somente as afirmativas I e II são corretas.
7.
Sobre pilhas, lista e filas, considere as afirmativas a seguir. I. 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 e a ordem em que foram inseridos. II. 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. III. 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. IV. 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.
 Certo		Somente as afirmativas I e II são corretas.
8.
IFMT - Técnico em Tecnologia da Informação - 2013
Considere a função insere(x: inteiro), que recebe como parâmetro um número inteiro e o insere em uma Fila, e ainda, a função remove(), que retira um valor de uma Fila.
Dada a Fila [3-4-6-8-10], executam-se os comandos na ordem: insere(1), insere(2), remove().
Após a execução desses comandos, qual será a Fila resultante?
 Certo		[4-6-8-10-1-2]
1.
Marque a afirmativa que represente uma Lista Circular Simplesmente Encadeada:
 Certo		O ponteiro do "último" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da lista.
2.
 As filas sequenciais são estruturas de dados utilizadas em diversas aplicações, tais como fila de processo, fila de impressão, sistemas de senha etc. Entretanto, nas aplicações onde há muita movimentação de dados, inserções e remoções de dados na fila, surgem espaços ociosos que podem levar ao fenômeno chamado de esgotamento de memória. Para sanar este problema pode-se substituir a fila sequencial por:
 Certo		fila circular
3.
IFMT - Técnico em Técnologia da Informação - 2013
 Considere a função insere(x: inteiro), que recebe como parâmetro um número inteiro e o insere em uma Fila, e ainda, a função remove(), que retira um valor de uma Fila.
 Dada a Fila [3-4-6-8-10], executam-se os comandos na ordem: insere(1), insere(2), remove().
 Após a execução desses comandos, qual será a Fila resultante?
 Certo		[4-6-8-10-1-2]
4.
Seja Q uma estrutura de dados do tipo fila, em que ENQUEUE(X) significa a adição do elemento X à Q e que DEQUEUE(), a retirada de um elemento. Q está inicialmente vazia e sofre a seguinte sequencia de operações:
ENQUEUE(1)
ENQUEUE(2)
DEQUEUE()
ENQUEUE(3)
ENQUEUE(4)
DEQUEUE()
DEQUEUE()
ENQUEUE(5)
Ao final da sequencia, a soma dos elementos de que (Q) será?
 Certo		9
5.
Qual estrutura de dados é mais adequada para armazenar em um sistema operacional os processos que estão prontos para utilizar o processador?
 Certo		Fila
6.
Pode-se citar os seguintes exemplos de aplicação da estrutura fila: Fila de arquivos para impressão:
Atendimento de processos requisitados a um sistema operacional.
Buffer para gravação de dados em mídia.
O tratamento do armazenamento das teclas que estão sendo digitadas antes da tecla enter ser pressionada.
Agora analise as seguintes afirmativas:
 I- Uma fila guarda a ordem direta em que os elementos foram armazenados.
 II- Uma fila guarda a ordem reversa em que os elementos foram armazenados.
 III- O algoritmo que é implementado em uma fila é baseao no princípio: " O último a entrar é o primeiro a sair".
IV- O algoritmo que é implementado em uma fila é baseao no princípio: " O primeiro a entrar é o primeiro a sair".
 Marque a alternativa correta:
 Certo		I e IV estão corretas
7.
Escolha a opção verdadeira :
 Certo		Em uma estrutura de dados que segue a lógica LIFO, os dados são excluídos na ordem inversa em que foram incluídos.
8.
Assumindo que estamos com uma estrutura de dados do tipo FIFO, as operações abaixo vão resultar em que elementos na mesma: ENFILEIRAR(4), ENFILEIRAR(5), ENFILEIRAR(6), DESENFILEIRAR(), DESENFILEIRAR(), ENFILEIRAR(5), ENFILEIRAR(7), DESENFILEIRAR()
 Certo		5 7
1.
Complete os espaços na afirmativa abaixo e assinale a alternativa que apresenta as respostas corretas: O escalonamento .................... é do tipo.................., em que o processo que chegar primeiro na fila de pronto é o escolhido para ser executado.
 Certo		FIFO, não-preemptivo.
2.
Considere uma fila simples F de inteiros, do tipo Fila definido abaixo. Tal fila deverá armazenar códigos de agentes de uma firma de espionagem, desde que haja espaço para um novo agente. Assinale a opção que corretamente enfileira o código de um agente, sabendo que a fila F foi inicializada de acordo com o trecho de código abaixo.
struct Fila { in t v[100], inicio, fim; } ;
Fila F;
F. inicio = 0;
F.fim = -1;
 Certo		void enfileirar(Fila &F, int codigo) {
 if (F.fim == 99)
 cout << "Não há espaço na firma para mais agentes. " << endl;
 else {
 F.fim++;
 F.v[F.fim] = codigo;
 }
}
3.
Ao inserirmos em uma estrutura de dados do tipo fila sequencial os seguintes elementos: A, B, C, D, exatamente nesta ordem. E em seguida realizarmos duas operações consecutivas de remoção na fila e imediatamente inserirmos dois novos elementos o X e o W. Podedmos afirmar que se realizarmos uma nova operação de remoção, o elemento que será removido desta fila sera o:
 Certo		C
4.
O que acontece quando se desejainserir um elemento em uma FILA que já está cheia?
 Certo		Overflow.
5.
As estruturas de dados podem ser do tipo estática e dinâmica. As listas são estruturas parecidas com vetores podendo ser do tipo dinâmica. Entretanto, existem várias implementações de estruturas do tipo listas. Dessa forma, a estrutura que para o acesso de um dado, este precisa estar na saída, caso contrário, precisa remover os elementos a sua frente, é chamada de:
 Certo		Fila
6.
Qual das alternativas a seguir pode definir uma estrutura de fila?
 Certo		Entrada de dados pelo final e saída pelo início.
7.
 Considere uma fila circular de tamanho 5, contendo os valores A, Z e C. Assim, o início está na posição 0 (zero) e o fim na posição 2 (dois). Dica: O vetor inicia na posição 0 (zero). Supondo agora que as seguintes operações ocorrerão na lista:
1. D é inserido
2. H é inserido
3. Um elemento é deletado
4. F é inserido
5. Um elemento é deletado
Qual os valores de início e fim ao final dessas operações?
 Certo		inicio 2 e fim 0
8.
Um aluno do EAD estava estudando para a prova de Estrutura quando viu o trecho do programa abaixo em uma apostila.
Como não estava com seu micro, começou a analisar a função entra(...), ficando atento a alguns membros da struct.
Quando finalizou, virou a página da apostila e viu a resposta. Então, ficou muito feliz por ter identificado a estrutura
Assinale a alternativa onde está presente a resposta correta.
 Certo		Fila Circular
1.
Usa-se um vetor para se implementar uma fila sequencial, entretanto se nesta estrutura ocorrer diversas operações de remoção e inserção podemos afirmar que:
 Certo		A estrutra sofrerá do fenômeno chamado esgotamento de memória e logo não poderá mais ser utilizada. A solução é o uso da fila circular.
2.
Analisando a figura abaixo, marque a alternativa correta que apresenta o tipo de estrutura de dados utilizado.
 Certo		Fila
3.
Um conjunto ordenado de itens a partir do qual podem ser eliminados itens em uma extremidade e no qual podem ser inseridos itens na outra extremidade é denominado de
 Certo		fila.
4.
Ao treinar macacos, foi realizado um jogo para avaliar sua memória. O cientista fornecia sequências de cartas com figuras geométricas e o macaco devia reproduzir a mesma sequência usando figuras geométricas reais. Qual a estrutura de dados mais adequada para modelar esse jogo ?
 Certo		fila
5.
 Considere uma fila simples F de inteiros, do tipo Fila definido abaixo. Tal fila deverá armazenar códigos de agentes de uma firma de espionagem, desde que haja espaço para um novo agente. Assinale a opção que corretamente desenfileira o código de um agente, sabendo que a fila F foi inicializada de acordo com o trecho de código abaixo.
struct Fila { in t v[100], inicio, fim; } ;
Fila F;
F. inicio = 0;
F.fim = -1;
 Certo		void desenfileirar(Fila &F) {
 if (F.inicio > F.fim)
 cout << "Não há agentes para retirar. " << endl;
 else {
 cout << "Removido o agente " << F.v[F.inicio];
 F.inicio++;
 }
}
6.
Considerando que uma fila seqüencial utiliza dois apontadores para indicar suas posições de final e início da estrutura, supondo que a fila foi criada com os apontadores apontando para a posição zero do vetor, qual das alternativas a seguir pode caracterizar uma fila vazia?
 Certo		Quando o apontador de posição final for igual ao início.
7.
Considere uma estrutura de dados, representada pela variável P, com procedimentos de inclusão, exclusão e consulta do próximo elemento (e) disponível na estrutura, obedecendo às seguintes propriedades:
Pode-se concluir, então, que P corresponde à seguinte estrutura de dados?
 Certo		PILHA
8.
Usa-se um vetor para se implementar uma fila sequencial, entretanto se nesta estrutura ocorrer diversas operações de remoção e inserção podemos afirmar que:
 Certo		A estrutra sofrerá do fenômeno chamado esgotamento de memória e logo não poderá mais ser utilizada. A solução é o uso da fila circular.
1.
Dr. Pei Tam possui uma lista não ordenada de pacientes de seu consultório em que registra apenas o nome endereço e o telefone de cada paciente. Como não há limites para o crescimento de sua lista, como se pode implementar a inserção de um novo paciente na lista, sabendo que cada paciente é do tipo Paciente e a lista é do tipo List assim definidos :
struct Paciente {
 long int matricula;
 string nome, endereco e tel;
};
struct List {
 Paciente p;
 struct List *link;
 };
 Certo		List * inserePac(List *i, Paciente pt)
{
 List *novo = new List;
 novo->p = pt;
 novo->link =i;
 return novo;
}
2.
Em algumas situações, principalmente na utilização de listas, há a necessidade de posicionar o ponteiro em determinado local da lista. Dessa forma, analisando o trecho de código abaixo, que mostra uma função, assinale a alternativa correta que descreve o objetivo desta. Sabe-se que o sinal de asterisco (*) sinaliza um ponteiro.
void funcao (Nodo **P){
 if ( *P != NULL ){
 while ( (*P) -> Anterior != NULL )
 *P= (*P) -> Anterior;
 }
}
 Certo		Posicionar o ponteiro no início da lista
3.
As structs (estruturas) são utilizadas para modelar os nodos de estruturas dinâmicas como, por exemplo, as listas encadeadas, seja o seguinte exemplo de nodo de uma lista de produtos: struct nodo{ float valor; string produto; nodo * proximo; }; Suponha que um determinado ponteiro pt esteja apontando para um nodo desta lista, e que se queira alterar o conteúdo do campo valor deste nodo, que está sendo apontado por pt, para 5.60. Marque a alternativa que corretamente possibilita esta operação:
 Certo		pt->valor=5.60;
4.
Considere uma lista simplesmente encadeada com placas de carros. Assinale a opção que, corretamente, imprime todas as placas da lista. Considere :
struct no {
 string placa;
 struct no *link;
};
no *p; //p aponta para o início da lista
 Certo		void imprimir(no *p) {
 while (p != NULL) {
 cout << pàplaca;
 p = pàlink;
}
}
 
5.
Sobre listas encadeadas, é INCORRETO afirmar que:
 Certo		possuem tamanho fixo;
6.
Seja uma lista encadeada cujos nodos são formados pelo seguinte tipo de dado:
struct empregado{
 long int matricula;
 float salario;
 empregado *proximo;
};
Suponha que o ponteiro pont tenha o endereço de um nodo da lista, o qual se deseja atribuir um novo valor para o campo salario. Marque a alternativa que corretamente altera o valor do campo salario para 5000.00.
 Certo		salario=5000.00;
7.
Tem-se uma estrutura de dados do tipo lista encadeada com 10 elementos, em que o primeiro e o último elemento estão ligados entre si. Trata-se de uma estrutura de dados denominada Lista
 Certo		Encadeada Circular
8.
Na Alocação dinâmica, temos alguma regras a considerar. Leia atentamente as afirmativas abaixo e assinale a correta.
I Alocou com new, desaloca com free
II Alocou com new[], desaloca com delete
III Alocou com new[], desaloca com delete[]
IV Alocou com new[], desaloca com free[]
V Alocou com new, desaloca com delete
 Certo		III e V estão corretas
1.
Qual das inicializações de ponteiros apresentadas abaixo está correta?
 Certo		int *p = new int;
2.
A linguagem C++ oferece quatro meios de criação de tipos de dados: matrizes, estruturas ou structs, uniões e classes. As estruturas, que passaremos a chamar simplesmente de structs, são tipos de variáveis que agrupam dados geralmente desiguais, enquanto matrizes são variáveis que agrupam dados similares. Devido a esta característica as structs são utilizadas para modelar nodos (nós) de estruturas dinâmicas. Portanto podemos afirmar que:
 Certo		As estruturas dinâmicas são assim chamadas, pois podem fazer alocação de memória em tempo de

Outros materiais