void Eureka()
{
for (int i = 1; i <= 10; i++)
if (i % 2 == 0)
cout << i << " ";
else
if (i % 7 == 0)
return;
}
Nada é impresso, pois a função não compila. Para a função compilar, deveria ter int no lugar de void, já que há return na função.
246
Nada é impresso, pois a função não compila. A função não deveria usar return, pois não está de acordo com o uso de void.
2468
2 4 6 8 10
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.
Gabarito Comentado
3a Questão (Ref.: 201607250321) Fórum de Dúvidas (1 de 1) Saiba (1 de 1)
Gabarito Comentado
Gabarito Comentado
5a Questão (Ref.: 201607045676) Fórum de Dúvidas (1) Saiba (1)
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.
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.
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".
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.
Gabarito Comentado
Assinale a alternativa que apresenta duas formas de passagem de parâmetros para uma rotina ou função:
Gabarito Comentado
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:
Os Grafos
As Filas
As funções
Os Vetores
As Estruturas de Dados
8a Questão (Ref.: 201607880035) Fórum de Dúvidas (1 de 1) Saiba (1 de 1)
18 e 28
28 e 08
08 e 18
28 e 18
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;
10
Haverá um erro de compilação
5
50
0
Gabarito Comentado
III Quando todos os parâmetros são do mesmo tipo, é suficiente usar o tipo uma vez e separar os
nomes dos parâmetros por vírgulas
IV Na passagem por valor, o endereço da variável da função chamadora é passado para a função
chamada
Gabarito Comentado
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:
Gabarito Comentado
4a Questão (Ref.: 201607633949) Fórum de Dúvidas (1) Saiba (1)
Blocos únicos de códigos que realizam diversas tarefas distitintas são de dificil manutenção. Portanto, utiliza-se
a tecnica da modularização de programas, a fim de facilitar a implementação e a manutenção dos programas.
Esta técnica, também chamada de modularização, tem como principal elemento:
As Filas
Os Vetores
As Estruturas de Dados
As funções
Os Grafos
#include
void func(int *x)
{
do{
cout << *x << " ";
(*x)--;
}while(*x>0);
}
main()
{
int x=5;
func(&x);
cout << x;
system("pause");
}
543215
534214
543216
543210
534210
28 e 08
28 e 18
18 e 18
18 e 28
08 e 18
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:
Gabarito Comentado
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:
Local
Constante
Inteiro
Global
Real
Exercício: CCT0260_EX_A3_201607015935_V1 Matrícula: 201607015935
Registro
Loop
Pilha
Fila
Vetor
Gabarito Comentado
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;
};
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;
aluno.vet[10].nota=5.7;
vet[10]=aluno.5.7;
vet[10].aluno.nota=5.7 ;
vet[10].nota=5.7;
struct Livro {
int codigo;
float preco;
} liv;
Livro.codigo = 12345;
Livro.liv.codigo = 12345;
liv->preco = 30.70;
Livro->liv.codigo = 12345;
liv.preco = 30.70;
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?
Gabarito Comentado
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 campo e cada campo deve ser, obrigatoriamente,
de um tipo de dados distinto de outro campo.
Não é possível criar um vetor de structs, pois o vetor trabalha apenas com dados do
mesmo tipo.
Gabarito Comentado
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.
aluno[10]=6.0;
vet[3].aluno=6.0;
vet[3].media=6.0;
aluno[3].10=6.0;
aluno[3].media=6.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;
};
Marque a alternativa em que é atribuída de forma correta a nota 5.7 para o décimo primeiro elemento deste
vetor.
vet[10]=aluno.5.7;
vet[10].aluno.nota=5.7 ;
aluno.vet[10]=5.7;
aluno.vet[10].nota=5.7;
vet[10].nota=5.7;
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
Pesquisa sequencial
Seleção
Bolha
Inserção
Gabarito Comentado
2a Questão (Ref.: 201607048473) Fórum de Dúvidas (1) Saiba (0)
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:
return -1;
pesquisa de cadeias
pesquisa indexada
pesquisa sequencial
pesquisa binária
pesquisa cadeias indexada
Gabarito Comentado
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 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.
A ordenação é a base na qual, muitos algoritmos são construídos. Entendendo a ordenação, tem-se
conhecimento para manter outros problemas.
Gabarito Comentado
Sabendo-se que o método de ordenção bolha ou bubble sort realiza a troca de elementos adjacentes até que
todos os elementos de um vetor esteja ordenado. Então, se submetermos a sequencia de inteiros armazenada
em um vetor inicialmente na seguinte ordem : 4, 2, 5, 1.
Pode-se dizer que quando o maior elemento do vetor alcançar sua posição final, a ordenação apresentada no
vetor é:
1,4,2,5
1,2,4,5
4,1,2,5
2,1,4,5
2,4,1,5
Gabarito Comentado
O resultado do concurso para o cargo de uma empresa está armazenado em um vetor, que contém em cada um
de seus elementos o número de inscrição, o nome e a nota obtida pelo candidato. Este vetor está ordenado pelo
número de inscrição. Para realização de uma consulta que, dado um número de inscrição, apresenta o nome e
nota do candidato, um programador utilizou um algoritmo de busca que realiza sucessivas divisões no vetor,
comparando o número de inscrição procurado com o número de inscrição do candidato posicionado no meio do
vetor. Se o candidato posicionado do meio do vetor tiver o número de inscrição igual ao número de inscrição
procurado, a busca termina com sucesso. Caso contrário, se candidato posicionado do meio do vetor tiver
número de inscrição menor que o procurado, então a busca continua na metade posterior do vetor. E
finalmente, se candidato posicionado do meio do vetor tiver número de inscrição maior que o procurado, a
busca continua na metade anterior do vetor. O algoritmo utilizado pelo programador trata-se do método
denominado busca:
linear.
por contagem.
por comparação.
randômica.
binária.
Gabarito Comentado
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:
9 e 10
1024 e 512
10 e 10
10 e 1024
9e9
Gabarito Comentado
Nos métodos de ordenação interna, quais são aqueles classificados como tipo método simples?
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.
Bolha
Seleção
Hash
Binária
Inserção
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 a afirmação I está correta.
Apenas as afirmações I e II estão corretas.
Apenas as afirmações II e III estão corretas.
Apenas as afirmações I e III estão corretas.
Apenas as afirmações II está corretas.
Gabarito Comentado
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.
Lista Sequencial
Pilha Sequencial
Lista Encadeada
Fila Sequencial
Pilha Encadeada
Gabarito Comentado
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
implementa a operação de :
Inicialização
Ordenação por inserção
Busca
Inserção
Substituição
Gabarito Comentado
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:
Gabarito Comentado
O que acontece ao se inserir uma informação quando já usamos toda a área disponível do vetor (topo = fim)?
overflow
inclusão
ordenação
remoção
underflow
Gabarito Comentado
__________________________ é 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 de Alocação de Memória
Lista Não Linear
Lista Linear Sequencial
Lista Linear Não Sequencial
Lista Linear Não Alocada
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 é:
Matriz
Variável
Vetor
Função
Registro
Gabarito Comentado
Um programador recebeu a tarefa de construir um programa que receba uma cadeia de caracteres e verifique
se esta cadeia de caracteres é um PALÍNDROME, sabendo-se que um PALÍNDROME apresenta a mesma
sequência de caracteres da esquerda pra direita, quanto da direita para esquerda, marque a opção que possui a
estrutura de dados mais adequada a este programa.
Pilha Sequencial
Lista Sequencial
Grafos
Fila Sequencial
Árvores
Gabarito Comentado
A estrutura de dados do tipo pilha (stack) é um tipo abstrato de dado baseada no princípio:
Gabarito Comentado
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?
Gabarito Comentado
Sistemas operacionais utilizam filas para gerenciar, tarefas, processos e recursos. Qual é a ordenação dos
elementos armazenados aleatoriamente em uma lista do tipo LIFO?
Na pequena pizzaria de Dom Leopoldo os pedidos são anotados em uma planilha e assim que montam um lote
com 5 pizzas, as entregas começam. As pizzas são organizadas no veículo de entrega respeitando a ordem da
entrega, ou seja, a 1a. pizza a ser entregue fica na frente de todas e assim, sucessivamente. Dessa forma, a
última pizza a ser entregue ficará no final do veículo, após todas as outras pizzas. Qual a estrutura de dados é
mais adequada para modelar a organização das pizzas no veículo de entrega ?
grafo
árvore
pilha
lista
fila
Gabarito Comentado
As pilhas sequenciais são estruturas que guardam a ordem reversa dos dados nelas armazenados, e isto em
muitas ocasiões é muito vantajoso. A operação usada para inserir um elemento X numa pilha é conhecida
na literatura como PUSH (X). Para remover um elemento de uma pilha a operação é o POP( ). Assim estas
duas funções devem implentar o algoritmo LIFO (Last In - First Out ) ou o último a entrar é o primeiro a
sair. Sendo assim se aplicarmos as seguintes operações em uma PILHA vazia:
PUSH(10),PUSH(5),POP(),PUSH(7),POP(),PUSH(2),POP(),POP( ).
Apenas o 10
Apenas o 2
Nenhum, a pilha estará vazia.
7e2
10 e 2
Gabarito Comentado
Na estrutura de dados tipo pilha, há duas operações básicas para empilhamento e desempilhamento. Essas
operações são conhecidas como:
Base e Topo;
HEAP e POP;
PULL e POP;
PUSH e POP.
PUSH e PULL;
Gabarito Comentado
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
fila
pilha
árvore
grafo
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()
25
57
247
345
234
Gabarito Comentado
Na pequena mercearia do Sr. Manuel os pedidos são anotados no papel e assim que montam um lote com 10
listas de compras dos fregueses, as entregas começam. As compras de cada freguês são postas em uma caixa.
As caixas são organizadas no veículo de entrega respeitando a ordem da entrega, ou seja, a 1a. caixa a ser
entregue fica na frente das demais caixas e assim, sucessivamente. Dessa forma, a última caixa a ser entregue
ficará no final do veículo, após todas as outras caixas que deverão ser entregues primeiro. Qual a estrutura de
dados mais adequada que traduz a organização das pizzas no veículo de entrega ?
árvore
grafo
fila
lista
pilha
Gabarito Comentado
Abaixo temos algumas afirmativas sobre o uso da estrutura pilha de forma estática e sequencial. Leia com
muita atenção e assinale a opção correta.
I Não existe movimentação na pilha quando inserimos ou removemos um elemento. Apenas o valor da
variável que controla o topo é alterado.
II Não podemos usar estruturas homogêneas, ou heterogêneas e uma variável para controlar o topo na
alocação sequencial.
III Um dos fatores que limita o crescimento da pilha é a quantidade de memória alocada quando usamos
matrizes.
IV Quando formos empilhar um elemento, é preciso verificar se a pilha não está cheia. Isso evita underflow.
V Quando formos desempilhar um elemento, é preciso verificar se a pilha não está vazia. Isso evita overflow.
Gabarito Comentado
5a Questão (Ref.: 201607045134) Fórum de Dúvidas (0) Saiba (0)
A técnica LIFO (last in first out), utilizada em programação estruturada, é fundamentada no conceito de:
Loop
Fila
Ponteiro
Registro
Pilha
Gabarito Comentado
Pilha
Fila
Árvore
Lista
Grafo
Gabarito Comentado
7a Questão (Ref.: 201607584857) Fórum de Dúvidas (0) Saiba (0)
Observe a função que manipula uma pilha e assuma que TAM é uma constante definida com valor 5. Saiba
que o nome da função já explícita a finalidade dela.
Considere a chamada da função conforme linha abaixo, sabendo-se que vet é um vetor de tamanho 5 e que
não tem nenhum valor ainda:
Analise as afirmativas abaixo que sugerem correções, ou não, na definição na função e assinale a opção
que contem as afirmativas corretas.
II e V estão corretas
I , III e V estão corretas
I, II e IV estão corretas
I e III estão corretas
I e II estão corretas
Gabarito Comentado
O ponteiro do "último" nó não é NULL, mas sim aponta de volta para o "primeiro" nó da lista.
O ponteiro do "primeiro" nó não é NULL, mas sim aponta de volta para o "último" nó da lista, formando
um ciclo.
Além do campo relativo ao dado, cada nó possui dois ponteiros,
Cada nó possui um só ponteiro que referencia o próximo nó da lista.
Cada ponteiro possui um só endereço que referencia o "primeiro" nó da lista.
Gabarito Comentado
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)
5
6
0
15
9
Gabarito Comentado
Gabarito Comentado
Assinale a opção que, corretamente, mostra exemplos em que a estrutura de dados fila é usada, de acordo com o
critério de inserções e remoções que rege tal estrutura.
Buffer para gravação de dados em mídia e fila de pessoas para comprar o ticket do metrô.
Fila de documentos para xerox e fila de arquivos para impressão.
Fila de arquivos para impressão e buffer para gravação de dados em fila.
Fila de arquivos para impressão e fila de pessoas no caixa de um supermercado.
Fila de pessoas para tirar o visto e fila de pessoas para usar o caixa eletrônico.
Gabarito Comentado
Considere uma fila simples F de inteiros, do tipo Fila definido abaixo. Tal fila deverá armazenar códigos de agentes de uma
firma de espionagem, desde que haja espaço para um novo agente. Assinale a opção que corretamente enfileira o código de
um agente, sabendo que a fila F foi inicializada de acordo com o trecho de código abaixo.
Fila F;
F. inicio = 0;
F.fim = -1;
if (F.fim == 99)
cout << "Não há espaço na firma para mais agentes. " << endl;
else {
F.fim++;
F.v[F.fim] = codigo;
F.fim++;
F.v[F.fim] = codigo;
if (F.fim == 100)
cout << "Não há espaço na firma para mais agentes. " << endl;
else {
F.fim++;
F.v[F.fim] = codigo;
F.v[F.fim] = codigo;
F.fim++;
}
void enfileirar(Fila &F, int codigo) {
if (F.fim == 99)
cout << "Não há espaço na firma para mais agentes. " << endl;
else
F.fim++;
F.v[F.fim] = codigo;
Gabarito Comentado
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:
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.
A estrutra sofrerá do fenômeno esgotamento de memória, mas se os dados estiverem ordenados isto
não afetará a estrutura.
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.
Gabarito Comentado
W
D
C
A
X
Considere uma fila simples F de inteiros, do tipo Fila definido abaixo. Tal fila deverá armazenar códigos de agentes de uma
firma de espionagem, desde que haja espaço para um novo agente. Assinale a opção que corretamente desenfileira o código
de um agente, sabendo que a fila F foi inicializada de acordo com o trecho de código abaixo.
Fila F;
F. inicio = 0;
F.fim = -1;
else {
void desenfileirar(Fila F) {
F.inicio--;
else {
F.inicio++;
else {
F.inicio++;
void desenfileirar(Fila F) {
else {
F.inicio++;
As structs (estruturas) são utilizadas para modelar os nodos de estruturas dinâmicas como, por exemplo, as
listas encadeadas, seja o seguinte exemplo de nodo de uma lista de produtos: struct nodo{ float valor; string
produto; nodo * proximo; }; Suponha que um determinado ponteiro pt esteja apontando para um nodo desta
lista, e que se queira alterar o conteúdo do campo valor deste nodo, que está sendo apontado por pt, para 5.60.
Marque a alternativa que corretamente possibilita esta operação:
pt->próximo->valor=5.60;
pt->5.60;
pt->próximo.valor=5.60;
pt.valor->5.60;
pt->valor=5.60;
Gabarito Comentado
Considere
ptr = &a;
qtr = &b;
++(*qtr);
r = qtr;
qtr = ptr;
assinale a opção que mostra, correta e respectivamente, os valores de *ptr, *qtr
, *r , a e b .
30 20 20 10 20
30 21 21 10 20
30 20 0 30 21
30 30 21 30 21
30 30 21 10 20
Assumindo que um valor do tipo inteiro ocupa 4 bytes na memória, e se baseando nas linhas de código abaixo,
marque a alternativa correta:
int *p;
p = (int *)malloc(20*sizeof(int));
#include
main()
{
int i=10,*p;
p=&i;
cout << *p << " " << i + *p<< " " << *p**p << " " << i+**&p;
system("pause");
}
10 24 102 25
10 25 100 30
10 20 100 22
10 20 104 22
10 20 100 20
6a Questão (Ref.: 201607278651) Fórum de Dúvidas (0) Saiba (0)
#include
main()
{
int x=5,*p;
p=&x;
cout << x - *p << " " << **&*&p + 1 << " " << *p*2+*p << " " << x+**&p;
system("pause");
}
1 6 15 12
0 6 15 11
0 8 16 10
0 6 15 10
0 6 16 14
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:
Variável
Vetor
Endereço
Ponteiro
Matriz
Gabarito Comentado
insere-se em qualquer posição, antes ou após qualquer nó, visto que é dinâmica.
só pode ter seus dados impressos no sentido do último nó para o primeiro nó.
Gabarito Comentado
struct nodo
{
int info;
struct nodo *prox;
};
BuscaNaLista
RemoveNo
InsereNoFrente
InsereNoFim
ListaNo
Gabarito Comentado
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;
};
É 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ó.
É 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ó.
Basta alocar memória com new e armazenar o resto da divisão do número por 2 no campo dado do
novo 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.
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ó.
Gabarito Comentado
I if (ptr !=NULL)
II if( !ptr )
III if(ptr)
IV while (ptr !=NULL)
V while (ptr)
I e II estão corretas.
III está correta
IV e V estão corretas.
I e IV estão corretas
III e V estão corretas
Gabarito Comentado
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;
no *p -> new no;
no p -> new no;
p *no -> new no;
1a Questão (Ref.: 201607693181) Fórum de Dúvidas (0) Saiba (0)
struct nodupla {
int dado;
struct nodupla *dlink; // aponta p/ o nó à direita
struct nodupla *elink; // aponta p/ o nó à esquerda
};
A opção que corretamente mostra as instruções para inserir um valor no início da lista apontada
por p é :
nodupla *novo;
n nodupla *novo;
nodupla *novo;
nodupla *novo;
Gabarito Comentado
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:
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 dados, marque a alternativa
correta.
struct nomeRegistro{
int info;
struct nomeRegistro* ant;
struct nomeRegistro* prox;
};
Matriz
Lista encadeada
Lista duplamente encadeada
Pilha
Fila
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:
Gabarito Comentado
A lista pode ser percorrida com igual facilidade para a direita ou para a esquerda,
pois existem dois ponteiros.
Gabarito Comentado
Uma estrutura de dados em lista duplamente encadeada permite na cadeia movimentos para
Gabarito Comentado
Uma estrutura de dados em lista duplamente encadeada permite na cadeia movimentos para:
trás, apenas.
cima e para baixo, apenas.
frente e para trás, apenas.
cima e para baixo ou para frente e para trás.
frente, apenas.
Gabarito Comentado
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;
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;