Buscar

1

Prévia do material em texto

1.
		Leia atentamente o trecho de código abaixo e diga o que ele retornaria ao usuário:
int main ( ) {
    int i = 0;
    double x, y = 0;
    cout << "Digite um numero: ";
    cin >> x;
    while (x != 0){
        i = i + 1;
        y = y + x;
        cout << "Digite um numero: ";
        cin >> x;
    }
    y = y / i;
    cout << "Numero: " << y << "\n";
    system("PAUSE");
    return 0;
}
	
	
	
	A média dos elementos digitados 
	
	
	A quantidade de elementos pares
	
	
	A quantidade de elementos digitados
	
	
	O maior de todos os elementos digitados
	
	
	O menor de todos os elementos digitados
	
Explicação: 
 int i = 0;         //inicializa a quantidade de elementos digitados diferentes de zero
 double x, y = 0;          // y inicializa o somatorio dos valores de entrada
    cout << "Digite um numero: ";
    cin >> x;   //Lê o primeiro valor
    while (x != 0){      //Enquanto o valor de entrada não for zero
        i = i + 1;          //conta mais um número lido
        y = y + x;        //acumula o valor de x em y, gerando o somatório dos números lidos e armazenados em x
        cout << "Digite um numero: ";
        cin >> x;   //Lê o proóximo número
    }
    y = y / i;         //Divide a soma dos números lidos não nulos por i  ( i é o total de números lidos não nulos)
    cout << "Numero: " << y << "\n";   //Imprime a média armazenada em y
Logo : O programa calcula a média dos números digitados (diferente de zero)
	
	
	
	 
		
	
		2.
		Assinale a alternativa correta em relação a quantidade de vezes que a palavra "ALGORITMO" será impressa, no trecho de código abaixo: 
cont = 0;
while( cont < 30 ) {
   cout << "ALGORITMO" << endl;
   cont = cont + 1;
}
	
	
	
	30
	
	
	29
	
	
	15
	
	
	Nenhuma das alternativas.
	
	
	31
	
Explicação: 
Fazendo passo a passo :
cont = 0;
while( cont < 30 ) {
   cout << "ALGORITMO" << endl;
   cont = cont + 1;
}
	variável cont
	Teste cont < 30 ? Sim ou não ?
	0
	0 < 30 ? sim
	1
	1 < 30 ? sim
	2
	2 < 30 ? Sim
	3
	3 < 30 ? Sim
	4
	4 < 30 ? Sim
	5
	5 < 30 ? sim
	6
	6 < 30 ? sim
	7
	7 < 30 ? sim
	continuando até 29 
	 29  < 30 ? Sim
	30
	30 < 30 ? Não. Falso.  Não entra no while
Note que entrou 30 vezes no corpo do while e a cada vez que entrou imprimiu ALGORITMO
TELA
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
ALGORITMO
>>>>>>>>>>>>>>>>>>  Logo, imprimiu 30 vezes a palavra   ALGORITMO
 
	
	
	
	 
		
	
		3.
		A partir da comparação entre as estruturas while e do...while, é certo afirmar que:
	
	
	
	Dependendo da condição de teste, em ambos os casos o bloco de comandos controlado poderá não ser executado.
	
	
	Em termos de execução não há diferença. A diferença está, apenas, na sintaxe.
	
	
	Dependendo da condição de teste, em ambos os casos o bloco de comandos controlado será sempre executado, pelo menos uma vez.
	
	
	No do...while, o bloco de comandos controlado poderá não ser executado. Enquanto que no while o bloco de comandos será sempre executado, pelo menos uma vez.
	
	
	No while, o bloco de comandos controlado poderá não ser executado. Enquanto que no do...while o bloco de comandos controlado será sempre executado, pelo menos uma vez.
	
