Logo Passei Direto
Buscar

Estruturas de Dados e Ponteiros

Conjunto de questões (V/F) sobre estruturas de dados e ponteiros em C, abordando struct, dados heterogêneos, filas/pilhas/listas ordenadas e suas operações, trechos de código com ponteiros e exercício sobre passagem de parâmetros e resultados de execução.

User badge image
LeaoTM leao

em

Ferramentas de estudo

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

1. Marque (V) verdadeiro ou (F) falso na lacuna com código correto. 
 
— LACUNA filmes{ 
string titulo; 
int ano; 
}meu, seus; 
 
(F)int 
(F)vector 
(F)float 
(V)struct 
(F)void 
 
2. Sobre dados heterogêneos, marque (V) verdadeiro ou (F) falso: 
 
(V)Árvores são utilizadas para armazenamento de dados. 
(V)Struct é uma estrutura de dados heterogêneos 
(F)Utilizamos o conceito de pilha para salvar dados heterogêneos 
(F)Pode-se salvar dados números e alfa números em uma variável float 
(F)Um array é uma representação dessa estrutura de dados; 
 
3. Uma fila é uma estrutura linear que pode crescer e decrescer de modo 
as vezes não previsível. Nessa estrutura, a inserção e retirada são 
realizadas em extremidades opostas. Na fila apresentada [4, 6, 2, 8, 12, 
10], os elementos a esquerda foram inseridos primeiro e os a direita por 
último. Após as operações inserir(14), inserir(16), inserir(20), 
remover(), remover(), inserir(18), marque (V) verdadeiro ou (F) falso na 
sequência que apresenta corretamente a fila após essas operações. 
 
(F)4,6,2,8,12,10,14,16 
(V)2,8,12,10,14,16,20,18 
(F)6,2,8,12,10,14,20,18 
(F)4,6,2,8,12,10,14,18 
(F)4,2,8,12,10,14,16,18 
 
4. A utilização de ponteiros em linguagem C é uma das características que 
tornam a linguagem flexível e poderosa. Os ponteiros ou apontadores, são 
variáveis que armazenam o endereço de memória de outras variáveis. 
 
É visível a importância dos ponteiros quando uma variável tem que ser 
acessada em diferentes partes de um programa, ou seja, o código pode ter 
vários ponteiros espalhados por diversas partes do programa, apontando; 
para a variável que contém o dado desejado, caso este dado seja alterado 
todas as partes do programa tem um ponteiro que aponta para o endereço 
onde reside o dado atualizado. 
 
Observe as instruções abaixo (instruções em C): 
 
O1-intx=5; 
02-int*pt x; 
 
03-pt x= &x; 
04-*pt x=50; 
 
Assim, diante das afirmações e instruções acima podemos concluir: 
 
I) Em C os ponteiros são declarados pelo símbolo * entre o tipo e o nome 
da variável, ex.: int *p; 
II) Na linha 3, onde temos a instrução pt x = &x; o ponteiro pt, x recebe 
o endereço de memória da variável x; 
III) Na linha 04, onde temos a instrução *pt x= 50; ponteiro pt x altera 
o valor da variável x, que guardava o dado inteiro 5 e passa a guardar o 
dado inteiro 50; 
IV) Na linha 04, onde temos a instrução *pt. x = 50; o ponteiro pt x 
passa a guardar o valor 50, e a variável x continua a guardar o dado 
inteiro 5;. 
 
Diante das afirmações acima, marque (V) verdadeiro ou (F) falso: 
 
(F)todas as afirmações estão corretas; 
(F)apenas as afirmações I e III estão corretas; 
(F)apenas as afirmações I e IV estão corretas; 
(F)apenas as afirmações I, II e IV estão corretas; 
(V)apenas as afirmações I II e III estão corretas; 
 
5. A modularização se refere a uma técnica utilizada na computação para 
dividir o programa em partes funcionais, partes essas que conversam umas 
com as outras. Nesse sentido, ao criar uma função para verificar o maior 
número entre os valores informados pelo usuário, a modularização está 
sendo aplicada. Deste modo, considere a necessidade de criar uma função 
para receber dois números inteiros e retornar o quadrado do maior valor 
informado entre eles. Nesse cenário, como será realizada a passagem de 
parâmetros? 
Marque (V) verdadeiro ou (F) falso na alternativa que responde 
corretamente a pergunta. 
 
(F)Por frequência. 
(V)Por referência. 
(F)O primeiro por referência e o segundo por valor. 
(F)Por valor. 
(F)O primeiro por valor e o segundo por referência. 
 
6. Os ponteiros permitem trabalhar com o armazenamento de dados em 
memória, utilizando endereços. Analise o trecho de código em C abaixo: 
 
int a, b; 
int *ponteiro = &a; 
 
a=10; 
b=a+20; 
*ponteiro = b*2; 
printf("%d", a); 
 
Marque (V) verdadeiro ou (F) falso na alternativa que apresenta o 
resultado da saída de dados. 
 
(F)O 
(F)30 
(V)60 
(F)20 
(F)10 
 
