Você está na página 1de 39

Questões sem as respostas: da página 2 a página 34

Respostas das questões: da página 34 em diante.


Ultima atualização: 17/11/2015
Só é possível responder as questões se o aluno tiver visto todas
as aulas do semestre, caso contrário ficará frustrado e
desmotivado.
1) releia as anotações.
2) reveja o conteúdo.
3) decore as questões e as respostas. Decorar também ajuda a
estudar.
4) a cada 13 questões de testes pelo menos 6 caem na prova.
QUESTÕES DE PROVA
(Ref.: 201407632380)

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:

[ ] A estrutra sofrerá do fenômeno esgotamento de memória, mas se os dados estiverem


ordenados isto não afetará a estrutura.
[ ] A estrutura fila não sofre esgotamento de memória, isto ocorre com as pilhas já que
implementam o algoritmo LIFO.
[ ] Um vetor não pode ser usado na implementação de uma fila sequencial apenas em pilhas
sequenciais.
[ ] Um vetor é uma estrutura base correta para esta implementação, já que está imune a
fenômenos como esgotamento de memória.
[ ] 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.

(Ref.: 201407657644)

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:

[ ] 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.
[ ] A estrutra sofrerá do fenômeno esgotamento de memória, mas se os dados estiverem
ordenados isto não afetará a estrutura.
[ ] Um vetor é uma estrutura base correta para esta implementação, já que está imune a
fenômenos como esgotamento de memória.
[ ] Um vetor não pode ser usado na implementação de uma fila sequencial apenas em pilhas
sequenciais.
[ ] A estrutura fila não sofre esgotamento de memória, isto ocorre com as pilhas já que
implementam o algoritmo LIFO.

(Ref.: 201407043582)

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

[]5
[ ] 15
[]9
[]0
[]6

(Ref.: 201407044078)

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:

[ ] Fila
[ ] Pilha
[ ] Matriz
[ ] Struct
[ ] Bolha

(Ref.: 201407281943)
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 ?
[ ] lista
[ ] pilha
[ ] fila
[ ] grafo
[ ] árvore

(Ref.: 201407035637)
No contexto de estrutura de dados, uma pilha é:
[ ] um tipo de lista linear em que as operações de inserção e remoção são realizadas na
extremidade denominada topo.
[ ] um tipo de lista linear em que as operações de inserção e remoção são realizadas
aleatoriamente.
[ ] uma lista do tipo LILO.
[ ] uma lista do tipo FIFO.
[ ] um tipo de lista linear em que as operações de inserção são realizadas em uma extremidade
e as operações de remoção são realizadas em outra extremidade.

(Ref.: 201407035626)
A técnica LIFO (last in first out), utilizada em programação estruturada, é fundamentada no
conceito de:
[ ] loop
[ ] ponteiro
[ ] fila
[ ] pilha
[ ] array

(Ref.: 201407283937)

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.
[ ] void pop(){ if(topo != -1) topo--;}
[ ] void pop(){ if(topo != -1) topo++;}
[ ] void pop(){ if(pilha != -1) pilha[topo];}
[ ] void pop(){ if(pilha != -1) pilha[topo-1];}
[ ] void pop(){ if(topo != -1) pilha[topo-1];}

(Ref.: 201407111205)
A técnica LIFO, utilizada em programação estruturada, é fundamentada no conceito de:
[ ] Array.
[ ] Ponteiro.
[ ] Fila.
[ ] Pilha.
[ ] Loop.

(Ref.: 201407044080)
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 é:
[ ] Matriz
[ ] Fila
[ ] Ponteiro
[ ] Pilha
[ ] Struct

(Ref.: 201407249027)

Assinale a opção correta. Sobre pilha dinâmica podemos afirmar que :


[ ] usa o critério LIFO e é implementada usando-se listas encadeadas.
[ ] só pode ter seus dados impressos no sentido do último nó para o primeiro nó.
[ ] é recomendada para qualquer tipo de aplicação em que insere-se no final e retira-se do
início.
[ ] usa o critério FIFO, visto que é dinâmica.
[ ] insere-se em qualquer posição, antes ou após qualquer nó, visto que é dinâmica.

(Ref.: 201407666464)
Assumindo que estamos com uma estrutura de dados do tipo FIFO, 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()
[]345
[]247
[]57
[]25
[]234

(Ref.: 201407666470)
Sobre uma estrutura de dados do tipo LIFO, observe as seguintes afirmações:
(1) É uma pilha.
(2) Pode ser uma fila com prioridades
(3) É uma estrutura onde o primeiro elemento a entrar é o último a sair.
Sobre estas afirmações marque a opção correta:
[ ] Apenas as afirmações (1) e (3) são verdadeiras
[ ] Todas as afirmações são falsas
[ ] Apenas a afirmação (1) é verdadeira
[ ] Apenas a afirmação (3) é verdadeira
[ ] Todas as afirmações são verdadeiras

(Ref.: 201407749872)

Estava um aluno estudando Lista Simplesmente Encadeada quando encontrou em um site a


definição da struct nodo e de uma função cujo nome você deverá escolher para substituir XXX
nas opções abaixo depois que analisar a função, assumindo que teste foi realizado, permitindo
que a operação fosse realizada.

struct nodo
{
int info;
struct nodo *prox;
};

nodo* XXX(nodo *ptr, int valor)


