Buscar

Teste Estrutura de Dados

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 30 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 30 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 30 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

ESTRUTURA DE DADOS
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
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. 
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 de 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.
		Podemos dizer que estrutura de dados é:
		
	
	
	
	 
	O meio para armazenar e organizar dados com o objetivo de facilitar o acesso e as modificações.
As estruturas de dados são utilizadas para manter dados ou informações organizadas na memória, o que possibilita a otimização do uso destes dados. Porém, as estruturas guardam características especiais na manipulação destes dados, assim deve-se escolher a estrutura certa ou mais adequada para uma determinada aplicação. Portanto marque a opção que representa a melhor estrutura, quando se tem como requisitos principais o acesso aleatório aos dados e alocação destes de forma contínua na memória.
Lista Sequencial
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. 
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ó. 
		VI Uma das aplicações da estrutura de dados grafo é a Computação Gráfica. 
	
Na maioria dos sistemas operacionais, os arquivos são organizados hierarquicamente em um esquema de diretórios (pastas) e sub-diretórios. Qual a estrutura mais adequada para representar este problema?
árvore
		Estão entre algumas das possíveis formas de se estruturar dados:
	
Grafos, lista ordenada, vetores.
Diferentes tipos de estrutura de dados são adequados a diferentes tipos de aplicação e algumas são altamente especializadas, destinando-se a algumas tarefas específicas. Dessa forma a definição de Estrutura de Dados está expressa na alternativa:
É um modo particular de armazenamento e organização de dados em um computador de modo que possam ser usados de modo eficiente. 
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 é: 
Pilha
Como é a lógica do FIFO? 
 Gabarito: O primeiro que entra na fila é o primeiro que sai.
Uma estrutura de dados em lista duplamente encadeada permite na cadeia movimentos para:
Para frente e para trás, apenas. 
Qual das seguintes estruturas de dados é classificada como heterogênea? 
Registro
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; 
} 
pesquisa binária 
Considere uma lista simplesmente encadeada não circular de inteiros e o tipo 
 struct no { 
 int dado; 
 struct no *link; 
 }; 
Faça uma função para inverter a lista e retornar o ponteiro para o início da lista resultante. 
Protótipo: no *inverter(no *ini); //ini aponta para o início da lista 
 Gabarito: no *inverter (no *ini) // ini é um ponteiro para o início da lista { no *a, *b, *c; a = ini; b = NULL; 
while (a != NULL) { c = b; b = a; a = a->link; b->link = c; } ini = b; return(ini); } /* fim da função */ 
Uma fila duplamente terminada, isto é, uma estrutura linear que permite inserir e remover de ambos os extremos é chamada de: 
 Deque
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? 
LIFO
Os registros também conhecidos como estruturas, são estruturas de dados do tipo heterogêneo, ou seja, permitem que valores de tipos diferentes possam ser armazenados em uma mesma estrutura. Analisando a estrutura abaixo, a mesma pode ser utilizada para qual tipo de estrutura de ordenação, marque a alternativa correta:
struct nomeRegistro{ 
 int info; 
 struct nomeRegistro* ant; 
 struct nomeRegistro* prox; 
}; 
typedef struct nomeRegistro NOMEREGISTRO; 
Lista duplamente encadeada 
Uma lista linear implementada através de encadeamento deve apresentar obrigatoriamente:
i) um ponteiro para o primeiro nó da lista;
ii)encadeamento entre os nós, através de algum campo de ligação;
Obs erv e a f unç ão que manipula uma pi lha e as s uma que TA M é uma c ons tant e defi nida com v alor 5. S aiba
queo nom eda f unçãojá ex plíc i t aa f inali dade dela.
Obs erv e a f unç ão que manipula uma pi lha e as s uma que TA M é uma c ons tant e defi nida com v alor 5. S aiba aiba
queo nom eda f unçãojá ex plíc i t aa f inali dade dela
locos únicos de códigos que realizam diversas tarefas distintas são de difícil manutenção . Portanto, utiliza-se a técnica da modularização de programas ,a fim de facilitar a implementação e a manutenção dos programas.
Esta técnica tem como principal elemento:
As funções
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
5
Pode -se definir uma estrutura heterogênea com o 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:
structaluno {
string nome ;
float nota;
};
Suponha ainda que exista um vetor desta estrutura, definido como:
aluno vet[100];
Marque a alternativa e m que é atribuída de forma correta a nota 5.7para o décimo primeiro elemento deste vetor.
vet[10].no ta =5.7;
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 sequência 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 é:
1,23,3,8,13
5
Ordene a c oluna direit a de ac ordo c om a da esquerda, as s ociando as  c aract erís t ic as de implement ação de
c ada: (Podemex is t irmais  de umaopçãoàdireitapara alguma daesquerda)
5
Ordene a c oluna direit a de ac ordo c om a da esquerda, as s ociando as  c aract erís t ic as de implement ação de
c ada: (Podemex is t irmais  de umaopçãoàdireitapara alguma daesquerda)
5
Ordene a c oluna direit a de ac ordo c om a da esquerda, as s ociando as  c aract erís t ic as de implement ação de
5
Ordene a c oluna direit a de ac ordo c om a da esquerda, as s ociando as  c aract erís t ic as de implement ação de
Na fila, o primeiro que entra é o primeiro que sai. Estruturas deste tipo são conhecidas como FIFO ("FirstIn, FirstOut"). Com este conceito, crie uma estrutura (struct) e m C ++ de fila para valores inteiros.
Gabarito:
#define TAM100
structfila {
intF, R; int vetor [T A M];
};
No dia 20 de fevereiro de 2002(20022002), vivenciouse um momento que só
aconteceránovamenteem21dedezembrode2112(21122112).

Acredito que muitas pessoas não tinham familiaridade com o termo capicua que,
segundo o dicionário do Aurélio, se aplica a um grupo de algarismos que lidos da
esquerdaparadireita,oudadireitaparaesquerda,representamomesmonúmero.

