Baixe o app para aproveitar ainda mais
Prévia do material em texto
Qual das seguintes opções corretamente descreve um uso válido de tipos numéricos, booleanos e strings em C#, além de demonstrar a sintaxe correta? R: e. Long bigNumber = 9223372036854775807; bool isLarge = bigNumber > int.MaxValue; string description = "Número grande: " + isLarge; Qual das seguintes afirmações está correta? R: d. Operadores em C# são usados para executar operações em variáveis e valores, e expressões são combinações de operadores e operandos que produzem um resultado. Qual das seguintes alternativas é correta? R: c. O CLR é responsável pela compilação Just-In-Time (JIT), gerenciamento de memória e segurança de tipo, enquanto o BCL fornece uma coleção extensiva de classes predefinidas. Tendo em mente os modelos de arquitetura, qual das seguintes alternativas é correta? R: e. No MVC, o Controller manipula a lógica de negócios, enquanto no MVVM o ViewModel facilita a comunicação entre a View e o Model, promovendo o binding de dados. Qual das seguintes afirmações é correta sobre o tratamento de exceções em C#? R: c. Uma exceção em C# é um evento que ocorre durante a execução de um programa e que interrompe o fluxo normal das instruções do programa, sendo capturada e tratada. Qual das afirmações é correta sobre o uso de expressões regulares e coleções em C#? R: b. A classe Regex pode ser usada para analisar strings e armazenar resultados correspondentes em coleções, como List<string>. Qual das afirmações é incorreta? R: b. DRY: evitar duplicações no código e a reutilização, para facilitar a manutenção e reduzir a possibilidade de inconsistências. Qual padrão define uma família de algoritmos, encapsula cada um deles e os torna intercambiáveis, permitindo que o algoritmo varie independentemente dos clientes que o utilizam? R: d. Strategy. No contexto de exceções em C#, qual das seguintes afirmações é verdadeira sobre o funcionamento e uso da palavra-chave throw? Considerando um cenário onde uma exceção é lançada devido a um erro, como tentativa de acessar um índice inexistente em uma matriz. R: c. Throw cria e lança uma exceção, interrompendo o fluxo normal do programa Avalie o seguinte código C# que demonstra o uso de delegação e eventos. O código define um evento Notificar na classe Evento e o dispara no método Main. Qual é o comportamento esperado do programa quando executado? R: b. Será impresso “Evento disparado!” no console. Analise o seguinte trecho de código em C# que utiliza tuplas para armazenar e decompor informações. Determine qual das opções descreve corretamente o resultado da execução do programa. R: e. Será impresso “O 2º planeta do sistema solar é Marte.” Considere o seguinte trecho de código C# que demonstra a manipulação de uma coleção List<T>. Identifique qual será o resultado da execução deste programa. R: d. O programa imprimirá “Maçã, Laranja, Banana”. Examine o seguinte código C# que utiliza expressões regulares para verificar se um texto segue um padrão específico. Qual será o resultado do programa ao ser executado com a entrada fornecida? R: a. O programa imprimirá “Nome Sith válido: True”, pois a entrada corresponde ao padrão de um nome Sith, começando com “Darth” seguido por um nome com a primeira letra maiúscula. Analise o código C# a seguir, que utiliza expressões regulares para verificar se uma entrada de texto segue um padrão específico. Determine qual será o resultado da execução deste programa com a entrada fornecida. R: a. O programa imprimirá “Nome do personagem válido: True”, pois a entrada segue o padrão de um nome com inicial maiúscula seguido por “de” e o nome de uma localidade. Qual é a principal vantagem de utilizar nomes de variáveis, classes e métodos descritivos, ao invés de nomes genéricos como “x” ou “y”, especialmente em projetos de grande escala e com vários desenvolvedores? R: b. Facilita a leitura e compreensão do código, melhorando a manutenção e o debugging. No contexto dos padrões de design na engenharia de software, como o padrão Singleton, aplicado à uma classe, contribui para a eficácia de um sistema de software? R: c. Assegura que apenas uma instância da classe exista, evitando conflitos e inconsistências. Como os padrões estruturais, como o Adapter e o Composite contribuem para a arquitetura de um sistema de software? R: c. Facilitam a integração e interação de componentes desenvolvidos separadamente. Considerando as boas práticas de programação em C#, qual é a abordagem mais eficaz para a utilização de comentários no código, visando maximizar a clareza e manutenabilidade? R: c. Preferir comentar blocos de código ou funções complexas em vez de cada linha. Qual das afirmações a seguir está correta? R: e. Expressões lambda e LINQ são frequentemente usadas para escrever consultas de dados mais concisas e legíveis, enquanto debugging e tracing são utilizados para monitoramento e diagnóstico de aplicativos, e o garbage collection automático ajuda na gestão de memória. Qual das seguintes afirmações é correta sobre Tasks, Threads, APM e EAP em C#? R: c. Tasks e Threads são usados para operações de programação assíncrona e concorrente, em que Tasks são mais abstratas e baseadas em Threads. Qual das seguintes afirmações é correta sobre ordenação, filas, pilhas e dicionários? R: d. Os vetores podem ser ordenados usando algoritmos de ordenação personalizados, filas operam com o princípio FIFO, pilhas com o princípio LIFO e dicionários não têm ordenação. Qual das seguintes afirmações é correta sobre a implementação de árvores, heaps e grafos? R: c. Árvores, especialmente árvores binárias, e heaps, como o heap binário, são comumente implementados em C# para algoritmos de ordenação e filas de prioridade. Analise o seguinte trecho de código em C# que utiliza uma expressão lambda. Determine qual será o comportamento do programa ao ser executado e qual é o principal benefício de utilizar uma expressão lambda neste contexto específico. R: c. O programa imprimirá os números 2, 4, 6, 8, 10, demonstrando a aplicação eficiente de operações em coleções. Considere o seguinte código C# que utiliza LINQ para filtrar dados em uma coleção. Determine qual será o resultado da execução do programa e qual é a principal característica do LINQ demonstrada neste exemplo. R: b. O programa imprimirá apenas os números pares da lista, demonstrando a capacidade de filtragem do LINQ. Avalie o código C# abaixo que usa LINQ para transformar uma coleção de objetos. Qual é o resultado esperado da execução deste código e que aspecto do LINQ ele exemplifica? R: c. O programa imprimirá os nomes "ALICE", "BOB", "CHARLIE", demonstrando a transformação de dados com LINQ. Considerando o processo de Garbage Collection (Coleta de Lixo) em C#, como ele difere da gestão de memória em linguagens sem um sistema de GC, como C++, e qual é o seu impacto na estabilidade das aplicações? R: c. O GC automatiza a liberação de memória em C#, reduzindo erros como vazamentos de memória. No contexto do gerenciamento de recursos em C#, qual é o principal benefício da utilização da instrução using, especialmente em relação ao manuseio de recursos não gerenciados? R: c. A instrução using garante que o método Dispose seja chamado automaticamente. Com relação ao debugging e tracing em C#, como essas práticas se complementam no desenvolvimento de aplicações e qual é a principal diferença entre elas? R: c. Debugging permite a execução passo a passo do código, enquanto tracing foca no registro contínuo da execução. Examine o seguinte trecho de código C# que utiliza threads e tasks para executar operações em paralelo. Identifique qual será o resultado da execução do programa e qual é a principal diferença entre a utilização de threads e tasks neste contexto. R: c. A task e a thread executam em paralelo, mas a task fornece melhor gerenciamento e eficiência de recursos. Baseado no uso prático de diferentes estruturas de dados, qual das seguintes opções melhor descreve um cenário adequado para a aplicação da estrutura de dados “Heap”, e por quê? R: b. Gerenciamento de tarefas emum sistema operacional, para priorizar processos. Considere os algoritmos de ordenação (Selection Sort, Insertion Sort, Bubble Sort e Quick Sort) e suas características. Qual dos seguintes algoritmos apresenta, em média, a melhor complexidade de tempo em cenários de grandes volumes de dados, e por que essa complexidade o torna mais eficiente nesses casos? R: d. Quick Sort, por sua abordagem de divisão e conquista e complexidade média de O(n log n). Considerando os algoritmos de grafos (Kruskal, Prim e Dijkstra), qual é o mais adequado para encontrar o caminho mais curto em uma rede de transporte público e por quê? R: c. Algoritmo de Dijkstra, pois é especializado em encontrar o caminho mais curto entre dois pontos.
Compartilhar