{
nodo *temp = new nodo;
...
temp->info = valor;
temp->prox = ptr;
return temp;
}
[ ] RemoveNo
[ ] InsereNoFrente
[ ] BuscaNaLista
[ ] InsereNoFim
[ ] ListaNo

(Ref.: 201407715681)
Para converter de decimal para binário usamos a estrutura de dados pilha. Assinale a opção
que, corretamente, indica as ações corretas para empilhar o resto da divisão gerado no
processo de conversão, considerando uma lista simplesmente encadeada. Considere o tipo
definido abaixo :

struct no {
int dado;
struct no *link;
};
[ ] Basta alocar memória com new, armazenar o resto da divisão do número por 2 no campo
dado do novo nó e aterrar o link do novo nó.
[ ] Basta alocar memória com new e armazenar o resto da divisão do número por 2 no campo
dado do novo nó .
[ ] É preciso armazenar o resto da divisão do número por 2 no campo dado do primeiro nó da
lista e retornar o ponteiro para este nó.
[ ] Não é necessário alocar memória com new. Basta criar uma struct do tipo no, armazenar o
resto da divisão número por 2 no campo dado e aterrar o campo link.
[ ] É preciso alocar memória com new, armazenar o resto da divisão do número por 2 no
campo dado do novo nó, apontar o link do novo nó para o início da lista e enfim, retornar o
ponteiro para o novo nó.

(Ref.: 201407715559)
Sabendo que uma fila encadeada possui seus nós definidos pela :

struct no {
int x;
no *prox;
};

Marque a alternativa que representa corretamente a criação ou alocação do nó na sintaxe do


C++ para utilização na fila.
[ ] no *p -> new no;
[ ] p *no=new no;
[ ] p *no -> new no;
[ ] no p -> new no;
[ ] no *p=new no;

(Ref.: 201407044076)
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
[ ] Variável
[ ] Função
[ ] Matriz
[ ] Registro

(Ref.: 201407044097)

Se topo < Maximo


Então início
Topo <- Topo + 1
Pilha[Topo] <- Valor
Sucesso <- verdadeiro
Fim

Analisando o trecho do algoritmo abaixo, pode-se afirmar que se trata de uma operação de:
[ ] Exibição de um elemento em uma estrutura LIFO
[ ] Remoção de um elemento de uma estrutura FIFO
[ ] Inserção de um elemento em uma estrutura FIFO
[ ] Remoção de um elemento de uma estrutura LIFO
[ ] Inserção de um elemento em uma estrutura LIFO

(Ref.: 201407043553)
O que acontece ao se inserir uma informação quando já usamos toda a área disponível do
vetor (topo = fim)?
[ ] underflow
[ ] overflow
[ ] ordenação
[ ] remoção
[ ] inclusão

(Ref.: 201407043933)
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.
[ ] Apenas as afirmações I e II estão corretas.
[ ] Apenas as afirmações I e III estão corretas.
[ ] Apenas a afirmação I está correta.
[ ] Apenas as afirmações II está corretas.
[ ] Apenas as afirmações II e III estão corretas.

(Ref.: 201407691619)

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 :
[ ] Ordenação por inserção
[ ] Inserção
[ ] Inicialização
[ ] Busca
[ ] Substituição

(Ref.: 201407246350)

As estruturas de dados são utilizadas para manter dados ou informações organizados na


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

(Ref.: 201407047142)
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 é:
[ ] Inserção
[ ] Bolha
[ ] Seleção
[ ] Pesquisa binária
[ ] Pesquisa sequencial

(Ref.: 201407043737)
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.
[ ] A ordenação é a base na qual, muitos programas são construídos. Entendendo a ordenação,
tem-se conhecimento para manter outros problemas.
[ ] A ordenação é a base na qual, muitos algoritmos são construídos. Entendendo a ordenação,
tem-se conhecimento para manter outros problemas.
[ ] A ordenação é a base na qual, muitos sistemas são construídos. Entendendo a ordenação,
tem-se conhecimento para manter outros problemas.
[ ] A ordenação é a base na qual, muitos sistemas são construídos. Entendendo a ordenação,
tem-se conhecimento para resolver outros problemas.
(Ref.: 201407632373)

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:


[ ] Que utiliza o método seleção e realiza uma ordenação decrescente nos elementos do vetor
v.
[ ] Que utiliza o método bolha e realiza uma ordenação crescente nos elementos do vetor v.
[ ] Que utiliza o método seleção e realiza uma ordenação crescente nos elementos do vetor v.
[ ] Que utiliza o método inserção e realiza uma ordenação decrescente nos elementos do vetor
v.
[ ] Que utiliza o método inserção e realiza uma ordenação crescente nos elementos do vetor v.

(Ref.: 201407774187)
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:
[]9e9
[ ] 9 e 10
[ ] 10 e 1024
[ ] 1024 e 512
[ ] 10 e 10

(Ref.: 201407044082)
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.
[ ] Inserção
[ ] Binária
[ ] Bolha
[ ] Seleção
[ ] Hash
(Ref.: 201407632377)

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:


[ ] trata-se da implementação do algortimo de busca sequencial
[ ] trata-se da implementação do algortimo de busca binária.
[ ] trata-se da implementação do algortimo de ordenação por inserção.
[ ] trata-se da implementação do algortimo de ordenação bolha.
[ ] trata-se da implementação do algortimo de ordenação por seleção.

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