Construa uma função que receba um número inteiro longo e retorne o número
escritodetrásparafrente.Exemplo:recebe123eretorna321
A armazenagem de dados pode ocorrer temporariamente em uma variável, um vetor ou em uma estrutura chamada Struct na linguagem C e C ++. Como se procede a atribuição de valor a um determinado campo de uma estrutura do tipo Struct?
Nome da estrutura ponto nome do campo
Qual das alternativas a seguir pode definir uma estrutura de pilha?
Entrada e saída de dados pelo final. 
Qual das seguintes estruturas de dados é classificada como heterogênea? 
Registro
Na estrutura de dados tipo pilha, há duas operações básicas para empilhamento e desempilhamento. Essas operações são conhecidas como: 
PUSH e POP.
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:
Seleção
Analise as seguintes afirmações: 
I. Na Passagem por Referência, o parâmetro que vai ser passado na chamada da função deve ser uma variável, de tal forma que uma alteração de valor neste parâmetro também altera a variável correspondente.
Seja Q uma estrutura de dados do tipo fila, em que ENQUEUE(X) significa a adição do elemento X à Q e que EQUEUE(), a retirada de um elemento. Q está inicialmente vazia e sofre a seguinte sequência de operações: 
 
ENQUEUE(1) 
ENQUEUE(2) 
DEQUEUE() 
ENQUEUE(3) 
ENQUEUE(4) 
DEQUEUE() 
DEQUEUE() 
ENQUEUE(5) 
Ao final da sequência, a soma dos elementos de que (Q) será?
9
Analisando o trecho de código abaixo, marque a alternativa correta que apresenta o que será impresso na tela do usuário. Sabe-se que na linguagem C os ponteiros são representados pelo sinal de asterisco (*), o endereço de memória pelo sinal & e a função de impressão é denominada printf. void funcao ( int *a, int *b) 
{ 
int c; 
c = *a; 
a = b; 
*b = c; 
} 
main() 
{ 
int a=2, b=3; 
funcao (&a, &b); 
printf("%d - %d \n",a,b); 
} 
2 – 2
Determinados tipos de estrutura de dados, são utilizados para implementar um algoritmo de escalonamento de processos do sistema operacional UNIX, chamado Round Robin, onde cada processo ganha uma fatia de tempo. Esse tipo de estrutura de dados é chamado de: 
Lista duplamente encadeada
O espaço necessário para a representação dos dados pode ser alocado à medida que se torne necessário, através da alocação dinâmica. Uma estrutura armazenada através de encadeamento apresenta seus nodos alocados em posições aleatórias na memória, e não lado a lado. Dessa forma, existem várias vantagens no uso de representar os dados por encadeamento. Marque a alternativa correta que apresenta estas vantagens. 
1. Compartilhamento de memória, maleabilidade e facilidade para inserção e remoção de componentes.
Marque a afirmativa correta para a "inserção incremental".
Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
O registro de ativação de uma sub-rotina é o conjunto das informações que devem/precisam ser alocadas em memória. Assinale abaixo a única opção que representa a composição destas informações:
( ) endereço de retorno / variáveis locais / parâmetros passados
Considere: 
I - Os algoritmos de busca binária e de busca seqüencial executam processamento repetitivo. 
As estruturas de dados permitem o uso de certos algoritmos para a ordenação dos elementos de forma a facilitar a consulta de determinado elemento. 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. O trecho de código abaixo descreve o algoritmo chamado: 
 algoritmo ordena (int a[], int n){ 
Para i da primeira posição até a penúltima faca 
mínimo = i 
para j da posição seguinte a i até a ultima posição faça 
se (a[j] < a[mínimo]) 
mínimo =j; 
fim para 
fim para 
troca(a[mínimo],a[i]); 
fim algoritmo
Seleção
É 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...
Binária
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:
Somente a operação POP altera o estado da Pilha
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.
Diferentes tipos de estrutura de dados são adequados a diferentes tipos de aplicação e algumas são altamente especializadas, destinando-se a algumas tarefas específicas. Dessa forma a definição de Estrutura de Dados está expressa na alternativa: 
1. É um modo particular de armazenamento e organização de dados em um computador de modo que possam ser usados de modo eficiente
A técnica LIFO (last in first out), utilizada em programação estruturada, é fundamentada no conceito de:
Pilha
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 corretamentea alternativa que apresenta o código do método de seleção:
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; 
 } 
 } 
} 
}
A função apresentada representa uma das operações básicas de uma Pilha? 
int funcao(int v[], int &topo){ 
int valor; 
if (topo <0){ 
cout << "MENSAGEM DE ERRO\n\n"; 
exit(1); 
} 
valor = v[topo--]; 
return(valor); 
} 
Que operação é esta?
Retirada
Chama-se “membros” os elementos que compõe uma estrutura (struct). E para acessá -los utiliza-se o operador ponto (.) . Suponha que as seguintes declarações tenham sido feitas: 
struct atleta { 
float altura; 
float peso; 
}; 
atleta Paulo; 
atleta Marcos; 
Marque a única alternativa contendo uma atribuição CORRETA: 
Paulo.altura=1.80;
O tipo estrutura é a forma existente em C++ de possibilitar ao programador a criar seus próprios tipos de dado. 
Seja um tipo de dado definido pela estrutura: 
 struct ponto{ int x; int y}; 
 
Considere ainda a seguinte declaração de variáveis: ponto p1,p2,p3; 
Qual a única instrução referente as estas variáveis é VÁLIDA? 
p1=p2;
Considere a função que deve implementar a busca sequencial. Note que ela está incompleta e que você deve completá-la. 
 int buscaSequencial(int v[ ], int valor) 
{ 
 int i; 
 
 for (i = 0; i < 10; i++) 
 __________________ 
 __________ 
 ____________ 
} 
 Assinale a opção que mostra a função completa e correta.
