Logo Passei Direto
Buscar
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

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. (COTEC/2013 - Adaptada) A linguagem C permite alocar (reservar) dinamicamente (em 
tempo de execução) blocos de memórias u lizando ponteiros. A esse processo dá-se o nome 
de alocação dinâmica, que faz uso das funções malloc, calloc, realloc e free, disponíveis na 
biblioteca stdlib.h. Para liberar um bloco de memória previamente alocado, por meio de um 
único parâmetro de entrada, marque (V) verdadeiro ou (F) falso onde faz-se uso de qual 
função? 
( ) Realloc. 
( ) Calloc. 
( ) Hiplloc. 
( ) Malloc. 
( ) Free. 
 
2. Quando apresentamos uma sequência já ordenada para os algoritmos da bolha e para o 
Insert Sort, marque (V) verdadeiro ou (F) falso: 
( ) A sequência ordenada não é o melhor caso dos métodos analisados. 
( ) Ambos executam sempre em O(1?) operações. 
( ) Ambos executam sempre em tempo linear para as instâncias já ordenadas. 
( ) O Insert Sort irá executar mais rápido, uma vez que, para sequências ordenadas, o método 
executa n-1 comparações, enquanto o método da bolha sempre executa n (n-1)/2 
comparações. 
( ) O método da bolha irá executar mais rápido, uma vez que, para sequências ordenadas, o 
método da bolha executa n-1 comparações, enquanto o Insert Sort executa n (n-1)/2 
comparações. 
 
3. Marque (V) verdadeiro ou (F) falso na regra de que o elemento mais an go numa lista é o 
primeiro a ser removido corresponde, respec vamente, ao conceito e ao nome de: 
( ) FIFO e PILHA 
( ) LIFO e FILA 
( ) LIFO e DEQUE 
( ) FIFO e FILA 
( ) LIFO e PILHA 
 
4. Nas linguagens de programação, as variáveis são vinculadas aos seus valores em tempo de 
execução. E o escopo de uma vinculação é o conjunto de trechos de um programa que se 
consegue usar as variáveis. No caso da linguagem C, as variáveis são divididas quanto ao 
escopo em três pos. Marque (V) verdadeiro ou (F) falso na opção que apresenta esses três 
pos: 
( ) Parâmetros atuais, parâmetros reais e parâmetro formais 
( ) Parâmetros formais, parâmetros informais e sem parâmetro 
( ) Parâmetros formais, variáveis internas e variáveis externas 
( ) Variáveis locais, variáveis globais e parâmetros formais 
( ) Variáveis por valor, variáveis por referência e variáveis por argumento 
 
5. Considere que você está desenvolvendo um novo so ware para catalogar os jogadores de 
futebol. Você modelou o seu programa u lizando as structs apresentadas abaixo. 
 
typedf struct me { 
char nome[50]; 
} Time; 
struct Jogador { 
int nr camisa; 
char nome[30]; 
Time t; 
} jogador; 
 
Considerando que você precise cadastrar um novo jogador chamado Ronaldo Nazário, que irá 
atuar no me do Real Madrid Club, com a camisa número 10, marque (V) verdadeiro ou (F) 
falso na alterna va que apresenta a forma correta de inserir os dados. 
( ) jogador.camisa = 10; 
strepy(jogador.nome, "Ronaldo Nazário"); 
strepy(jogador.nome.nome, " Real Madrid Club "); 
( ) jogador.camisa = 10; 
strepy(jogador.nome, "Ronaldo Nazário"); 
strepy(jogador.t.nome, "Real Madrid Club"); 
( ) camisa.jogador = 10; 
strcpy(nome.jogador, "Ronaldo Nazário"); 
strcpy(t.nome.jogador, " Real Madrid Club "); 
( ) Camisa->jogador = 10; 
strcpy(nome->jogador, "Ronaldo Nazário"); 
strepy(t->nome->jogador, " Real Madrid Club "); 
( ) jogador->camisa = 10; 
strepy(jogador->nome, "Ronaldo Nazário"); 
strepy(jogador->t->nome, " Real Madrid Club "); 
 
