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.