Buscar

provas av

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 3 páginas

Prévia do material em texto

1. 
 
 
Assinale a alternativa correta sobre alocação de memória. 
 
 
Uma das vantagens da alocação dinâmica sobre a alocação estática é que não é necessário fazer a 
liberação da memória utilizada. 
 
Na alocação dinâmica de memória, a memória é alocada sob demanda, apenas quando necessário. 
 
É correto afirmar que a alocação dinâmica de memória sempre leva a programas mais rápidos. 
 
A declaração de um vetor é um exemplo clássico de alocação dinâmica de memória. 
 
Alocação estática de memória refere-se ao processo de alocar memória com o uso de ponteiros. 
 
 
 
2. 
 
 
QUAL A SAÍDA DO PROGRAMA ABAIXO? 
 
 
#include 
 
main() 
{ 
 int x=5,*p; 
 p=&x; 
 
 cout << x - *p << " " << **&*&p + 1 << " " << *p*2+*p << " " 
<< x+**&p; 
 system("pause"); 
} 
 
 
0 6 16 14 
 
0 6 15 10 
 
0 8 16 10 
 
1 6 15 12 
 
0 6 15 11 
 
 
 
3. 
 
 
Em relação as estruturas de dados, aquela que corresponde ao armazenamento em uma lista linear 
com a posição relativa (não contígua) na memória de dois nós consecutivos da lista é conhecida por 
alocação: 
 
 
Estática. 
 
Seqüencial. 
 
Combinada. 
 
Binária. 
 
Encadeada. 
 
 Gabarito Comentado 
 
 
4. 
 
 
Marque a afirmativa que represente uma separação. 
 
 
Consiste em dividir a lista em duas outras listas. A quantidade de nós que cada lista terá, depende 
da necessidade. 
 
Alterar a ordem dos dados da lista do final para o início, atualizando a lista. 
 
Intercalar a ordem dos dados da lista do final para o início, atualizando a lista. 
 
Organizar os dados da lista em ordem crescente ou decrescente. 
 
Juntar duas listas, colocando uma lista no final de outra, obtendo, ao final, uma só lista resultante. 
 
 Gabarito Comentado 
 
 
5. 
 
 
Podemos dizer que uma lista encadeada tem as seguintes características: 
i) conhecida como lista ligada. 
ii) seus nós são responsáveis para manter a sequência da lista. 
iii) o último nó deve apontar para NULL. 
Assinale a alternativa que informa as afirmativas corretas. 
 
 
 
Somente as afirmativas i e ii estão corretas. 
 
Somente a afirmativa i esta correta. 
 
Todas as afirmativas estão corretas. 
 
Somente a afirmativa iii esta correta. 
 
Todas as afirmativas estão incorretas. 
 
 Gabarito Comentado 
 
 
6. 
 
 
Sou uma empresária que quer crescer e por isso, tenho que aumentar progressivamente a minha lista 
de clientes, sem limitar este crescimento. Assim, à medida que novos clientes são cadastrados, posso, 
se necessário, contratar mais e mais empregados. Marque a opção que especifica o tipo de lista e o 
tipo de alocação de memória mais adequados para este problema. 
 
 
lista sequencial e alocação dinâmica de memória 
 
lista encadeada e alocação dinâmica de memória 
 
pilha dinâmica e alocação dinâmica de memória 
 
fila encadeada e alocação dinâmica de memória 
 
fila dinâmica e alocação dinâmica de memória 
 
 Gabarito Comentado 
 
 
7. 
 
 
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)); 
 
 
Alocação dinâmica 20 bytes na memória 
 
Alocação dinâmica de espaço de memória suficiente para armazenar 20 x 4 valores inteiros 
 
A operação é inválida 
 
Alocação dinâmica de 80 bytes na memória 
 
Atribuição ao ponteiro ¿p¿ de um endereço estático de memória 
 
 
 
8. 
 
 
QUAL A SAÍDA DESTE PROGRAMA? 
 
#include 
main() 
{ 
 int i=10,*p; 
 p=&i; 
 
 cout << *p << " " << i + *p<< " " << *p**p << " " << i+**&p; 
 system("pause"); 
} 
 
 
10 20 100 20 
 
10 20 104 22 
 
10 25 100 30 
 
10 24 102 25 
 
10 20 100 22

Outros materiais