Buscar

Algoritmos e Programação

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

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ê também pode ser Premium ajudando estudantes

Prévia do material em texto

LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO 
ESTUDOS DISCIPLINARES 
 
1ª QUESTÃO 
Enunciado 
Certo dia o professor de Johann Friederich Carl Gauss (aos 10 anos de idade) 
mandou que os alunos somassem os números de 1 a 100. Imediatamente 
Gauss achou a resposta – 5050 – aparentemente sem cálculos. Supõe-se que 
já aí, Gauss, houvesse descoberto a fórmula de uma soma de uma progressão 
aritmética. 
 
Agora você, com o auxílio dos conceitos de algoritmos e da pseudo-linguagem 
PORTUGOL, foram apresentados três propostas de algoritmos que realiza a 
soma de uma P.A. de N termos, com o primeiro a1 e o último an. 
 
Proposta A 
algoritmo "SomaGauss" 
// Seção de Declarações 
Var 
 a1,an,n:inteiro 
 soma:real 
Inicio 
// Seção de Comandos 
 escreva("Entre com o a1 ") 
 leia(a1) 
 escreva("Entre com o n") 
 leia(n) 
 escreva("Entre com o a",n) 
 leia(an) 
 soma<-((a1+n)*an)/2 
 escreva("Soma ",soma) 
Fimalgoritmo 
 
Proposta B 
algoritmo "SomaGauss" 
// Seção de Declarações 
Var 
 a1,an,n:inteiro 
 soma:real 
Inicio 
// Seção de Comandos 
 escreva("Entre com o a1 ") 
 leia(a1) 
 escreva("Entre com o n") 
 leia(n) 
 escreva("Entre com o a",n) 
 leia(an) 
 soma<-(a1+n)*an/2 
 escreva("Soma ",soma) 
Fimalgoritmo 
 
Proposta C 
algoritmo "SomaGauss" 
// Seção de Declarações 
Var 
 a1,an,n:inteiro 
 soma:real 
Inicio 
// Seção de Comandos 
 escreva("Entre com o a1 ") 
 leia(a1) 
 escreva("Entre com o n") 
 leia(n) 
 escreva("Entre com o a",n) 
 leia(an) 
 soma<-a1+n*an/2 
 escreva("Soma ",soma) 
Fimalgoritmo 
 
 
 
Alternativas 
A) 
Apenas a proposta A está correta 
Justificativa: a única correta pois é onde a expressão matemática esta escrita corretamente 
seguindo a formula, na B e C elas não seguem a expressão matematica 
B) 
Apenas a proposta B está correta 
C) 
Apenas a proposta C está correta 
D) 
Mais de uma proposta correta 
E) 
Nenhuma das propostas está correta 
2ª QUESTÃO 
Enunciado 
Considere que o número de uma placa de veículo é composto por quatro 
algarismos. foram apresentados três propostas de algoritmos em PORTUGOL 
que leia este número e apresente o algarismo correspondente à casa 
das dezenas. (considere % = mod e \ = div) 
 
Proposta A...... 
algoritmo "Placacarro" 
// Seção de Declarações 
Var 
 a,d :inteiro 
inicio 
// Seção de Comandos 
 escreva("Entre com o numero de 4 dígitos") 
 leia(a) 
 d<-a % 100 \ 10 
 escreva("O algarismo das dezenas é ",d) 
fimalgoritmo 
 
Proposta B 
algoritmo "Placacarro" 
// Seção de Declarações 
Var 
 a,d :inteiro 
inicio 
// Seção de Comandos 
 escreva("Entre com o numero de 4 dígitos") 
 leia(a) 
 d<-a % 1000 \ 100 
 escreva("O algarismo das dezenas é ",d) 
fimalgoritmo 
 
Proposta C 
algoritmo "Placacarro" 
// Seção de Declarações 
Var 
 a,d :inteiro 
inicio 
// Seção de Comandos 
 escreva("Entre com o numero de 4 dígitos") 
 leia(a) 
 d<-a \ 1000 
 escreva("O algarismo dos dezenas é ",d) 