struct aluno {
string nome;
float nota;
};

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

aluno vet [100];

Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro
elemento deste vetor.
[ ] aluno.vet[10]=5.7;
[ ] vet[10].aluno.nota=5.7 ;
[ ] vet[10]=aluno.5.7;
[ ] vet[10].nota=5.7;
[ ] aluno.vet[10].nota=5.7;

(Ref.: 201407044077)
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 seta nome do campo
[ ] Nome da estrutura ponto tipo do campo
[ ] Nome da estrutura ponto nome do campo
[ ] Nome da estrutura seta tipo do campo
[ ] Nome da estrutura vírgula tipo do campo

(Ref.: 201407248785)

Com relação à struct, é correto afirmar que :


[ ] A struct é sempre definida dentro da main.
[ ] Não é possível criar um vetor de structs, pois o vetor trabalha apenas com dados do mesmo
tipo.
[ ] Cada elemento da struct é denominado membro ou campo, sendo que a struct pode
armazenar elementos de tipos diferentes ou não.
[ ] Cada elemento da struct é chamado componente.
[ ] Cada elemento da struct é chamado campo e cada campo deve ser, obrigatoriamente, de
um tipo de dados distinto de outro campo.

(Ref.: 201407683424)

Pode-se definir uma estrutura heterogênea como sendo um conjunto de elementos,


geralmente, agrupados sob uma lógica e associados por um nome.

Esses elementos podem ser variáveis simples, matrizes ou ainda outras estruturas. Seja a
definição de uma estrutura como:

struct aluno {

string nome;

float nota;

};

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

aluno vet [ 100];

Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro
elemento deste vetor.
[ ] vet[10].nota=5.7;
[ ] aluno.vet[10].nota=5.7;
[ ] vet[10].aluno.nota=5.7 ;
[ ] aluno.vet[10]=5.7;
[ ] vet[10]=aluno.5.7;

(Ref.: 201407715674)
Marque a opção correta, considerando

struct Livro {
int codigo;
float preco;
} liv;

[ ] Livro.liv.codigo = 12345;
[ ] Livro->liv.codigo = 12345;
[ ] Livro.codigo = 12345;
[ ] liv.preco = 30.70;
[ ] liv->preco = 30.70;

(Ref.: 201407043570)
Qual das seguintes estruturas de dados é classificada como heterogênea?
[ ] Vetor
[ ] Pilha
[ ] Loop
[ ] Fila
[ ] Registro

(Ref.: 201407632383)
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:
[ ]Os Grafos
[ ]As Filas
[ ]Os Vetores
[ ]As funções
[ ]As Estruturas de Dados

(Ref.: 201407625796)

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;

[ ]5
[ ]50
[ ]Haverá um erro de compilação
[ ]10
[ ]0

(Ref.: 201407626502)
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:
[ ]void func (int a, int &b);
[ ]int func (int a, int &b);
[ ]void func (int &a, int &b);
[ ]int func (int &a, int b);
[ ]int func (&int, int);

(Ref.: 201407607900)
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.
[ ]void
[ ]caracter
[ ]valor
[ ]referência
[ ]número

(Ref.: 201407283890)

#include <iostream>
using namespace std;
float n1,n2,n3,med;
float media(float, float, float);
void entrada();
void saida();
int main()
{
entrada();
saida();
return 0;
}
float media(float a, float b, float c){
return (a+b+c)/3;
}
void entrada()
{
cout << "Entre com a 1a nota: ";
cin >> n1;
cout << "Entre com a 2a nota: ";
cin >> n2;
cout << "Entre com a 3a nota: ";
cin >> n3;
}
void saida(){
cout << "A media: " << media(n1,n2,n3);
}

[ ]O programa não executa corretamente, pois os protótipos estão fora da ordem em que as
funções são descritas.
[ ]O programa não executa corretamente, pois o protótipo da função media( ) não apresenta a
identificação dos parâmetros, mas apenas os tipos dos mesmos.
[ ]O programa executa perfeitamente independente da ordem das funções já que existem os
seus protótipos.
[ ]O programa executa perfeitamente, mas não mostra o valor da media já que esta função não
foi chamada na função main( ).
Errado [ ]O programa não executa corretamente pois as funções devem ser descritas antes da
função main(), para que o compilador consiga reconhecê-las.

(Ref.: 201407246340)

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:


[ ]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.
[ ]O código compila normalmente e apresenta como resultado o valor 7.0
[ ]O código não compila, pois a função float media(float x, float y) retorna um valor que seria
ser armazenado em uma variável do tipo float e só então poderia ser usado o comando cout
para exibir o resultado.
[ ]O código não compila, pois os parâmetros usados na chamada da função deveriam ser "x" e
"y"; porém a chamada se deu com identificadores "a" e "b".
[ ]O código compila normalmente, pois como a descrição da função float media(float x, float
y)está posicionada após a função int main ( ), não há necessidade do uso de protótipos.

(Ref.: 201407111206)

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).
Errado I, III, IV e V.
I, III e V.
II, III, IV e V.
II, IV e V.
Certo I, II e III.
(Ref.: 201407715556)
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."
structs
filas encadeadas
listas encadeadas
pilhas encadeadas
Certo grafos

