Buscar

Modelo 02 - Quiz de Algoritmos e Programação I (SENAC) - 2023

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Revisar envio do teste: Clique aqui para iniciar o Quiz
STADCAS1DB_2204-2204-686268 2204-ALGORITMOS E PROGRAMAÇÃO I Quiz
REVISAR ENVIO DO TESTE: CLIQUE AQUI PARA INICIAR O QUIZ 
Usuário FELIPE AUGUSTO SANTINHO
Curso 2204-ALGORITMOS E PROGRAMAÇÃO I
Teste Clique aqui para iniciar o Quiz
Iniciado 16/02/23 14:22
Enviado 16/02/23 15:00
Data de vencimento 29/03/23 23:59
Status Completada
Resultado da tentativa 10 em 10 pontos  
Tempo decorrido 38 minutos
Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários
Pergunta 1
A linguagem C#, assim como outras, permite que criemos funções para organizar o
nosso código. Dentro destas funções, podemos adicionar estruturas de repetição,
estruturas condicionais e também invocar outras funções nativas da linguagem.
Observe com atenção o código a seguir escrito em C#, o qual utiliza funções.
1 public string print(string str){
2 Console.WriteLine(str);
3 }
4 
5 public static void Main (string[] args) {
6 Program x = new Program();
7 
8 string cont = “0”;
9 
10 while(cont < 10){
11 x.print(cont);
Sala de Aula Tutoriais
1 em 1 pontos
FELIPE AUGUSTO SANTINHO
53
https://senacsp.blackboard.com/webapps/blackboard/execute/courseMain?course_id=_205166_1
https://senacsp.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_205166_1&content_id=_9202992_1&mode=reset
https://www.ead.senac.br/
https://senacsp.blackboard.com/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_260_1
https://senacsp.blackboard.com/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_210_1
https://senacsp.blackboard.com/webapps/login/?action=logout
Resposta
Selecionada:
Respostas:
Comentário
da resposta:
11 x.print(cont);
12 cont = Console.ReadLine();
13 }
14 } 
 
Considerando as informações apresentadas, assinale a alternativa correta.
Este código executará uma vez e apresentará uma mensagem
informando que cont não é uma variável do tipo numérica, dando
erro na linha 10.
Este código executará uma vez e apresentará uma mensagem
informando que cont não é uma variável do tipo numérica, dando
erro na linha 10.
Neste código, enquanto o usuário digitar um número menor do que
10, todo o conteúdo interno (linhas 6 a 12) será repetido ou iterado.
Ao digitar um número maior ou igual a 10, o loop encerra.
Haverá um erro na linha 11, pois a função print está enviando um
contador que é inteiro, porém na linha 1 recebe uma string como
parâmetro.
O while da linha 10, bem como todo o seu conteúdo, entrará em
loop infinito, pois o valor de cont é zero e não existe um incremento
para esta variável.
O erro que ocorrerá em tempo de execução na linha 11 pode ser
resolvido se substituirmos a função print pela função nativa do C#,
WriteLine.
Na primeira execução, quando chega na linha 8, a variável cont é
declarada do tipo string, logo, mesmo que receba um número, o tipo
da variável é texto (string). Logo, quando encontra o loop do while na
linha 10, estamos comparando um tipo texto (cont) com um numérico
(10). Deste modo, ocorrerá um erro, pois não é possível realizar este
tipo de comparação.
Pergunta 2
Analise com atenção o código a seguir escrito em C#.
1 for(int x=-15; x<14; x++)
2 {
3 x++;
1 em 1 pontos
Resposta
Selecionada:
Respostas:
Comentário
da resposta:
4 Console.WriteLine(x);
5 }
 
Assinale a alternativa que apresenta a análise correta sobre esse código.
Esta estrutura de repetição apresentará todos os números pares
de -14 a 14.
O código apresentará os números inteiros de -15 (valor inicial de
x) até 13, que é o último valor menor que 14.
Este laço de repetição possui dois incrementos, o que gerará erro
de duplicidade na linha 3.
Este código apresentará todos os números de -15 a 14, inclusive
o número zero.
Este código apresentará um erro na linha 1, pois a inicialização da
variável x é negativa.
Esta estrutura de repetição apresentará todos os números pares
de -14 a 14.
O laço for é inicializado com o valor -15 (x = -15). Observe que o laço
é incrementado uma vez na definição do for, bem como tem o
incremento internamente, dentro do escopo do for. Então, na primeira
iteração, a variável -15 é incrementada para -14 e o valor é
apresentado na tela. Em seguida, a variável x é incrementada com o
x++ do laço for e também pelo x++ da linha 3. Logo, são
apresentados todos os números pares, afinal, há dois incrementos.
Pergunta 3
Em C# e em outras linguagens de programação, para que seja possível manipular
dados, uma das necessidades é criar variáveis que armazenem temporariamente
valores os quais podem ser numéricos (int ou float), texto (string) ou booleano (bool).
Observe o código a seguir escrito em C#:
1 a = 5.95681545;
2 b = Console.ReadLine();
3 c = 7 % 2;
4 d = 3.5 * c;
 
Marque a alternativa que apresenta corretamente os tipos das variáveis a, b, c e d,
respectivamente.
1 em 1 pontos
Resposta Selecionada: 
Respostas:
 
Comentário
da resposta:
a: float; b: string; c: int; d: float.
a: int; b: string; c: float; d: int.
a: float; b: int; c: float; d: float.
a: int; b: string; c: int; d: int.
a: float; b: string; c: int; d: float.
a: int; b: int; c: float; d: int.
Em a) temos um número que é ponto flutuante, isso pode ser
observado pelo uso de casas decimais; em b) a variável recebe um
conteúdo da linha de comando via o método input, logo,
independentemente de o valor digitado ser um número ou letra, o tipo
sempre será string; em c) estamos encontrando o resto de uma
divisão, logo, o valor é inteiro; em d) estamos multiplicando um ponto
flutuante por um inteiro, o que resulta em um ponto flutuante ou float.
Pergunta 4
Resposta
Selecionada:
Respostas:
Observe com atenção o pseudocódigo a seguir:
 
início
 se temperatura == “40”
 escreva(“ligar ar-condicionado”)
 escreva(“fechar as janelas”)
          senão
 escreva(“ligar ventilador”)
 escreva(“abrir as janelas”)
 �m-se
�m 
 
Sobre algoritmos, assinale a alternativa correta.
O pseudocódigo é utilizado para acelerar o ciclo de
desenvolvimento de um código.
O pseudocódigo é uma representação formal de um código real,
porém em português.
1 em 1 pontos
Comentário da
resposta:
O pseudocódigo possui uma estrutura pré-definida, ou seja,
específica, e é um intermediário entre o português e uma
linguagem de programação.
O pseudocódigo é usado em automação residencial, como no caso
do código apresentado para ligar o ventilador ou o ar-condicionado.
O pseudocódigo é utilizado para acelerar o ciclo de
desenvolvimento de um código.
O pseudocódigo é usado para comunicar ideias, assim como as
linguagens de programação, porém em português.
O pseudocódigo é uma escrita intermediária entre a linguagem
falada ou o algoritmo narrativo e o código de computador. Logo, é
uma boa opção escrevê-lo a fim de ganhar tempo e diminuir erros
relacionados ao desenvolvimento.
Pergunta 5
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 é
1 em 1 pontos
Resposta Selecionada: 
Respostas: 
Comentário da
resposta:
I. 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.
II. 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 10será 5.
III. 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.
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.
É correto o que se afirma em:
II e III, apenas.
II e III, apenas.
I e II, apenas.
I, apenas.
II, apenas.
III, apenas.
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.
Pergunta 6
Observe com atenção o fluxograma a seguir.
1 em 1 pontos
Resposta Selecionada: 
Respostas:
 
Comentário da
resposta:
 
A respeito dos componentes que fazem parte de um fluxograma, analise as
afirmativas a seguir e assinale V para a(s) Verdadeira(s) e F para a(s) Falsa(s).
 
I. ( ) No fluxograma da imagem, observa-se a presença de uma estrutura condicional.
II. ( ) No fluxograma da imagem, se o pneu estiver furado, então será necessário
trocá-lo.
III. ( ) No fluxograma da imagem, independentemente se o pneu estiver furado ou não,
o fim será alcançado.
IV. ( ) No fluxograma da imagem, será escrito na tela as mensagens Não Trocar e
também Trocar.
 
Assinale a alternativa que possui a sequência correta.
V-V-V-F.
V-F-F-V.
V-V-V-F.
V-V-F-F.
F-F-V-V.
F-V-F-V.
A afirmativa I é verdadeira, pois o nó ou bloco em forma de losango
é a representação de uma condição em um fluxograma.
A afirmativa II é verdadeira, pois como o losango é uma condicional,
se a condição for verdadeira (caminho da direita), então será
apresentado na tela que se deve trocar o pneu.
A afirmativa III é verdadeira, pois por se tratar de um algoritmo, ele
possui um início e fim muito bem definidos, logo,
independentemente se o pneu está ou não furado, o fim será
alcançado, pois todo algoritmo é finito.
A afirmativa IV é falsa, pois somente será apresentado na tela uma
mensagem ou outra, dependendo da condição se for verdadeira ou
falsa.
Pergunta 7
Resposta Selecionada: 
Respostas: 
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:
4 - 13 - 12
4 - 13 - 12
1 em 1 pontos
Comentário
da resposta:
4 - 3 - 2
14 - 13 - 12
14 - 3 - 2
4 - 12 - 13
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 8
Resposta
Selecionada:
Respostas:
Em C#, podemos utilizar os operadores aritméticos para manipular os dados de
variáveis, bem como, realizar cálculos assim como na matemática. Considere o
código-fonte a seguir escrito em C#.
1 int total;
2 total = 5 + 4 * 18 / 3 * 3 % 3 - 1;
3 Console.WriteLine(total);
 
Considerando esse contexto, avalie as seguintes asserções e a relação proposta entre
elas.
I. Considerando a instrução da linha 2 e a ordem de precedência de operadores, o
valor apresentado na linha 3 será 4.
PORQUE
II. O operador de adição e o de módulo possuem a mesma precedência, e a soma foi
avaliada antes por aparecer primeiro na expressão.
A respeito dessas asserções, assinale a opção correta.
A asserção I é uma proposição verdadeira e a II é uma
proposição falsa.
A asserção I é uma proposição verdadeira e a II é uma
proposição falsa.
1 em 1 pontos
Comentário
da resposta:
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 falsa e a II é uma proposição
verdadeira.
As asserções I e II são proposições falsas.
A asserção I é uma proposição verdadeira, pois seguindo a
precedência dos operadores, a primeira operação será 4*18; em
seguida, é feita a divisão, depois o módulo, por fim, a soma e a
subtração, totalizando 4.
A asserção II é uma proposição falsa, pois de acordo com a
precedência de operadores temos: primeiramente, os valores entre
parênteses (não é o caso), em seguida, a exponenciação (não é o
caso), depois da exponenciação será calculada a multiplicação, a
divisão ou o módulo (dependendo da ordem destes operadores), em
seguida, será calculada a soma ou a subtração (dependendo da
ordem dos operadores na expressão).
Pergunta 9
As estruturas de decisão, ou estruturas condicionais, são utilizadas nos códigos para dividir um
fluxo de processos em dois ou fluxos. Todo algoritmo que precisa de tomada de decisão
necessita utilizar uma estrutura de controle como esta. Veja um exemplo de código a seguir:
1 int a = 4;
2 int b = 5;
3 
4 if(a>1) {
5 if(b>1) {
6 Console.WriteLine(“Valor de a ” + a + “ valor de b “ + b);
7 }
8 }
 
De posse dessas informações e do conteúdo estudado sobre estruturas condicionais, analise as
asserções a seguir e a relação proposta entre elas.
I. No caso de usar IFs aninhados como no código, podemos substituir os dois IFs por uma única
instrução com o operador lógico E (&&), ficando assim: if(a>1 && b>1):
Porque
1 em 1 pontos
Resposta
Selecionada:
Respostas:
Comentário
da resposta:
II. Para mostrar na tela o conteúdo da linha 6, a instrução da linha 4 precisa ser verdadeira e a
instrução da linha 5 também precisa ser verdadeira.
A seguir, assinale a alternativa correta:
As asserções I e II são proposições verdadeiras e a II é uma justificativa
correta da I.
As asserções I e II são proposições verdadeiras e a II é uma justificativa
correta da I.
A asserção I é uma proposição verdadeira e a II é uma proposição falsa.
As asserções I e II são proposições verdadeiras, mas a II não é uma
justificativa correta da I.
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.
A proposição I está correta, pois podemos utilizar o conceito de IFs aninhados
como no código, ou utilizar, nesse código, uma comparação lógica com o
operador E (&&).
A proposição II está correta, pois a única condição para mostrar o conteúdo da
linha 6 é a linha 4 e a linha 5 serem verdadeiras juntas. A proposição II é uma
justificativa da I pois, se ambas as decisões, tanto da linha 4 quanto da linha 5,
forem verdadeiras, será apresentado o valor da linha 6. Note que temos um se
ambas as decisões, ou seja, é necessário que uma e outra sejam verdadeiras,
logo, o operador E (&&) representa o IF aninhado.
Pergunta 10
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 doano 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 {
1 em 1 pontos
Quinta-feira, 16 de Fevereiro de 2023 15h00min59s BRT
Resposta Selecionada: 
Respostas: 
Comentário
da resposta:
I. 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.
II. 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.
III. 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.
IV. 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.
8 Console.WriteLine(“Ano não é bissexto”);
9 }
 
Considerando as informações apresentadas, avalie as afirmações a seguir:
É correto o que se afirma em:
I e III, apenas.
I e III, apenas.
I e IV, apenas.
II e III, apenas.
I e II, apenas.
II e IV, apenas.
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.
← OK

Continue navegando