Buscar

Validação de Ano Bissexto e Operações com Variáveis

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Pergunta 1
0 em 1 pontos
O código a seguir realiza a validação se um dado ano é bissexto ou não. Para calcularmos se um ano é bissexto ou não, temos, necessariamente, que considerar os seguintes fatores: o ano deve ser divisível por quatro, o resto da divisão do ano por 100 tem que ser maior que zero ou a divisão do ano por 400 precisa ser igual a zero. Analise o código com atenção.
1
double ano;
2
 
3
ano = Console.ReadLine();
4
 
5
if(((ano % 4) == 0 || (ano % 100) > 0) || ((ano % 400) == 0)){
6
 Console.WriteLine(“Ano bissexto”);
7
} else {
8
 Console.WriteLine(“Ano não é bissexto”);
9
}
 
Considerando as informações apresentadas, avalie as afirmações a seguir:
Na linha 3, quando o usuário inserir um valor de ano, resultará em um erro na linha 5, pois a entrada é do tipo string e há uma operação aritmética de módulo.
Se um valor é divisível por 4 e divisível por 100, logo, é divisível por 400 também, o que torna dispensável a expressão ano%400==0.
Na linha 5, o valor da expressão será true para qualquer ano maior que 1500, uma vez que temos um operador || (ou), tornando a linha 6 inalcançável.
Na linha 5, é necessário substituir o primeiro operador maior (>) pelo operador de igualdade, caso contrário, o algoritmo pode não reconhecer anos bissextos.
É correto o que se afirma em:
Resposta Selecionada:	
Incorreta 
I e IV, apenas.
Respostas:	
Correta 
I e III, apenas.
I e IV, apenas.
II e III, apenas.
I e II, apenas.
II e IV, apenas.
Comentário da resposta:	
A afirmativa I é verdadeira, pois o valor de entrada é sempre do tipo string. Logo, é necessário converter o valor de entrada do input para o tipo double, de modo a evitar o erro.
A afirmativa II está incorreta, pois para um ano ser bissexto, entre outros critérios, o resto da divisão deste ano por 100 deve ser maior que 0. A afirmativa diz que deve ser igual a zero, ou seja, deve ser divisível por 100, o que está errado. Em outras palavras, um número não pode ser divisível por 100.
A afirmativa III é verdadeira, pois como o código está com três expressões ligadas por um operador || (ou), basta que uma delas seja verdadeira para que toda a expressão seja verdadeira também. Logo, sempre será executada a linha 4, tornando a linha 6 inacessível
A afirmativa IV está incorreta, pois para um ano ser bissexto, ele não pode ser divisível por 100 e deve ser divisível por 4. Ou então, deve ser divisível por 400.
Pergunta 2
0 em 1 pontos
Analise com atenção o código a seguir, que possui algumas variáveis e realiza algumas operações sobre elas:
1
string var1;
2
int var2;
3
double var3;
4
 
5
Console.WriteLine(“Digite seu nome”);
6
var1 = Console.ReadLine();
7
 
8
Console.WriteLine(“Digite sua idade”);
9
var1 = Console.ReadLine();
10
 
11
var2 = int.Parse(var1);
12
 
13
var3 = Math.Pow(var2, 2);
14
 
15
Console.WriteLine(var3);
 