Explicação: 
	Falso.  No do/while primeiro se faz o que está no corpo do loop para depois testar e no while, se testa para depois fazer o queestá no corpo do loop.
	Em termos de execução não há diferença. A diferença está, apenas, na sintaxe.
	 
	Falso. No do/while o bloco de instruções será feito pelo menos 1 vez.
	No do...while, o bloco de comandos controlado poderá não ser executado. Enquanto que no while o bloco de comandos será sempre executado, pelo menos uma vez.
	 
	 Verdadeiro
	No while, o bloco de comandos controlado poderá não ser executado. Enquanto que no do...while o bloco de comandos controlado será sempre executado, pelo menos uma vez.
	 
	Falso.  No while pode não ser executado nenhuma vez.
	Dependendo da condição de teste, em ambos os casos o bloco de comandos controlado será sempre executado, pelo menos uma vez.
	 
	Falso. No do/while as instruções serão feitas pelo menos 1 vez.
	Dependendo da condição de teste, em ambos os casos o bloco de comandos controlado poderá não ser executado
	
	
	
	 
		
	
		4.
		Leia atentamente o trecho de código abaixo e diga o que ele apresentará ao usuário no final :
int main ( ) {
    int i = 0;
    double x, y = 0;
    cout << "Digite um numero: ";
    cin >> x;
    while (x != 0){
        i = i + 1;
        y = y + x;
        cout << "Digite um numero: ";
        cin >> x;
    }
    y = y / i;
    cout << "Numero: " << x << "\n";
    system("PAUSE");
    return 0;
}
	
	
	
	O menor de todos os elementos digitados
	
	
	A média dos elementos digitados 
	
	
	O último número digitado, ou seja, zero
	
	
	O maior de todos os elementos digitados
	
	
	A quantidade de elementos digitados
	
Explicação: 
A última impressão será o valor de x e o último valor de x é zero, pois foi o valor que parou a repetição.
Terminada a repetição, um novo y é gerado e depois o valor de x é impresso. Ou seja, 0.
 
	
	
	
	 
		
	
		5.
		Em relação às técnicas de programação e construção de algoritmos, assinale a alternativa que apresente corretamente duas características da estrutura de controle repetir ... até que.
	
	
	
	O teste de controle é realizado no início da estrutura / a saída da estrutura de repetição ocorre quando o resultado do teste é verdadeiro.
	
	
	A execução permanece no loop enquanto o resultado do teste for verdadeiro / a saída da estrutura de repetição ocorre quando o resultado do teste é falso.
	
	
	A execução permanece no loop enquanto o resultado do teste for falso / a saída da estrutura de repetição ocorre quando o resultado do teste é verdadeiro.
	
	
	As instruções no loop são executadas pelo menos uma vez / a saída da estrutura de repetição ocorre quando o resultado do teste é verdadeiro.
	
	
	O teste de controle é realizado no fim da estrutura / a saída da estrutura de repetição ocorre quando o resultado do teste é verdadeiro.
	
Explicação: 
A execução permanece no loop enquanto o resultado do teste for verdadeiro / a saída da estrutura de repetição ocorre quando o resultado do teste é falso.
	
	
	
	 
		
	
		6.
		Comando de repetição é utilizado quando se deseja repetir determinados comandos. Marque a opção que representa o uso do comando while para implementar a estrutura de um contador corretamente.
	
	
	
	while (if cont =10){ }
	
	
	while () { cout << "exibindo o número"; }
	
	
	int cont = 0; while (cont <=10){ cout << "exibindo o número " << cont; cont++; }
	
	
	while (repita 10 vezes) { }
	
	
	String cont = ""; { cont++; } while (cont!="") 
	
Explicação: 
A estrutura geral do while quando se usa contador no teste do loop é a seguinte :
while (   < condição... teste lógico ... com o contador >  )
 {
      < comandos>
      alteração do contador
}
 
Analisando ...
	 Falsa. Faltou a condição ou teste lógico ou variável que pode ser true ou false.
while () { cout << "exibindo o número"; }
                                     
	 
	Verdadeira. Pode se r encaixada na explicação no início.
	int cont = 0; while (cont <=10){ cout << "exibindo o número " << cont; cont++; }
	 
	FAlsa.  Não tem String em C++. Existe string, mas não String. Sintaxe incorreta no uso do while.
	String cont = ""; { cont++; } while (cont!="")
	 
	Falsa.  Sintaxe incorreta.  Uso de repita sem sentido.
	while (repita 10 vezes) { }
	 
	Falsa.  Uso incorreto do if na parte relativa à condição do while.
	while (if cont =10){ }
	
	
	
	 
		
	
		7.
		Considerando a seguinte sequencia de instruções, marque a alternativa que indica o comando correspondentepara preenchimento da lacuna. 