(Ref.: 201407721047)
Observe o trecho do programa em C++ abaixo e, após, entrar com os valores sugeridos para
sua execução assinale a alternativa que representa a resposta final.
cin >> a;
cin >> b;
cin >> c;
cin >> d;

cout << a;
cout << b;
cout << c;
cout << d;

cout << d;
cout << c;
cout << b;
cout << a;
Após a impressão dos valores pela ordem teremos uma pilha e uma fila.
Após a impressão dos valores pela ordem teremos uma fila e um grafo.
Certo Após a impressão dos valores pela ordem teremos uma fila e uma pilha.
Após a impressão dos valores pela ordem teremos duas filas.
Após a impressão dos valores pela ordem teremos duas pilhas.

(Ref.: 201407632385)
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.
Filas Encadeadas
Listas Encadeadas.
Pilhas Encadeadas
Vetores
Certo Grafos

(Ref.: 201407044093)
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.
Proteção de memória, transferência de dados, estruturas simples.
Certo Compartilhamento de memória, maleabilidade e facilidade para inserção e remoção de
componentes.
Acesso, representação, compartilhamento de memória.
Transferência de dados, gerenciamento de memória e procedimentos menos intuitivos.
Previsão de espaço físico, estruturas complexas, procedimentos menos intuitivos.

(Ref.: 201407632385)
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.
[ ] Listas Encadeadas.
[ ] Grafos
[ ] Vetores
[ ] Filas Encadeadas
[ ] Pilhas Encadeadas

(Ref.: 201407035622)
Diferentes tipos de estrutura de dados são adequadas 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 de distribuição e organização de dados em uma rede de computador de modo
que possam ser usados de modo eficiente.
[ ] É um modo de deleção de dados em um computador.
[ ] É um modo particular de armazenamento e organização de dados em um computador de
modo que possam ser usados de modo eficiente.
[ ] É um modo de utilização de dados nos programas de computador.
[ ] São os nomes dados as variáveis na montagem de uma rotina.

(Ref.: 201407248755)
Considere o trecho do programa em c++

int numero = 20;

void misterio(int& v) {
int aux = 111;

aux = aux -11;


v = v – aux;
numero = aux – numero;
cout << “Auxiliar = “ << aux;
}

int main() {
int valor = 1000;
misterio(valor);
cout << “Numero 1 = “ << valor << “ Numero 2 = “ << numero << endl;
}
[ ] Auxiliar = 111 Numero1 = 1000 Numero2 = 80
[ ] Auxiliar = 100 Numero1 = 900 Numero2 = 20
Auxiliar = 100 Numero1 = 900 Numero2 = 80
[ ] Auxiliar = 101 Numero1 = 900 Numero2 = 20
[ ] Auxiliar = 100 Numero1 = 1000 Numero2 = 20

(Ref.: 201407246340)
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:


[ ] O código compila normalmente, pois como a descrição da função float media(float x, float
y)está posicionada após a função int main ( ), não há necessidade do uso de protótipos.
[ ] 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.
[ ] O código não compila, pois a função float media(float x, float y) retorna um valor que seria
ser armazenado em uma variável do tipo float e só então poderia ser usado o comando cout
para exibir o resultado.
[ ] O código compila normalmente e apresenta como resultado o valor 7.0
[ ] O código não compila, pois os parâmetros usados na chamada da função deveriam ser "x" e
"y"; porém a chamada se deu com identificadores "a" e "b".

(Ref.: 201407613946)
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.
[ ] vet[3].media=6.0;
[ ] vet[3].aluno=6.0;
[ ] aluno[10]=6.0;
[ ] aluno[3].10=6.0;
[ ] aluno[3].media=6.0;

(Ref.: 201407248785)
Com relação à struct, é correto afirmar que :
[]
Cada elemento da struct é chamado campo e cada campo deve ser, obrigatoriamente, de um
tipo de dados distinto de outro campo.

[]
A struct é sempre definida dentro da main.

[]
Cada elemento da struct é chamado componente.

[]
Cada elemento da struct é denominado membro ou campo, sendo que a struct pode
armazenar elementos de tipos diferentes ou não.

[]
Não é possível criar um vetor de structs, pois o vetor trabalha apenas com dados do mesmo
tipo.

(Ref.: 201407047142)
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
[ ] Inserção
[ ] Pesquisa sequencial
[ ] Seleção
[ ] Bolha

(Ref.: 201407246347)
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.
[]5e5
[]7e1
[]6e4
[]6e2
[]6e1

(Ref.: 201407035643)
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:
[ ] tanto o sistema I, quanto o II, adotam o esquema LIFO de organização de dados.
[ ] o sistema I, adota o esquema LIFO de organização de dados e o II, o esquema LIFO.
[ ] tanto o sistema I, quanto o II, adotam o esquema vetor de organização de dados.
[ ] o sistema I, adota o esquema LIFO de organização de dados e o II, o esquema FIFO.
[ ] tanto o sistema I, quanto o II, adotam o esquema FIFO de organização de dados.

(Ref.: 201407043553)
O que acontece ao se inserir uma informação quando já usamos toda a área disponível do
vetor (topo = fim)?
[ ] overflow
[ ] underflow
[ ] ordenação
[ ] remoção
[ ] inclusão