fimalgoritmo 
 
 
Alternativas 
A) 
Apenas a proposta A está correta 
B) 
Apenas a proposta B está correta 
C) 
Apenas a proposta C está correta 
D) 
Mais de uma proposta está correta 
Justificativa: Tanto a A quando a B funcionam para para pegar apenas a casa das dezenas. 
A proposta A consegue fazer isso aplicando o operador % (resto da divisão) para pegar os 
dois últimos dígitos do número (a % 100), e em seguida é aplicado o operador \ (divisão 
inteira) para pegar o algarismo das dezenas (a % 100 \ 10). A proposta B é bem semelhante 
so que ele pega os 3 ultimos números e faz a divisão por 100 
E) 
Nenhuma das prospostas está correta 
3ª QUESTÃO 
Enunciado 
Dado o seguinte programa: 
Programa p1; 
var i,j,k:inteiro 
inicio 
leia(i) 
leia(j) 
leia(k) 
se (i>j) e (i>k) então 
 escreva(i) 
senão 
 se j>k ntão 
 escreva(j) 
 senao 
 escreva(k) 
 fimse 
fimse 
fim. 
 
Considere as entradas, faça o teste de mesa e assinale aquele em que a saída seja 
correta: 
 
Alternativas 
A) 
Entrada respectivamente 3 e 1 e 2 
Saída: 3 2 1 
B) 
Entrada respectivamente 1 e 3 e 2 
Saída: 2 
C) 
Entrada respectivamente 1 e 2 e 3 
Saída: 6 
D) 
Entrada respectivamente 3 e 2 e 1 
Saída: 1 
E) 
Entrada respectivamente 1 e 3 e 2 
Saída: 3 
Justificativa: primeiro o laço verifica a variável I se ela é maio que J e K, no caso I é 
1, menor que as outras duas, depois verifica se J é maior que K, no caso essa 
afirmação é verdadeira para as entradas, então ele finaliza o laço. 
4ª QUESTÃO 
Enunciado 
Para ocorrer a aprovação dos cursos de tecnologia na UNIP os alunos devem ter 
a média final maior ou igual a 5 (cinco). 
O cálculo da média segue a seguinte fórmula: 
 
 
Para auxiliar um aluno desenvolveu o seguinte programa: 
 
 
algoritmo "Ex" 
var 
 B1,B2,PIM,MF:real 
inicio 
leia(B1) 
leia(B2) 
leia(PIM) 
MF<-4*B1 + 4*B2 + 2 * PIM /10 
se MF >= 5 entao 
 escreva("aprovado") 
senao 
 escreva("Reprovado") 
fimse 
fimalgoritmo 
 
Acontece que um aluno tirou 1 (um) na B1, 2,5 (dois e meio) na B2 e 5 (cinco) no 
PIM, e o programa indicou erroneamente aprovação. 
Qual a explicação? 
 
 
 
Alternativas 
A) 
A expressão da condicional está invertida 
B) 
As variáveis estão declaradas com o tipo errado 
C) 
A distribuição dos pesos estão incorretas 
D) 
Não foi levada em consideração a hierarquia das operações 
E) 
O programa está correto e possivelmente houve um erro na 
digitação dos valores 
5ª QUESTÃO 
Enunciado 
1. Dado o seguinte algoritmo: 
 
Programa ProvaE01; 
Const 
Qt=’quente’; 
Fr=’Frio’; 
Kelvin=273; 
Var 
entrada,atual:inteiro; 
Inicio 
 Leia(entrada); 
 Atual<- Kelvin+entrada; 
 Se atual>=283 entao 
 Escreva(atual,’-‘,qt) 
 Senão 
 Escreva(atual,’-‘,fr); 
Fim. 
 
Assinale a correta: 
 
Alternativas 
A) 
Entrada: 0 
Saída 273 -fr 
B) 
Entrada: -1 
Saída 273 -frio 
C) 
Entrada: 230 
Saída 283 -quente 
D) 
Entrada: 10 
Saída 283 -qt 
E) 
Entrada: -10 
Saída 263 -Frio 
Justificativa: é a única opção que tem a saída correta, que executa a operação 
matemática e traz o valor armazenado na variável ‘fr’ 
6ª QUESTÃO 
Enunciado 
Qual a saída do programa abaixo? 
#include<stdio.h> 
#include<stdlib.h> 
void main() 
{ 
 int x; 
 for(x=1;x<=19;x++) 
 printf("%c",'*'); 
 printf("\n"); 
 for(x=0;x<=14;x=x+2) 
 printf("%d ",x); 
 printf("\n"); 
 for(x=1;x<=19;x++) 
 printf("%c",'*'); 
 printf("\n"); 
 system("pause"); 
} 
 