... 
cin>>matricula; 
______________ (matricula<99) 
{ 
cin>>matricula; 
}
	
	
	
	loop
	
	
	while
	
	
	do case
	
	
	for
	
	
	repeat
	
Explicação: 
	 
	Falso. Nâo tem repeat em C++.
	repeat
	 
	Falso.  Não se encaixa a sintaxe do comando for.
	for
	 
	 Verdadeiro
	while
	 
	 Falso. Não existe comando do... case.
	do case
	 
	Falso.  Nâo existe comando loop.
	loop
	
	
	
	 
		
	
		8.
		O que está sendo executado pelo programa C++ a seguir? 
int main() 
{ 
  int CONT, SOMA; 
  CONT = 0; 
  SOMA = 0; 
  while (CONT < 50) 
  { 
    SOMA = SOMA + CONT; 
    CONT = CONT + 2; 
  } 
} 
	
	
	
	Soma os 50 números pares digitados. 
	
	
	Soma todos os números pares de 0 a 48
	
	
	Soma todos os números pares de 0 a 50
	
	
	Soma todos os números ímpares de 0 a 49
	
	
	Soma todos os números de 0 a 49
		1.
		O professor de Algoritmos pediu aos alunos para que eles construíssem um programa, codificado na linguagem C++, e que exibisse os algarismos de um número, começando pelo algarismo da casa das unidades simples até o algarismo mais significativo.
Assinale a opção que apresenta o trecho capaz de exibir o que foi pedido, considerando apenas os valores maiores do que zero.
	
	
	
	int num; 
cout << "NUMERO: " ; 
cin >> num; 
while (num > 0) 
{   
   num = num div 10;
  cout << num % 10 << "\t"; 
}
	
	
	int num; 
cout << "Numero: ";
cin >> num; 
while (num > 0) 
 {
 cout << num % 10 << "\t" ; 
 num = num / 10; 
 }
	
	
	int num, digito; 
cout << "NUMERO: " ; 
cin >>num; 
while(num > 0) 
{
   digito = num mod 10; 
   cout<< digito << "\t" ; 
   num = num div 10; 
}
	
	
	int num; 
cout  << "NUMERO: ";
cin >> num; 
if (num > 0) 
{
    cout << num % 10 <<  "\t" ; 
}
else
    num=num/ 10; 
	
	
	int num, digito;
cout <<  " NUMERO: " ; 
cin>> num; 
while (num > 0) 
{
     num =  num / 10; 
     digito = num % 10 ; 
     cout << digito << "\t"; 
} 
	
Explicação: 
Conforme gabarito e aula de comando de repetição.
Note que o / nos dá o quociente da divisão e o % nos dá o resto da divisão.
	
	
	
	 
		
	
		2.
		Assinale a opção que corresponde à condição da estrutura de repetição que faz com que o programa abaixo imprima 4 vezes a expressão Bom dia.
int a = 8;
while  (  ____   )
 {
   cout << "Bom dia\n";
   a = a -2;
}
	
	
	
	a < 0
	
	
	a >= 0
	
	
	a <= 0
	
	
	a == 0
	
	
	a > 0
	
Explicação: 
Analisando o trecho temos que  :
· a variável a funciona como contador e  começa com 8. 
· a variável a varia de 2 em 2. Assim : 
· quando a é 8 imprime-se  Bom dia
· quando a é 6  imprime-se Bom dia
· quando a é 4 imprime-se Bom dia
· quando a é 2 imprime-se Bom dia
· quando a for zero não se pode mais imprimir Bom dia, pois já se imprimiu 4 vezes, como visto acima.
Logo, a opção certa é :  a > 0, pois quando a for zero, a repetição irá terminar.
	
	
	
	 
		
	
		3.
		Qual a estrutura de repetição mais indicada para os casos em que é necessário que o bloco de código a ser repetido seja sempre repetido pelo menos uma vez?
	
	
	
	repeat until
	
	
	for{}
	
	
	do{ }while
	
	
	while{}
	
	
	while do
	