6. Árvores binárias de busca (ABB) são uma aplicação de árvores binárias para solucionar 
problemas de busca. Para isso, uma ABB tem seus nós rotulados de forma que estes guardem 
uma relação de precedência entre os que pertencem às subárvores esquerda e direita. Marque 
(V) verdadeiro ou (F) falso na única opção que contém uma afirmação correta sobre ABB. 
( ) Os nós da subárvore esquerda de um nó v têm rótulos maiores do que v. 
( ) Os nós das subárvores de um nó v têm rótulos maiores do que v. 
( ) Se um nós é inserido na ABB e já existe outro nó p com o mesmo rótulo, s é inserido na 
subárvore oposta a p. 
( ) Todos os nós da subárvore esquerda sempre têm rótulos menores que os nós da subárvore 
direita. 
( ) Os nós da subárvore direita de um nó v têm rótulos menores do que v. 
 
7. Uma pilha segue a regra: "o ul mo a chegar é o primeiro a sair". Já as filas obedecem à 
regra: o primeiro a chegar é o primeiro a sair. Com base nesses argumentos, 
Uma pilha P e uma fila F originalmente com n elementos cada (n > 5), onde suas operações 
são: 
empilha(P, elemento): insere elemento na pilha P; 
desempilha(P): remove da pilha P e retorna o elemento removido; 
enfileira(F, elemento): insere elemento na fila F; 
desenfileira(F): remove da fila F e retorna o elemento removido; 
para i= 1 até n, faça 
empilha(P, desempilha(P)) 
enfileira(F, desenfileira(F)) 
fim-para 
Ao final da execução do pseudocódigo, marque (V) verdadeiro ou (F) falso nos estados finais de 
P e F serão respec vamente: 
( ) elementos em ordem original e elementos em ordem inversa. 
( ) Ambas as estruturas estarão vazias. 
( ) elementos em ordem inversa e elementos em ordem inversa. 
( ) elementos em ordem original e elementos em ordem original. 
( ) elementos em ordem inversa e elementos em ordem original. 
 
8. (FUNCAB/2015 - adaptada) Na linguagem C, o cabeçalho de biblioteca stdio.h possui 
definições de subro nas rela vas às operações de entrada/saída padrão. Marque (V) 
verdadeiro ou (F) falso em uma das funções tratadas na biblioteca, associada a esse cabeçalho, 
que é a função: 
( ) Prin . 
( ) Strcpy. 
( ) Loca me. 
( ) Trunc. 
( ) Stderr. 
 
9. Sobre o método da bolha, marque (V) verdadeiro ou (F) falso no que é correto afirmar: 
( ) O tempo de execução é definido pela complexidade computacional sempre, 
independentemente da instância apresentada. 
( ) O tempo de execução pode ser linear em relação ao tamanho da entrada se a instância 
apresentada es ver ordenada em ordem reversa a desejada. 
( ) O tempo de execução pode ser linear em relação ao tamanho da entrada se a instância 
apresentada já es ver ordenada. 
( ) O algoritmo executa sempre no mesmo tempo para instâncias de mesmo tamanho n. 
( ) A complexidade computacional deste algoritmo é O (n log n). 
 
10. 
 
Considerando a figura acima, que ilustra uma árvore de busca binária, marque (V) verdadeiro 
ou (F) falso na opção correta. 
( ) Transformando essa árvore em uma nova árvore de ordem 2, as folhas teriam de estar no 
nível 2. 
( ) Se a referida árvore for balanceada, a inserção de um nó 5 fará que ele tome o lugar do nó 
4, passando a ser o nó 5 a raiz da subárvore. 
( ) Se a árvore em tela for balanceada, depois da inserção de um nó 9, o nó 12 assume a raiz da 
árvore. 
( ) Se a árvore em questão não for balanceada, então, com a remoção do nó 8, o nó 12 deve 
assumir a raiz da árvore. 
( ) O percurso a percorrer nessa árvore na pré-ordem é 4 10 15 12 8. 
 
