Buscar

Aula 5 - Teste Conhecimento_ algoritmos



Continue navegando


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');