Explicação: 
O comando do... while deixa fazer para depois testar. Logo, é feita apenas 1 vez.
No caso do comando while ou for, é possível não entrarmos no bloco do loop nenhuma vez.
 
	
	
	
	 
		
	
		4.
		Qual dos comandos abaixo permite que um bloco de comandos seja executado enquanto a variável num seja diferente de 0? 
	
	
	
	for ( i = 0; i == num; i++) 
	
	
	enquanto (num > 0) 
	
	
	for (i = num; i > 0; i++) 
	
	
	while (num != 0) 
	
	
	while (num == 0) 
	
Explicação: 
	 verdadeira
	while (num != 0)
	 
	FAlsa. Diferente é !=. Nesta opção está "enquanto num é igual  a zero."
	while (num == 0)
	 
	 FAlsa.  Nesta opção está "enquanto num for maior que zero"
	enquanto (num > 0)
	 
	 Falsa.  Teste incorreto no for.  == é para teste de igualdade.
	for ( i = 0; i == num; i++)
	 
	 FAlsa.  Não inicializa ou testa corretamente.
	for (i = num; i > 0; i++)
	
	
 
	
	
	
	 
		
	
		5.
		A fim de possibilitar a implementação de algoritmos estudamos algumas estruturas básicas, como estrutura de desvio de fluxo, estrutura de repetição etc. Entre as estrutura de repetição há uma na qual uma ação será executada pelo menos uma vez, antes da avaliação da condição. Esta estrutura é implementada em C++ pelo comando básico:
	
	
	
	for 
	
	
	for/while 
	
	
	while 
	
	
	do/for 
	
	
	do/while 
	
Explicação: 
O comando do...while faz para depois testar. Então, o bloco a ser repetido será executado pelo menos uma vez antes de testarmos a condição.
Os comando for ou while, temos que testar antes de fazer.
	
	
	
	 
		
	
		6.
		Assinale a alternativa correta em relação a quantidade de vezes que a palavra "PAZ" será impressa, no trecho de código abaixo: 
x = 50;
do{
y = 8;
do{
cout<<"PAZ \n";
y++;
} while ( y <10);
x--;
}while ( x > 48);
	
	
	
	8 vezes
	
	
	4 vezes
	
	
	5 vezes
	
	
	6 vezes
	
	
	7 vezes
	
Explicação: 
Analisando passo a passo o trecho dado :
x = 50;
do{
   y = 8;
   do{
       cout<<"PAZ \n";
       y++;
   } while ( y <10);
   x--;
} while ( x > 48);
 
	x
	y
	50
	8
	49
	9 
	48  (48 > 48 ? ) Falso
	10 ... 10 < 10 ? FALSO
	 
	8
	 
	9
	 
	10 ... 10 <  10 ? Falso
	 
	 
	 
	 
	 
	 
PAZ
PAZ
PAZ
PAZ
	
	
	
	 
		
	
		7.
		Considere o trecho abaixo sabendo que num é um variável inteira.
 
num = 11;
do {
 if (num % 2 == 0)
 cout << num << "\n";
 num = num -1 ;
} while (num != 0);
 
Assinale a opção correta :
	
	
	
	o trecho fornecido pára quando num for diferente de zero e são exibidos os valores 10 e 8, pelo menos.
	
	
	O trecho entra em loop.
	
	
	O trecho fornecido pára quando num for diferente de zero e o único número exibido é o 10.
	
	
	O trecho fornecido pára quando num for zero e os números exibidos são todos os pares de 10 até 0, nesta ordem.
	
	
	O trecho fornecido pára quando num for zero e os números exibidos são todos os pares de 10 até 2, nesta ordem.
	