int buscaSequencial(int v[ ], int valor) 
{ 
int i; 
for (i = 0; i < 10; i++) 
if(v[i] == valor) 
return i; 
return -1; 
} 
Para pesquisar dados em um vetor ordenado, o mais apropriado é usar ...
Busca binária
Com relação à struct, é correto afirmar que:
Cada elemento da struct é denominado membro ou campo, sendo que a struct pode armazenar elementos de tipos diferentes ou não.
Considerando n o número de elementos de v, o trecho:
 void ordenar(int v[ ], int n) { 
int i, j, aux; 
 
for (j = 1; j < n; j++) 
 for (i=j; i > 0 && v[i-1]> v[i]; i = i – 1) 
 { 
 aux = v[i-1]; 
 v[i-1] = v[i]; 
 v[i] = aux; 
 } 
 
} 
 
Implementa o método de ordenação:
Por inserção
Editores de texto geralmente oferecem um mecanismo de reversão de operações (“O famoso desfazer, undo”), que cancela operações recentes e reverte um documento ao estado anterior ao da operação realizada. 
Que tipo de estrutura de dados seria melhor aplicada para este mecanismo? 
Pilha 
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 é:
a1 – pilha linear; b1 – vetor linear; c2 – grafo não linear; d1 lista linear
Diferentes tipos de estrutura de dados são adequados a diferentes tipos de aplicação e algumas são altamente especializadas, destinando-se a algumas tarefas específicas. Dessa forma a definição de Estrutura de Dados está expressa na alternativa:
É um modo particular de armazenamento e organização de dados em um computador de modo que possam ser usados de modo eficiente.
O que acontece ao se inserir uma informação quando já usamos toda a área disponível do vetor (topo = fim)?
Overflow
Ordene a coluna direita de acordo com a da esquerda, associando as características de implementação de cada: 
(Podem existir mais de uma opção à direita para alguma da esquerda)
A – lista ligada desordenada
B – array ordenada
C – método (bubble sort)
( a )inserção e remoção em tempo constante
( b ) consulta por busca binária em tempo O(log n)
( a ) consulta atravessa a lista toda
( c ) consiste na troca de valores entre posições consecutivas
( c ) é o processo mais simples de entender, mais fácil de implementar
( b ) inserção e remoção levam tempo linear
a - b - a - c - c – b
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:
512 e 1024
Assinale a alternativa que apresenta duas formas de passagem de parâmetros para uma rotina ou função:
Por valor e por referência
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".
Inserção
Sabe-se que um protótipo de uma função é o cabeçalho da função com ;(ponto-e-vírgula) ao final. E que nas funções a passagem de parâmetros se dá por valor ou por referência. 
Para o protótipo: void troca(float&,float&); pode-se dizer que: 
É um protótipo de função que recebe dois argumentos que são endereços que armazenam números reais, por passagem por referência. E a função não retorna nada para a função chamadora.
A alocação dinâmica de memória vem possibilitar a criação de tipos de dados e estruturas de qualquer tamanho durante a execução do programa. Quais são os operadores que respectivamente alocam e liberam espaço na memória?
new e delete.
As listas simplesmente encadeadas têm como característica. Marque a resposta correta.
Possuir um nó com no mínimo dois elementos, sendo um deles um ponteiro para o próximo nó.
Nas listas encadeadas podemos fazer referência a uma parte de um nó, através de um outro nó. Na estrutura apresentada o ponteiro p armazena o endereço do próximo nó. 
struct teste { 
int valor; 
struct teste *p; 
}; 
Das opções apresentadas qual permite armazenar na variável val do tipo inteiro o valor que está no nó seguinte ao nó posicionado, sabendo-se que aux, contém o endereço do nó atual. 
val= aux->p->valor;
Determinado método de ordenação seleciona o menor elemento dentro do conjunto e coloca na primeira posição, depois o segundo menor e coloca na segunda posição e assim por diante até que todo o conjunto esteja ordenado. Qual das opções apresenta este método? 
Selection sort;
Assinale a opção certa. 
Quando não se escreve o protótipo de uma função..
É preciso definir a função antes do programa principal.
Como é a lógica do LIFO? 
Resposta: Na lógica LIFO (Last In First Out) o último elemento a entrar é o primeiro a sair. Esse conceito está aplicado na estrutura Pilha, no qual o último elemento que foi inserido na pilha será o primeiro a sair. 
Imagine a seguinte estrutura em C/C++, para descrever um produto: 
struct Produto { 
int codigo; 
char descricao[40]; 
float preco; 
}; 
Considere a função que atribui o preço ao produto 
void atribui (struct Produto *pProd) { 
/* atribuição do preço */ 
... 
} 
A forma correta para atribuir 2.99 ao campo preço dentro de função atribui é :
pProd -> preco=2.99;
Geralmente em algumas situações é necessário fazer a desalocação do espaço utilizado na memória. Porém, isso depende de como a reserva de uma quantidade de espaço de memória é feita, pois em alguns casos, o próprio compilador faz a desalocação. Quando o compilador não faz esta desalocação a memória foi reservada utilizando________________.
Alocação dinâmica de memória
Em um container do tipo Pilha:
Utiliza-se a ordenação Last In First Out (LIFO).
Marque a afirmativa que represente uma concatenação em listas.Juntar duas listas, colocando uma lista no final de outra, obtendo, ao final, uma só lista resultante.
Qual a diferença entre pilha e fila? 
Resposta: Pilha - na Pilha o último dado que entra é o primeiro que sai, e o primeiro que que entra é o último a sair, como sugere o nome LIFO (Last in First out) o ultimo que entra é o primeiro que sai, ou seja, o dado entra por um lado e sai pelo mesmo lado. 
 Fila - Já é diferente o dado que entra primeiro sai primeiro, ou seja, o dado entra por um lado e sai por outro lado, daí o nome FIFO (First in First Out) o primeiro a entrar é o primeiro a sair. 
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:
Ponteiros
Dado o seguinte código, escrito em C++, qual a saída do programa? 
 
