0% acharam este documento útil (0 voto)
5 visualizações5 páginas

Prova de Estruturas de Dados em C

O documento é um simulado de prova da disciplina de Estruturas de Dados, contendo questões sobre programação em C, algoritmos de ordenação, listas encadeadas e estruturas de dados. As perguntas abordam conceitos como ponteiros, funções, e a definição de estruturas, além de exigir a análise de códigos e afirmações. O simulado é destinado a alunos do período 2025.1 e proíbe o uso de equipamentos eletrônicos durante a prova.

Enviado por

serafimsincero23
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
5 visualizações5 páginas

Prova de Estruturas de Dados em C

O documento é um simulado de prova da disciplina de Estruturas de Dados, contendo questões sobre programação em C, algoritmos de ordenação, listas encadeadas e estruturas de dados. As perguntas abordam conceitos como ponteiros, funções, e a definição de estruturas, além de exigir a análise de códigos e afirmações. O simulado é destinado a alunos do período 2025.1 e proíbe o uso de equipamentos eletrônicos durante a prova.

Enviado por

serafimsincero23
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

EPS [Link]

asp

7055501169
18/06/2025 19:14
AV - A
Nome: Matrícula: ____________________

Disciplina: ARA0098 / ESTRUTURA DE DADOS Data: ___ /___ /______

Período: 2025.1 / AV Turma: 3001 NSQ: 13325791

Leia com atenção as questões antes de responder.

É proibido o uso de equipamentos eletrônicos portáteis e consulta a materiais de qualquer natureza durante a realização
da prova.

Boa prova.

1. _______ de 0,70

(UFAM/2022) Considere o programa a seguir, elaborado na linguagem ANSI C:

#include < stdio.h >

int* pa, a;

int main() { a = 10; pa = &a; a = 8; printf("%d", a); printf(" %d", *pa); }

Assinale a alternativa correta sobre a saída (output) obtida, ao se executar o programa:

8 10
10 8
9 10
88
10 10

2. _______ de 0,70

Considere o seguinte código em C, que implementa o algoritmo de ordenação Merge Sort:

#include

void merge(int arr[], int l, int m, int r) {


int i, j, k;
int n1 = m - l + 1;
int n2 = r - m;

int L[n1], R[n2];

for(i = 0; i < n1; i++)


L[i] = arr[l + i];
for(j = 0; j < n2; j++)
R[j] = arr[m + 1 + j];

1 of 5 18/06/2025, 19:15
EPS [Link]

i = 0; j = 0; k = l;
while(i < n1 && j < n2) {
if(L[i] <= R[j]) {
arr[k] = L[i];
i++;
} else {
arr[k] = R[j];
j++;
}
k++;
}

while(i < n1) {


arr[k] = L[i];
i++; k++;
}

while(j < n2) {


arr[k] = R[j];
j++; k++;
}
}

void mergeSort(int arr[], int l, int r) {


if(l < r) {
int m = l + (r - l) / 2;

mergeSort(arr, l, m);
mergeSort(arr, m + 1, r);
merge(arr, l, m, r);
}
}

Com base somente no código apresentado, analise as a�rmações abaixo:

I. A função merge cria dois vetores auxiliares L e R que armazenam partes do vetor original antes da fusão.
II. A função mergeSort é recursiva e sua chamada termina apenas quando l não é mais menor que r.
III. O código possui erro de compilação porque a linguagem C não permite criação de vetores de tamanho variável
como int L[n1].
IV. O loop while(i < n1 && j < n2) é responsável por comparar e ordenar os elementos dos subvetores.
V. O valor de m é calculado para evitar over�ow ao somar l + r.

Apenas II e V estão corretas.


Apenas III está correta.
Todas as alternativas estão corretas.
Apenas I, II, IV e V estão corretas.
Apenas I, II e IV estão corretas.

3. _______ de 0,70

Considere o seguinte programa em linguagem C:

#include

void altera(int x) {
x = x + 10;
printf("Dentro da função: %d\n", x);
}

int main() {

2 of 5 18/06/2025, 19:15
EPS [Link]

int a = 5;
altera(a);
printf("Fora da função: %d\n", a);
return 0;
}

Com base no código acima, analise as seguintes a�rmativas e escolha a alternativa que indica corretamente a saída
impressa pelo programa:

Dentro da função: 5
Fora da função: 15
Dentro da função: 15
Fora da função: 5
O código possui erro de compilação porque x não foi declarado no main.
Dentro da função: 15
Fora da função: 15
Dentro da função: 5
Fora da função: 5

4. _______ de 0,70

Considere a seguinte de�nição de um nó de uma lista duplamente encadeada em C:

typedef struct No {
int dado;
struct No* anterior;
struct No* proximo;
} No;

Suponha que temos três nós encadeados corretamente da seguinte forma:

O nó A aponta para B como próximo (A->proximo = B),

O nó B aponta para A como anterior (B->anterior = A) e para C como próximo (B->proximo = C),

O nó C aponta para B como anterior (C->anterior = B),

O ponteiro proximo de C e o ponteiro anterior de A são NULL.

Qual das alternativas a seguir descreve corretamente essa estrutura?

A lista é uma lista simplesmente encadeada, pois anterior nunca é usado.