Explicação: 
1a. opção está correta. Veja o teste de mesa :
	num
	num % 2 é igual a zero ? 
	num é diferente de zero ?  
	 
	11
	 11 % 2 é 1. Logo, é falso o teste do if.
	 
	 
	10
	 
	10 diferente de 0 ? sim
	 
	 
	10 % 2 é zero ? sim. Imprime o 10
	 
	 
	9
	 
	9 é diferente de 0 ? sim
	 
	 
	9 % 2 é zero ? Não
	 
	 
	8
	 
	8 é diferente de zero ? sim
	 
	 
	8 % 2 é zero ?  Sim. Imprime o 8 
	 
	 
	7
	 
	7 é diferente de zero ? sim
	 
	 
	7 % 2 é zero ? Não
	 
	 
	6  
	  6 % 2 é zero ? Sim. Imprime o 6 e decrementa para 5  valor de num 
	6 é diferente de zero  ? sim
	 
	 
	  E  assim continua ... irá parar quando num for zero...
Note que está imprimindo os pares de 10 até 2, pois quando decrementa num para zero, o teste do do...while falha.
	 
	 
	 
	 
	 
	 
Imprimirá  os números 10  8  6  4  2  , um embaixo do outro.
 
2a. opção é falsa.   Pára quando o valor de num for zero, mas não imprime o valor 0, justamente pelo já explicado no item anterior.
3a. opção é falsa.   Pára quando o valor de num for zero. Além disso, é um loop, então imprimem-se vários níumeros como mostrado na explicação da 1a. opção.
4a. opção é falsa.  Como mostrado no 1o. item, vários números são impressos :  os números 10  8  6  4  2  , um embaixo do outro.
5a. opção é falsa.  Falso. Como mostrado no 1o. item, vários números são impressos :  os números 10  8  6  4  2  , um embaixo do outro. Ocorre a parada do loop quando num for zero.
                   
	
	
	
	 
		
	
		8.
		Leia atentamente o trecho de código abaixo e diga o que ele retornaria ao usuário:
int main ( ) {
    int i = 0;
    double x, y = 0;
    cout << "Digite um numero diferente de zero : ";
    cin >> x;
    while (x != 0){
        i = i + 1;
        y = y + x;
        cout << "Digite um numero diferente de zero: ";
        cin >> x;
    }
    y = y / i;cout << "Numero: " << i << "\n";
    return 0;
}
	
	
	
	A média dos elementos digitados 
	
	
	O maior de todos os elementos digitados
	
	
	O menor de todos os elementos digitados
	
	
	A quantidade de elementos pares
	
	
	A quantidade de elementos digitados diferentes de zero.
		1.
		O trecho de código a seguir utiliza uma estrutura de repetição do tipo  for . Marque a alternativa que apresenta de forma correta o mesmo trecho utilizando a estrutura de repetição while.
Seja:
for( int i=3; i<100; i+=2)
     cout <<   i ;
 
	
	
	
	    int i;
    i=3;
    while(i<100)   
     cout << i;
      i=i+2;
   
	
	
	   int i;
    while (i<100) {
       i=3;
      cout << i;
      i=i+2;
   }
	
	
	    int i;
    i=3;
    while(i<100)
    {
         i=i+2;
        cout << i;
    }
	
	
	   int i;
    while (i<100) {
         cout << i;
         i=3;
         i=i+2;
    }
	
	
	   int i;
    i=3;
    while (i<100)   {
      cout << i;
      i=i+2;
 }
	
Explicação: 
A estrutura dos dois comandos é a seguinte :
 inicialização, teste lógico, incremento/decremento e o trecho da repetição.
conforme aula e gabarito.
 
	
	
	
	 
		
	
		2.
		Na execução do comando while o teste da condição que controla a execução, ou não, dos comandos subordinados, é feito, sempre, antes de cada iteração. Desta forma, é correto afirmar que:
	
	
	
	Os comandos subordinados serão executados no mínimo uma vez.
	
	
	A condição de teste deverá ser sempre falsa antes do início da execução.
	
	
	Independentemente da condição de teste, os comandos subordinados sempre serão executados.
	
	
	Os comandos subordinados poderão não ser executados.
	
	
	A condição de teste deverá ser sempre verdadeira antes do início da execução.
	
Explicação: 
No comando enquanto primeiro se testa a condição para depois se executar o corpo da repetição. Se a condição for falsa nada dentro do corpo da repetição será executado.
	
	
	
	 
		
	
		3.
		Para que a palavra "AMOR" seja escrita na tela 5 vezes, qual condição apropriada deve ser colocada no trecho de código abaixo? Marque a opção correta. 