#include 
using namespace std; 
void func1 (float x) { 
cout << "X: "<< x << endl; 
x = 3.5; 
cout << "X: "<< x << endl; 
} 
int main () { 
float y=1.5; 
cout << y << endl; 
func1(y); 
cout << y << endl; 
return 0; 
}
1.5 1.5 3.5 1.5
Sistemas operacionais utilizam filas para gerenciar, tarefas, processos e recursos. Qual é a ordenação dos elementos armazenados aleatoriamente em uma lista do tipo LIFO?
Ordem de entrada
Analisando a sequência do código abaixo, pode se afirmar que se trata da: 
for (int i = topo-1; i>=0 ; i--) 
cout << " "<< v[i] <<" "< 
Exibição de todos os elementos armazenados em uma Fila na ordem inversa da entrada
O espaço necessário para a representação dos dados pode ser alocado à medida que se torne necessário, através da alocação dinâmica. Uma estrutura armazenada através de encadeamento apresenta seus nodos alocados em posições aleatórias na memória, e não lado a lado. Dessa forma, existem várias vantagens no uso de representar os dados por encadeamento. Marque a alternativa correta que apresenta estas vantagens.
Compartilhamento de memória, maleabilidade e facilidade para inserção e remoção de componentes.
Se a e b são variáveis inteiras (int) e p1 e p2 ponteiros para int, quais das seguintes expressões de atribuição está errada?
*p2 = &b;
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:
Global
Quando as inserções e as remoções ocorrem sempre no mesmo lado da lista, trata-se de uma estrutura de dados denominada: 
Pilha
Como é a lógica do FIFO? 
1º Resposta: A fila usa a lógica FIFO, que diz que o primeiro elemento a entrar será o primeiro a sair. 
2º Resposta: O primeiro que entra na fila é o primeiro que sai.
O que será impresso pelo trecho de código a seguir? 
int main() { 
int vet[5] = {80, 70 , 10, 50, 20}; 
int *ptr; 
ptr = vet; 
cout << *(ptr) << " "; 
cout << *(ptr + 3); 
return 0; 
}
O que será impresso pelo trecho de código a seguir? 
int main() { 
int vet[5] = {80, 70 , 10, 50, 20}; 
int *ptr; 
ptr = vet; 
cout << *(ptr) << " "; 
cout << *(ptr + 3); 
return 0; 
}
O que será impresso pelo trecho de código a seguir? 
int main() { 
int vet[5] = {80, 70 , 10, 50, 20}; 
int *ptr; 
ptr = vet; 
cout << *(ptr) << " "; 
cout << *(ptr + 3); 
return 0; 
}
O que será impresso pelo trecho de código a seguir? 
int main() { 
int vet[5] = {80, 70 , 10, 50, 20}; 
int *ptr; 
ptr = vet; 
cout << *(ptr) << " "; 
cout << *(ptr + 3); 
return 0; 
}
Em uma lista linear simplesmente encadeada.
Cada nó possui um só ponteiro que referencia o próximo nó da lista
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 é:
Vetor
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:
Ponteiros
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 é: 
Pesquisa binária
Analisando o trecho de código abaixo, marque a alternativa correta que apresenta o que será impresso na tela do usuário. Sabe-se que na linguagem C os ponteiros são representados pelo sinal de asterisco (*), o endereço de memória pelo sinal & e a função de impressão é denominada printf. 
void funcao ( int *a, int *b) 
{ 
int c; 
c = *a; 
a = b; 
*b = c; 
} 
main() 
{ 
int a=2, b=3; 
funcao (&a, &b); 
printf("%d - %d \n",a,b); 
} 
2 – 2
Podemos dizer que um container é:
O que permite o armazenamento e a recuperação de dados independentemente de seu conteúdo.
Diga, para o programa abaixo, qual a opção que melhor representa a saída em tela. (Considere que o programa será compilado sem erros, e irá executar também sem problemas). 
#include 
using namespace std; 
void FuncX( int x, int *y ) 
{ 
int tmp; 
tmp = *y; 
*y = x * 2; 
x = tmp+1; 
} 
int main() 
{ 
int a = 13, b = 10; 
FuncX( a-3, &b ); 
cout<<"Valores: "<< a<<"\t"<< b< 
system("pause"); 
}
Valores: 13, 20
Assinale a alternativa que apresenta duas formas de passagem de parâmetros para uma rotina ou função:
Por valor e por referência
Com relação as afirmações abaixo, a respeito de lista lineares, assinale as Verdadeiras e as Falsas. Indique a alternativa que representa a sequência correta: 
I - Nas listas encadeadas não precisamos saber previamente o número de elementos a serem armazenados. 
II - Podemos aumentar e diminuir o tamanho da lista encadeada quando quisermos, enquanto que a lista sequencial não. 
III - Quando o número de acessos randômicos a uma área de armazenamento é muito maior que o número de inserções e remoções de elementos armazenados, a organização dessa área de armazenamento por meio de uma lista encadeada resulta em desempenho melhor que o apresentado por organização feita usando uma lista linear.
Ao atributo ou conjunto de atributos de uma relação que referencia a chave primária de outra relação, de forma a garantir a restrição de integridade referencial, dá-se o nome de chave.
Estrangeira
As seguintes afirmações são verdadeiras (V) ou falsas (F)? 
O principal conceito da abordagem relacional deriva da teoria de conjuntos combinado com a ideia de que o usuário não necessita saber onde os dados estão nem como estão. 
Um conceito importante no modelo de Entidade e Relacionamento (ER) é o conceito de relacionamento. 
Descreva este conceito. 
 É a representação do relacionamento entre as entidades. 