(Ref.: 201407044093)
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.
[ ] Acesso, representação, compartilhamento de memória.
[ ] Previsão de espaço físico, estruturas complexas, procedimentos menos intuitivos.
[ ] Compartilhamento de memória, maleabilidade e facilidade para inserção e remoção de
componentes.
[ ] Transferência de dados, gerenciamento de memória e procedimentos menos intuitivos.
[ ] Proteção de memória, transferência de dados, estruturas simples.

(Ref.: 201407035622)
Diferentes tipos de estrutura de dados são adequadas 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:
[ ] São os nomes dados as variáveis na montagem de uma rotina.
[ ] É um modo particular de armazenamento e organização de dados em um computador de
modo que possam ser usados de modo eficiente.
[ ] É um modo de distribuição e organização de dados em uma rede de computador de modo
que possam ser usados de modo eficiente.
[ ] É um modo de deleção de dados em um computador.
[ ] É um modo de utilização de dados nos programas de computador.

(Ref.: 201407657630)
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:
[ ] As funções
[ ] Os Grafos
[ ] Os Vetores
[ ] As Estruturas de Dados
[ ] As Filas

(Ref.: 201407044106)
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 o valor de vl se o valor n foi encontrado.


[ ] Resulta em erro, se o valor de vl não estiver dentro de v.
[ ] Retorna a posição de v se o valor vl foi encontrado.
[ ] Retorna -1 se o valor de n foi encontrado.
[ ] Retorna -1 se o valor de vl estiver dentro de v.

(Ref.: 201407044077)
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
[ ] Nome da estrutura seta tipo do campo
[ ] Nome da estrutura ponto tipo do campo
[ ] Nome da estrutura seta nome do campo
[ ] Nome da estrutura vírgula tipo do campo

(Ref.: 201407683424)[ ] Pontos: 1,0 / 1,0


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

struct aluno {
string nome;
float nota;
};
Suponha ainda que exista um vetor desta estrutura, definido como:
aluno vet [ 100];

Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro
elemento deste vetor.
[ ] aluno.vet[10].nota=5.7;
[ ] vet[10].nota=5.7;
[ ] vet[10].aluno.nota=5.7 ;
[ ] vet[10]=aluno.5.7;
[ ] aluno.vet[10]=5.7;

(Ref.: 201407632376)
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 é:
[ ] 1,8,3,23,13
[ ] 1,23,13,8,3
[ ] 1,23,3,8,13
[ ] 1,3,23,8,13
[ ] 1,13,23,8,3

(Ref.: 201407043991)
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.
[ ] Inserção
[ ] Heapsort
[ ] Seleção
[ ] Bolha
[ ] Quicksort

(Ref.: 201407044076)
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
[ ] Matriz
[ ] Função
[ ] Variável
[ ] Registro

(Ref.: 201407607800)
__________________________ é 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.
[ ] Lista Linear Não Alocada
[ ] Lista Linear Sequencial
[ ] Lista Linear Não Sequencial
[ ] Lista Não Linear
[ ] Lista Linear de Alocação de Memória

(Ref.: 201407582158)
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.
[ ] II, IV, V e VI são afirmativas verdadeiras
[ ] I, II, III e VI são afirmativas verdadeiras
[ ] I, III, IV e VI são afirmativas verdadeiras
[ ] II, IV e V são afirmativas verdadeiras
[ ] I, II e V são afirmativas verdadeiras

(Ref.: 201407715556)
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."
[ ] structs
[ ] filas encadeadas
[ ] listas encadeadas
[ ] pilhas encadeadas
[ ] grafos

(Ref.: 201407044110)
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.
[ ] Em duas funções diferentes temos duas variáveis também diferentes com o mesmo nome
apresentando o mesmo valor.
[ ] Em uma função "resul" tem-se uma variável ali declarada por 'T' que recebe o valor inteiro
5. Ao tentar chamar esta variável em outra função é mencionado um warning.
[ ] Se modificarmos o valor da variável 'Y' na função "soma", e depois imprimirmos na tela esta
variável em outra função, onde tambem está declarada a variável 'Y', será acusado um erro de
compilação.
[ ] 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.
[ ] Se dentro de uma função "mostra" declararmos uma variável 'R' com um determinado valor
poderemos imprimir esta variável em qualquer outra função do programa mostrando o valor
atribuído na função "mostra".

(Ref.: 201407625796)
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;

[]5
[ ] Haverá um erro de compilação
[]0
[ ] 50
[ ] 10

(Ref.: 201407043753)
Em uma lista linear duplamente encadeada.
[ ] Cada nó possui um só ponteiro que referencia o próximo nó da lista.
[ ] O ponteiro do "primeiro" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da
lista, formando um ciclo.
[ ] Além do campo relativo ao dado, cada nó possui dois ponteiros.
[ ] Cada ponteiro possui um só endereço que referencia o primeiro nó da lista.
[ ] O ponteiro do "último" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da
lista.
(Ref.: 201407043964)
Suponha uma listagem mantida com informações sobre um equipamento a ser adquirido por
uma empresa. A listagem possui as informações sobre de 10 fornecedores, descritas a seguir:

próximo: um ponteiro para o próximo fornecedor da listagem;

nome: nome, identificando o fornecedor;


valor: preço do equipamento no fornecedor;
anterior: um ponteiro para o fornecedor anterior da listagem.

Sendo o fornecedor "Z" o quinto elemento desta listagem e "X" e "Y" dois outros fornecedores
que não pertencem à listagem, com seus respectivos ponteiros "pZ", "pX" e "pY", considere o
trecho de código abaixo.

