Quiz de Fundamentos de C
Este quiz aborda conceitos essenciais da linguagem C# e da plataforma .NET, ideal para validar seu conhecimento.
Conceitos de Métodos e Classes
1. O que são parâmetros de métodos?
Resposta: São as variáveis declaradas na definição de um método, que recebem os valores quando o método é chamado.
2. O que são argumentos de métodos?
Resposta: São os valores concretos passados para os parâmetros de um método quando ele é invocado.
Explicação: A definição do método especifica os parâmetros. A instrução de chamada fornece os argumentos.
3. O que é um método sobrecarregado?
Resposta: É um método que possui múltiplas implementações na mesma classe, cada uma com uma assinatura de método diferente (ou seja, diferentes tipos ou número de parâmetros).
4. O que é um valor de retorno?
Resposta: É o valor que um método retorna ao código que o chamou após sua execução ser concluída.
5. O que é um objeto?
Resposta: É uma instância de uma classe.
6. Quais símbolos representam o operador de invocação de método?
Resposta: Parênteses
()
.
Manipulação de Strings
7. Como incluir caracteres Unicode em uma string?
Resposta: Usando a sequência de escape
\u
seguida por um código hexadecimal de quatro caracteres. Ex:\u00A9
para o símbolo ©.
8. Qual sequência de escape representa um caractere de tabulação?
Resposta:
\t
. É útil para alinhar texto em colunas.
9. Qual sequência de escape representa um caractere de nova linha?
Resposta:
\n
.
10. Qual o resultado de Console.WriteLine("C:\new\folder")
e como corrigir?
Resposta: O resultado será
C:
, seguido de uma nova linha eewolder
, pois\n
é interpretado como nova linha.Correções: 1. Usar barra invertida dupla:
Console.WriteLine("C:\\new\\folder");
2. Usar uma string verbatim (recomendado):Console.WriteLine(@"C:\new\folder");
11. Qual símbolo é usado como prefixo em uma string para habilitar a interpolação?
Resposta: O cifrão
$
.
12. Em qual situação a interpolação de string é mais eficiente que a concatenação?
Resposta: Ao construir mensagens complexas com múltiplas variáveis e literais, pois o código se torna mais legível e de fácil manutenção.
Estruturas de Controle e Escopo
13. O que é um bloco de código?
Resposta: Uma ou mais linhas de código agrupadas por chaves
{ }
que devem ser tratadas como uma única unidade.
14. O que é uma expressão booleana?
Resposta: Qualquer código que é avaliado e retorna um valor booleano (
true
oufalse
).
15. Qual instrução é usada para sair de um loop for
antes que sua iteração normal seja concluída?
exit;
break;
return;
Resposta:
break;
16. Um desenvolvedor precisa capturar a entrada do usuário repetidamente até que uma condição de saída seja atendida (ex: pressionar uma tecla especial). Qual a melhor instrução de iteração para esse caso?
Resposta:
do-while
. Garante que o bloco de código seja executado pelo menos uma vez e é ideal para loops que dependem de uma condição que só pode ser verificada no final da iteração.
17. Um desenvolvedor precisa iterar por todos os itens de uma coleção, mas não precisa do índice de cada item. Qual a instrução de iteração mais adequada?
Resposta:
foreach
. É mais simples e legível para percorrer coleções quando o índice não é necessário.
18. Quando é mais apropriado usar um switch-case
em vez de um if-elseif-else
?
Resposta: Quando se está comparando uma única variável contra múltiplos valores constantes. Geralmente, é mais legível que uma longa cadeia de
if-elseif-else
.
19. Por que um desenvolvedor escolheria uma instrução for
em vez de foreach
para processar uma matriz multidimensional?
Resposta: A instrução
for
permite um controle granular sobre os índices de cada dimensão da matriz, facilitando a navegação por linhas e colunas separadamente.
20. Por que é importante definir o escopo de uma variável no nível mais baixo possível?
Resposta: Para reduzir o consumo de memória e a complexidade do código, evitando "poluição" do escopo e potenciais conflitos de nomes. Isso mantém o volume de segurança e os recursos do aplicativo menores.
21. Analise o cenário de escopo:
Um desenvolvedor inicializa
int var1 = 5;
fora de um blocoif
. Dentro do blocoif
, ele inicializaint var2 = 6;
e depois executavar1 = var1 + var2;
. A condição doif
é verdadeira. Qual o valor devar1
exibido na primeira linha após o blocoif
?
- Um erro é gerado, pois
var2
não está no escopo.- O valor 5 é exibido.
- O valor 11 é exibido.
Resposta: 3. O valor 11 é exibido.
var1
foi declarada em um escopo externo, portanto, continua acessível após o blocoif
. A alteração feita em seu valor dentro do bloco é mantida.
Boas Práticas e .NET
22. Um desenvolvedor está atualizando um projeto em equipe. Qual é o uso mais apropriado para comentários de código durante o processo?
- Comentar cada linha de código individualmente.
- Deixar comentários antigos e adicionar novos dizendo que os antigos não se aplicam.
- Resumir as alterações em um comentário de bloco no topo do arquivo ou método.
Resposta: 3. Resumir as alterações em um comentário de bloco. Comentários devem explicar o "porquê" do código, não o "o quê". Resumir uma mudança complexa é um bom uso.
23. Qual das seguintes afirmações sobre a Biblioteca de Classes do .NET é verdadeira?
- Ela sempre define métodos sobrecarregados para cada método.
- Ela contém as definições para os tipos de dados fundamentais usados em C#.
- Ela é tão grande que aumenta o tempo de desenvolvimento.
Resposta: 2. Ela contém as definições para os tipos de dados fundamentais usados em C# (como
System.Int32
paraint
,System.String
parastring
, etc.).
24. Quais dos símbolos a seguir representam o operador de invocação de método necessário para executar um método?
- .
- {}
- ()
Resposta: 3. () Correct**