Prévia do material em texto
Considere o trecho de programa em C++ e assinale a opção que mostra o que é impresso na tela. int x, y, z; x = 10; y = 6; z = x/y; cout << z << " "; if (z > 0) z = x % y; cout << z << " "; ALGORITMOS Lupa Calc. Vídeo PPT MP3 CCT0749_A5_201908088311_V1 Aluno: CLEDSON RENATO NUNES CAVALCANTI Matr.: 201908088311 Disc.: ALGORITMOS 2020.1 EAD (G) / EX Prezado (a) Aluno(a), Você fará agora seu TESTE DE CONHECIMENTO! Lembre-se que este exercício é opcional, mas não valerá ponto para sua avaliação. O mesmo será composto de questões de múltipla escolha. Após responde cada questão, você terá acesso ao gabarito comentado e/ou à explicação da mesma. Aproveite para se familiarizar com este modelo de questões que será usado na sua AV e AVS. 1. Ocorrerá erro, pois o trecho não compila. 1 4 4 4 4 1 1 1 Explicação: Basta fazer teste de mesa. DEssa forma, atribuir os valores das variáveis, testar e ver o que é impresso. javascript:voltar(); javascript:voltar(); javascript:duvidas('2984671','793701','1','3520809','1'); javascript:diminui(); javascript:aumenta(); javascript:calculadora_on(); javascript:abre_frame('1','5','','L1NHDLK262UGBRFWPF8A','314386488'); javascript:abre_frame('2','5','','L1NHDLK262UGBRFWPF8A','314386488'); javascript:abre_frame('3','5','','L1NHDLK262UGBRFWPF8A','314386488'); Assinale a opção correta. O que será impresso na tela, respectivamente, após duas execuções seguidas, sendo que na 1ª. execução o valor de entrada é 10 e na 2ª. execução o valor de entrada é 0. Para isso, considere o seguinte trecho em C++. int num; cout << "Digite um numero: "; cin >> num; if (num > 0) { num++; cout << num << " "; } cout << num + 1 << " "; if (num < 0) { num--; cout << num << " "; } else cout << num * 10 ; 2. 11 12 110 11 12 110 1 0 11 110 1 10 11 110 1 0 11 110 1 0 Explicação: Analisando ... 1a. execução : Valor de entrada é 10. Logo, num recebeu 10 na entrada. 1o. teste >>> 10 > 0 ? Sim . Então, entramos no bloco do 1o. if e fazemos num receber 11. Depois, exibimos 11 na tela. Seguindo... é exibido o valor de num + 1, ou seja, é exibido na tela o valor 12. 2o. teste >>> 11 < 0 ? Não. Então, entramos no último else que imprime o resultado de 11 * 10, que é 110 Concluindo a 1a. execução para a entrada 10 : 11 12 110 2a. execução : Valor de entrada é 0. Logo, num recebe 0 na entrada. 1o. teste >>> 0 > 0 ? Falso. Não entramos no 1o. if. SEguindo em frente temos que o valor de num+1 é exibido na tela. Ou seja, 1 é exibido na tela. 2o. teste >>> 1 < 0 ? Não. Então, entramos no último else, que imprime o valor de 1 * 10, que é 10. Concluindo a 2a. execução para a entrada 0 : 1 10 javascript:duvidas('794409','793701','2','3520809','2'); javascript:duvidas('3291899','793701','3','3520809','3'); Considere um programa em C++ que leia os valores A, B, C e informe se a soma dos dois primeiros termos é maior do que o terceiro. A estrutura seletiva adequada para esse teste é: Quando estudamos sobre a estrutura do se ... entao...senao, sempre nos é dito que, quando tivermos duas possibilidades de respostas, devemos escolher a estrutura do se composto ao invés de usar duas estruturas do se simples. Observe as afirmativas abaixo e, depois, escolha a resposta que respalda o uso do se composto pelo que foi dito acima ao invés do se simples. I Maior clareza no código, mas não influência na eficiência do mesmo II Maior eficiência porque diminui o número de testes no código III Maior eficiência somente porque o código fica mais legível, visto que o resultado final é o mesmo IV Somente uma escolha do desenvolvedor, visto que o resultado o resultado final é o mesmo Para satisfazer a regra de que para fazer AV3 o aluno deve ter nota maior ou igual a 4 em pelo menos uma das outras duas Avaliacoes, qual seria a sentença correta 3. do { cout << "A soma de A e B é maior do que C!"; } while ((A+B)>C) for ((A+B)>C) { cout << "A soma de A e B é maior do que C!"; } while ((A+B)>C) { cout << "A soma de A e B é maior do que C!"; } if ((A+B)>C) { cout << "A soma de A e B é maior do que C!"; } switch ((A+B)>C) { cout << "A soma de A e B é maior do que C!"; } 4. Somente a IV está correta Somente a I está correta A II E IV estão corretas A II E A III estão corretas Somente a II está correta Explicação: I Maior clareza no código, mas não influência na eficiência do mesmo . Comentário : Falso. Traz clareza e afeta a eficiência sim, pois acaba se fazendo testes desnecessários. II Maior eficiência porque diminui o número de testes no código Comentário : Correto. III Maior eficiência somente porque o código fica mais legível, visto que o resultado final é o mesmo. Comentário : Falso. Não é só legibilidade, mas é uma questão de eficiência, pois evita-se teste desnecessário. IV Somente uma escolha do desenvolvedor, visto que o resultado o resultado final é o mesmo Comentário : Falso. O desenvolvedor pode escolher sim, mas o uso adequado do condicional composto pode trazer maior eficiência para o código. Opção correta : Somente a II está correta 5. javascript:duvidas('793946','793701','4','3520809','4'); javascript:duvidas('794355','793701','5','3520809','5'); Uma pessoa deseja verificar se o total gasto durante o mês ultrapassa o valor de seu salário. Imaginando que você tenha um algoritmo no qual o salário esteja armazenado na variável SAL e o total de gastos esteja armazenado na variável GASTOS, como deve ser escrita a estrutura seletiva responsável por testar o que você deseja descobrir? Assinale a opção correta. O que será impresso na tela, respectivamente, após duas execuções seguidas, sendo que na 1ª. execução o valor de entrada é 7 e na 2ª. execução o valor de entrada é 8. Para isso, considere o seguinte trecho em C++. int num; Se (AV1 > 4) ou (AV2 > 4) Se (AV1 >= 4) e (AV2 >= 4) Se (AV1 >= 4) ou (AV2 >= 4) Nenhuma outra alternativa satisfaz Se (AV1 > 4) e (AV2 > 4) Explicação: Verdadeira Se (AV1 >= 4) ou(AV2 >= 4) Falsa. Tinha que ser >= e não apenas > Se (AV1 > 4) ou (AV2> 4) FAlsa. Nâo tem que ter 4 ou mais nas duas provas, mas apenas em uma das provas. Se (AV1 >= 4) e (AV2 >= 4) FAlsa. Tinha que ser >= e no lugar do e tinha que se ou. Se (AV1 > 4) e (AV2 > 4) Falsa. A 1a. alternativa é a correta. Ou seja : Se (AV1 >= 4) ou (AV2 >= 4) Nenhuma outra alternativa satisfaz 6. se (GASTOS==SAL) escreva("Você gastou mais do que deveria!") se (GASTOS escreva("Você gastou mais do que deveria!") se (GASTOS>SAL) escreva("Você gastou mais do que deveria!") se (GASTOS<=SAL) escreva("Você gastou mais do que deveria!") se (GASTOS>=SAL) escreva("Você gastou mais do que deveria!") 7. javascript:duvidas('3291908','793701','6','3520809','6'); javascript:duvidas('794422','793701','7','3520809','7'); cout << "Digite um numero: "; cin >> num; if (num != 2 || num != 4 || num != 6) { num = num + 2; cout << num << " "; } if (num != 8) { num--; cout << num << " "; } else cout << num * 5 ; Considere o trecho de programa em C++. O que é impresso na tela ? int x = 10, y = 3, z, k; y = x + y - 1; z = x/y; k = y % x; if ( k != 0) cout << "x = " << x << " y = " << y << " z = " << z << " k = " << k << "\n"; 9 40 9 8 10 9 8 10 40 9 8 10 40 9 6 10 9 Explicação: Analisando o trecho de programa em C++ ... 1a. execução : num recebe 7. Daí, testamos o 1o. if. Note que usamos o || lógico. A condição é verdadeira e entramos no bloco do 1o. if. Então, num recebe 9 e é impresso o valor 9 na tela. Seguimos para o próximo if e testamos sua condição. É verdade que 9 != 8 ? Sim. Entramos no bloco do 2o. if e então decrementamos 9 para 8 e imprimimos o valor 8. Concluindoesta 1a. execução : Foram impressos 9 8 2a. execução : num recebe 8. Daí, testamos o 1o. if. Note que usamos o || lógico. A condição é verdadeira e entramos no bloco do 1o. if. Então, num recebe 10 e é impresso o valor 10. Seguimos para o próximo if e testamos sua condição. É verdade que 10 != 8 ? Sim. Entramos no bloco do 2o. if e então decrementamos 10 para 9, imprimindo o valor 9. Concluindo esta 2a. execução : Foram impressos 10 9 8. Nada é impresso na tela, pois k é zero. x= 10 y = 12 z = 0 k = 2 10 12 0 2 10 12 0.833 1.2 x = 10 y = 12 z = 0.833 k = 1.2 javascript:duvidas('831095','793701','8','3520809','8'); Explicação: É preciso fazer um teste de mesa ou chinês e encontrar a resposta correta, como indicado. Para isso, o conteúdo da aula 5 é suficiente, junto com declaração de variáveis de aula anterior. int x = 10, y = 3, z, k; y = x + y - 1; z = x/y; k = y % x; if ( k != 0) cout << "x = " << x << " y = " << y << " z = " << z << " k = " << k << "\n"; Teste de mesa x y z k 10 3 12 0 2 y recebe 10+3-1, que é 12. Logo, y recebe 12 z recebe x/y, que é 10/12 que dá zero. k recebe 12%10, que dá 2. Como k é diferente de 0 temos que será impresso : x = 10 y = 12 z = 0 k = 2 Legenda: Questão não respondida Questão não gravada Questão gravada Exercício inciado em 30/04/2020 16:04:53. javascript:abre_colabore('36380','189326706','3777074455');