Alternativas 
A) 
1,2,3,6,8,10,12,14 
B) 
0,2,4,5,8,11,12,14 
C) 
1,2,3,4,5,6,7,8,9 
D) 
0,2,4,6,8,10,12,14 
Justificativa: o Segundo laço for ele inicializa X como 0 e vai adicionando de 2 em 
2 ate 14, trazendo apenas os números pares de 0 a 14 
E) 
2,4,6,8,10,12,14,16 
7ª QUESTÃO 
Enunciado 
O que o programa abaixo faz? 
#include <iostream.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <math.h> 
main() 
{ 
 char nome[30], sexo; 
 int idade; 
 printf("Informe seu nome: "); 
 gets(nome); 
 printf("Informe seu sexo: "); 
 scanf("%c",&sexo); 
 printf("Informe sua idade: "); 
 scanf("%d",&idade); 
 if (sexo == 'f' || sexo == 'F' && idade < 25) 
 printf("\n%s. ACEITA.\n\n", nome); 
 else 
 printf("\nNAO ACEITA.\n\n"); 
 system("PAUSE"); 
 return 0; 
} 
 
Alternativas 
A) 
Lê o nome, sexo e idade. Verifica se sexo for feminino e idade menor que 25 o sistema imprime o nome da pessoa e a palavra 
ACEITA, caso contrario imprime NAO ACEITA. 
Justificativa: essa opção é a que melhor descreve o programa, no if ele verifica se o sexo é igual a ‘f’ ou ‘F’ e também se a idade é 
menor que 25, se essas condições forem verdadeiras ele vai imprimir o ‘ACEITA’,caso essa condição não foi verdadeira ele cai no else 
onde ele vai imprimir ‘NÃO ACEITA’ 
B) 
Lê o nome, sexo e idade. Verifica se sexo for masculino e idade menor que 25 o sistema imprime o nome da pessoa e a palavra 
ACEITA, caso contrario imprime NAO ACEITA. 
C) 
Lê o nome, sexo e idade. Verifica se sexo for masculino e idade maior que 25 o sistema imprime o nome da pessoa e a palavra 
ACEITA, caso contrario imprime NAO ACEITA. 
D) 
Lê o nome, sexo e idade. Verifica se sexo for feminino e idade maior que 25 o sistema imprime o nome da pessoa e a palavra 
ACEITA, caso contrario imprime NAO ACEITA. 
E) 
Lê o nome, sexo e idade. Verifica se sexo for feminino e idade menor que 25 o sistema imprime o nome da pessoa e a palavra 
NAO ACEITA, caso contrario imprime ACEITA. 
8ª QUESTÃO 
Enunciado 
Qual é a saída o programa abaixo ? 
#include <stdio.h> 
#include <stdlib.h> 
#include <conio.h> 
#include <math.h> 
void main() 
{ 
 float valor_produto; 
 printf("Informe o valor do produto: "); 
 scanf("%f", &valor_produto); 
 if (valor_produto < 20) 
 printf("O valor da venda eh %3.2f\n", valor_produto * 1.45); 
 else 
 printf("O valor da venda eh %3.2f\n", valor_produto * 1.30); 
 system("pause"); 
} 
 
Alternativas 
A) 
Acrescenta um lucro de 145% se o valor da compra do produto pelo 
comerciante for maior que 20,00; caso contrário, o lucro será de 130%. O 
usuário deverá entrar com o valor do produto e imprimir o valor da venda. 
B) 
Acrescenta um lucro de 45% se o valor da compra do produto pelo 
comerciante for maior que 20,00; caso contrário, o lucro será de 30%. O 
usuário deverá entrar com o valor do produto e imprimir o valor da venda. 
C) 
Acrescenta um lucro de 45% se o valor da compra do produto pelo 
comerciante for menor que 20,00; caso contrário, o lucro será de 30%. O 
usuário deverá entrar com o valor do produto e imprimir o valor da venda. 
Justificativa: Essa opção é a que melhor descreve o programa por que no if 
ele verifica se o valor do produto é menor que 20, se for verdadeiro ele vai 
multiplicar o valor por 1.45, que representa o valor do produto + 45% do 
valor do produto, trazendo o lucro de 45%, caso contrario ele vai multiplicar 
o valor do produto por 1.30, trazendo 30% de lucro 
D) 
Acrescenta um lucro de 145% se o valor da compra do produto pelo 
comerciante for menor que 20,00; caso contrário, o lucro será de 130%. O 
usuário deverá entrar com o valor do produto e imprimir o valor da venda. 
E) 
Acrescenta um lucro de 30% se o valor da compra do produto pelo 
comerciante for maior que 20,00; caso contrário, o lucro será de 145%. O 
usuário deverá entrar com o valor do produto e imprimir o valor da venda. 
9ª QUESTÃO 
Enunciado 
No que se refere a forma de declaração de um laço for, é correto afirmar: 
 