pY->proximo = pX;

pX->anterior = pY;

pX->proximo = pZ->proximo;

pZ->proximo->anterior = pX;

pZ->proximo = pY;

pY->anterior = pZ;

Este trecho de código é usado para inserir na listagem os fornecedores:


[ ] X, logo após o Z, e Y, logo após o X.
[ ] Y, antes do Z, e X, logo após o Z.
[ ] Y, antes do Z, e X, antes do Y.
[ ] Y, logo após o Z, e X, logo após o Y.
[ ] X, antes do Z, e Y, logo após o Z.

(Ref.: 201407256631)

Observe a struct, definida globalmente, e um trecho de uma função que manipula uma Lista
Duplamente Encadeada.

struct listaDE

int info;

struct listaDE* ant;

struct listaDE* prox;


};

...

listaDE* novo = new listaDE;

novo->info = valor;

novo->prox = LISTA;

novo->ant = NULL;

Assinale a alternativa que apresenta o protótipo dessa função

[ ] listaDE *remove(listaDE *LISTA, int valor);


[ ] listaDE *busca (listaDE *LISTA, int valor);
[ ] listaDE *insereInicio(listaDE *LISTA, int valor);
[ ] listaDE *insereFim(listaDE *LISTA, int valor);
[ ] void exibeIpF(listaDE *LISTA);

(Ref.: 201407246371)

Em uma lista duplamente encadeada, seus nodos são compostos por campos cujos tipos
podem ser de diferentes naturezas, entretanto dois de seus campos devem ser ponteiros para
o mesmo tipo do nodo, são estes os ponteiros ant e prox, que apontam respectivamente para
o nodo anterior e para o próximo nodo. Esta característica permite que a estrutura seja
percorrida em ambos os sentidos. Assim analisando as operações a seguir:

p->ant->prox=p->prox;

p->prox->ant=p->ant;

Sendo p um ponteiro que aponta para um dos nodos da lista, pode-se afirmar que:

[ ] As operações inserem novo nodo, após o nodo apontado pelo ponteiro p.


[ ] As operações possibilitam o percurso do ponteiro p da direita para esquerda.
[ ] As operações possibilitam o percurso do ponteiro p da esquerda para direita.
[ ] As operações removem o nodo apontado pelo ponteiro p.
[ ] As operações possibilitam a busca de um nodo apontado pelo ponteiro p.

(Ref.: 201407249049)

Com relação à lista duplamente encadeada, é correto afirmar que :


[ ] Consome menos memória do que uma lista simplesmente encadeada, se tivermos uma
mesma aplicação.
[ ] Não pode ser vazia.
[ ] A lista precisa ter sempre um ponteiro apontando para o 1º. nó
[ ] A lista pode ser percorrida com igual facilidade para a direita ou para a esquerda, pois
existem dois ponteiros.
[ ] Não pode haver remoções no meio da lista.

(Ref.: 201407691615)

Considere uma lista duplamente encadeada não circular em que

struct nodupla {

int dado;

struct nodupla *dlink; // aponta p/ o nó à direita


struct nodupla *elink; // aponta p/ o nó à esquerda

};

sendo nodupla *p; //ponteiro para o início da lista

A opção que corretamente mostra as instruções para inserir um valor no início da lista
apontada por p é :
[]

nodupla *novo;

novo = new nodupla;

novo->dado = valor;

novo->dlink = p;

novo->elink = NULL;

p->elink = novo;

p = novo;

[]

nodupla *novo;

novo = new nodupla;

novo.dado = valor;
novo.dlink = p;

novo.elink = NULL;

if (p != NULL)

p.elink = novo;

p = novo;

[]

n
nodupla *novo;

novo = new nodupla;

novo->dado = valor;

novo->dlink = p;

if (p != NULL)

p->elink = novo;

p = novo;
[]

nodupla *novo;

novo = new nodupla;

novo->dado = valor;

novo->dlink = p;

novo->elink = NULL;

if (p != NULL)

p->elink = novo;

p = novo;

[]
n nodupla *novo;

novo = new nodupla;

novo->dado = valor;

novo->elink = NULL;

if (p != NULL)

p->elink = novo;

p = novo;

(Ref.: 201407044077)
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 tipo do campo
[ ] Nome da estrutura seta tipo do campo
[ ] Nome da estrutura ponto nome do campo
[ ] Nome da estrutura vírgula tipo do campo
[ ] Nome da estrutura seta nome do campo

(Ref.: 201407248785)
Com relação à struct, é correto afirmar que :

[]
Cada elemento da struct é chamado componente.

[]
Não é possível criar um vetor de structs, pois o vetor trabalha apenas com dados do mesmo
tipo.

[]
Cada elemento da struct é chamado campo e cada campo deve ser, obrigatoriamente, de um
tipo de dados distinto de outro campo.

[]
Cada elemento da struct é denominado membro ou campo, sendo que a struct pode
armazenar elementos de tipos diferentes ou não.

[]
A struct é sempre definida dentro da main.
(Ref.: 201407246347)
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.
[]5e5
[]7e1
[]6e4
[]6e2
[]6e1

(Ref.: 201407044082)
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.
[ ] Inserção
[ ] Seleção
[ ] Binária
[ ] Bolha
[ ] Hash