A lista está malformada, pois todos os ponteiros anterior e proximo deveriam ser NULL.
A lista está corretamente estruturada como uma lista duplamente encadeada com três elementos.
A lista está invertida, pois anterior aponta sempre para o próximo nó.
Trata-se de uma lista circular.

5. _______ de 0,70

Em relação ao uso de registros (structs) na linguagem C, analise as seguintes a�rmativas:

I. Um struct permite agrupar variáveis de tipos diferentes sob um mesmo nome.


II. É possível declarar variáveis do tipo struct dentro de outra struct.
III. Os campos de uma struct podem ser acessados diretamente com o operador ponto (.), quando se tem a variável,
ou com ->, quando se tem um ponteiro.
IV. O uso de typedef com struct é obrigatório para que se possa criar variáveis do tipo de�nido

3 of 5 18/06/2025, 19:15
EPS [Link]

Apenas a a�rmativa IV está correta.


Apenas as a�rmativas I e IV estão corretas.
Todas as a�rmativas estão corretas.
Apenas as a�rmativas I, II e III estão corretas.
Apenas as a�rmativas II e III estão corretas.

6. _______ de 0,70

Considere a seguinte de�nição de estrutura em C:

typedef struct No {
int valor;
struct No* esquerda;
struct No* direita;
} No;

Com base apenas nessa estrutura e no seu conhecimento sobre estruturas dinâmicas encadeadas, analise as
a�rmativas abaixo:

I. A organização dos campos sugere que cada elemento pode estar ligado a até dois outros elementos distintos.
II. Se os ponteiros esquerda e direita forem ambos NULL, o nó pode ser considerado terminal na estrutura.
III. Uma forma natural de percorrer essa estrutura seria visitar recursivamente a parte esquerda, depois o nó atual, e
por �m a parte direita.
IV. Se em cada nó os valores da ¿parte esquerda¿ forem sempre menores e da ¿parte direita¿ sempre maiores, então a
estrutura garante uma organização adequada para buscas ordenadas.
V. Se a estrutura estiver completamente preenchida até um certo nível, e não houver "buracos", o total de elementos
será 2^(h+1) - 1, onde h representa o nível mais profundo.

Nenhuma das a�rmativas estão corretas.


Apenas as a�rmativas I, III, IV e V estão corretas.
Apenas as a�rmativas I, II e III estão corretas.
Apenas as a�rmativas II, III, IV e V estão corretas.
Apenas as a�rmativas I, II, IV e V estão corretas.

7. _______ de 0,70

Qual das seguintes características descreve corretamente uma pilha (stack)?

É uma estrutura de dados FIFO (First In, First Out).


Permite inserção e remoção de elementos em qualquer posição.
Utiliza uma política de FILO (First In, Last Out) para inserção e remoção de elementos.
Utiliza uma política de LIFO (Last In, First Out) para inserção e remoção de elementos.
Requer que os elementos sejam ordenados de maneira crescente.

8. _______ de 0,70

(UFV/2022 - Adaptada) Considere as a�rmativas a seguir sobre estrutura de dados:

I. Uma estrutura de dados heterogênea envolve a utilização de mais de um tipo básico de dados.

II. Uma lista encadeada pode ser de�nida como uma sequência de células em que cada célula contém um
elemento e o endereço da célula seguinte.

III. Uma pilha é uma estrutura de dados baseada no princípio "First In First Out" (FIFO).

4 of 5 18/06/2025, 19:15
EPS [Link]

IV. Filas e pilhas são estruturas de dados lineares; o organograma de uma empresa pode ser representado por
uma estrutura de árvore.

Está CORRETO o que se a�rma, apenas, em:

II e III.
I, II e IV.
II, III e IV.
I e III.
I e II.

9. _______ de 0,70

Ano: 2016 Banca: FAURGS Órgão: HCPA Prova: FAURGS - 2016 - HCPA - Analista de TI (Desenvolvimento)

Um algoritmo de ordenação é executado através dos seguintes passos:


(I) escolha de um elemento da lista, denominado pivô;
(II) rearranjo da lista, de forma que todos os elementos anteriores ao pivô sejam menores do que ele e que todos os
elementos posteriores ao pivô sejam maiores do que ele; e, também, de modo que o pivô, ao �m do processo, esteja
em sua posição �nal, havendo duas sublistas não ordenadas;
(III) ordenação recursiva das sublistas dos elementos menores e dos elementos maiores.

Que algoritmo é esse?

Bubble Sort
Merge Sort
Selection Sort
Quick Sort
Insertion Sort

10. _______ de 0,70

Considere a seguinte situação: você está desenvolvendo um sistema de cadastro de funcionários para uma empresa e
precisa armazenar informações sobre cada funcionário, incluindo nome, idade, cargo e salário. Qual seria uma
estrutura de dados heterogênea adequada para armazenar essas informações de forma organizada?

Fila
Pilha
Árvore
Lista Encadeada
Struct

Campus: Prova Impressa em 18/06/2025 por


ARACAJU YURI FARO DANTAS DE SANT ANNA

Ref.: 7055501169 Prova Montada em 31/05/2025

5 of 5 18/06/2025, 19:15

Você também pode gostar