Baixe o app para aproveitar ainda mais
Prévia do material em texto
1. O que será impresso, após a execução do código, a seguir? #include < iostream > using namespace std; int main() { for(int i=25;i>0;i=i-6) cout << i << " "; system( "pause" ); } 0 0 0 0 0 12 5 10 7 13 12 8 10 7 15 10 5 0 13 7 25 19 13 7 1 Explicação: Analisando o trecho do programa : for(int i = 25 ;i>0 ;i=i-6) cout << i << " "; Façamos um teste de mesa : i i > 0 ? 25 sim 19 sim 13 sim 7 sim 1 sim -5 não TELA : 25 19 13 7 1 2. Marque a opção correta. Considere o trecho de programa feito abaixo em C++. O valor final de soma e o valor final de num, são respectivamente int contador, num = 1, soma = 0; for (contador = 1; contador <= 20; contador += 5) { soma = soma + num; num = num + 3; } 22 e 10 22 e 13 12 e 10 o valor de soma está indefinido e o valor de num é 10 22 e 20 Explicação: Analisando o trecho : int contador, num = 1, soma = 0; for (contador = 1; contador <= 20; contador += 5) { soma = soma + num; num = num + 3; } Fazendo teste de mesa : contador num soma contador <= 20 1 1 0 sim 6 4 1 sim 11 7 5 sim 16 10 12 sim 21 13 22 21 <= 20 ? Falso. Os valores finais das variáveis estão em vermelho. Logo, a resposta é 22 e 13 3. 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 e IV III I I e 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. 4. 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 quantidade de elementos pares A quantidade de elementos digitados O menor de todos os elementos digitados A média dos elementos digitados O maior 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) 5. 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 >>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? "; 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++; } } 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 >>qtdeF; if (sexo==F && sexo==f) { qtdeF--; } else if (sexo==M || sexo==m) { qtdeM--; } } 6. 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 << " "; 5 6 3 2 1 5 4 3 2 1 6 5 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 7. Após a execução do trecho de código, abaixo, quais números serão exibidos na tela? for(int i=3; i<100; i=i+19) cout << " " << i; 3 22 41 60 79 99 3 22 41 60 79 98 3 22 41 59 79 98 3 23 42 61 80 99 3 23 40 60 79 98 Explicação: Considerando o trecho for(int i = 3; i<100; i = i+19) cout << " " << i; fazendo passo a passo : i i < 100 ? 3 3 < 100 ? Sim 3+ 19 é 22 22 < 100 ? Sim 22+ 19 é 41 41 < 100 ? Sim 41 + 19 é 60 60 < 100 ? sim 60 + 19 é 79 79 < 100 ? sim 79 + 19 é 98 98 < 100 ? sim 98 + 19 é 117 117 < 100 ? falsa. Então não entra no loop TELA 3 22 41 60 79 98 8. Considere a estrutura for ( ; ; ), e assinale a afirmação correta: Não é executada pois não tem incremento. Não é executada, pois não tem variável. Não é executada, pois não tem condição de teste. Tem a sintaxe incorreta. É um laço infinito.
Compartilhar