Buscar

CCT0825 - Teste de conhecimento - Aula 8


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;
    double x, y = 0;
    for (i = 0; i < 10; i++){
        cout << "Digite um numero: ";
        cin >> x;
        y = y + x;  
    }
    cout << "Numero: " << y << "\n";
    system("PAUSE");
    return 0;
}
	
	
	
	A quantidade de elementos digitados
	
	
	A média dos elementos digitados
	
	
	A soma dos elementos pares
	
	
	O maior de todos os elementos digitados
	
	
	A soma de todos os elementos
	
Explicação:
Antes do loop é lido um valor e armazenado em x e a cada rodada o valor de x é acumulado em um somatório, indicado na linha :
    y = y + x;
Assim, ao final do for, teremos em y o somatório de todos os números que x armazenou.
	
	
		2.
		Observe o trecho de código a seguir:
Sobre ele, podemos afirmar que:
I. A estrutura de repetição escolhida costuma ser utilizada quando se sabe quantas repetições serão feitas;
II. A cada passada pela estrutura repetitiva, o contador será incrementado em duas unidades;
III. Para que o sexo seja contado, será necessário que o usuário digite tanto "F" quanto "f".
	
	
	
	Somente a afirmativa I é verdadeira.
	
	
	Somente a afirmativa III é verdadeira.
	
	
	As afirmativas I, II e III são verdadeiras.
	
	
	As afirmativas I e II são verdadeiras.
	
	
	As afirmativas I e III são verdadeiras.
	
	
	
	 
		
	
		3.
		Imagine que você precisa escrever um programa em C++ que receba o sexo de 100 pessoas (F para Feminino ou M para Masculino). Ao final da leitura dos sexos, o programa precisa exibir as seguintes informações: quantidade de mulheres, quantidade de homens, percentual de mulheres e percentual de homens.
Observações: 1. O programa deve funcionar com "F" e "M" maiúsculos ou minúsculos; 2. A estrutura de repetição a ser utilizada deve ser FOR.
Sabendo disso, qual seria o trecho de repetição adequado para esse programa?
	
	
	
	for (int cont=1;cont<=100;cont++) {
  cout <<"Qual o sexo? ";
  cin >>qtdeF;
  if (sexo==F && sexo==f)
  { qtdeF--; }
  else if (sexo==M || sexo==m)
  { qtdeM--; }
}
	
	
	for (int cont=1;cont<=100;cont++) {
  cout <<"Qual o sexo? ";
  cin >>sexo;
  if (sexo==F || sexo==f)
  { qtdeF++; }
  else if (sexo==M || sexo==m)
  { qtdeM++; }
}
	
	
	for (int cont=1;cont<=100;cont++) {
  cin <<"Qual o sexo? ";
  cout >>qtdeF;
  if (sexo==F && sexo==f)
  { qtdeF++; }
  else if (sexo==M || sexo==m)
  { qtdeM++; }
}
	
	
	for (int cont=1;cont>=100;cont--) {
  cout <<"Qual o sexo? ";
  cin >>sexo;
  if (sexo==F && sexo==f)
  { qtdeF++; }
  else if (sexo==M || sexo==m)
  { qtdeM++; }
}
	
	
	for (int cont=1;cont>=100;cont--) {
  cout <<"Qual o sexo? ";
  if (sexo==F && sexo==f)
  { qtdeF++; }
  else if (sexo==M &&| sexo==m)
  { qtdeM++; }
}
	
	
	
	 
		
	
		4.
		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 III
	
	
	II, III e IV
	
	
	I e IV
	
	
	III
	
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.
	
	
	
	 
		
	
		5.
		O que o trecho de programa em C++ abaixo imprime na tela ?
   int x;
   for (x = 5; x > 0; x--)
     if (x % 3 == 0)
        cout << x - 1 << " ";
     else
        cout << x + 1 << " ";
 
 
	
	
	
	6 5 3 2 1
 
	
	
	5 6 3 2 1
 
	
	
	5 4 3 2 1
 
	
	
	6 5 2 3 2
 
	
	
	6 5 2 3 1
 
	