Considerando essas informações, analise as afirmativas a seguir:
I. Neste código será solicitada uma entrada de dados que, ao digitar valores numéricos, eles serão mostrados na tela.
II. Neste código, ao digitar palavras e expressões alfanuméricas, elas serão armazenadas em var1 e mostradas na tela na linha 15.
III. Este código apresentará mensagem de erro na linha 11 que recebe um texto, porém a variável var2 é do tipo Inteiro.
IV. Este código apresenta uma saída de texto na linha 15 com o conteúdo da variável var3, sempre que var1 for um número.
Estão corretas apenas as afirmativas:
Resposta Selecionada:	
Incorreta 
I e III.
Respostas:	
II e III.
Correta 
I e IV.
II e IV.
I e III.
III e IV.
Comentário da resposta:	
A afirmativa I é verdadeira, pois o tipo da variável var1 no início do código (linha 1) é string. Na linha 9 é solicitada a idade, que será um número, porém, a variável continua sendo string. Na linha 11 essa string é convertida para inteiro. Logo, se houver um caractere numeral na variável var1, ele será convertido para número do tipo inteiro na linha 11. Deste modo, na linha 13 estamos elevando esse número ao quadrado, se for 10, por exemplo, na linha 15 será mostrado o valor 100.
A afirmativa II é falsa, pois ao digitar qualquer letra ou palavra, contendo ou não número, o código apresentará erro, uma vez que existe uma operação aritmética na linha 13, logo o programa espera que você informe números e não letras.
A afirmativa III é falsa, pois a variável var2 não é do tipo inteiro, ela não tem tipo até então, pois acabou de ser criada. O único erro que pode ocorrer na linha 11 é a tentativa de converter um caractere (letra) em inteiro.
A afirmativa IV é verdadeira, pois sempre que for digitado um número na linha 6 ele será convertido de string para tipo inteiro e, em seguida, realizada a operação aritmética de exponenciação e, por fim, apresentado na tela na linha 15.
Pergunta 3
0 em 1 pontos
Sobre variáveis em programação, podemos afirmar que:
I. Uma variável pode iniciar-se com letras, com underscore ( _ ) ou com traço (-) e deve ser evitado o uso de caracteres especiais.
II. Se criarmos uma variável chamada aluno1 e outra chamada aluno2, teremos dois espaços na memória para guardar valores. 
III. Uma variável chamada nota pode armazenar, ao mesmo tempo, o nome de um aluno e sua respectiva nota em uma avaliação.
IV. Uma variável não pode ter caracteres especiais ou traços, afinal, o computador pode não compreender estes sinais.
As alternativas verdadeiras são:
Resposta Selecionada:	
Incorreta 
I e IV, apenas.
Respostas:	
I e III, apenas.
I e IV, apenas.
II e III, apenas.
I e II, apenas.
Correta 
II e IV, apenas.
Comentário da resposta:	
A afirmativa I é falsa, pois não podemos utilizar o sinal de traço (-) em uma variável, afinal, o computador pode ficar em dúvida se esse traço representa um caractere separador ou um sinal de subtração, então por isso não é possível utilizá-lo.
A afirmativa II é verdadeira, pois uma variável tem o exato propósito de armazenar um valor na memória. Logo, ao criarmos duas variáveis, teremos dois espaços na memória reservados para o nosso programa.
A afirmativa III é falsa, pois uma variável pode armazenar apenas um único valor, logo, ou se armazena o nome do aluno ou se armazena a nota do aluno, não sendo possível armazenar ambos os valores no mesmo espaço de memória.
A afirmativa IV é verdadeira, pois caracteres especiais como @#$- ou qualquer outro que o valha, não podem ser utilizados no código como parte do nome da variável. Se usado, o compilador não o reconhecerá como presente na linguagem e, consequentemente, irá gerar um erro. Somente uma observação: alguns caracteres especiais como # e $ são usados na programação, mas não na declaração de uma variável.
Pergunta 4
0 em 1 pontos
Leia o texto a seguir com atenção:
O pensamento computacional é o processo de abordar um problema de uma maneira sistemática e criar e expressar uma solução que pode ser realizada por um computador.
A partir desta informação, é possível afirmar que o pensamento computacional
Resposta Selecionada:	
Incorreta 
habilita os alunos a desenvolverem seu raciocínio lógico por meio da escrita de algoritmos e códigos de programas.
Respostas:	
apresenta técnicas computacionais para a compreensão e escrita de algoritmos.
Correta 
ensina o uso de abstração e decomposição na solução de problemas complexos.
é uma aprendizagem relacionada à ciência da computação que foca em técnicas funcionais de programação.
habilita os alunos a desenvolverem seu raciocínio lógico por meio da escrita de algoritmos e códigos de programas.
incentiva o aluno a utilizar-se do poder da computação através da tela e do teclado de um computador (ou de um dispositivo móvel).
Comentário da resposta:	
A alternativa b está correta, pois dentre os pilares do pensamento computacional,
destaca-se a decomposição, que é o processo de decompor um problema complexo em partes menores; e também a abstração, que visa identificar características comuns e reconhecer padrões em um problema.
Pergunta 5
0 em 1 pontos
Analise com atenção o código a seguir que utiliza função com passagem de parâmetros, com três argumentos.
1
public int calcular(int x, ref int y, ref int z){
2
 x = x + 10;
3
 y = y + 10;
4
 z = z + 10;
5
 Console.WriteLine(x + " "+ y+ " "+ z);
6
 return y;
7
}
8
 
9
public static void Main (string[] args) {
10
 int a = 4;
11
 int b = 3;
12
 int c = 2;
13
 
14
 Program p = new Program();
15
 p.calcular(a, ref b, ref c);
16
 
17
 Console.WriteLine(a + " - "+ b + " - " + c);
18
}
 