Alternativas 
A) 
for (i=1 ; i<5 ; i++) 
 printf("O valor é %d ", i+4); 
Justificativa: Bom pela cara do código isso parece linguagem C, e essa alternativa 
é a que representa o laço for da maneira correta em C for (inicialização; 
condição; incremento/decremento) todas as outras tem problemas de sintaxe, seja 
que os termos estão separados por virgulas, ou o ponto e virgula no local errado. 
B) 
for(i=1 , i<5 , i++) 
 printf(“O valor é: %d ”, i+4) 
C) 
for(i=1; i<5 , i ++) 
 printf(“O valor é %d ” ; i+4); 
D) 
for(i=1 , i<5 , i++); 
 printf(“O valor é %d”, i+4); 
E) 
for(i=1 ; i<5 ; i++); 
 printf(“O valor é %d”, i+4); 
10ª QUESTÃO 
Enunciado 
Como foi escrito : 
"Meu nome é Roberto tenho 23 anos e o meu aniversario é 02/01" 
aonde os sublinhados são variáveis 
 
Alternativas 
A) 
printf("Meu nome é %a tenho %s anos o meu aniversario é s/%d",Roberto,23,2,1) 
B) 
printf("Meu nome é %s tenho d anos o meu aniversario é d/%d","Roberto",23,2,1) 
C) 
printf("Meu nome é %s tenho %d anos o meu aniversario é 
%s/%s","Roberto",23,"02","01") 
Justificativa: Única opção que entrega as especificadores coretos para o tipo de 
dado e a sintaxe correta, os outros tem problemas em declaração de variável, 
formatação incorreta de data, especificadores inválidos 
D) 
printf("Meu nome é %s tenho %d anos o meu aniversario é s/%s","Roberto",23,2,1) 
E) 
printf("Meu nome é %s tenho %2 anos o meu aniversario é s/%s",Roberto,23,2,1) 
11ª QUESTÃO 
Enunciado 
Qual a saída produzida deste programa? 
 
 
#include <stdio.h> 
#include <stdlib.h> 
#include <conio.h> 
#include <math.h> 
#include <string.h> 
void main() 
{ 
 int x,tam; 
 char nome[30]; 
 printf("Digite um nome: "); 
 gets(nome); 
 tam = strlen(nome); 
 for (x=1; x <= tam; x++) 
 printf("\n%s",nome); 
 printf("\n\n"); 
 system("pause"); 
} 
 
Alternativas 
A) 
Recebe do teclado um nome qualquer e imprime uma quantidade fixa do 
nome digitado. 
 
 
B) 
Recebe do teclado um nome qualquer e imprime tantas vezes quantos forem 
seus caracteres. 
Justificativa: Nessa linha tam = strlen(nome); Ele verifica o tamanho da 
string, nesse laço for (x=1; x <= tam; x++) ele inicia a variável X com o valor 
1 e vai adicionando mais um enquanto x for menor que o tamanho da string, 
e para cada vez que o retorno desse laço for é verdadeiro ele imprime o 
nome 
 
C) 
Recebe do teclado um nome qualquer e imprime 30 vezes o nome digitado. 
D) 
Recebe do teclado um nome qualquer e imprime todos os caracteres 
repetindo 30 vezes cada um. 
E) 
Recebe do teclado um nome qualquer e imprime todos os caracteres Uma 
vez. 
12ª QUESTÃO 
Enunciado 
O que faz a função STRLEN no trecho do programa abaixo, marque a 
alternativa corre: 
 
void funcaoX( ) 
{ 
 int len; 
 scanf ("%s", &palavra); 
 len = strlen (palavra) 
 printf (len); 
} 
 
