Logo Passei Direto

Rust

Herramientas de estudio

Preguntas resueltas

Material
¡Estudia con miles de materiales!

Preguntas resueltas

Vista previa del material en texto

Rust 
O que e o Rust?
A) Uma linguagem de programacao focada em programacao funcional.
B) Uma linguagem de programacao compilada, segura e com foco em performance.
C) Uma linguagem de script com tipagem dinamica.
D) Uma plataforma de desenvolvimento voltada para sistemas embarcados.
Resposta: B) Uma linguagem de programacao compilada, segura e com foco em performance.
Rust e uma linguagem de programacao projetada para oferecer seguranca de memoria sem
comprometer o desempenho. Seu foco e permitir a criacao de software eficiente e seguro.
Qual e a principal caracteristica de seguranca que Rust oferece em relacao a outras linguagens?
A) Seguranca contra ataques de buffer overflow usando verificacao em tempo de compilacao.
B) Seguranca contra excecoes de tempo de execucao.
C) Gerenciamento automatico de memoria sem a necessidade de um Garbage Collector.
D) Uso de tipagem dinamica para evitar erros em tempo de compilacao.
Resposta: A) Seguranca contra ataques de buffer overflow usando verificacao em tempo de
compilacao.
Rust oferece seguranca de memoria sem a necessidade de um coletor de lixo, utilizando o sistema
de posse e emprestimos (ownership and borrowing) para garantir que nao ocorram acessos
indevidos a memoria.
O que significa "ownership" (posse) em Rust?
A) O sistema de gerenciamento de recursos do sistema operacional.
B) A ideia de que uma variavel possui a responsabilidade exclusiva sobre a memoria alocada.
C) A maneira como as funcoes determinam a propriedade de um valor.
D) O conceito de que cada funcao pode ter um valor compartilhado por varias variaveis.
Resposta: B) A ideia de que uma variavel possui a responsabilidade exclusiva sobre a memoria
alocada.
Em Rust, o sistema de ownership e a base para o gerenciamento de memoria. Cada valor possui
um "dono", e esse dono e responsavel por liberar a memoria quando o valor nao for mais utilizado.
O que acontece quando uma variavel em Rust e "movida" para outra variavel?
A) A variavel original e copiada para a nova variavel.
B) A variavel original perde o acesso ao valor, e a nova variavel passa a ser o unico dono do valor.
C) A variavel original continua com o valor, mas a nova variavel passa a ter uma referencia ao
valor.
D) A variavel original permanece com o valor e a nova variavel passa a compartilhar a propriedade
do valor.
Resposta: B) A variavel original perde o acesso ao valor, e a nova variavel passa a ser o unico
dono do valor.
Quando ocorre uma transferencia de propriedade, a variavel original nao pode mais acessar o
valor, o que previne problemas de memoria, como acesso a dados invalidos.
O que e o "borrowing" (emprestimo) em Rust?
A) Quando uma funcao recebe uma copia de um valor.
B) Quando uma variavel compartilha seu valor com outra variavel, permitindo acesso temporario ao
valor.
C) Quando um valor e passado por referencia, mas sem a transferencia de propriedade.
D) Quando uma variavel empresta a memoria de outra, mas nao pode modificar o valor.
Resposta: C) Quando um valor e passado por referencia, mas sem a transferencia de propriedade.
O "borrowing" permite que voce empreste uma referencia a um valor sem transferir sua posse, o
que permite compartilhar dados de forma segura entre diferentes partes do codigo.
Qual a principal diferenca entre "borrowing mutavel" e "borrowing imutavel" em Rust?
A) O borrowing mutavel permite que a funcao altere o valor, enquanto o borrowing imutavel impede
alteracoes no valor.
B) O borrowing mutavel e exclusivo para numeros inteiros, enquanto o borrowing imutavel e para
tipos de dados compostos.
C) O borrowing imutavel permite que a funcao altere o valor, enquanto o borrowing mutavel impede
alteracoes no valor.
D) O borrowing imutavel requer uma copia do valor, enquanto o borrowing mutavel nao.
Resposta: A) O borrowing mutavel permite que a funcao altere o valor, enquanto o borrowing
imutavel impede alteracoes no valor.
O borrowing mutavel permite modificar o valor enquanto ele esta sendo emprestado, mas so pode
haver uma referencia mutavel de um valor em um determinado momento. O borrowing imutavel
permite multiplas referencias, mas sem alteracoes.
O que e a palavra-chave unsafe em Rust?
A) Indica que o codigo pode ser executado sem verificacao de erros.
B) Permite a manipulacao direta de memoria sem as restricoes de seguranca padrao.
C) Habilita o uso de bibliotecas externas.
D) Ativa o uso de um coletor de lixo no programa.
Resposta: B) Permite a manipulacao direta de memoria sem as restricoes de seguranca padrao.
A palavra-chave unsafe permite ao programador realizar operacoes que normalmente seriam
rejeitadas pelo compilador, como acesso direto a memoria, mas isso pode gerar problemas de
seguranca se nao for usado corretamente.
Como Rust lida com concorrencia?
A) Utilizando threads e locks (bloqueios) para garantir a seguranca.
B) Utilizando o conceito de "data race" para melhorar a performance.
C) Usando o modelo de concorrencia sem a necessidade de locks, com base em ownership e
borrowing.
D) A concorrencia e controlada apenas por threads, sem a preocupacao com seguranca de
memoria.
Resposta: C) Usando o modelo de concorrencia sem a necessidade de locks, com base em
ownership e borrowing.
Rust usa o sistema de ownership e borrowing para garantir que multiplas threads possam acessar
dados de forma segura, sem risco de condicoes de corrida ou problemas de memoria.
O que sao "traits" em Rust?
A) Sao estruturas que permitem a comunicacao entre diferentes tipos de dados.
B) Sao funcoes que podem ser compartilhadas entre varias implementacoes de tipos.
C) Sao tipos que podem ser utilizados apenas dentro de uma funcao.
D) Sao classes que podem ser herdadas por outras estruturas.
Resposta: B) Sao funcoes que podem ser compartilhadas entre varias implementacoes de tipos.
Traits sao uma forma de definir comportamentos comuns que podem ser implementados por
diferentes tipos. Elas sao semelhantes as interfaces em outras linguagens.
O que e o match em Rust?
A) Uma expressao que permite comparar um valor contra padroes e executar blocos de codigo
diferentes dependendo do padrao correspondente.
B) Um operador para comparar variaveis de tipos diferentes.
C) Uma funcao que cria um valor a partir de outros valores.
D) Um comando para realizar a iteracao sobre um conjunto de dados.
Resposta: A) Uma expressao que permite comparar um valor contra padroes e executar blocos de
codigo diferentes dependendo do padrao correspondente.
O match em Rust e uma forma poderosa e flexivel de realizar comparacoes e execucao de blocos
de codigo com base em padroes de valores.
O que e o "ownership system" (sistema de posse) e por que ele e importante em Rust?
A) O sistema que garante que o codigo seja executado sem erros de compilacao.
B) O sistema que permite que diferentes partes do codigo compartilhem variaveis globalmente.
C) O sistema que impede condicoes de corrida ao garantir que apenas um componente tenha
posse de um recurso por vez.
D) O sistema que permite gerenciar objetos dinamicamente durante a execucao.
Resposta: C) O sistema que impede condicoes de corrida ao garantir que apenas um componente
tenha posse de um recurso por vez.
O sistema de ownership em Rust assegura que os recursos, como memoria, sejam gerenciados de
maneira segura, prevenindo vazamentos de memoria e outras falhas relacionadas.
Como Rust lida com a alocacao de memoria?
A) Usa um coletor de lixo para gerenciar a memoria.
B) Depende do programador para gerenciar explicitamente a alocacao e liberacao de memoria.
C) Usa o sistema de ownership para garantir que a memoria seja liberada automaticamente quando
nao for mais necessaria.
D) A memoria e alocada apenas no heap, sem a necessidade de gerenciamento.
Resposta: C) Usa o sistema de ownership para garantir que a memoria seja liberada
automaticamente quando nao for mais necessaria.
Em Rust, a alocacao e liberacao de memoria sao feitas automaticamente atraves do sistemade
ownership, sem a necessidade de um coletor de lixo.
Qual a principal vantagem de usar "boxes" em Rust?
A) Permitir a alocacao de memoria no heap.
B) Facilitar o uso de tipos mutaveis.
C) Acelerar a execucao de operacoes matematicas.
D) Garantir a seguranca contra acessos simultaneos a memoria.
Resposta: A) Permitir a alocacao de memoria no heap.
A Box em Rust e usada para alocar dados no heap, o que permite manipular grandes estruturas de
dados sem ocupar a pilha, mantendo a seguranca de memoria.
O que sao "lifetimes" em Rust?
A) A duracao de tempo durante a qual uma variavel pode ser acessada.
B) O tempo durante o qual uma variavel permanece no heap.
C) O numero de vezes que uma funcao e