Os valores impressos na instrução da linha 17 serão:
Resposta Selecionada:	
Incorreta 
14 - 13 - 12
Respostas:	
Correta 
4 - 13 - 12
4 - 3 - 2
14 - 13 - 12
14 - 3 - 2
4 - 12 - 13
Comentário da resposta:	
Na função main há a invocação da função calcular passando três argumentos por parâmetro, sendo que o primeiro (variável a) é passado por valor, por outro lado, as variáveis b e c são passadas como referência. Logo, qualquer alteração nas variáveis y e z na função calcular, impactará no valor das variáveis b e c que estão na função main. Deste modo, os valores finais das variáveis a, b e c serão, respectivamente, 4, 13 e 12.
Pergunta 6
1 em 1 pontos
Leia com atenção o texto a seguir:
O pensamento computacional requer a compreensão das capacidades dos computadores, a formulação de problemas a serem tratados por um computador e o projeto de algoritmos que um computador pode executar. O contexto e a abordagem mais eficazes para desenvolver o pensamento computacional é aprender ciência da computação; eles estão intrinsecamente conectados.
Fonte: K12 COMPUTER SCIENCE. K12 Computer Science Framework. Disponível em: https://k12cs.org/wp-content/uploads/2016/09/K%E2%80%9312-Computer-Science-Framework.pdf. Acesso em: 30 out. 2021.
 Sobre o pensamento computacional, assinale a alternativa que apresenta uma de suas práticas.
Resposta Selecionada:	
Correta 
Desenvolver e usar abstrações.
Respostas:	
Correta 
Desenvolver e usar abstrações.
Testar algoritmos computacionais.
Distinguir entre o pensamento humano e o computacional.
Praticar os conceitos de ciência da computação como programação.
Resolver problemas computacionais através de programas.
Comentário da resposta:	
Um dos pilares do pensamento computacional é a abstração. Praticar a abstração é preocupar-se com os elementos mais importantes de um problema, deixando de lado detalhes muito específicos. Ao fazer um bolo, por exemplo, a preocupação deve ser com a receita e se você possui ou não os ingredientes. Devemos então abstrair de detalhes como: se a batedeira é profissional ou doméstica, se o forno é elétrico ou a gás, entre outros.
Pergunta 7
1 em 1 pontos
Observe com atenção o código a seguir:
Nesta imagem temos um código com duas variáveis recebendo valores. A variável a recebe o valor 41 e a variável b recebe o valor 9. Em seguida, temos uma estrutura de controle de fluxo de código com algumas ações internas. Por fim, temos dois nós para apresentar o valor das variáveis a e b no final do código. 
Considerando o código apresentado, assinale a opção correta.
Resposta Selecionada:	
Correta 
O objetivo deste código é apresentar uma sequência ordenada dos valores, e o bloco representado em 1 é essencial neste processo.
Respostas:	
Correta 
O objetivo deste código é apresentar uma sequência ordenada dos valores, e o bloco representado em 1 é essencial neste processo.
O valor das variáveis a e b após a execução dos comandos presentes nos blocos representados por 2 e 3 é 41, o mesmo valor da variável aux.
O bloco representado por 1 pode ser suprimido, ficando apenas os comandos dos blocos 1 e 2 dentro do escopo do bloco SE.
O código apresentará um erro quando o valor da variável a for igual ao valor da variável b, uma vez que não existe uma condição que contemple esta igualdade.
O valor das variáveis a e b após a execução dos comandos presentes nos blocos representados por 2 e 3 é 9, o mesmo valor da variável aux.
Comentário da resposta:	
A alternativa a está correta, pois um algoritmo realiza a troca dos valores entre as variáveis a e b sempre que a variável a for maior que a variável b. Entretanto, se fizer uma troca direta, ou seja, a variável a receber o valor da variável b e b receber o valor de a, perderemos o valor da variável a. Deste modo, precisamos de um auxiliar que guarde para nós o valor de a, então isso acontece no bloco indicado em 1. A única condição de entrarmos no bloco SE é quando a variável a for maior que a variável b, logo, estamos ordenando os valores.
Pergunta 8
0 em 1 pontos
Analise com atenção o código a seguir:
1
public static void Main (string[] args) {
2
 Console.WriteLine("Digite um numero");
3
 string op = Console.ReadLine();
4
 
5
 while(op > 0 || op < 50){
6
 Console.WriteLine("Digite um número: ");
7
 op = Console.ReadLine();
8
 }
9
}
 