7. Considere que temos uma Lista, cujos elementos são armazenados em 
ordem crescente, uma Fila e uma Pilha, todos de inteiros. Considere, 
ainda, o conjunto de dados A= (17, 84, 32, 58, 39, 7, 19,8) e as 
operações abaixo. 
 
Operações: 
 
- Pilha: empilhar / desempilhar 
- Fila: enfileirar / desenfileirar 
- Lista Ordenada: inserir / remover 
 
1. Enfileirar, sucessivamente, cada elemento de A, na ordem em que 
aparecem (primeiro o 17) 
2. Desenfileirar 4 elementos (um a um) e empilhá-los, na mesma ordem 
3. Desenfileirar 3 elementos e inseri-los na Lista Ordenada 
4. Desempilhar 2 elemento e o inseri-lo na Lista Ordenada 
5. Remover o terceiro elemento da Lista Ordenada e enfileirá-lo 
6. Remover o primeiro elemento da Lista Ordenada e empilhá-lo 
 
Após a execução das 6 operações acima, marque (V) verdadeiro ou (F) falso 
na alternativa abaixo que indica o correto estado da cada uma das listas 
descritas, considerando que o início da fila, o topo da pilha e o início 
da lista, estão sempre à esquerda. 
 
(F) FILA: 32,17 
 PILHA:8,7,39 
 LISTA:19,58,84 
 
(F) FILA: 19,8 
 PILHA:39,17,84 
 LISTA:7,32,58 
 
(V) FILA: 8,32 
 PILHA:7,84,17 
 LISTA:19,39,58 
 
(F) FILA: 8,19 
 PILHA:39,84,17 
 LISTA:7,58,32 
 
(F) FILA: 8,39 
 PILHA:19,84,17 
 LISTA:7,32,58 
 
8. Considere o Programa C, listado a seguir. 
 
#include 
 
int main(void) { 
inta,*y,z; 
x=5; 
y= &x; 
z=10; 
scanf("%ds", y); 
printf("%d %d", x, Z); 
} 
 
Marque (V) verdadeiro ou (F) falso na alternativa que representa o que 
será impresso pelo programa se o usuário digitar 15, como entrada de 
dados. 
 
(F)Null pointer 
(F)5 15 
(V)15 10 
(F)5 10 
(F)10 15 
 
9. Sobre estruturas de dados do tipo árvore binária, analise as 
assertivas abaixo. 
 
I. Diferente das listas simplesmente encadeadas, as árvores binárias 
permitem que cada nó tenha dois nós sucessores(filhos). 
II. Raiz (root) é o nó mais inferior da árvore binária que não possui 
sucessores (filhos). 
III. Folha (leaf) é qualquer nó da árvore binária que não tenha 
sucessores (filhos). 
 
Marque (V) verdadeiro ou (F) falso: 
 
(F)II, apenas. 
(F)I, apenas. 
(V)I e III, apenas. 
(F)I, II e III. 
(F)II e III, apenas. 
 
10. Estruturas de Dados são implementadas através de algoritmos abstratos 
em uma determinada linguagem de programação, tratando do armazenamento e 
manipulação de dados em memória principal e que estuda as possíveis 
alternativas que um programador pode ter na hora de escolher a estrutura 
adequada para determinada necessidade. Considerando a Estrutura de Dados 
do tipo pilha, marque (V) verdadeiro ou (F) falso na regra para a entrada 
e saída de elementos é: 
 
(F)A entrada e saída de elementos podem ser feita em qualquer ordem 
(F)O primeiro que entra é o primeiro que sai 
(F)A entrada e saída de elementos segue uma ordem hierárquica 
(F)O último que entra é o último que sai 
(V)O último que entra é o primeiro que sai 
 
11. Quanto a ordenação de vetores, marque (V) verdadeiro ou (F) falso. 
 
(V)Quicksort: um elemento é escolhido como pivô, onde os valores menores 
são colocados antes dele e os maiores depois dele 
(V)Selectionsort: a cada passo, procura o menor valor do array e o coloca 
na primeira posição. Esse procedimento acontece desde a primeira posição 
(V)Mergesort: divide, recursivamente, o conjunto de dados até que cada 
subconjunto possua um elemento 
(V)Insertionsort: similar a ordenação de cartas de baralho com as mãos, 
onde, pega-se uma carta de cada vez e a coloca em seu devido lugar, 
sempre deixando as cartas da mão em ordem 
(V)Bublesort: compara pares de elementos adjacentes e os troca de lugar 
se estiverem na ordem errada 
 
12. typedef struct { 
int dia; 
int mes; 
int ano; 
} Data; 
 
typedef struct { 
int codigo; 
char nome[200]; 
Data datNasc; 
}Aluno; 
 
Aluno aluno especial;Considerando o código apresentados, marque (V) verdadeiro ou (F) falso no 
tipo de estrutura de dados que é representada nele. 
 
(V)Estrutura de dados aninhada. 
(F)Matriz. 
(F)Fila. 
(F)Vetor de estrutura. 
(F)Lista encadeada.

Mais conteúdos dessa disciplina