(Ref.: 201407607800)
__________________________ é 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.
[ ] Lista Linear Sequencial
[ ] Lista Linear de Alocação de Memória
[ ] Lista Linear Não Alocada
[ ] Lista Não Linear
[ ] Lista Linear Não Sequencial

(Ref.: 201407043933)
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.
[ ] Apenas as afirmações I e II estão corretas.
[ ] Apenas as afirmações I e III estão corretas.
[ ] Apenas a afirmação I está correta.
[ ] Apenas as afirmações II está corretas.
[ ] Apenas as afirmações II e III estão corretas.

(Ref.: 201407666479)
Em uma aplicação que usa processos de alocação estática e dinâmica de memória é correto
afirmar que
[ ] A memória utilizada pela aplicação é totalmente alocada após o inicio de sua execução
[ ] A memória utilizada pela aplicação é inicialmente estática, mas pode mudar
[ ] Todas as afirmações acima são incorretas
[ ] Apenas a memória associada às variáveis do tipo vetor é alocada após o inicio da execução
da aplicação
[ ] Toda a memória utilizada pela aplicação não muda durante toda a sua execução

(Ref.: 201407707069)

As funções abaixo tem objetivos de:

[ ] A primeira faz uma busca retornando o valor do nó ou NULL quando não encontrado, já a
segunda insere um novo nó no final da LSE;
[ ] A primeira faz uma busca retornando a posição do nó ou NULL quando não encontrado, já a
segunda insere um novo nó no inicio da LSE;
[ ] A primeira faz uma busca retornando o endereço do nó ou NULL quando não encontrado, já
a segunda insere um novo nó no inicio da LSE;
[ ] A primeira faz uma busca retornando o endereço do nó ou NULL quando não encontrado, já
a segunda insere um novo nó no final da LSE;
[ ] A primeira faz uma busca retornando o valor do nó ou NULL quando não encontrado, já a
segunda insere um novo nó no inicio da LSE;

(Ref.: 201407582655)
Numa Lista Encadeada, podemos afirmar que:

I) Todos os nós são alocados de uma única vez.


II) Os nós não são alocados contiguamente na memória obrigatoriamente.
III) Os elementos de uma lista encadeada são ligados por dois ponteiros.
IV) Para que possamos percorrer toda a lista, precisamos armazenar o endereço do próximo
elemento para possibilitar o encadeamento.
[ ] I , II e III estão corretas
[ ] I, II, III e IV estão corretas
[ ] I, III e IV estão corretas
[ ] II e IV estão corretas
[ ] Só a II está correta

(Ref.: 201407044079)
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.
[ ] Uma estrutura utilizada apontar erros de operações.
[ ] Um objeto que armazena dado diretamente na memória.
[ ] Uma estrutura que aponta para um objeto de arquivo.
[ ] Um objeto que não contém endereço de memória.
(Ref.: 201407047148)

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 meio da lista
[ ] Posicionar o ponteiro no início da lista
[ ] Colocar o valor NULL em todos os ponteiros
[ ] Posicionar o ponteiro onde houver o valor NULL
[ ] Posicionar o ponteiro no final da lista

(Ref.: 201407043893)
Marque a afirmativa que represente uma concatenação em listas.
[ ] Consiste em dividir a lista em duas outras listas. A quantidade de nós que cada lista terá,
depende da necessidade.
[ ] Organizar os dados da lista em ordem crescente ou decrescente.
[ ] Alterar a ordem dos dados da lista do final para o início, atualizando a lista.
[ ] Juntar duas listas, colocando uma lista no final de outra, obtendo, ao final, uma só lista
resultante.
[ ] Intercalar a ordem dos dados da lista do final para o início, atualizando a lista.
RESPOSTAS DAS QUESTOES
(Ref.: 201407632385)
Grafos

(Ref.: 201407035622)
É um modo particular de armazenamento e organização de dados em um computador de
modo que possam ser usados de modo eficiente.

(Ref.: 201407248755)
Auxiliar = 100 Numero1 = 900 Numero2 = 80

(Ref.: 201407246340)
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.

(Ref.: 201407613946)
vet[3].media=6.0;

(Ref.: 201407047142)
Pesquisa binária

(Ref.: 201407246347)
6e2

(Ref.: 201407035643)
tanto o sistema I, quanto o II, adotam o esquema FIFO de organização de dados.

(Ref.: 201407043553)
overflow

(Ref.: 201407044093)
Compartilhamento de memória, maleabilidade e facilidade para inserção e remoção de
componentes.

(Ref.: 201407035622)
É um modo particular de armazenamento e organização de dados em um computador de
modo que possam ser usados de modo eficiente.

(Ref.: 201407657630)
As funções

(Ref.: 201407044106)
Retorna a posição de v se o valor vl foi encontrado.

(Ref.: 201407044077)
Nome da estrutura ponto nome do campo

(Ref.: 201407683424)
vet[10].nota=5.7;

(Ref.: 201407632376)
1,23,3,8,13

(Ref.: 201407043991)
Inserção

(Ref.: 201407044076)
Vetor

(Ref.: 201407607800)
Lista Linear Sequencial

(Ref.: 201407582158)
I, III, IV e VI são afirmativas verdadeiras

(Ref.: 201407715556)
grafos

(Ref.: 201407044110)
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.

(Ref.: 201407625796)
5

(Ref.: 201407044077)
Nome da estrutura ponto nome do campo

(Ref.: 201407248785)
Cada elemento da struct é denominado membro ou campo, sendo que a struct pode
armazenar elementos de tipos diferentes ou não.

(Ref.: 201407047142)
Pesquisa binária

(Ref.: 201407246347)
6e2

(Ref.: 201407044082)
Bolha

(Ref.: 201407607800)
Lista Linear Sequencial

(Ref.: 201407043933)
Apenas as afirmações I e II estão corretas.

(Ref.: 201407111206)
I, II e III.
(Ref.: 201407715556)
grafos

(Ref.: 201407721047)
Após a impressão dos valores pela ordem teremos uma fila e uma pilha.

(Ref.: 201407632385)
Grafos

(Ref.: 201407044093)
Compartilhamento de memória, maleabilidade e facilidade para inserção e remoção de
componentes.

(Ref.: 201407246333)
As alternativas I e II estão corretas

(Ref.: 201407632383)
As funções

(Ref.: 201407625796)
5

(Ref.: 201407626502)
int func (int a, int &b);

(Ref.: 201407607900)
referência

(Ref.: 201407283890)
O programa executa perfeitamente independente da ordem das funções já que existem os
seus protótipos.

(Ref.: 201407246340)
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.

(Ref.: 201407657635)
vet[10].nota=5.7;

(Ref.: 201407044077)
Nome da estrutura ponto nome do campo

(Ref.: 201407248785)
Cada elemento da struct é denominado membro ou campo, sendo que a struct pode
armazenar elementos de tipos diferentes ou não.

(Ref.: 201407683424)
vet[10].nota=5.7;

(Ref.: 201407715674)
liv.preco = 30.70;
(Ref.: 201407043570)
Registro

(Ref.: 201407047142)
Pesquisa binária

(Ref.: 201407043737)
A ordenação é a base na qual, muitos algoritmos são construídos. Entendendo a ordenação,
tem-se conhecimento para resolver outros problemas.

(Ref.: 201407632373)
Que utiliza o método inserção e realiza uma ordenação crescente nos elementos do vetor v.

(Ref.: 201407774187)
10 e 1024

(Ref.: 201407044082)
Bolha

(Ref.: 201407632377)
trata-se da implementação do algortimo de busca binária.

(Ref.: 201407044076)
Vetor

(Ref.: 201407044097)
Inserção de um elemento em uma estrutura LIFO

(Ref.: 201407043553)
overflow

(Ref.: 201407043933)
Apenas as afirmações I e II estão corretas.

(Ref.: 201407691619)
Inserção

(Ref.: 201407246350)
Lista Sequencial

(Ref.: 201407281943)
pilha

(Ref.: 201407035637)
um tipo de lista linear em que as operações de inserção e remoção são realizadas na
extremidade denominada topo.

(Ref.: 201407035626)
pilha

(Ref.: 201407283937)
void pop(){ if(topo != -1) topo--;}
(Ref.: 201407111205)
Pilha.

(Ref.: 201407044080)
Pilha

(Ref.: 201407044051)
Entrada de dados pelo final e saída pelo início.

(Ref.: 201407635013)
Fila de arquivos para impressão e buffer para gravação de dados em fila.

(Ref.: 201407632380)
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.

(Ref.: 201407657644)
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.

(Ref.: 201407043582)
9

(Ref.: 201407044078)
Fila

(Ref.: 201407043893)
Juntar duas listas, colocando uma lista no final de outra, obtendo, ao final, uma só lista
resultante.

(Ref.: 201407047148)
Posicionar o ponteiro no início da lista

(Ref.: 201407044079)
Um objeto que contém um endereço de memória.

(Ref.: 201407582655)
II e IV estão corretas

(Ref.: 201407707069)
A primeira faz uma busca retornando o endereço do nó ou NULL quando não encontrado, já a
segunda insere um novo nó no inicio da LSE;

(Ref.: 201407666479)
A memória utilizada pela aplicação é inicialmente estática, mas pode mudar

(Ref.: 201407249027)
usa o critério LIFO e é implementada usando-se listas encadeadas.

(Ref.: 201407666464)
25
(Ref.: 201407666470)
Apenas as afirmações (1) e (3) são verdadeiras

(Ref.: 201407749872)
InsereNoFrente

(Ref.: 201407715681)
É preciso alocar memória com new, armazenar o resto da divisão do número por 2 no campo
dado do novo nó, apontar o link do novo nó para o início da lista e enfim, retornar o ponteiro
para o novo nó.

(Ref.: 201407715559)
no *p=new no;

(Ref.: 201407043753)
Além do campo relativo ao dado, cada nó possui dois ponteiros.

(Ref.: 201407043964)
X, antes do Z, e Y, logo após o Z.

(Ref.: 201407256631)
listaDE *insereInicio(listaDE *LISTA, int valor);

(Ref.: 201407246371)
As operações removem o nodo apontado pelo ponteiro p.

(Ref.: 201407249049)
A lista pode ser percorrida com igual facilidade para a direita ou para a esquerda, pois existem
dois ponteiros.

(Ref.: 201407691615)
nodupla *novo;
novo = new nodupla;
novo->dado = valor;
novo->dlink = p;
novo->elink = NULL;
if (p != NULL)
p->elink = novo;
p = novo;