Considerando as informações apresentadas, avalie as afirmações a seguir:
I. O laço de repetição while da linha 5 será executado indiferentemente do valor digitado pelo usuário, uma vez que temos o operador OU (||).
II. O laço de repetição while apresentará um erro, pois a variável op é do tipo string e o valor zero é um número inteiro.
III. O laço de repetição while será interrompido assim que o usuário digitar um número fora do intervalo entre zero e cinquenta.
IV. O laço de repetição while está com sua sintaxe escrita corretamente, porém, ele apresentará um erro de execução.
É correto o que se afirma em:
Resposta Selecionada:	
Incorreta 
I e II, apenas.
Respostas:	
Correta 
II e IV, apenas
I e III, apenas.
I e II, apenas.
III e IV, apenas.
II e III, apenas.
Comentário da resposta:	
A afirmativa I está incorreta, pois o laço de repetição não será executado pois há uma tentativa de comparar uma string com um valor inteiro, o que irá gerar um erro. Para resolver isso, é possível converter o tipo da variável op de string para inteiro.
A afirmativa II está correta, pois haverá um erro devido ao tipo da variável op que é string.
A afirmativa III está incorreta, pois mesmo que a variável op fosse do tipo inteiro isso não ocorreria, afinal, existe uma condição ou, logo, independentemente do valor digitado pelo usuário, sempre este laço seria executado (considerando op como inteiro).
A afirmativa IV está correta, pois sintaxe se refere a forma de escrita e, neste caso, o while está com sua sintaxe correta. Existe uma expressão interna entre os parênteses com um operador lógico conectando duas operações de comparação. Entretanto, o erro é semântico, uma vez que o tipo não é condizente com o esperado, que seria o inteiro.
Pergunta 9
1 em 1 pontos
Leia o texto a seguir:
As funções são um recurso comum entre todas as linguagens de programação. Elas permitem que os desenvolvedores escrevam blocos de código que realizam tarefas específicas. Uma função pode ser executada quantas vezes o desenvolvedor quiser em todo o código.
Considerando esse contexto, avalie as seguintes asserções e a relação proposta entre elas.
I. As funções fornecem melhor modularidade para seu aplicativo e um alto grau de reutilização de código.
PORQUE
II. C# oferece muitas funções integradas, permitindo que o programador possa criar as suas próprias, criando blocos de códigos organizados e reutilizáveis.
A respeito dessas asserções, assinale a alternativa correta.
Resposta Selecionada:	
Correta 
As asserções I e II são proposições
verdadeiras e a II é uma justificativa da I.
Respostas:	
Correta 
As asserções I e II são proposições verdadeiras e a II é uma justificativa da I.
As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.
A asserção I é uma proposição verdadeira e a II é uma proposição falsa.
A asserção I é uma proposição falsa e a II é uma proposição verdadeira.
As asserções I e II são proposições falsas.
Comentário da resposta:	
A asserção I é uma proposição verdadeira, pois uma função é denotada pelo modificador de acesso, seguido pelo tipo de retorno, pelo nome da função e um conjunto de parênteses. Esses blocos de código permitem que você organize seu código com mais eficiência.
A asserção II é uma proposição verdadeira, pois em C# temos as funções integradas como Math.pow() para potenciação, Math.round() para arredondar um número, entre outras. Também é possível criarmos nossas próprias funções, deixando o código mais organizado.
A asserção II é uma justificativa da I, pois além de poder organizar o código, as funções também permitem que as manutenções sejam mais simples.
Pergunta 10
0 em 1 pontos
Observe com atenção o código a seguir:
 
1
double x, valor, y;
2
bool compara;
3
 
4
valor = 100;
5
x = valor % 5;
6
Console.WriteLine(x);
7
 
8
valor = 100;
9
y = valor * 0.05;
10
Console.WriteLine(y);
11
 
12
compara = x == y;
13
Console.WriteLine(compara);
 
Em programação, podemos utilizar os operadores aritméticos como soma, multiplicação, divisão e módulo para manipular os valores das variáveis. Além desse tipo de operador, outro muito utilizado é o operador de comparação, que é responsável por relacionar duas expressões, validando sua igualdade ou diferença, por exemplo.
Considerando as informações apresentadas, avalie as afirmações a seguir.
Nas linhas 4 a 6 estamos calculando a porcentagem de um determinado valor. Logo, na linha 5 estamos calculando 5% em cima do valor 100. O resultado apresentado na linha 6 será 5.
Nas linhas 8 a 10, estamos calculando a porcentagem de um determinado valor. Logo, na linha 9 estamos calculando 5% em cima do valor 100. O resultado apresentado na linha 10 será 5.
Na linha 12, estamos comparando o valor da variável x (obtido na linha 5) e o valor da variável y (obtido na linha 9). O resultado dessa comparação será False.
É correto o que se afirma em:
Resposta Selecionada:	
Incorreta 
III, apenas.
Respostas:	
Correta 
II e III, apenas.
I e II, apenas.
I, apenas.
II, apenas.
III, apenas.
Comentário da resposta:	
A afirmativa I está incorreta, pois o operador % (módulo) retorna o resto da divisão de um número por outro, não sendo responsável por calcular a porcentagem. Logo, a saída é o resto da divisão, ou seja, 0 (zero) e não 5 ou 5%.
A afirmativa II está correta, pois estamos calculando a porcentagem, afinal, estamos multiplicando por 0,05 o conteúdo da variável valor, que é 100. Como resultado, teremos o número 5 ou 5%.
A afirmativa III está correta, pois o valor da variável x é 0 (resto da divisão de 100 por 5) e o valor da variável y é 5. Como são valores diferentes, o resultado da comparação será False.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando