Prévia do material em texto
Informações da avaliação HUGO MACHADO DE ALMEIDA 1250124659 21_2025_1_E90100023_21SIF1251E Avaliação 2 - Prova Regular - 03/07/2025 08:00:00 (Finished) Sala Online / Andar Online / Prédio Online / Polo Online Total: 8.40 / 10.00 Legenda Discursiva Objetiva Questão 1 | Código 37690 | 0.80 / 0.80 Enunciado Temos, a seguir, um programa em Linguagem C que chama uma função para saber se o número informado é um número par, ímpar ou negativo.#include<stdio.h>#include<string.h>main(){char nome[30]; int x, t;printf("\n\n DIGITE UM NOME: ");gets(nome); // suponha que o nome digitado foi "LUCIA"t = strlen(nome);for(x = 0; x <= t-1; x++){printf("%c", nome[x]);printf("\n\n");}}Com base na implementação do programa desenvolvido em linguagem de programação C, teremos um devido resultado a ser apresentado na execução da linha printf("%c", nome[x]);, que poderá ser observado na análise do código. Utilize seus conhecimentos em lógica de programação para definir a exibição da letra assertiva na execução do programa após a última execução da linha printf("%c", nome[x]);. Justificativa Resposta correta:a. Correta. O programa, ao executar a estrutura de decisão, irá ler e exibir a letra "l" e seguirá na ordem em que o nome foi escrito. Dessa forma, a última letra lida e exibida será a letra "a".Distratores:l, c, u, i. Errada. O programa, ao executar a estrutura de decisão For, irá executar a mesma cinco vezes, sendo que a primeira letra a ser exibida é a letra "l" e seguirá na ordem execução/exibição em que o nome "LUCIA" foi escrito. Dessa forma, a última letra lida e exibida será a letra "a". Assim, a letra "a" será equivalente a cinco execuções da estrutura de repetição do For. >a)a. Alternativa marcada a) a. Questão 2 | Código 38042 | 0.00 / 0.80 Enunciado Analise o seguinte algoritmo:Diante do exposto, determine o valor da variável j após o término do algoritmo. Justificativa Resposta correta:25.Valores da variável j: 0, 1, 4, 9, 16, 25.Distratores:16.Errada. A variável i está sendo considerada apenas até 7.36. Errada. A variável i está sendo considerada até 11.45. Errada. Está somando 1 na variável i, quando deveria somar 2.26. Errada. Está considerando a variável j sendo inicializada com 1, quando deveria ser com 0. >c)25. Alternativa marcada e) 16. 7/11/25, 1:22 PM Impressão da prova https://aluno.provafacilnaweb.com.br/#/finished-tests/619558/print 1/6 Questão 3 | Código 37696 | 0.80 / 0.80 Enunciado Temos, a seguir, um programa em Linguagem C que trata da criação de um vetor de 4 posições e cujos valores já foram inicializados no vetor, e que, a partir de uma estrutura de repetição, executa suas funções.#include<stdio.h>main(){int vet[4] {10, 20, 30, 40};int i;float soma = 0;i = 0;while (i<=3) // rotina para preencher o vetor{ soma = soma + vet[i]; i++; }printf("Numero %f\n", soma / i - 1);}Com base na implementação do programa desenvolvido em linguagem de programação C, teremos um resultado que será calculado com base na execução da estrutura de repetição, que poderá ser observado na análise do código. Utilize seus conhecimentos em lógica de programação para definir qual resultado será exibido após a última execução da linha printf("Numero %f\n", soma / i - 1);. Justificativa Resposta correta:24.Correta. O valor final da variável soma será 100, o valor da variável i será 4, e a divisão entre os valores destas variáveis, que são 100 e 4, resultará no valor final 24, obtido através da linha de código printf("Numero %f\n", soma / i - 1);Distratores:26, 28, 22, 30. Erradas. O valor final atribuído à variável soma será 100 e temos que o valor da variável i será 4, logo a divisão atribuída pela linha de código printf("Numero %f\n", soma / i - 1); terá os valores 100 sendo dividido por 4, que resultará no valor 24. Isso se dá pelo fato de que o vetor int vet[4] {10, 20, 30, 40}; já está com valores fixos atribuídos e também por conta da quantidade de repetições da estrutura de repetição while (i<=3). >b)24. Alternativa marcada b) 24. Questão 4 | Código 38034 | 0.80 / 0.80 Enunciado Por meio das tabelas-verdade é possível determinar os valores de verdade (V ou F) de uma determinada fórmula, a partir dos valores de verdade de suas subfórmulas. Para isso, basta atribuir às fórmulas atômicas todas as combinações que forem possíveis com os valores V ou F, até que se consiga determinar os valores V ou F da fórmula.Considerando os conectivos lógicos nas fórmulas A e B, pode-se afirmar que: Justificativa Resposta correta: Se A=1 e B=0, então (AvB)=1.Correta.(AvB) significa A ou B verdadeiro. Portanto, A=1 (verdadeiro) satisfaz a condição.Distratores:Se A=1 e B=0, então (A^B)=1. Errada, pois (A^B) significa A e B verdadeiros. Como B é falso, então (A^B) é falso (A^B)=0.Se A=1 e B=0, então (AvB)=0. Errada, pois (AvB) significa A ou B verdadeiro. Como A satisfaz a condição, então (AvB) é verdadeiro (AvB)=1.Se A=0 e B=0, então (A→ B)=0.Errada, pois (A→ B) significa A implica B. E como A=0 e B=0, então (A→ B)=1.Se A=0 e B=0, então (A^B)=1. Errada, pois (A^B) significa A e B verdadeiros. E como A e B são falsos, então (A^B)=0. >b)Se A=1 e B=0, então (AvB)=1. Alternativa marcada b) Se A=1 e B=0, então (AvB)=1. 7/11/25, 1:22 PM Impressão da prova https://aluno.provafacilnaweb.com.br/#/finished-tests/619558/print 2/6 Questão 5 | Código 37688 | 0.80 / 0.80 Enunciado Temos, a seguir, um programa em Linguagem C que chama uma função para saber se o número informado é um número, par, ímpar ou negativo.int numero(int n){ if (num < 0) return -1;else if (num %2 ==0) return 0; else return 1;}main (){int num = -1, res;res = numero(num); // chama a funçãoif (res==0) printf ("\nNumero Par\n");else if (res==1) printf ("\nNumero Impar.\n\n");else printf ("\nNumero Negativo\n\n");}Com base na implementação do programa desenvolvido em linguagem de programação C, teremos um devido resultado a ser apresentado ou até um erro de compilação que poderá ser observado na análise do código. Utilize seus conhecimentos em lógica de programação e para definir o resultado assertivo na execução do programa: Justificativa Resposta correta:O programa apresenta erro na compilação e não executa.Correta. Está faltando a linha da diretiva de compilação #include<stdio.h>. Com isso, o programa não irá ser executado.Distratores:Exibe na tela número par. Errada. Como o programa irá apresentar um erro de compilação por conta da não declaração da diretiva de compilação #include<stdio.h>, o programa não executa, não gerando nenhum resultado.Exibe na tela número negativo. Errada. Como o programa irá apresentar um erro de compilação por conta da não declaração da diretiva de compilação #include<stdio.h>, o programa não executa, não gerando nenhum resultado.Exibe na telanúmero ímpar.Errada. Como o programa irá apresentar um erro de compilação por conta da não declaração da diretiva de compilação #include<stdio.h>, o programa não executa, não gerando nenhum resultado.Erro na declaração da função main().Errada. A declaração da função main() está feita de forma correta. Nome da função mais os parênteses com a abertura e o fechamento das chaves. >b)O programa apresenta erro na compilação e não executa. Alternativa marcada b) O programa apresenta erro na compilação e não executa. 7/11/25, 1:22 PM Impressão da prova https://aluno.provafacilnaweb.com.br/#/finished-tests/619558/print 3/6 Questão 6 | Código 39490 | 0.80 / 0.80 Enunciado O português estruturado utiliza uma forma de escrever algoritmos que facilita o aprendizado de quem está começando a programar computadores. Para suportar essa forma de escrever algoritmos foram desenvolvidos alguns recursos, como o VisuAlg e o Portugol, que utilizam linguagens interpretativas simples, escritas em pseudocódigo, permitindo o funcionamento do algoritmo no computador.Considere o seguinte pseudocódigo://Início do algoritmoi: inteiroi := 10enquanto i < 102 faca escreva (i:4)i := i + 2fimenquanto//Fim do algoritmoPodemos afirmar que este algoritmo mostrará os números: Justificativa Resposta correta:Pares de 10 a 100, utilizando a estrutura de repetição enquanto/faca.Correta.A variável i é inicializada com o valor 10. Na sequência, existe uma estrutura de repetição enquanto/faca que testará se i é menor do que 102. Como a resposta é verdadeira, escreverá na tela o valor de i (que é igual a 10), adicionará 2 na variável i e voltará a testar se i é menor do que 102. Agora o valor de i é 12, continuando a ser menor do que 102 e permitindo escrever o valor de i na tela. Assim, o processo se repetirá até que i seja igual a 102. Nesse momento, a estrutura de repetição será desfeita sem escrever o valor de i na tela. Portanto, após o final do algoritmo, a tela mostrará os números pares de 10 até 100.Distratores:Pares de 11 a 102, utilizando a estrutura de repetição enquanto/faca. Errada. A estrutura de repetição enquanto/faca irá desarmar quando i for igual a 102. Assim, o pseudocomando escreva (i:4) não será executado e o 102 não será mostrado na tela.Paresde 12 a 100, utilizando a estrutura de repetição enquanto/faca.Errada. O primeiro valor a ser escrito na tela será 10 porque este é o valor inicial da variável i antes de ser incrementada de 2. Após a execução do algoritmo, serão mostrados na tela os números pares de 10 a 100 e não os números sequenciais de 12 a 100.Pares de 10 a 102, utilizando estrutura de repetição enquanto/faca.Errada. A estrutura de repetição enquanto/faca irá desarmar quando i for igual a 102. Assim, o comando escreva (i:4) não será executado e o 102 não será mostrado na tela. Após a execução do algoritmo serão mostrados na tela os números pares de 10 a 100 e não os números sequenciais de 10 a 102.Pares de 12 a 102, utilizando estrutura de repetição enquanto/faca. Errada. O primeiro valor a ser escrito na tela será 10 porque este é o valor inicial da variável i antes de ser incrementada de 2. Outro aspecto é que a estrutura de repetição enquanto/faca irá desarmar quando i for igual a 102. Assim, o pseudocomando escreva (i:4) não será executado e o 102 não será mostrado na tela. >d)Pares de 10 a 100, utilizando a estrutura de repetição enquanto/faca. Alternativa marcada d) Pares de 10 a 100, utilizando a estrutura de repetição enquanto/faca. 7/11/25, 1:22 PM Impressão da prova https://aluno.provafacilnaweb.com.br/#/finished-tests/619558/print 4/6 Questão 7 | Código 37691 | 0.80 / 0.80 Enunciado Temos, a seguir, um programa em Linguagem C que chama uma função para saber se o número informado é um número par, ímpar ou negativo.#include<stdio.h>main(){char nome[30]; int x, t;printf("\n\n DIGITE UM NOME: ");gets(nome); // suponha que o nome digitado foi "MARIO"t = strlen(nome);for(x = 0; x >= t-1; x++){printf("%c", nome[x]);printf("\n\n");}}Com base na implementação do programa desenvolvido em linguagem de programação C, teremos um devido resultado a ser apresentado na execução da linha printf("%c", nome[x]);, que poderá ser observado na análise do código. Utilize seus conhecimentos em lógica de programação para definir a exibição da letra assertiva na execução do programa após a última execução da linha printf("%c", nome[x]);, ou se existem outros pontos de erros que podem impedir o funcionamento correto do código, bem como problemas na compilação. São as opções:I - m.II - o.III - i.IV - Erro de lógica na estrutura de repetição. Nenhum valor será exibido.V - Erro de sintaxe no código.É correto o que se afirma em: Justificativa Resposta correta:IV e V, apenas.IV - Erro de lógica na estrutura de repetição. Nenhum valor será exibido.Correta. A linha do for(x = 0; x >= t-1; x++) está com o sinal de maior e igual e, na verdade, precisa ser <= para que a estrutura de repetição possa funcionar corretamente, assim não será exibido nenhum valor oriundo da linha printf("%c", nome[x]);.V - Erro de sintaxe no código. Correta. Está faltando declarar a diretiva de compilação #include<string.h>.Distratores:I - m. Incorreta.II - o. Incorreta.III - i. Incorreta.A linha do for(x = 0; x >= t-1; x++) está com o sinal de maior e igual e, com isso, apresenta um erro na lógica. O correto seria que o operador lógico fosse <= para que a estrutura de repetição do For possa funcionar de forma adequada. Dessa forma, não será exibido nenhum valor oriundo da linha printf("%c", nome[x]);. Outro ponto é que a diretiva de compilação #include<string.h> não foi declarada. Estas observações servem para ponderar que, como a estrutura de repetição não irá executar, então as letras "m", "o", "i" não serão exibidas. >c)IV e V, apenas. Alternativa marcada c) IV e V, apenas. Questão 8 | Código 38346 | 0.80 / 0.80 Enunciado No ano de 1854, o matemático britânico George Boole introduziu o formalismo que até hoje é utilizado para o tratamento sistemático da lógica — e que possui a denominação de álgebra booleana.A álgebra booleana tem a característica de ser um conjunto de operadores e de axiomas que, em seu contexto, são assumidos como verdadeiros sem necessidade de prova.Identifique, com base na tabela exposta, de qual operação estamos tratando: Justificativa Resposta correta: E. Correta. A operação “E” terá o valor 0 se pelo menos uma das variáveis de entrada tiver o valor 0. Assim, concluímos que o resultado da operação “E” valerá 1 se, e somente se, todas as entradas de valores tiverem o valor 1.Distratores:OU. Errada, pois é resultante de 1 se pelo menos uma das variáveis atribuídas na entrada valer 1. Como uma variável booleana pode valer 0 ou valer 1, e o resultado de uma operação qualquer poderá ser visto como uma variável booleana, basta que haja uma definição de quando a operação vale 1.OU e E. Errada, pois somente se aplica para a operação E.Complementação.Errada, pois é a operação cujo resultado obtido é o valor complementar ao que a variável irá apresentar.Complementação e OU. Errada, pois não se trata de nenhuma das duas. >a)E. Alternativa marcada a) E. 7/11/25, 1:22 PM Impressão da prova https://aluno.provafacilnaweb.com.br/#/finished-tests/619558/print 5/6 Questão 9 | Código 37560 | 0.80 / 0.80 Enunciado Na prova de matemática foi dada uma questão sobre tabela verdade e vários alunos obtiveram erro na questão. O simples fato é de que seu conceito causou alguma dúvida na aula em que essa temática não foi tratada, mas os alunos, por vergonha, não tiraram a dúvida.No seu caso, isso foi tratado no material proposto.Com base na tabela exposta, identifique a que tipo de tabela-verdade ela se refere: Justificativa Resposta correta: Bi-implicação. A bi-implicação estabelecida entre duas fórmulas será verdadeira quando ambas forem verdadeiras ou ambas forem falsas.Distratores:Negação. Errada. A negação tem como propósito mostrar o valor inverso da fórmula negada.Conjunção. Errada. A conjunção estabelecida entre duas fórmulas só será verdadeira quando ambas forem verdadeiras.Disjunção. Errada. A disjunção estabelecida entre duas fórmulas só será verdadeira quando ao menos uma delas for verdadeira.Implicação. Errada. A implicação estabelecida entre duas fórmulas só será falsa se a da esquerda for verdadeira e a da direita for falsa. >a)Bi-implicação. Alternativa marcada a) Bi-implicação. Questão 10 | Código 37550 | 2.00 / 2.80 Enunciado Você está realizando um processo seletivo para a empresa PAS INFO e a primeira etapa para seleção do candidato à vaga de programador júnior é a construção de um pseudocódigo para que você possa demonstrar seu entendimento de lógica de programação.Os dados para a conversão em pseudocódigo são: declarar duas variáveis do tipo inteiro, realizar a multiplicação destas variáveis e, por último, fazer a exibição do respectivo valor. O pseudocódigo deve obedecer a todos os seus preceitos de sintaxe. Resposta Início Declarar inteiro a, b, resultado a = 5 b = 3 resultado = a*b Escreva "O resultado da multiplicação é: ", resultado Fim Comentários Ausência de Entrada de Dados do Usuário;Pequenas Inconsistências Sintáticas. Justificativa Expectativa de resposta:01 inicio02 inteiro x,y, resultado03 ler (x)04 ler (y)05 resultado <-- x * y06 escrever (resultado)07 fim 7/11/25, 1:22 PM Impressão da prova https://aluno.provafacilnaweb.com.br/#/finished-tests/619558/print 6/6