Explicação:
  int x;
   for (x = 5; x > 0; x--)
     if (x % 3 == 0)
        cout << x - 1 << " ";
     else
        cout << x + 1 << " ";
 
Analisando o trecho dado e fazendo teste de mesa :
	x
	x > 0 ? 
	(x % 3 == 0) ? 
	5
	5 > 0 ? sim
	 5 % 3 é zero ? Não. Imprime 6
	4
	4 > 0 ? sim 
	4 % 3 é zero ? não. Imprime 5
	3
	 3 > 0 ? Sim
	3 % 3 é zero ? sim. Imprime 2
	2
	 2 > 0 ? sim
	 2 % 3 é zero ? não. Imprime 3
	1
	 1 > 0 ? sim 
	 1 % 3 é zero ? não. Imprime 2
	 0
	 0 > 0 ? não
	 
TELA 
6    5    2   3   2
	
	
	
	 
		
	
		6.
		Marque a opção correta.  Considere o trecho de programa feito abaixo em C++. O que é impresso na tela ?
 
   int conta, num = 1, prod = 1;
   for (conta = 4; conta > 0; conta--) {
      prod = prod *num;
      num++;
   }
   cout << "Prod = "  << prod << "  num = " << num << endl;
 
	
	
	
	Prod = 24 num = 5
	
	
	 
Prod não pode ser calculado e num assumirá o valor final 5.
	
	
	 
             Prod = 1  num = 2
Prod = 2   num = 3
Prod = 6   num = 4
Prod = 24 num = 5
 
	
	
	 
Prod = 6   num = 5
	
	
	 
Prod = 6  num = 4
	
Explicação:
Analisando o trecho e fazendo em seguida um teste de mesa :
   int conta, num = 1, prod = 1;
   for (conta = 4; conta > 0; conta--) {
          prod = prod *num;
         num++;
   }
   cout << "Prod = "  << prod << "  num = " << num << endl;
 
TESTE de mesa :
 
	conta
	conta > 0
	num 
	prod
	4
	 4 > 0 ? sim
	1
	1
	3
	3 > 0 ? sim
	2
	1
	2
	2 > 0 ?  sim
	3
	2
	1
	1 > 0 ? sim
	4
	6
	0
	0 > 0 ? FAlso
	5
	24
Terminando o for, será impresso :
Prod = 24 num = 5
 
 
	
	
	
	 
		
	
		7.
		Qual dos comandos abaixo permite que um bloco de comandos seja executado enquanto a variável num seja diferente de 0?
	
	
	
	for (i = num; i > 0; i++)
	
	
	enquanto (num > 0)
	
	
	for ( i = 0; i == num; 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++)
	
	
 
	
	
	
	 
		
	
		8.
		Ao fazer um programa de computador, algumas estruturas precisam ser utilizadas. Assinale a alternativa correta para que um programa repita 200 vezes um bloco de comandos através da estrutura de repetição FOR na linguagem C++.
	
	
	
	for (int i=0; i =< 200; i++)
	
	
	for ( i=0; i <= 200; i++)
	
	
	for (int i=0; i < 200; i++)
	
	
	for (int i=0; i <= 200; i++)
	
	
	for (int i=0, i <= 200, i++)
	
Explicação:
	 
	 Verdadeira
	for (int i=0; i < 200; i++)
	 
	 Falsa. Entraremos 201 vezes no bloco do for, pois i começou de 0 e é <= no teste do for.
	for (int i=0; i <= 200; i++)
	 
	 FAlsa. A variável i não foi declarada.
	for ( i=0; i <= 200; i++)
	 
	 Falsa.  Não existe =<
	for (int i=0; i =< 200; i++)
	 
	 Falsa.  Uso indevido do for. Não se põe vírgula e sim ponto e vírgula.
	for (int i=0, i <= 200, i++)

Continue navegando