OU 
Além de especificar os objetos sobre os quais deseja-semanter informações, o Diagrama de Entidades e Relacionamentos (DER) deve permitir a especificação das propriedades dos objetos que serão armazenadas no banco de dados. Uma das propriedades sobre as quais pode ser desejável manter informações é a associação entre objetos. 
Sendo assim, descrevemos os relacionamentos entre esses objetos com a finalidade de mapear a relação entre eles. 
O SGBD possibilita o desenvolvimento de programas aplicativos que não possuem a descrição real de como os dados (arquivos) estão fisicamente armazenados. Desta forma, alteração nas estruturas dos arquivos do Banco de 
Dados não afetam os programas aplicativos. Podem-se apresentar dois tipos de independência de dados. 
Independência Lógica dos Dados e Independência Física dos Dados. Descreva sobre a independência Lógica dos Dados. 
 Independência Lógica dos Dados consiste na capacidade de alterar o esquema interno sem provocar modificações no esquema conceitual. 
Considerando os conceitos de dependência funcional e normalização (obs: chaves primárias estão em negrito e chaves estrangeiras sublinhadas) e observando a tabela Trabalha é correto afirmar que: 
 Trabalha (pessoa_nome, empresa_nome, empresa_cidade, empresa_rua, pessoa_salário, (nome_dependente)*) 
 
- Atributo multivalorado = nome_dependente 
Na tabela Trabalha o atributo empresa_cidade possui dependência funcional parcial em relação à chave primária, e por isso a tabela precisa ser convertida para a segunda forma normal, em que o objetivo é atingir a dependência funcional total;
Considerando a arquitetura de três-esquemas (externo, conceitual e físico) de um sistema de banco de dados, a capacidade de modificar a definição dos esquemas de um banco em determinado nível, sem afetar o esquema do nível superior, é denominada: 
Independência de dados
O conceito de dependência funcional é essencial para o entendimento do processo de:
Normalização
Na notação de Peter Chen um losango representa um(a) :
Relacionamento Tipo
Estão entre algumas das possíveis formas de se estruturar dados: 
 Grafos, lista ordenada, vetores.
Qual das alternativas a seguir pode definir uma estrutura de fila?
Entrada de dados pelo final e saída pelo início
A técnica LIFO (last in first out), utilizada em programação estruturada, é fundamentada no conceito de:
Pilha 
Na área de estrutura de dados, em determinados casos, é necessário utilizar um tipo de dado onde seu valor serve como referência direta a outro valor alocado em outro espaço de memória. Este tipo de dado se chama: 
Ponteiro
Em relação às estruturas de dados, é correto afirmar:
Guardar endereço de memória em "nós", normalmente identificados por previous ou next, é uma característica presente nas listas duplamente encadeadas.
Considerando as definições de estruturas de dados e a declaração tipo nó :: reg (dado: inteiro; próximo: ref nó), na qual reg é um registro contendo os campos: dado, que guarda valores inteiros, e próximo, que guarda endereço de outro nó, assinale a opção correta: 
 O algoritmo para inclusão de elementos em uma pilha é usado sem nenhuma alteração para incluir elementos em uma lista. 
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; 
 } 
}
Posicionar o ponteiro no início da lista
Assinale a alternativa que apresenta duas formas de passagem de parâmetros para uma rotina ou função:
Por valor e por referência
Pilha é uma estrutura de dados:
Cujo acesso aos seus elementos segue a lógica LIFO
Quando as inserções e as remoções ocorrem sempre no mesmo lado da lista, trata-se de uma estrutura de dados denominada.
Pilha
Em uma pesquisa sequencial a lista deve estar?
Ordenada ou desordenada
O seguinte trecho de programa abaixo representa qual tipo de estrutura de ordenação? 
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
Bublesort
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: 
Somente a operação POP altera o estado da Pilha
Para a criação de uma Fila seqüencial basta iniciar as variáveis de início e final, ou seja, apontá-las para as posições iniciais do vetor. O que alteraria na rotina de inserir se a variável final fosse inicializada com o valor -1 (menos um):
Antes da inserção deve-se fazer o incremento da variável final
O que acontece quando tentamos retirar um elemento de uma pilha que já está vazia?
Underflow
Marque a opção que representa uma característica CORRETA a respeito da estrutura de dados pilha.
O último item inserido é o primeiro item a ser retirado.
Considere uma estrutura de dados do tipo vetor. Com respeito a tal estrutura, é correto que seus componentes são caracteristicamente: 
Homogêneos e de acesso aleatório por intermédio de índices.
Sobre o funcionamento da busca binária, é correto afirmar que dividindo seu vetor em duas metades.
Se o item for igual ao item que está na metade do vetor, o item foi encontrado.
É correto afirmar sobre o funcionamento da busca sequencial.
Os elementos são pesquisados de acordo com o índice. Pior caso: o elemento está no último índice do meu vetor.
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?
LIFO
A implementação da pilha de chamadas e retorno de funções é um tópico muito importante. Além disso, estratégias para o gerenciamento de outra área de memória chamada de heap são importantes para a compreensão de objetos dinâmicos como ________________. Com base na afirmativa marque a opção correta para completá-la:
MATRIZES
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? 
1. Após a operação de remoção decrementa a variável indicadora de posição. 
Em que aplicação se pode utilizar a "ordenação"?
Busca, Par mais próximo, Unicidade de elementos, Distribuição de frequência, Seleção e Casco convexo.
As coleções de dados podem ser classificadas em estruturas lineares e estruturas não lineares. Nesse contexto, é correto afirmar que:
Na tabela de Hash a chave é transformada num índice inteiro que é usado para acessar os dados. A chave pode ser uma string, desde que haja uma função que transforme essa chave num inteiro. É uma estrutura linear. 
Marque a afirmativa correta para a "Inserção em lista linear sequencial ordenada".
Consiste em adicionar um valor no vetor, mantendo a ordem existente e ajustando o total de elementos.
Navegadores para internet armazenam os últimos endereços vi sitados 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 estruturade dados. 
Assinale a estrutura de dados mais adequada para este problema. 
Pilha.
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.
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. 
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"); 
}
( ) área de dados globais / área de pilha
Marque a afirmativa correta para a "Busca ou pesquisa binária".
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.
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: 
Somente a operação POP altera o estado da Pilha
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?
Após a operação de remoção decrementa a variável indicadora de posição
Abaixo temos algumas afirmativas sobre o uso da estrutura pilha de forma estática e sequencial. Leia com muita atenção e as sinale a opção correta. 
 I Não existe m ovimentação na pilha quando inser imos ou removem os um elemento. Apenas o valor da variável que contro la o topo é alterado. 
III Um dos f atores que limita o crescimento da pilha é a quantidade de memória alocada quando usamos matrizes. 
 
Analise as afirmativas sobre uma pilha estática e assinale a opção correta. 
 I Ordenar é um a operação que não se f az com pilha. 
II Inserir dados é um a operação que se fa z com a pilha. 
IV Verificar se a Pilh a está cheia é neces sário quando se deseja inserir n ela. 
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: 
fila circular
Para a criação de uma Fila sequencial basta iniciar as variáveis de início e final, ou seja, apontá-las para as posições iniciais do vetor. O que alteraria na rotina de inserir se a variável final fosse inicializada com o valor -1 (menos um): 
Antes da inserção deve-se fazer o incremento da variável final
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. 
FIFO, não-preemptivo
Vários conceitos f oram estudados quando se f alou sobre ponteiros e alocação dinâmica. Entre eles, o de Fragmentação Externa. Assinale a opção que explica o que significa. 
Espaço de Mem ória perdido entre os segm entos.
Sou uma empresária que quer crescer e por isso, tenho que aumentar progressivamente a minha lista de clientes, sem limitar este crescimento. Assim, à medida que novos clientes são cadastrados, posso, se necessário, contratar mais e mais empregados. Marque a opção que especifica o tipo de lista e o tipo de alocação de memória mais adequados para este problema. 
lista encadeada e alocação dinâmica de memória
Para simular uma lista encadeada simplesmente pode se utilizar as estruturas de ponteiros. Como pode ser definida uma estrutura do tipo ponteiro?
Um objeto que contém um endereço de memória.
Assinale a opção cor reta. Sobre pilha dinâmica podemos afirmar que 
usa o critério LIFO e é implementada usand o-se l istas encadeadas.
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. 
A armazenagem de dados pode ocorrer temporariamente em uma variável, um vetor ou em uma estrutura chamada Struct na linguagem C e C++. Como se procede a atribuição de valor a um determinado campo de uma estrutura do tipo Struct?
Nome da estrutura ponto nome do campo
Marque a afirmativa que represente uma Lista Circular Simplesmente Encadeada:
O ponteiro do "último" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da lista.
Em relação as estruturas de dados, aquela que corresponde ao armazenamento em uma lista linear com a posição relativa (não contígua) na memória de dois nós consecutivos da lista é conhecida por alocação: 
Encadeada
As listas encadeadas podem ser elaboradas de duas formas utilizando uma técnica de encadeamento simplesmente ou encadeamento duplo. O que difere uma lista simplesmente encadeada de uma lista duplamente encadeada? 
Em uma lista simplesmente encadeada cada nó aponta para um único nó enquanto a lista duplamente encadeada aponta para mais de um nó.
Marque a afirmativa que represente uma concatenação em listas
Juntar duas listas, colocando uma lista no final de outra, obtendo, ao final, uma só lista resultante
O resultado de um concurso foi armazenado por um programador em um vetor, onde cada elemento (descrito pela struct Candidato) possui a informação da matrícula e nota de cada candidato, conforme descrito a seguir. 
Deseja-se que o vetor com os resultados fique ordenado em ordem decrescente pela nota. O programador pretende usar o algoritmo de busca descrito a seguir, porém precisa de ajuda no trecho contendo ********. 
Indique a opção que contém a solução que completa as linhas 1, 3 e 7 do algoritmo. 
... 
struct Candidato { 
 char mat[10]; 
 float nota; 
}; 
... 
1.void ordenaSelecao (******** v[], int n) { 
2. int i, j, maior; 
3. ******** aux; 
4. for (j = 0; j < n-1; j++) { 
5. maior = j; 
6. for (i = j+1; i < n; i++) 
7. if (********) 
8. maior = i; 
9. aux = v[j]; 
10. v[j] = v[maior]; 
11. v[maior] = aux; 
12. } 
13.}
struct Candidato 3. struct Candidato 7. v[i].nota > v[maior].nota 
Marque a afirmativa que represente uma separação.
Consiste em dividir a lista em duas outras listas. A quantidade de nós que cada lista terá, depende da necessidade. 
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; 
}
Retorna a posição de v se o valor vl foi encontrado
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
Qual o val or da variável a ao final da execução do trecho de pr ograma a seguir? 
 int main( ) { 
 int a, b, *p; 
 a=4;
 b = 2;
 p = &a;a++; 
 *p = a + b; 
 (*p)++; 
 (*p) += a; 
 cout << "\n a = " << a << endl; 
return(0);
 }
16
Considere uma lista simplesmente encadeada não circular de inteiros e o tipo 
 struct no {
 int dado;
 struct no *link;
 
 };
 Faça uma função para inverter a lista e retornar o ponteiro para o início da lista resultante.
Protótipo: no *inverter (no *ini); //ini aponta para o início da lista.
 Gabarito:
 no *inverter ( no *ini) // ini é um ponteiro para o início da lista { no *a, *b, *c; a = ini; b = NULL; while (a != NULL) { c = b; b = a; a = a->link; b->link = c; } ini = b; return(ini); } /* fim da função */