Alternativas 
A) 
o programa concatena as expressões; 
B) 
o programa zera as expressões e permite a entrada de outros dados; 
C) 
o programa permite que o usuário entre c/ dados e mostre na tela o valor 
hexadecimal; 
D) 
o programa conta os caracteres que o usuário digitou e mostra a quantidade na tela; 
Justificativa: essa é a alternativa que melhor descreve a função strlen ele verifica a 
quantidade de caracteres de uma string e retorna a quantidade de caracteres na 
string 
E) 
o programa copia o que o usuário digitou para uma nova variável e a mostra na 
tela; 
13ª QUESTÃO 
Enunciado 
 
typedef struct no{ 
 float info; 
 struct no* proximo; 
} No; 
 
typedef struct pilha{ 
 No* primeiro; 
} 
 
Que tipo de valor armazenará a variável info? 
 
Alternativas 
A) 
Endereço de memória 
B) 
Estrutura No 
C) 
Estrutura pilha 
D) 
Número com ponto flutuante 
Justificativa: float é ponto flutuante e ele declara essa variável na segunda linha 
‘float info;’ 
E) 
Número com ponto flutuante e um Endereço de memória 
14ª QUESTÃO 
Enunciado 
A função abaixo recebe como parâmetros um vetor V com números reais [Vn, ...., 
Vo], um número real X e número inteiro n. A função retorna um valor do tipo real. 
Marque a alternativa correta, entre as alternativas a seguir, sobre a função e o 
algoritmo nela implementado. 
 
 
Alternativas 
A) 
O algoritmo calcula o valor de um polinômio de grau n, cujos coeficientes estão 
armazenados no vetor V. 
Justificativa: O algoritmo calcula um polinômio de grau n usando os coeficientes de 
V, onde x é a variável independente e j acumula o resultado. 
B) 
) O algoritmo calcula e imprime o produto dos valores armazenados no vetor V por 
uma variável real x. 
C) 
 O algoritmo entrará em loop infinito. 
D) 
O algoritmo calcula e imprime o somatório dos valores armazenados no vetor V. 
E) 
O algoritmo sempre retornará o mesmo valor, independentemente dos conteúdos de 
V, x e n. 
15ª QUESTÃO 
Enunciado 
O que significa as operações push / pop em uma pilha e enqueue / dequeue 
numa fila, respectivamente?Alternativas 
A) 
Remove um dado na pilha / insere um dado na pilha e insere um elemento no final 
da fila / remove um elemento do início da fila. 
B) 
Insere um dado na pilha / remove um dado na pilha e remove um elemento no final 
da fila / insere um elemento do início da fila. 
C) 
Insere um dado na pilha / remove um dado na pilha e insere um elemento no final 
da fila / remove um elemento do início da fila. 
Justificativa: Descreve corretamente as operações push/pop em pilha e 
enqueue/dequeue em fila. 
 
D) 
Insere um dado na pilha / remove um dado na pilha e insere um elemento no início 
da fila / remove um elemento do final da fila. 
E) 
Insere um dado na fila / remove um dado na fila e insere um elemento no final da 
pilha / remove um elemento do início da pilha. 
16ª QUESTÃO 
Enunciado 
Um programa faz as seguintes operações: 
I. Lê vários caracteres no teclado, e cada caractere lido é colocado dentro de uma 
pilha. 
II. Esvazia a pilha e coloca cada elemento, um depois do outro, dentro de uma 
fila. 
III. Esvazia a fila e coloca cada elemento, um depois do outro, dentro de uma 
outra pilha. 
IV. Esvazia a pilha e imprime cada elemento um depois do outro. 
Caso sejam introduzidos os valores 12 15 11 1 , serão impressos, ao final, os 
valores: 
 
Alternativas 
A) 
1 11 15 12 
Justificativa: Quando os valores são inseridos em uma pilha, eles entram na ordem 
em que são lidos, ao esvaziar ele utiliza o LIFO (Last in, first out) isso faz com que 
ele ele inverta a ordem de entrada resultando na opção A 
B) 
12 12 15 15 11 11 1 1 
C) 
1 11 11 15 15 12 12 
D) 
12 15 11 1 
E) 
12 11 
17ª QUESTÃO 
Com relação a filas, listas encadeadas e pilhas podemos afirmar: : 
 