11. As estruturas de dados definem os diversos pos de mecanismos que podem ser 
empregados para organizar os dados que serão tratados pelos algoritmos computacionais para 
a solução de um problema. 
Escolher corretamente a estrutura de dados tem impacto direto no desempenho do algoritmo. 
Se você escolher uma estrutura inadequada, seu algoritmo terá um desempenho insa sfatório, 
acarretando em uma má experiência. 
Assim, diante das afirmações acima e considerando as diversas estruturas de dados existentes, 
imagine o problema abaixo: 
Problema: uma startup precisa armazenar os dados funcionais, pessoais e acadêmicos de seus 
funcionários, além dos nomes e idades de seus dependentes (filhos e cônjuge), para realizar 
estudos na área de recursos humanos e elaborar um plano de qualificação. 
Nesse contexto, ao avaliar a estrutura de dados necessária para elaborar o algoritmo (solução) 
podemos afirmar: 
I) Os dados pessoais dos funcionários poderiam ser armazenados em um registro (struct), 
tendo em vista serem dados de diversos pos, ou seja, dados heterogêneo; 
II) Os nomes dos dependentes poderiamser armazenados em um vetor, tendo em vista que 
são dados de um mesmo po (string); 
III) A idade dos dependentes pode ser armazenada em um campo po lógico, tendo em vista 
que cada dependente tem apenas uma idade; 
IV) O nome de um funcionario pode ser armazenado em estrutura simples do po string, que 
irá compor uma estrutura complexa do po registro, que por sua vez armazenará todos os 
dados pessoais de um funcionário. 
Diante das afirmações acima, marque (V) verdadeiro ou (F) falso na alterna va correta: 
( ) apenas as alterna vas II, III e IV estão corretas; 
( ) apenas as alterna vas I, II e IV estão corretas; 
( ) todas as alterna vas estão corretas. 
( ) apenas as alterna vas I, II e III estão corretas; 
( ) apenas as alterna vas I, III e IV estão corretas; 
 
12. Em um projeto de so ware em C++, a modularização de código desempenha um papel 
fundamental para manter o código organizado, facilitar a manutenção e reu lização de partes 
do programa. Para isso, você pode usar funções para dividir o código em módulos 
independentes e mais gerenciáveis. 
Marque (V) verdadeiro ou (F) falso nas seguintes afirmações sobre a modularização de código 
em C++ está correta. 
( ) A modularização de código em C++ só é possível por meio do uso de bibliotecas externas, 
pois a linguagem não suporta recursos para a criação de módulos internos. 
( ) A modularização de código em C++ é alcançada usando funções, que permitem que partes 
do código sejam encapsuladas em unidades independentes e reu lizáveis. 
( ) A modularização de código em C++ é restrita ao uso de macros, que simplificam a escrita do 
código, mas não permitem a reu lização. 
( ) A modularização de código em C++ é feita exclusivamente por meio de classes e objetos. 
( ) A modularização de código é uma prá ca desnecessária em C++, pois a linguagem não 
suporta funções ou módulos. 
 
13. Ana precisa u lizar uma estrutura de dados para gerenciar trabalhos de impressão em uma 
impressora compar lhada por vários computadores em uma rede. As regras dessa estrutura 
devem permi r que os trabalhos sejam impressos na ordem em que forem enviados, ou seja, o 
primeiro a enviar um pedido de impressão deve ser o primeiro a ter sua solicitação atendida. 
Não deve ser permi do inserir pedidos de impressão no meio dos pedidos já realizados. 
Marque (V) verdadeiro ou (F) falso na estrutura de dados mais adequada para Ana u lizar. 
( ) árvore binária. 
( ) lista encadeada ordenada. 
( ) fila. 
( ) pilha. 
( ) tabela hash. 
 
14. (ENADE 2017) O algoritmo a seguir recebe um vetor v de números inteiros e rearranja esse 
vetor de tal forma que seus elementos, ao final, estejam ordenados de forma crescente. 
 
01 void ordena(int *v, int n) 
02 { 
03 int i, j, chave; 
04 for(i =1;ix= 0 && v[j] = 0 && v[j] > chave) 
( ) A linha 08 deve ser corrigida da seguinte forma: 
while(j >= 0 && v[j] > chave) 
e a linha 10, do seguinte modo: 
v[j + 1] = v[j]; 
( ) A linha 04 deve ser corrigida da seguinte forma: 
for(i=1;i( ) Inser on sort 
( ) Merge sort 
 
20. (ENADE 2017 - Adaptada) O fragmento de código C++, a seguir, contém a implementação 
da inserçao de um nó em uma árvore binária: 
 
Com base no exposto, marque (V) verdadeiro ou (F) falso na opção que apresenta o fragmento 
de programa para imprimir os valores con dos nos nós, percorrendo a árvore em pré-ordem.

Mais conteúdos dessa disciplina