x = 1;
while ( _________ )
{
cout<<"AMOR \n";
x = x + 2;
} 
	
	
	
	x < 5
	
	
	x <= 11
	
	
	x > 10
	
	
	x <= 5
	
	
	x < 10
	
Explicação: 
Analisando : 
x = 1;
while ( _________ )
{
cout<<"AMOR \n";
x = x + 2;
}
Note que x é um contador que é inicializado com 1 e que varia de 2 em 2. Logo, é preciso testar  x < 10.  Veja que entraremos no loop quando  :
x vale 1
x vale 3
x vale 5
x vale 7
x vale 9
E quando x for para 11, o teste do loop falhará. Então, teremos entrado 5 vezes no bloco do while.
	
	
	
	 
		
	
		4.
		Considere o trecho de programa em C++ abaixo. Marque a opção que, corretamente, mostra o que é impresso na tela. 
int x, y, z; 
x = 5; 
y = 20; 
while (x <= y) { 
z = x + y; 
x = x + 5; 
} 
cout << z << endl; 
	
	
	
	25
	
	
	30
	
	
	20
	
	
	35
	
	
	40
	
Explicação: 
Analisando passo a passo...
x recebe 5 e y recebe 20
1o. teste ... 5 <= 20 ? sim. Entra no loop e faz  :
                 z recebe 25
                 x recebe 5+5, que dá 10
2o. teste ... 10 <= 20 ? sim. Entra no loop e faz :
    z recebe 30
    x recebe 15
 
3o. teste ... 15  <= 20 ? sim. Entra no loop e faz :
    z recebe 35
    x recebe 20
 
4o. . teste ... 20  <= 20 ? sim. Entra no loop e faz :
    z recebe 40
    x recebe 25
5o. teste ... 25 <= 20 ? Falso.
Depois do fim do while será impresso o valor de z que é 40.
 
	
	
	
	 
		
	
		5.
		As estruturas de repetição permitem executar mais de uma vez um mesmo trecho de código. Trata-se de uma forma de executar blocos de comandos somente sob determinadas condições, mas com a opção de repetir o mesmo bloco quantas vezes forem necessárias. As estruturas de repetição são úteis, por exemplo, para repetir uma série de operações semelhantes que são executadas para todos os elementos de uma lista ou de uma tabela de dados, ou simplesmente para repetir um mesmo processamento até que uma certa condição seja satisfeita. Sejam as seguintes afirmativas:
I - Toda estrutura de repetição apresenta um teste no início e um na saída.
II - Toda estrutura de repetição pode ser substituída por um conjunto de estruturas de decisão, onde não haja testes ou condições.
III - Toda estrutura de repetição apresenta um critério de parada.
IV- Toda estrutura de repetição apresenta fluxo de execução invertido devido a diversas iterações.
 
Marque a alternativa que representa apenas as afirmativas CORRETAS:
	
	
	
	I
	
	
	I e IV
	
	
	I e III
	
	
	III
	
	
	II, III e IV
	
Explicação: 
I -  Toda estrutura de repetição apresenta um teste no início e um na saída.   Falso.  Ou no início ou no fim.
II - Toda estrutura de repetição pode ser substituída por um conjunto de estruturas de decisão, onde não haja testes ou condições.
      Falso.  São estruturas diferentes.
III - Toda estrutura de repetição apresenta um critério de parada.  Verdadeiro.
IV- Toda estrutura de repetição apresenta fluxo de execução invertido devido a diversas iterações.  Falso.
	
	
	
	 
		
	
		6.
		O que está sendo executado pelo programa C++ a seguir? 
int main() 
{ 
  int CONT, SOMA; 
  CONT = 0; 
  SOMA = 0; 
  while (CONT < 50) 
  { 
    SOMA = SOMA + CONT; 
    CONT = CONT + 2; 
  } 
} 
	
	
	
	Soma todos os números ímpares de 0 a 49
	
	
	Soma todos os números pares de 0 a 50
	
	
	Soma os 50 números pares digitados. 
	
	
	Soma todos os números pares de 0 a 48
	
	
	Soma todos os números de 0 a 49

Continue navegando