Segundo o dicionário Aulete Digital, lógica caracteriza -se por ser um a forma de raciocinar coerente, em que se estabelecem relações de causa e efeito; a coerência desse raciocínio (http://www.aule te.com.br/l%C3%B3g ica#ixzz39nTC M 26A). Assim, temos como definição de Lógica de Programação:
a aplicação dos conceitos e práticas da lógica na utilização das linguagens de programação para o desenvolvimento de algoritmos na solução de problemas, respeitando regras da lógica matemática, apl icadas pelos programadores durante o processo de construção do software.
A definição de algoritmos, segundo Forbellone, é uma sequência de passos finitos para atingir um objetivo bem definido. Com base nessa definição, marque a alternativa que apresenta uma sequência lógica para fritar ovo. 
Coloque manteiga na frigideira - quebre o ovo - despeje-o na frigideira - retire-o quando estiver frito.
O termo algoritmo deriva- se do nome do matemático Abu Ja´f ar Muhammad Al -Khwarizmi, o qual introduzi u a escrita dos cálculos por meio de uma sequência de passos em substituição ao ábaco. Na programação podem os definir algoritmos como:
Sequência de passos finitos, e bem estruturados que podem ser automatizados e implementados utilizando linguagens de programação.
Com base nos conceitos de algoritmos, lógica de programação e linguagens de programação, é correto afirmar que:
As linguagens de programação possibilitam a codificação de um determinado algoritmo, de acordo com um conjunto de regras específico. 
Qual dos algoritmos abaixo explicita todos os passos que devem ser segui dos para encontrar um dado livro numa biblioteca? (suponha que o livro existe)
pegar o livro
pegar o nome do livro
identificar a área 
se dirigir até o corredor referente a área 
procurar o livro 
Para resolver determinados problemas podemos fazer uso de algoritmos. Algoritmos podem ser entendidos como uma sequência finita de instruções, definida de forma clara e sem ambiguidade, de forma que possa ser executada e reproduzida pelo interpretador ou leitor. George Pólya formulou quatro etapas essenciais para a resolução de problemas. A opção que apresenta a ordem correta das etapas é: 
1ª etapa - Compreender o problema; 2ª etapa - Traçar um plano; 3ª etapa - Colocar o plano em prática; 4ª e tapa - Comprovar os resultados. 
Uma determinada empresa de software desenvolveu um programa no qual é solicitado para o usuário o valor do produto. Com esse valor, o programa consegue informar para o usuário quanto de imposto está embutido no preço do produto. Para que esse programa faça essa interação com o usuário é necessário utilizar que tipos de comando? 
 Comandos de entrada e saída 
Uma variável pode ser entendida como sendo: 
Uma variável pode ser entendida como sendo:
Um endereço na memória principal. 
Um endereço na memória principal.
Marque a opção correta quanto ao uso dos comandos de entrada e saída e m C++ 
cout << "lendo a idade"; cin >> id ade;
É um tipo de estrutura onde os comandos são executados num a sequência pré-estabelecida, isto é, cada comando só é executado quando o anterior é finalizado. A afirmação refere-se à:
Estrutura sequencial. 
Quando definimos uma variável na verdade estamos fazendo uma reserva estática de memória. Esta reserva de memória é dita está tica por ser definida em tempo de compilação, diferente da reserva dinâmica de memória que é feita em tempo de execução. Portanto, toda declaração de variáveis é a reserva de uma certa quantidade de memória antes da execução do programa, sendo assim é necessário que seja estabelecida a quantidade de memória que está sendo reservada e também seu endereço. Isto é feito, respectivamente, pela definição do:
tipo de dado e identifi cador da variável . 
As funções disponíveis na linguagem UAL são, na sua maioria, conhecidas nossas do Ensino Médio e, geralmente, estão presentes, em todas as linguagens de programação, com outros nomes, mas com o mesmo significado. A função raiz (x) é utilizada para obter: 
a raiz de um número x 
1. Observe a seguinte situação: Mari a Fumaça esqueceu de levar dinheiro para fazer as compras do almoço. Para seu alívio, há um caixa eletrônico próximo ao restaurante. Assim, Mari a Fumaça dirigi -se para sacar o dinheiro que necessita. Identifique n a situação apresentada o que não representa uma entrada de dados pa ra o caixa eletrônico realizar a operação: 
Saldo final 
Editores de texto geralmente oferecem um mecanismo de reversão de operações (“O famoso desfazer, undo”), que cancela operações recentes e reverte um documento a o estado anterior ao da operação realizada. 
Que tipo de estrutura de dados seria melhor aplicada para este mecanismo?
Pilha 
Com relação à struct, é correto afirmar que:
Cada elemento da struct é denomi nado membr o ou campo, sendo que a struct pode armazenar elementos de tipos diferentes ou não. 
Em uma lista linear duplamente encadeada. 
 Além do campo relativo ao dado, cada nó possui dois ponteiros.
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".
Inserção
Qual a importância de se entender a "ordenação" de dados? 
A ordenação é a base na qual, muitos algoritmos são construídos. Entendendo a ordenação, tem-se conhecimento para resolver outros problemas.
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? 
Após a operação de remoção decrementa a variável indicadora de posição. 
As e s t r u t u r a s d e d a d o s s ã o i m p o r t a n t e s p a r a a p r o g r a m a ç ã o p o r q u e f a ci l i t a m a p e s q u i sa , p o i s p e r m i t e m a 
o r d e n a çã o d o s d a d o s d e f o r m a cr e s c e n t e o u d e c r e s c e n t e . D e s sa f o r m a , a s si n a l e a a l t e r n a t i v a c o r r e t a q u e d ef i n e 
u m t i p o d e d a d o e s t r u t u r a d o .
As e s t r u t u r a s d e d a d o s s ã o i m p o r t a n t e s p a r a a p r o g r a m a ç ã o p o r q u e f a ci l i t a m a p e s q u i sa , p o i s p e r m i t e m a 
o r d e n a çã o d o s d a d o s d e f o r m a cr e s c e n t e o u d e c r e s c e n t e . D e s sa f o r m a , a s si n a l e a a l t e r n a t i v a c o r r e t a q u e d ef i n e 
u m t i p o d e d a d o e s t r u t u r a d o .
As e s t r u t u r a s d e d a d o s s ã o i m p o r t a n t e s p a r a a p r o g r a m a ç ã o p o r q u e f a ci l i t a m a p e s q u i sa , p o i s p e r m i t e m a 
o r d e n a çã o d o s d a d o s d e f o r m a cr e s c e n t e o u d e c r e s c e n t e . D e s saf o r m a , a s si n a l e a a l t e r n a t i v a c o r r e t a q u e d ef i n e 
u m t i p o d e d a d o e s t r u t u r a d o
As e s t r u t u r a s d e d a d o s s ã o i m p o r t a n t e s p a r a a p r o g r a m a ç ã o p o r q u e f a ci l i t a m a p e s q u i sa , p o i s p e r m i t e m a 
o r d e n a çã o d o s d a d o s d e f o r m a cr e s c e n t e o u d e c r e s c e n t e . D e s sa f o r m a , a s si n a l e a a l t e r n a t i v a c o r r e t a q u e d ef i n e 
u m t i p o d e d a d o e s t r u t u r a d o
Um programador recebeu a tarefa de construir um programa que receba um a cadeia de caracteres e verifique se está cadeia de caracteres é um PALÍNDROME, sabendo-se que uma PALÍNDROME apresenta a mesma sequência de caracteres da esquerda para a direita, quanto da direita para esquerda, marque a opção que possui a estrutura de dados mais adequada a este programa.
Pilha Sequencial
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:
fila circular
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:
Com relação as listas lineares sequenciais: 
I - Uma lista linear sequencial é um vetor e m linguagens estruturadas, também chamado de array. 
II - Um elemento de uma lista linear sequencial po de ser acessado diretamente através de um índice. 
		Qual das alternativas a seguir pode definir uma estrutura de pilha?
	Entrada e saída de dados pelo final.
	
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() 
 2 5 
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á explicita a finalidade dela.
........
Considere a cham ada da função co nforme linha aba ixo, sabendo -se que vet é um vetor de tamanho 5 e qu e 
não tem nenhum valor ainda: 
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: empilha(vet,-1,23);
Assinale as afirmativas abaixo que sugerem correções, ou não, na definição na função e assinale a opção que contém as afirmativas corretas.
II a variável topo está sem tipo
V a linha vetor[topo]=valor, está correta
II e V estão corretas.
	
Analisando o trecho do algoritmo abaixo
Se topo <Maximo
Então início
	Topo Topo + 1
	Pilha[Topo] Valor
	Sucesso verdadeiro
Fim 
Pode-se afirmar que se trata de uma operação de:
Inserção de um elemento em uma estrutura LIFO
Considere uma situação em que um professor que queira saber se existem alunos cursando, ao mesmo tempo, as disciplinas A e B, tenha implementado um programa que: 1) inicializa um arraya de 30 posições que contém as matrículas dos alunos da disciplina A; 2) inicializa outro array b de 40 posições, que contém as matrículas dos alunos da disciplina B; 3) imprime a matrícula dos alunos que estão cursando as disciplinas A e B ao mesmo tempo. Considere, ainda, que os arrays foram declarados e inicializados, não estão necessariamente ordenados, e seus índices variam entre O e n - 1, sendo n o tamanho do array. ---
	Com base nessas informações, conclui-se que o trecho a ser incluído nas linhas 3, 4 e 5 do código acima, para que o programa funcione corretamente, é
	
	5.  }
	 
	3. if ( a [i] == b [j] ) {
4.   PRINT (a [i]);
5.  }
	
	
Para fins estatísticos, uma empresa precisa armazenar os trajetos que seus representantes comerciais percorrem entre pontos de venda. É importante que para cada local visitado sejam armazenados, além da informação do próprio local, o local de origem do representante (ponto de venda anterior), o local de destino (ponto de venda posterior), as distâncias percorridas e os tempos de viagem. Esse procedimento permite que estes trajetos possam ser analisados, de forma rápida, do local de origem ao local de destino, bem como no sentido inverso, do local de destino (final do trajeto) ao local de origem (início do trajeto). O analista responsável pelo sistema que utilizará os dados armazenados e produzirá os relatórios estatísticos, projetou o seguinte esboço de uma classe que representa um ponto de venda:
---
	É correto o que se afirma em :
	
	I, apenas.
Existem várias maneiras de se percorrer uma árvore binária. A função a seguir, escrita em pseudocódigo, percorre uma árvore na ordem esquerda raiz- direita, conhecida por varredura e-r-d recursiva. A Função erd () recebe por parâmetro a raiz r de uma árvore, e faz uso de seus elementos esq, dir e cont, que representam, respectivamente, ponteiros para uma sub-árvore à esquerda de r, uma sub-árvore à direita de r e o conteúdo de r, respectivamente. –
A sequência correta de exibição do conteúdo da um relacionamento ternário. árvore utilizando a função erd ( ) é
	0,3,1,5,7,8,2
A pilha é uma estrutura de dados que permite a inserção/ remoção de itens dinamicamente seguindo a norma de último a entrar, primeiro a sair. Suponha que para uma estrutura de dados, tipo pilha, são definidos os comandos:
PUSH (p, n): Empilha um número "n" em uma estrutura de dados do tipo pilha ¿p¿;
 POP (p): Desempilha o elemento no topo da pilha.
Considere que, em uma estrutura de dados tipo pilha "p", inicialmente vazia, sejam executados os seguintes comandos: ---
	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,
	
	11 e 29.

Outros materiais