Buscar

Teste_05_01

Prévia do material em texto

Analise o trecho abaixo que um aluno desenvolveu na linguagem C++ e escolha a opção onde estão os valores que aprecem na
tela. 
 int x = 4, y = 14, t;
 float z;
 if( x < y ) { t=x; x=y; y=t;}
 z = (x % y) / y;
 cout << x << " " << y << " " << z ;
 
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 << " ";
 
 
1.
4 14 0.5
4 14 0
14 4 0.5
14 4 0
0.5 4 14
 
 
 
Explicação: O operador / quando ambos são inteiros resulta em um quociente inteiro
 
 
 
 
2.
1 4
Ocorrerá erro, pois o trecho não compila.
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.
 
 
 
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; 
 else 
 cout << x + 1 << " " << y - 1 << " " << z + 2 << " " << k - 2; 
 
Analise o código abaixo e marque as saídas corretas:
 
#include < iostream >
using namespace std;
 
int main () {
 
int x, i;
x = 1;
 cout << x;
i = 6;
 x = x + i;
cout << x;
 
if ( x <= 7) {
 cout << x;
 x = x + 10;
 } else {
 cout << x;
 }
 retun 0;
 }
 
3.
10 12 2 0
x = 10 y = 12 z = 0 k = 0
x = 10 y = 12 z = 0.833 k = 0
x= 11 y = 11 z = 2 k = 0
11 11 2 0
 
 
 
Explicação:
É preciso fazer um teste de mesa ou chinês e encontrar a resposta correta, como indicado. Para isso, o conteúdo sobre comando
condicional, atualmente, na aula 5, é suficiente, junto com declaração de variáveis de aula anterior.
 
x recebe 10 e depois
y recebe 3 e depois y recebe 10+3-1, que dá 12
z recebe 10/12, que dá 0
k recebe 2
TEste do if é falso. Então, entra-se no else e é impresso : 11 11 2 0 
 
 
 
 
4.
0, 6 e 7
1, 7 e 7
Em linguagem de programação, existe uma estrutura que é empregada em situações em que é preciso tomar uma decisão a
respeito de determinado resultado que será obtido em duas situações diversas. Marque a opção que determina a estrutura de
controle citada:
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
1, 7, 17
1, 6 e 16
1, 6 e 7
 
 
 
Explicação:
int x, i;
x = 1;
 cout << x;
i = 6;
 x = x + i;
cout << x;
 
if ( x <= 7) {
 cout << x;
 x = x + 10;
 } else {
 cout << x;
 }
Fazendo um teste de mesa, temos :
x = 1 e depois é impresso o valor 1
i recebe 6 e então, x recebe 1+6, que dá 7. Então, 7 é impresso.
Chegamos na condição do if e testamos se 7 <= 7. É verdade ? Sim. Então, 7 é impresso e depois, x recebe 7 + 10, que dá 17.
Ou seja, foi impresso 1 7 7 
 
 
 
 
5.
Decisão
Vetorial
Repetição
Matricial
Recursiva
 
 
 
Explicação:
A opção que determina a estrutura de controle citada é a Decisão
 
 
 
 
6.
Se (AV1 >= 4) e (AV2 >= 4)
Se (AV1 >= 4) ou (AV2 >= 4)
Se (AV1 > 4) e (AV2 > 4)
Se (AV1 > 4) ou (AV2 > 4)
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
Nenhuma outra alternativa satisfaz
 
 
 
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
 
 
 
 
7.
A II E IV estão corretas
Somente a IV está correta
Somente a I está correta
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 . 
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"; 
 
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
 
 
 
 
8.
x= 10 y = 12 z = 0 k = 2
Nada é impresso na tela, pois k é zero.
10 12 0.833 1.2
x = 10 y = 12 z = 0.833 k = 1.2
10 12 0 2
 
 
 
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

Mais conteúdos dessa disciplina