Alternativas 
A) 
Filas seguem o conceito LIFO, ou seja, o primeiro elemento que entra na estrutura é 
o primeiro que sai, listas encadeadas seguem o conceito FIFO das pilhas, ou seja, o 
primeiro que entra é o primeiro que sai. 
B) 
Pilhas seguem o conceito FIFO, ou seja, o último elemento que entra na estrutura é 
o último que sai, listas encadeadas seguem o conceito LIFO das filas, ou seja, o 
último que entra é o primeiro que sai. 
C) 
Filas seguem o conceito FIFO, ou seja, o primeiro elemento que entra na estrutura é 
o último que sai, listas encadeadas não seguem o conceito LIFO das pilhas, ou seja, 
o último que entra é o último que sai. 
D) 
Filas seguem o conceito LIFO, ou seja, o último elemento que entra na estrutura é o 
último que sai, listas encadeadas não seguem o conceito FIFO das pilhas, ou seja, o 
primeiro que entra é o primeiro que sai. 
E) 
Pilhas seguem o conceito LIFO, ou seja, o último elemento que entra na estrutura é 
o primeiro que sai, filas seguem o conceito FIFO das filas, ou seja, o último que sai 
foi o último que entrou. 
Justificativa: essa é a única possível, pois LIFO é Last In First Out, traduzindo ultimo 
a entrar primeiro a sair, e FIFO First In First Out, traduzindo, primeiro a entrar 
primeiro a sair e pela logica ultimo a entrar oultimo a sair 
18ª QUESTÃO 
Faça a associação: 
A) fila 
B) Pilha 
C) Lista Ligada 
1 - Spool da impressora 
2 - Arquivos no HD 
3 - Chamada da funções 
 
 
Alternativas 
A) 
A-1, B-2, C-3 
B) 
A-2, B-3, C1 
C) 
A-1, B-3, C-2 
Justificativa: Filas seguem o conceito de FIFO, e é o que ocorrem em impressões de 
arquivos. Pilhas seguem o conceito de LIFO, onde a função chamada é a primeira a 
ser encerrada. Listas ligadas não seguem conceitos nem de FIFO nem de LIFO e 
pode ser acessadas sem uma ordem especifica 
D) 
A-2, B-1, C-3 
E) 
A-1, B-3, C-3 
19ª QUESTÃO 
Enunciado 
Com relação a árvores binárias, assinale a afirmativa CORRETA: 
 
Alternativas 
A) 
A altura de uma árvore com um único nó raiz é zero e a altura de uma árvore vazia 
é negativa e vale 0 
B) 
Por definição, uma sub-árvore de uma árvore binária é sempre especificada como 
sendo a sub-árvore esquerda ou a sub-árvore direita de uma árvore maior 
Justificativa: Uma sub-árvore é uma árvore menor que faz parte de uma árvore 
maior, e ela pode ser a sub-árvore esquerda ou direita de um nó pai na árvore 
maior. 
C) 
Uma propriedade fundamental de todas as árvores binárias é que existe mais de um 
caminho da raiz para qualquer nó 
D) 
Numa árvore binária, cada nó pode ter zero ou um filho 
E) 
Numa árvore binária o balanceamento é feito colocando-se os valores mais altos que 
a raiz na sub árvore esquerda 
20ª QUESTÃO 
Enunciado 
1. Dadas as seguintes afirmações em relação à Árvore Binária de Busca: 
 
I. Em uma árvore binária de busca, na inserção de um novo nó, compara-se 
a chave a ser inserida com a chave do nó analisado e, se a chave a ser 
inserida for menor que a chave do nó analisado, insere-se a chave na sub-
árvore direita; e caso maior insere-se a chave na sub-árvore esquerda. 
II. A remoção na folha, o nó filho sobe para a posição do pai 
III. Uma das possibilidades da remoção de um nó com dois filhos, é 
substituindo-se o valor do nó a ser retirado pela chave do nó mais à 
direita da sub-árvore esquerda. 
 
 
Alternativas 
A) 
Apenas a afirmação I é correta 
B) 
Apenas a afirmação II é correta 
C) 
Apenas a afirmação III é correta 
 
 
 
 
D) 
Mais de uma afirmação correta 
Justificatriva: A afirmação I está correta porque em uma ABB, a inserção segue a 
regra de comparar e direcionar para a sub-árvore correta e a afirmação III tambem 
está correta porque, ao remover um nó com dois filhos, podemos substituir seu valor 
pelo valor do nó mais à direita da sub-árvore esquerda, agora a afirmação II está 
incorreta porque na remoção de um nó folha não há nenhum nó filho para subir para 
a posição do pai. 
E) 
Nenhuma das afirmações está correta

Continue navegando