Foram encontradas 56.963 questões.
Analise o seguinte programa em linguagem C:
#include <stdio.h>
void func(int *a, int *b){
int *temp;
temp = a;
a = b;
b = temp;
*a = *a + 5;
*b = *b + 10;
}
int main(){
int x = 10;
int y = 20;
func(&x,&y);
printf("%d %d",x,y);
return 0;
}
Assinale a alternativa que apresenta a saída do programa.
Provas
Analise o seguinte programa escrito em linguagem C, executado em ambiente Linux e utilizando a biblioteca POSIX Threads (pthreads):
#include <stdio.h>
#include <pthread.h>
pthread_mutex_t m1 = PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_t m2 = PTHREAD_MUTEX_INITIALIZER;
void* thread1(void* arg){
pthread_mutex_lock(&m1);
printf("Thread 1 bloqueou m1\n");
pthread_mutex_lock(&m2);
printf("Thread 1 bloqueou m2\n");
pthread_mutex_unlock(&m2);
pthread_mutex_unlock(&m1);
return NULL;
}
void* thread2(void* arg){
pthread_mutex_lock(&m2);
printf("Thread 2 bloqueou m2\n");
pthread_mutex_lock(&m1);
printf("Thread 2 bloqueou m1\n");
pthread_mutex_unlock(&m1);
pthread_mutex_unlock(&m2);
return NULL;
}
int main(){
pthread_t t1, t2;
pthread_create(&t1,NULL,thread1,NULL);
pthread_create(&t2,NULL,thread2,NULL);
pthread_join(t1,NULL);
pthread_join(t2,NULL);
return 0;
}
Considerando a execução concorrente das threads, assinale a alternativa correta.
Provas
Analise o seguinte programa em Java SE 11:
class Contador {
int valor = 0;
void incrementar() {
valor++;
}
}
public class Teste {
public static void main(String[] args) throws Exception {
Contador c = new Contador();
Thread t1 = new Thread(() -> {
for(int i = 0; i < 1000; i++)
c.incrementar();
});
Thread t2 = new Thread(() -> {
for(int i = 0; i < 1000; i++)
c.incrementar();
});
t1.start();
t2.start();
t1.join();
t2.join();
System.out.println(c.valor);
}
}
Considerando a execução concorrente das threads e o funcionamento da instrução valor++. E, ainda, que a JVM pode intercalar as operações das threads de forma imprevisível e que a operação de incremento (valor++) não é atômica na especificação Java, assinale a alternativa correta.
Provas
Analise o seguinte programa em linguagem C:
#include <stdio.h>
#include <stdlib.h>
int main(){
int *v;
int i;
v = (int*) malloc(5 * sizeof(int));
for(i = 0; i < 5; i++){
*(v + i) = i * 2;
}
int *p = v + 2;
*p = *p + 5;
printf("%d %d %d", v[1], v[2], *(v + 3));
free(v);
return 0;
}
Assinale a alternativa que apresenta a saída produzida pelo programa.
Provas
Analise o seguinte código em linguagem C:
int x = 5;
int *p = &x;
int **pp = &p;
A expressão **pp acessa:
Provas
Considere o algoritmo Quicksort utilizando como pivô o primeiro elemento do vetor. Qual é a complexidade assintótica no pior caso para ordenar um vetor de tamanho \( n \)?
Provas
Analise o seguinte código em linguagem C:
#include <stdio.h>
void func(int *v, int n){
int i;
for(i=0;i<n;i++){
v[i] = v[i] * 2;
}
}
int main(){
int a[4] = {1,2,3,4};
func(a,4);
printf("%d %d %d %d",a[0],a[1],a[2],a[3]);
}
A saída produzida pelo programa será:
Provas
Considere o seguinte algoritmo de busca binária aplicado sobre um vetor ordenado de inteiros com tamanho \( n \):
while (inicio <= fim) {
meio = inicio + (fim - inicio) / 2
if (v[meio] == x)
return meio
else if (v[meio] < x)
inicio = meio + 1
else
fim = meio - 1
}
Considerando o pior caso, qual é a complexidade assintótica desse algoritmo em função de \( n \)?
Provas
O desenvolvimento de um sistema gerenciador de banco de dados robusto exige que a modelagem dos dados siga um ciclo de vida estruturado, partindo da abstração das regras de negócio até a especificação de como os dados serão armazenados em disco. Sobre as etapas fundamentais do projeto de um banco de dados, analise as assertivas abaixo:
I. A fase inicial consiste em levantar requisitos de dados com o cliente. É recomendado que o levantamento dos requisitos funcionais (operações e transações) sejam feitos em etapas posteriores para não gerar confusões nos tipos de requisitos.
II. O projeto conceitual utiliza modelos de dados de alto nível para criar uma descrição concisa das necessidades da organização. Por omitir propositalmente os detalhes de implementação e armazenamento, o esquema conceitual atua como uma excelente ferramenta de comunicação para validar os requisitos junto aos usuários não técnicos.
III. A transição para a implementação real do software inicia-se na fase de projeto lógico (também chamada de mapeamento do modelo de dados), momento em que o esquema conceitual é transformado para o modelo de dados suportado pelo SGBD comercial adotado pela instituição, a exemplo do modelo relacional.
IV. No projeto físico, a atenção dos arquitetos de banco de dados volta-se para a infraestrutura e o desempenho, especificando as estruturas de armazenamento internas, a organização dos arquivos, os caminhos de acesso e a criação de índices.
Quais estão corretas?
Provas
Analise o seguinte programa escrito em linguagem C conforme o padrão ANSI C:

Considerando a execução do algoritmo apresentado, qual será a saída exibida pelo programa?
Provas
Caderno Container