Buscar

Linguagem C

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 100 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 100 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 100 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Analise o trecho de código abaixo e determine qual a saída gerada:
int i,  A = 0, B = 1 ;
for (i = 1; i < 5; i++) {
      A = B;
      B = i + B * A;
}
cout << " A = " <<  A << " B =  " << B;
	
	
	
	A = 39  B = 1525
	
	
	A = 8 B = 67
	
	
	A = 67  b = 4757
	
	
	A = 6 B = 39
	
	
	A = 0 B = 1
	
	
	
	 
		
	
		2.
		int main() {
  int contador = 1; 
  while (contador < 10)
 {
    printf("%d ", contador);
    contador++;
} 
return 0;
}
	
	
	
	1 2 3 4 5 6 7 8 9
	
	
	1 2 3 4 5 6 7 8 9 10
	
	
	0 1 2 3 4 5 6 7 8 9 10
	
	
	1 2 3 4 5 6 7 8 9 10 11
	
	
	0 1 2 3 4 5 6 7 8 9 10 11
	
	
	
	 
		
	
		3.
		O programa abaixo terá qual saída?
int main() {
int j = 2;
for ( int i = 1 ; i < = 3 ; i++ ) {
     cout << i * j << endl; }
}
	
	
	
	12
	
	
	1 * 2 = 2
2 * 2 = 4
3 * 2 = 6
	
	
	2, 4, 6
	
	
	1 * 2
2 * 2
2 * 3
	
	
	2
4
6
	
	
	
	 
		
	
		4.
		Considere o trecho de código abaixo. O que será impresso quando o programa for executado?
int main()
{
    int contador = 10; 
     
    while (contador > 1) 
    {
          printf("%d ", contador); 
          
          contador--;
         
    }
     
    return 0; 
}
	
	
	
	Nunca vai parar. 1 1 1 1 1 1 1 1 1 1 1 1 ...
	
	
	Nunca vai parar. 10 10 10 10 10 10 10 10...
	
	
	10 9 8 7 6 5 4 3 2 1
	
	
	1 2 3 4 5 6 7 8 9
	
	
	10 9 8 7 6 5 4 3 2
	
Explicação:
A estrutura while repete o bloco enquanto o teste for verdadeiro.
Se a variável contador começa com 10 e exibe o valor do contador enquanto ele for maior do que, significa que quando ele for decrementado e chegar a 1, interromperá a repetição;
Resposta correta: 10 9 8 7 6 5 4 3 2
	
	
	
	 
		
	
		5.
		Analise o código a seguir e marque a alternativa que exprime o que esse trecho de código executa, caso o usuário introduza um número positivo maior que zero:
#include < stdio.h> //Retire o espaço depois de < quando for compilar
int main()
{
int x, i=1;
printf("Entre com numero: "); scanf("%d", &x);
while(i<=x)
{
    if(i%2!=0) printf("%d\n", i);
    i++;
}
return 0;
}
	
	
	
	O código mostra os números divisíveis por 3.
	
	
	O código mostra os todos os divisores ímpares de um número.
 
	
	
	O código mostra os números divisíveis por 2.
	
	
	O código mostra os todos os números pares menores ou igual a x.
	
	
	O código mostra os todos os números ímpares menores ou igual a x.
	
Explicação:
O aluno deve compreender que estão sendo testados os números menores que o número introduzido pelo usuário, e caso o número testado tenha seja ímpar será mostrado.
Assim como o próprio número quando este for ímpar.
	
	
	
	 
		
	
		6.
		 Muitas séries matemáticas podem ser geradas pela estrutura do  for. Analise o código abaixo, supondo que você digitou 2 e 4 quando lhe foram solicitados dois números e escolha a opção que contém a série exibida pelo código.
	
	
	
	2       4       6       10       16       26       42
	
	
	2       4       6       8       19       12       14       16
	
	
	2       4       4       8       12       20       32       
	
	
	2       4       6       10       16       26       42       68
	
	
	2       4       4       8       12       20       32       52
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		7.
		Todo laço de repetição dever possuir um critério de parada para que o mesmo não fique executando indefinidamente.
Analise o código a seguir e marque a opção que representa um critério de parada a ser introduzido no código, no bloco while, a fim que o código em execução
mostre todos os números pares diferente de zero e inferiores ao valor introduzido pelo usuário a variável x.
#include < stdio.h> //Retire o espaço depois de < quando for compilar
int main()
{
int x, i=1;
printf("Entre com numero: "); scanf("%d", &x);
while(i<=x)
{
   if(i%2==0) printf("%d\n", i);
}
return 0;
}
	
	
	
	i--;
	
	
	i+x;
 
	
	
	x++;
	
	
	x--;
	
	
	i++;
	
Explicação:
A fim de garantir que o programa execute apenas enquanto que a variável i seja menor que o valor armazenado em x. Temos que incrementar a variável i a cada iteração do laço.
Assim fazemos i++
	
	
	
	 
		
	
		8.
		A programação oferece diversas estruturas de forma a facilitar a programação quanto a sua organização. Alguns dessas estruturas evitam que determinada parte do código tenha de ser repetido diversas vezes. Marque a alternativa que contenha todas essas estruturas.
	
	
	
	FOR, WHILE e DO WHILE
	
	
	IF e SWITCH CASE
	
	
	SWITCH CASE e IF/ELSE
	
	
	WHILE, DO WHILE e SWITCH CASE
	
	
	IF/ELSE e FOR
		Analise o código a seguir e marque a alternativa que exprime o que esse trecho de código executa:
#include < stdio.h> //Retire o espaço depois de < quando for compilar
int main()
{
   int x, i;
   printf("Entre com numero: "); scanf("%d", &x);
   for(i=1; i<1 + x/2; i++)
   {
      if(x%i==0 && i%2==0) printf("Divisores: %d\n", i);
   }
   if(x%2==0)printf( "Divisores: %d\n", x);
   return 0;
}
	
	
	
	O código mostra os todos os divisores de um número.
	
	
	O código mostra os todos os divisores pares de um número.
	
	
	O código mostra os números divisíveis por 2.
	
	
	O código mostra os todos os divisores ímpares de um número.
 
	
	
	O código mostra os números divisíveis por 3.
	
Explicação:
O aluno deve compreender que estão sendo testados como divisor todos os números menores que a metade do número introduzido pelo usuário, e caso o número testado tenha divisão exata e seja par será mostrado.
Assim como o próprio número quando este for par, já que todo número é divisível por ele mesmo.
	
	
	
	 
		
	
		2.
		João foi realizar uma prova que tinha uma questão com o trecho abaixo. Assinale a opção que esclarece, ou não, o que será exibido
 int num, c, s = 0;
 puts("Numero: "); scanf("%d", &num);
 for(c=1; c < num; c++)
   if(num % c == 0) s+=c;
printf("\nO que exibe? %d\n", s);
 
 
	
	
	
	Dá erro na compilação porque a estrutura do for e a estrutura do if estão sem as { }
	
	
	Exibe todos os divisores.
	
	
	Exibe A soma de todos os divisores.
	
	
	Exibe A soma de todos os divisores  exceto ele mesmo
	
	
	Exibe 0 porque não está testando se tem divisor.
	
Explicação:
O programa de divisores foi estudado na AULA 5 e a única  diferença está na ausência do sinal de igual
	
	
	
	 
		
	
		3.
		Complete o trecho de código abaixo com a expressão condicional adequada para o comando de repetição  exibir a mensagem "Boa Noite" 100 vezes.
i = 0;
while (         ) {
cout << "Boa Noite" << endl;
i = i + 1;
}
	
	
	
	i < 100
	
	
	i >= 100
	
	
	i != 100
	
	
	i <= 100
	
	
	i == 100
	
	
	
	 
		
	
		4.
		Considere o trecho de código em C a seguir e selecione a opção que indica corretamente o que será exibido ao término da execução.
int x=1;
int y=5;
for (int i = y; i >0 ;i--)
x = x * i;
printf("x=%d",x);
 
	
	
	
	x = x
	
	
	5
	
	
	x= 5
	
	
	x = 120
	
	
	120
	
Explicação:
 
Sendo o código:
int x=1;
int y=5;
for (int i = y; i >0 ;i--)
x = x * i;
printf("x=%d",x);
As instruções abaixo inicializam as variáveis:
int x=1;
int y=5;
E acada iteração do laço de iteraçao será realizada a instrução: x = x * i;
Na primeira iteração temos: x=1*5 =5
Na segunda iteração temos: x=5*4 =20
Na terceira iteração temos: x=20*3 =60
Na quarta iteração temos: x=60*2 =120
Na quinta e ultima iteração temos: x=120*1 =120
	
	
	
	 
		
	
		5.
		Qual a estrutura de repetição usada para quantidade indeterminada de repetições?
	
	
	
	if-else
	
	
	while
	
	
	struct
	
	
	for
	
	
	switch
	
Explicação:
A linguagem C tem três estruturas de repetição: for, while e do...while.
Tem em vista o exposto acima, eliminamos: if-else, switch e struct.
Sendo assim, sobram for e while.
Estudamos que todas podem simular todas, mas não significa que seja a melhor solução.
A estrutura do for em sua sintaxe básica necessita, quando for executada, que o número de repetições seja conhecido enquantoque as duas outras deverão ser escolhidas quando o número de repetições não for conhecido.
A resposta correta é while.
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		6.
		Um aluno estava fazendo experiências com a estrutura do for e precisava repetir a frase, 10 vezes:
Estudar para Prova no final de semana!
Sendo assim, construiu vários trechos.
Observe as tentativas que ele fez abaixo e assinale a opção correta.
I for(x = 2; x <= 20; x++ ) 
II for(x = 3; x <= 30; x =  x + 3 )
III for(x = 0; x <= 10; x = x + 1 )
IV for(x = 2; x <= 11; x++ )    
	
	
	
	As afirmativas II , III e IV permitem a repetição 10 vezes
	
	
	Todas, exceto as afirmativas  I e a  IV, permitem a repetição 10 vezes
	
	
	As afirmativas II e  III permitem a repetição 10 vezes
	
	
	As afirmativas II e IV permitem a repetição 10 vezes
	
	
	Somente a afirmativa II permite a repetição 10 vezes
	
Explicação:
Na aula tem exemplos e o aluno só precisar saber quanto números fazem parte da sequência(PA).
	
	
	
	 
		
	
		7.
		Qual será a saída do programa abaixo?
int main() {
int i=0;
do {
i++;
cout << i << endl;
} while (i < 2);
}
	
	
	
	1  2
	
	
	2
	
	
	0
1
	
	
	0
1
2
	
	
	1
2
	
	
	
	 
		
	
		8.
		Considere o trecho de código abaixo. O que será impresso quando o programa for executado?
int main()
{
    int contador = 1; //declarando e inicializando a variável de controle
     
    while (contador <= 10) // Testando a condição
    {
          printf("%d ", contador); //Executando um comando dentro do laço 
           
         
    }
     
    return 0; 
}
	
	
	
	1 2 3 4 5 6 7 8 9
	
	
	0 1 2 3 4 5 6 7 8 9 10
	
	
	Nunca vai parar. 1 2 3 4 5 6 7 8 9 10 11 12 13 14...
	
	
	Nunca vai parar. 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
	
	
	1 2 3 4 5 6 7 8 9 10
	
Explicação:
A estrutura while repete o bloco enquanto o teste for verdadeiro.
Se a variável contador começa com 1 e NÃO tem ser valor alterado, ficará sempre com 1 logo, entra em loop
Resposta correta: Nunca vai parar. 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
		Muitas séries matemáticas podem ser geradas pela estrutura do for. Analise o código abaixo e escolha a opção que contém a série exibida pelo código.
	
	
	
	0     1     1     2     3     5     8     13     21
	
	
	0     1     1     2     3     4     5     6
	
	
	1       3     4      7      9     11     13
	
	
	0     1     1     3     2     4     5     7
	
	
	1     1     2     3     5     8     13     21
	
Explicação:
1a iteração:
atu=1
ant=0
imprime: 1
prox=0+1=1
ant=1
atu=1
2a iteração:
atu=1
ant=1
imprime: 1
prox=1+1=2
ant=1
atu=2
3a iteração:
atu=2
ant=1
imprime: 2
prox=2+1=3
ant=2
atu=3
4a iteração:
atu=3
ant=2
imprime: 3
prox=3+2=5
ant=3
atu=5
5a iteração:
atu=5
ant=3
imprime: 5
prox=5+3=8
ant=5
atu=8
6a iteração:
atu=8
ant=5
imprime: 8
prox=8+5=13
ant=8
atu=13
7a iteração:
atu=13
ant=8
imprime: 13
prox=13+8=21
ant=8
atu=21
8a iteração:
atu=21
ant=13
imprime: 21
 
	
	Gabarito
Coment.
	
	
	
	 
		
	
		2.
		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++)
	
	
	for (i = num; i > 0; i++)
	
	
	while (num == 0)
	
	
	enquanto (num > 0)
	
	
	while (num != 0)
	
Explicação:
As estruturas de repetição podem testar a condição antes de executar o bloco (for e while) ou executar pelo menos uma vez(do...while) porque testa ao final.
Conhecer os operadores relacionais e lógicos será fundamental para criarmos a expressão do teste.
A frase  enquanto a variável  num seja diferente de 0 já nos dá a resposta: while(num != 0).
	
	Gabarito
Coment.
	
	
	
	 
		
	
		3.
		Um programa que contém a linha de comando abaixo:
int soma, i = 0;
while ( i < 50000) {
                                   if ( i % 7 == 0) {
soma = soma + i;
                                   }
                                   i++ ;
 
Qual será a saída:
	
	
	
	Soma dos números inteiros menores que 50000.
	
	
	Soma dos números inteiros menores que 50000 divido por 7.
	
	
	Soma dos números inteiros menores que 50000 divisíveis por 7.
	
	
	Soma dos números inteiros menores que 50000 com resto 7.
	
	
	Soma dos números inteiros menores que 50000 ímpares.
	
	
	
	 
		
	
		4.
		Sabendo que no programa abaixo foi digitado na sequencia os números 4 e 10. Marque a alternativa que contém a saída gerada pelo programa para a entrada fornecida.
#include
using namespace std;
int main() {
   int a, b;
   cin >> a >> b;
   a = a + 1;
   while ( a < b ) {
       cout << "  " << a;
       a = a + 1;
   }
}
	
	
	
	5 6 7 8 9
	
	
	4 5 6 7 8 9 10 11
	
	
	5 6 7 8 9 10
	
	
	4 5 6 7 8 9
	
	
	5 6 7 8 9 10 11
	
	
	
	 
		
	
		5.
		João foi realizar uma prova que tinha uma questão com o trecho abaixo e pedia para assinalar a opção que mostrava quantas vezes seria exibida a mensagem BOM.
Se fosse você, qual escolheria?
int y;
for(y=2; y <= 16; y+= 2) puts( "BOM" );
 
	
	
	
	10 vezes
	
	
	9 vezes
	
	
	15 vezes
	
	
	8 vezes
	
	
	16 vezes
	
Explicação:
O aluno precisa ter entendido que  a estrutura do for usa uma PA ou PG
	
	
	
	 
		
	
		6.
		Os loops são utilizados para executar um conjunto de instruções várias vezes baseando-se sempre em uma condição que decidirá se continua repetindo ou não.
Qual estrutura de repetição abaixo, garante que o bloco de instruções seja executado no mínimo uma vez?
	
	
	
	while
	
	
	switch
	
	
	for
	
	
	do...while
	
	
	repeat...util
	
Explicação:
A linguagem C apresenta três estruturas de repetição: for e while testam no início, significando que podem não executar nem uma vez.
A estrutura do...while  testa ao final ao bloco logo,  executa pelo menos uma vez.
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		7.
		Dado o programa abaixo, informe o que vai ser impresso após execução.
	
	
	
	 34
	
	
	 13
	
	
	 21
	
	
	 55
	
	
	 89
	
	
	
	 
		
	
		8.
		Um programa de cadastro deve solicitar cpf,nome e telefone de alunos até que o cpf seja igual a 0. Que estrutura em C melhor representa esta tarefa?
	
	
	
	do{ // [bloco de comandos] }
while (cfp !=0);
	
	
	for (cpf=0; cpf !=0; cpf++)
{ // [bloco de comandos] }
	
	
	do while (cfp !=0)
{ // [bloco de comandos] }
	
	
	if (cpf != 0)
{ // [bloco de comandos] }
	
	
	while{ // [bloco de comandos] }
do (cfp !=0);
	
Explicação:
A linguagem C disponibiliza três estruturas de repetição: for, while e do ... while logo, descartaremos a resposta com if: if (cpf != 0){ // [bloco de comandos] }
Estudamos que a estrutura do...while testa somente Ao Final. Sendo assim descartaremos: do while (cfp !=0){ // [bloco de comandos] }
Estudamos que a estrutura while testa no Início e não tem do. Sendo assim descartaremos: while{ // [bloco de comandos] } do (cfp !=0); 
A linha que usa a estrutura do for usa a variável que receberia o CPF como o um contador.
Após a análise acima, identificamos a resposta correta:  do{ // [bloco de comandos] } while (cfp !=0);
		Analise o código a seguir e marque a alternativa que exprime o que esse trecho de código executa:
#include < stdio.h>//Retire o espaço depois de < quando for compilar
int main()
{
    int x, i;
    printf("Entre com numero: "); scanf("%d", &x);
    for(i=1; i<1 + x/2; i++)
    {
        if(x%i==0) printf("Divisores: %d\n", i);
    }
   printf( "Divisores: %d\n", x);
  return 0;
}
	
	
	
	O código mostra os todos divisores ímpares de um número.
 
	
	
	O código mostra os números divisíveis por 2.
 
	
	
	O código mostra os todos divisores pares de um número.
	
	
	O código mostra os números divisíveis por 3.
	
	
	O código mostra os todos os divisores de um número.
	
Explicação:
O aluno deve compreender que estão sendo testados como divisor todos os números menores que a metade do número introduzido pelo usuário, e caso o número testado tenha divisão exataesse será mostrado.
Assim como o próprio número, já que todo número é divisível por ele mesmo.
	
	
	
	 
		
	
		2.
		Na maioria das linguagens de programação, as estruturas de controle de fluxo são fundamentais para a criação de programas elegantes e de fácil entendimento. Assinale a alternativa correta com relação aos comandos de controle de fluxo da linguagem C, sabendo que o comando for apresenta a seguinte forma geral: for (inicialização;condição;incremento) declaração;
	
	
	
	O comando for garante que o laço seja executado pelo menos uma vez.
	
	
	Pode-se omitir a declaração, e, mesmo assim, o comando for ainda será válido.
	
	
	O comando continue usado dentro de um laço executa a próxima linha de código independentemente do fato de ela estar dentro ou fora do laço.
	
	
	Não é permitido omitir a condição no comando for, pois não existiria maneira de parar o laço infinito.
	
	
	Sem os comandos de controle de fluxo, só haveria uma maneira de o programa ser executado: de baixo para cima e comando por comando.
	
	
	
	 
		
	
		3.
		Analise o código a seguir e marque a alternativa que exprime o que esse trecho de código executa, caso o usuário introduza um número positivo maior que zero:
#include < stdio.h> //Retire o espaço depois de < quando for compilar
int main()
{
int x, i=1;
printf("Entre com numero: "); scanf("%d", &x);
while(i<=x)
{
    if(i%2==0) printf("%d\n", i);
    i++;
}
return 0;
}
	
	
	
	O código mostra os todos os números pares menores ou igual a x.
	
	
	O código mostra os números divisíveis por 3.
	
	
	O código mostra os todos os números ímpares menores ou igual a x.
	
	
	O código mostra os números divisíveis por 2.
	
	
	O código mostra os todos os divisores ímpares de um número.
 
	
Explicação:
O aluno deve compreender que estão sendo testados os números menores que o número introduzido pelo usuário, e caso o número testado tenha seja par será mostrado.
Assim como o próprio número quando este for par.
	
	
	
	 
		
	
		4.
		João foi realizar uma prova que tinha uma questão com o trecho abaixo e pedia para assinalar a opção que mostrava quantas vezes seria exibida a mensagem Tenho que estudar.
Se fosse você, qual escolheria?
int y;
for(y=5; y>=25; y+=5); puts("\nTenho que estudar");
 
	
	
	
	6 vezes
	
	
	5 vezes
	
	
	Nenhuma vez
	
	
	1 vez 
	
	
	19 vezes
	
Explicação:
 O aluno precisa ter entendido que a estrutura do for usa uma PA ou PG
	
	
	
	 
		
	
		5.
		João foi realizar uma prova que tinha uma questão com o trecho abaixo e pedia para assinalar a opção que explicava a finalidade da estrutura while nele.
   int num; 
   puts("\nNumero de ... algarismos:"); 
   scanf("%d", &num);
   while (num < 100 || num > 999)
   {     
    puts("\nNumero FORA do Intervalo");
    puts("\nNumero de ... algarismos:"); 
    scanf("%d", &num);
   }       
 
	
	
	
	Trecho de Proteção para evitar que o usuário digite número menor do que 100 ou maior do que 999.
	
	
	Trecho de Proteção para evitar que o usuário digite número no intervalo de 100 a 999.
	
	
	Trecho que deixa entrar com vários números enquanto o usuário digitar números no intervalo de 100 até 999.
	
	
	Trecho de Proteção para evitar que o usuário digite número menor do que 100 e maior do que 999.
	
	
	Nenhuma finalidade tem esse trecho
	
Explicação:
O conceito de trecho de proteção é fundamental na programação para evitar que valores indesejáveis sejam aceitos.
	
	
	
	 
		
	
		6.
		1. Sabendo-se que um usuário entrou com o primeiro número (num1) igual a 10 e o segundo (num2) número igual a 20, analise o trecho do código apresentado na figura 1 e marque a resposta que confere exatamente com a saída esperada pelo código.
Figura 1
 
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	 
		
	
		7.
		Analise o código a seguir e marque a alternativa que exprime o que esse trecho de código executa:
#include < stdio.h> //Retire o espaço depois de < quando for compilar
int main()
{
   int x, i;
   printf("Entre com numero: "); scanf("%d", &x);
   for(i=1; i<1 + x/2; i++)
   {
      if(x%i==0 && i%2!=0) printf("Divisores: %d\n", i);
   }
   if(x%2!=0)printf( "Divisores: %d\n", x);
   return 0;
}
	
	
	
	O código mostra os todos os divisores pares de um número.
	
	
	O código mostra os todos os divisores de um número.
	
	
	O código mostra os números divisíveis por 3.
	
	
	O código mostra os todos os divisores ímpares de um número.
	
	
	O código mostra os números divisíveis por 2.
	
Explicação:
O aluno deve compreender que estão sendo testados como divisor todos os números menores que a metade do número introduzido pelo usuário, e caso o número testado tenha divisão exata e seja ímpar será mostrado.
Assim como o próprio número quando este for ímpar, já que todo número é divisível por ele mesmo.
	
	
	
	 
		
	
		8.
		Quando tomamos conhecimento das três estruturas de repetição, ficamos sem saber, em alguns trechos, o que elas fazem.
Observe o trecho abaixo e assinale  a opção que esclarece o que está sendo feito.
float num; 
for(;;)
{    
     puts("\nNumero: ");
     scanf("%f", &num);
     if(num  <=  0 ) break;
        printf("\n%.2f", num *3); 
 }   
 
	
	
	
	Simula a estrutura while, enquanto num for > 0.
	
	
	Simula a estrutura do ... while, enquanto num for > 0.
	
	
	Simula a estrutura while, enquanto num for <= 0 
	
	
	Nada porque tem erro na linha do for.
	
	
	Simula a estrutura do ... while, enquanto num for <= 0
	
Explicação:
Simular outra estrutura de repetição foi bem explorada na AULA 5
		Analise o código a seguir e marque a alternativa que exprime o que esse trecho de código executa, caso o usuário introduza um número positivo maior que zero:
#include < stdio.h> //Retire o espaço depois de < quando for compilar
int main()
{
int x, i=1;
printf("Entre com numero: "); scanf("%d", &x);
while(i<=x)
{
    if(i%2!=0) printf("%d\n", i);
    i++;
}
return 0;
}
	
	
	
	O código mostra os números divisíveis por 3.
	
	
	O código mostra os todos os números pares menores ou igual a x.
	
	
	O código mostra os todos os números ímpares menores ou igual a x.
	
	
	O código mostra os números divisíveis por 2.
	
	
	O código mostra os todos os divisores ímpares de um número.
 
	
Explicação:
O aluno deve compreender que estão sendo testados os números menores que o número introduzido pelo usuário, e caso o número testado tenha seja ímpar será mostrado.
Assim como o próprio número quando este for ímpar.
	
	
	
	 
		
	
		2.
		Todo laço de repetição dever possuir um critério de parada para que o mesmo não fique executando indefinidamente.
Analise o código a seguir e marque a opção que representa um critério de parada a ser introduzido no código, no bloco while, a fim que o código em execução
mostre todos os números pares diferente de zero e inferiores ao valor introduzido pelo usuário a variável x.
#include < stdio.h> //Retire o espaço depois de < quando for compilar
int main()
{
int x, i=1;
printf("Entre com numero: "); scanf("%d", &x);
while(i<=x)
{
   if(i%2==0) printf("%d\n", i);
}
return 0;
}
	
	
	
	x--;
	
	
	i--;
	
	
	i++;
	
	
	x++;
	
	
	i+x;
 
	
Explicação:
A fim de garantir que o programa execute apenas enquanto que a variável i seja menor que o valor armazenado em x. Temos que incrementar a variável i a cada iteração do laço.
Assim fazemos i++
	
	
	
	 
		
	
		3.
		 Muitas séries matemáticas podem ser geradas pela estrutura do  for. Analise o código abaixo, supondo que você digitou 2 e 4 quando lhe foram solicitados dois números e escolha a opção que contém a série exibida pelo código.
	
	
	
	2       4       6       8       19       12       14       16
	
	
	2       4       6       10       16       26       42
	
	
	2       4       4       8       12       20       32       
	
	
	2       4       6       10       16       26       42       68
	
	
	2       4       48       12       20       32       52
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		4.
		O programa abaixo terá qual saída?
int main() {
int j = 2;
for ( int i = 1 ; i < = 3 ; i++ ) {
     cout << i * j << endl; }
}
	
	
	
	1 * 2
2 * 2
2 * 3
	
	
	2, 4, 6
	
	
	12
	
	
	1 * 2 = 2
2 * 2 = 4
3 * 2 = 6
	
	
	2
4
6
	
	
	
	 
		
	
		5.
		int main() {
  int contador = 1; 
  while (contador < 10)
 {
    printf("%d ", contador);
    contador++;
} 
return 0;
}
	
	
	
	1 2 3 4 5 6 7 8 9 10
	
	
	0 1 2 3 4 5 6 7 8 9 10
	
	
	1 2 3 4 5 6 7 8 9 10 11
	
	
	1 2 3 4 5 6 7 8 9
	
	
	0 1 2 3 4 5 6 7 8 9 10 11
	
	
	
	 
		
	
		6.
		Considere o trecho de código abaixo. O que será impresso quando o programa for executado?
int main()
{
    int contador = 10; 
     
    while (contador > 1) 
    {
          printf("%d ", contador); 
          
          contador--;
         
    }
     
    return 0; 
}
	
	
	
	Nunca vai parar. 1 1 1 1 1 1 1 1 1 1 1 1 ...
	
	
	Nunca vai parar. 10 10 10 10 10 10 10 10...
	
	
	10 9 8 7 6 5 4 3 2 1
	
	
	10 9 8 7 6 5 4 3 2
	
	
	1 2 3 4 5 6 7 8 9
	
Explicação:
A estrutura while repete o bloco enquanto o teste for verdadeiro.
Se a variável contador começa com 10 e exibe o valor do contador enquanto ele for maior do que, significa que quando ele for decrementado e chegar a 1, interromperá a repetição;
Resposta correta: 10 9 8 7 6 5 4 3 2
	
	
	
	 
		
	
		7.
		A programação oferece diversas estruturas de forma a facilitar a programação quanto a sua organização. Alguns dessas estruturas evitam que determinada parte do código tenha de ser repetido diversas vezes. Marque a alternativa que contenha todas essas estruturas.
	
	
	
	SWITCH CASE e IF/ELSE
	
	
	WHILE, DO WHILE e SWITCH CASE
	
	
	IF e SWITCH CASE
	
	
	FOR, WHILE e DO WHILE
	
	
	IF/ELSE e FOR
	
	
	
	 
		
	
		8.
		Analise o trecho de código abaixo e determine qual a saída gerada:
int i,  A = 0, B = 1 ;
for (i = 1; i < 5; i++) {
      A = B;
      B = i + B * A;
}
cout << " A = " <<  A << " B =  " << B;
	
	
	
	A = 6 B = 39
	
	
	A = 8 B = 67
	
	
	A = 67  b = 4757
	
	
	A = 0 B = 1
	
	
	A = 39  B = 1525
	Considere o trecho de código abaixo. O que será impresso quando o programa for executado?
int main()
{
    int contador = 1; //declarando e inicializando a variável de controle
     
    while (contador < 10) // Testando a condição
    {
          printf("%d ", contador); //Executando um comando dentro do laço 
           
          contador++; //atualizando a variável de controle
    }
     
    return 0; 
}
		
	 
	1 2 3 4 5 6 7 8 9 10
	
	0 1 2 3 4 5 6 7 8 9 10
	
	0 1 2 3 4 5 6 7 8 9 10 11
	 
	1 2 3 4 5 6 7 8 9
	
	1 2 3 4 5 6 7 8 9 10 11
	Respondido em 20/05/2020 22:39:36
	
		10a
          Questão
	Acerto: 0,0  / 1,0
	
	Analise os códigos descritos nas alternativas de 'A' até 'E' e marque qual o código que fornece exatamente a saída descrita a seguir: Ano valor na conta 0 1000.00 1 1050.00 2 1102.50 3 1157.63 4 1215.51 5 1276.28
		
	 
	e- printf("Ano\t valor na conta\n"); for(i=0;i<=5;i++) { vf=vp*pow(1+0.05,i); printf("%d %5.2f \n",i,vf); }
	 
	a- printf("Ano\t valor na conta\n"); for(i==1;i<=5;i++) { vf=vp*pow(1+0.05,i); printf("%d \t %5.2f \n",i,vf); }
	
	d- printf("Ano\t valor na conta\n"); for(i=0;i<5;i++) { vf=vp*pow(1+0.05,i); printf("%d %5.2f \n",i,vf); }
	
	b- printf("Ano\t valor na conta\n"); for(i=1;i>5;i++) { vf=vp*pow(1+0.05,i); printf("%d %5.2f \n",i,vf); }
	
	c- printf("Ano\t valor na conta\n"); for(i=0;i==5;i++) { vf=vp*pow(1+0.05,i); printf("%d \t %5.2f \n",i,vf); }
		João foi realizar uma prova que tinha uma questão com o trecho abaixo. Assinale a opção que esclarece, ou não, o que será exibido
 int num, c, s = 0;
 puts("Numero: "); scanf("%d", &num);
 for(c=1; c < num; c++)
   if(num % c == 0) s+=c;
printf("\nO que exibe? %d\n", s);
 
 
	
	
	
	Exibe todos os divisores.
	
	
	Dá erro na compilação porque a estrutura do for e a estrutura do if estão sem as { }
	
	
	Exibe A soma de todos os divisores.
	
	
	Exibe A soma de todos os divisores  exceto ele mesmo
	
	
	Exibe 0 porque não está testando se tem divisor.
	
Explicação:
O programa de divisores foi estudado na AULA 5 e a única  diferença está na ausência do sinal de igual
	
	
	
	 
		
	
		2.
		Complete o trecho de código abaixo com a expressão condicional adequada para o comando de repetição  exibir a mensagem "Boa Noite" 100 vezes.
i = 0;
while (         ) {
cout << "Boa Noite" << endl;
i = i + 1;
}
	
	
	
	i != 100
	
	
	i == 100
	
	
	i <= 100
	
	
	i >= 100
	
	
	i < 100
	
	
	
	 
		
	
		3.
		Analise o código a seguir e marque a alternativa que exprime o que esse trecho de código executa:
#include < stdio.h> //Retire o espaço depois de < quando for compilar
int main()
{
   int x, i;
   printf("Entre com numero: "); scanf("%d", &x);
   for(i=1; i<1 + x/2; i++)
   {
      if(x%i==0 && i%2==0) printf("Divisores: %d\n", i);
   }
   if(x%2==0)printf( "Divisores: %d\n", x);
   return 0;
}
	
	
	
	O código mostra os números divisíveis por 2.
	
	
	O código mostra os todos os divisores pares de um número.
	
	
	O código mostra os todos os divisores de um número.
	
	
	O código mostra os todos os divisores ímpares de um número.
 
	
	
	O código mostra os números divisíveis por 3.
	
Explicação:
O aluno deve compreender que estão sendo testados como divisor todos os números menores que a metade do número introduzido pelo usuário, e caso o número testado tenha divisão exata e seja par será mostrado.
Assim como o próprio número quando este for par, já que todo número é divisível por ele mesmo.
	
	
	
	 
		
	
		4.
		Considere o trecho de código em C a seguir e selecione a opção que indica corretamente o que será exibido ao término da execução.
int x=1;
int y=5;
for (int i = y; i >0 ;i--)
x = x * i;
printf("x=%d",x);
 
	
	
	
	x = 120
	
	
	5
	
	
	x = x
	
	
	120
	
	
	x= 5
	
Explicação:
 
Sendo o código:
int x=1;
int y=5;
for (int i = y; i >0 ;i--)
x = x * i;
printf("x=%d",x);
As instruções abaixo inicializam as variáveis:
int x=1;
int y=5;
E acada iteração do laço de iteraçao será realizada a instrução: x = x * i;
Na primeira iteração temos: x=1*5 =5
Na segunda iteração temos: x=5*4 =20
Na terceira iteração temos: x=20*3 =60
Na quarta iteração temos: x=60*2 =120
Na quinta e ultima iteração temos: x=120*1 =120
	
	
	
	 
		
	
		5.
		Qual a estrutura de repetição usada para quantidade indeterminada de repetições?
	
	
	
	while
	
	
	if-else
	
	
	for
	
	
	struct
	
	
	switch
	
Explicação:
A linguagem C tem três estruturas de repetição: for, while e do...while.
Tem em vista o exposto acima, eliminamos: if-else, switch e struct.
Sendo assim, sobram for e while.
Estudamos que todas podem simular todas, mas não significa que seja a melhor solução.
A estrutura do for em sua sintaxe básica necessita, quando for executada, que o número de repetições seja conhecido enquanto que as duas outras deverão ser escolhidas quando o número de repetições não for conhecido.
A resposta correta é while.
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		6.
		Um aluno estava fazendo experiências com a estrutura do for e precisava repetir a frase, 10 vezes:
Estudar para Prova no final de semana!
Sendo assim, construiu vários trechos.
Observe as tentativas que ele fez abaixo e assinale a opção correta.
I for(x = 2; x <= 20; x++ ) 
II for(x = 3; x <= 30; x =  x + 3 )
III for(x = 0; x <= 10; x = x + 1 )
IV for(x = 2; x <= 11; x++ )    
	
	
	
	As afirmativas II e IV permitem a repetição 10 vezes
	
	
	As afirmativas II e  III permitem a repetição 10 vezes
	
	
	Todas, exceto as afirmativas  I e a  IV, permitem a repetição 10 vezes
	
	
	As afirmativas II , III e IV permitem a repetição 10 vezes
	
	
	Somente a afirmativa II permite a repetição 10 vezes
	
Explicação:
Na aula tem exemplose o aluno só precisar saber quanto números fazem parte da sequência(PA).
	
	
	
	 
		
	
		7.
		Qual será a saída do programa abaixo?
int main() {
int i=0;
do {
i++;
cout << i << endl;
} while (i < 2);
}
	
	
	
	0
1
2
	
	
	0
1
	
	
	2
	
	
	1  2
	
	
	1
2
	
	
	
	 
		
	
		8.
		Considere o trecho de código abaixo. O que será impresso quando o programa for executado?
int main()
{
    int contador = 1; //declarando e inicializando a variável de controle
     
    while (contador <= 10) // Testando a condição
    {
          printf("%d ", contador); //Executando um comando dentro do laço 
           
         
    }
     
    return 0; 
}
	
	
	
	1 2 3 4 5 6 7 8 9 10
	
	
	1 2 3 4 5 6 7 8 9
	
	
	Nunca vai parar. 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
	
	
	Nunca vai parar. 1 2 3 4 5 6 7 8 9 10 11 12 13 14...
	
	
	0 1 2 3 4 5 6 7 8 9 10
		Um programa que contém a linha de comando abaixo:
int soma, i = 0;
while ( i < 50000) {
                                   if ( i % 7 == 0) {
soma = soma + i;
                                   }
                                   i++ ;
 
Qual será a saída:
	
	
	
	Soma dos números inteiros menores que 50000 ímpares.
	
	
	Soma dos números inteiros menores que 50000 com resto 7.
	
	
	Soma dos números inteiros menores que 50000 divisíveis por 7.
	
	
	Soma dos números inteiros menores que 50000.
	
	
	Soma dos números inteiros menores que 50000 divido por 7.
	
	
	
	 
		
	
		2.
		Dado o programa abaixo, informe o que vai ser impresso após execução.
	
	
	
	 13
	
	
	 34
	
	
	 89
	
	
	 21
	
	
	 55
	
	
	
	 
		
	
		3.
		João foi realizar uma prova que tinha uma questão com o trecho abaixo e pedia para assinalar a opção que mostrava quantas vezes seria exibida a mensagem BOM.
Se fosse você, qual escolheria?
int y;
for(y=2; y <= 16; y+= 2) puts( "BOM" );
 
	
	
	
	15 vezes
	
	
	10 vezes
	
	
	8 vezes
	
	
	9 vezes
	
	
	16 vezes
	
Explicação:
O aluno precisa ter entendido que  a estrutura do for usa uma PA ou PG
	
	
	
	 
		
	
		4.
		Os loops são utilizados para executar um conjunto de instruções várias vezes baseando-se sempre em uma condição que decidirá se continua repetindo ou não.
Qual estrutura de repetição abaixo, garante que o bloco de instruções seja executado no mínimo uma vez?
	
	
	
	switch
	
	
	do...while
	
	
	for
	
	
	while
	
	
	repeat...util
	
Explicação:
A linguagem C apresenta três estruturas de repetição: for e while testam no início, significando que podem não executar nem uma vez.
A estrutura do...while  testa ao final ao bloco logo,  executa pelo menos uma vez.
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		5.
		Muitas séries matemáticas podem ser geradas pela estrutura do for. Analise o código abaixo e escolha a opção que contém a série exibida pelo código.
	
	
	
	0     1     1     3     2     4     5     7
	
	
	0     1     1     2     3     5     8     13     21
	
	
	0     1     1     2     3     4     5     6
	
	
	1     1     2     3     5     8     13     21
	
	
	1       3     4      7      9     11     13
	
Explicação:
1a iteração:
atu=1
ant=0
imprime: 1
prox=0+1=1
ant=1
atu=1
2a iteração:
atu=1
ant=1
imprime: 1
prox=1+1=2
ant=1
atu=2
3a iteração:
atu=2
ant=1
imprime: 2
prox=2+1=3
ant=2
atu=3
4a iteração:
atu=3
ant=2
imprime: 3
prox=3+2=5
ant=3
atu=5
5a iteração:
atu=5
ant=3
imprime: 5
prox=5+3=8
ant=5
atu=8
6a iteração:
atu=8
ant=5
imprime: 8
prox=8+5=13
ant=8
atu=13
7a iteração:
atu=13
ant=8
imprime: 13
prox=13+8=21
ant=8
atu=21
8a iteração:
atu=21
ant=13
imprime: 21
 
	
	Gabarito
Coment.
	
	
	
	 
		
	
		6.
		Qual dos comandos abaixo permite que um bloco de comandos seja executado enquanto a variável num seja diferente de 0?
	
	
	
	enquanto (num > 0)
	
	
	while (num == 0)
	
	
	for ( i = 0; i == num; i++)
	
	
	while (num != 0)
	
	
	for (i = num; i > 0; i++)
	
Explicação:
As estruturas de repetição podem testar a condição antes de executar o bloco (for e while) ou executar pelo menos uma vez(do...while) porque testa ao final.
Conhecer os operadores relacionais e lógicos será fundamental para criarmos a expressão do teste.
A frase  enquanto a variável  num seja diferente de 0 já nos dá a resposta: while(num != 0).
	
	Gabarito
Coment.
	
	
	
	 
		
	
		7.
		Um programa de cadastro deve solicitar cpf,nome e telefone de alunos até que o cpf seja igual a 0. Que estrutura em C melhor representa esta tarefa?
	
	
	
	if (cpf != 0)
{ // [bloco de comandos] }
	
	
	while{ // [bloco de comandos] }
do (cfp !=0);
	
	
	do while (cfp !=0)
{ // [bloco de comandos] }
	
	
	do{ // [bloco de comandos] }
while (cfp !=0);
	
	
	for (cpf=0; cpf !=0; cpf++)
{ // [bloco de comandos] }
	
Explicação:
A linguagem C disponibiliza três estruturas de repetição: for, while e do ... while logo, descartaremos a resposta com if: if (cpf != 0){ // [bloco de comandos] }
Estudamos que a estrutura do...while testa somente Ao Final. Sendo assim descartaremos: do while (cfp !=0){ // [bloco de comandos] }
Estudamos que a estrutura while testa no Início e não tem do. Sendo assim descartaremos: while{ // [bloco de comandos] } do (cfp !=0); 
A linha que usa a estrutura do for usa a variável que receberia o CPF como o um contador.
Após a análise acima, identificamos a resposta correta:  do{ // [bloco de comandos] } while (cfp !=0);
	
	
	
	 
		
	
		8.
		Sabendo que no programa abaixo foi digitado na sequencia os números 4 e 10. Marque a alternativa que contém a saída gerada pelo programa para a entrada fornecida.
#include
using namespace std;
int main() {
   int a, b;
   cin >> a >> b;
   a = a + 1;
   while ( a < b ) {
       cout << "  " << a;
       a = a + 1;
   }
}
	
	
	
	4 5 6 7 8 9 10 11
	
	
	5 6 7 8 9 10
	
	
	5 6 7 8 9
	
	
	4 5 6 7 8 9
	
	
	5 6 7 8 9 10 11
		Analise o código a seguir e marque a alternativa que exprime o que esse trecho de código executa:
#include < stdio.h>//Retire o espaço depois de < quando for compilar
int main()
{
    int x, i;
    printf("Entre com numero: "); scanf("%d", &x);
    for(i=1; i<1 + x/2; i++)
    {
        if(x%i==0) printf("Divisores: %d\n", i);
    }
   printf( "Divisores: %d\n", x);
  return 0;
}
	
	
	
	O código mostra os todos divisores ímpares de um número.
 
	
	
	O código mostra os todos divisores pares de um número.
	
	
	O código mostra os todos os divisores de um número.
	
	
	O código mostra os números divisíveis por 3.
	
	
	O código mostra os números divisíveis por 2.
 
	
Explicação:
O aluno deve compreender que estão sendo testados como divisor todos os números menores que a metade do número introduzido pelo usuário, e caso o número testado tenha divisão exata esse será mostrado.
Assim como o próprio número, já que todo número é divisível por ele mesmo.
	
	
	
	 
		
	
		2.
		Na maioria das linguagens de programação, as estruturas de controle de fluxo são fundamentais para a criação de programas elegantes e de fácil entendimento. Assinale a alternativa correta com relação aos comandos de controle de fluxo da linguagem C, sabendo que o comando for apresenta a seguinte forma geral: for (inicialização;condição;incremento) declaração;
	
	
	
	Pode-se omitir a declaração, e, mesmo assim, o comando for ainda será válido.
	
	
	O comando continue usado dentro de um laço executa a próxima linha de código independentemente do fato de ela estar dentro ou fora do laço.
	
	
	Não é permitido omitir a condição no comando for, pois não existiria maneira de parar o laço infinito.
	
	
	O comando for garante que o laço seja executado pelo menos uma vez.
	
	
	Sem os comandos de controle de fluxo, só haveria uma maneira de o programa ser executado: de baixo para cima e comando por comando.
	
	
	
	 
		
	
		3.
		Analise o código a seguir e marque a alternativa que exprime o que esse trecho de código executa, caso o usuário introduzaum número positivo maior que zero:
#include < stdio.h> //Retire o espaço depois de < quando for compilar
int main()
{
int x, i=1;
printf("Entre com numero: "); scanf("%d", &x);
while(i<=x)
{
    if(i%2==0) printf("%d\n", i);
    i++;
}
return 0;
}
	
	
	
	O código mostra os todos os divisores ímpares de um número.
 
	
	
	O código mostra os todos os números pares menores ou igual a x.
	
	
	O código mostra os todos os números ímpares menores ou igual a x.
	
	
	O código mostra os números divisíveis por 3.
	
	
	O código mostra os números divisíveis por 2.
	
Explicação:
O aluno deve compreender que estão sendo testados os números menores que o número introduzido pelo usuário, e caso o número testado tenha seja par será mostrado.
Assim como o próprio número quando este for par.
	
	
	
	 
		
	
		4.
		João foi realizar uma prova que tinha uma questão com o trecho abaixo e pedia para assinalar a opção que mostrava quantas vezes seria exibida a mensagem Tenho que estudar.
Se fosse você, qual escolheria?
int y;
for(y=5; y>=25; y+=5); puts("\nTenho que estudar");
 
	
	
	
	6 vezes
	
	
	19 vezes
	
	
	Nenhuma vez
	
	
	5 vezes
	
	
	1 vez 
	
Explicação:
 O aluno precisa ter entendido que a estrutura do for usa uma PA ou PG
	
	
	
	 
		
	
		5.
		João foi realizar uma prova que tinha uma questão com o trecho abaixo e pedia para assinalar a opção que explicava a finalidade da estrutura while nele.
   int num; 
   puts("\nNumero de ... algarismos:"); 
   scanf("%d", &num);
   while (num < 100 || num > 999)
   {     
    puts("\nNumero FORA do Intervalo");
    puts("\nNumero de ... algarismos:"); 
    scanf("%d", &num);
   }       
 
	
	
	
	Trecho de Proteção para evitar que o usuário digite número no intervalo de 100 a 999.
	
	
	Trecho que deixa entrar com vários números enquanto o usuário digitar números no intervalo de 100 até 999.
	
	
	Trecho de Proteção para evitar que o usuário digite número menor do que 100 e maior do que 999.
	
	
	Trecho de Proteção para evitar que o usuário digite número menor do que 100 ou maior do que 999.
	
	
	Nenhuma finalidade tem esse trecho
	
Explicação:
O conceito de trecho de proteção é fundamental na programação para evitar que valores indesejáveis sejam aceitos.
	
	
	
	 
		
	
		6.
		1. Sabendo-se que um usuário entrou com o primeiro número (num1) igual a 10 e o segundo (num2) número igual a 20, analise o trecho do código apresentado na figura 1 e marque a resposta que confere exatamente com a saída esperada pelo código.
Figura 1
 
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	 
		
	
		7.
		Analise o código a seguir e marque a alternativa que exprime o que esse trecho de código executa:
#include < stdio.h> //Retire o espaço depois de < quando for compilar
int main()
{
   int x, i;
   printf("Entre com numero: "); scanf("%d", &x);
   for(i=1; i<1 + x/2; i++)
   {
      if(x%i==0 && i%2!=0) printf("Divisores: %d\n", i);
   }
   if(x%2!=0)printf( "Divisores: %d\n", x);
   return 0;
}
	
	
	
	O código mostra os números divisíveis por 2.
	
	
	O código mostra os todos os divisores pares de um número.
	
	
	O código mostra os todos os divisores ímpares de um número.
	
	
	O código mostra os números divisíveis por 3.
	
	
	O código mostra os todos os divisores de um número.
	
	
	 
		
	
		8.
		Quando tomamos conhecimento das três estruturas de repetição, ficamos sem saber, em alguns trechos, o que elas fazem.
Observe o trecho abaixo e assinale  a opção que esclarece o que está sendo feito.
float num; 
for(;;)
{    
     puts("\nNumero: ");
     scanf("%f", &num);
     if(num  <=  0 ) break;
        printf("\n%.2f", num *3); 
 }   
 
	
	
	
	Simula a estrutura do ... while, enquanto num for <= 0
	
	
	Simula a estrutura while, enquanto num for <= 0 
	
	
	Simula a estrutura do ... while, enquanto num for > 0.
	
	
	Simula a estrutura while, enquanto num for > 0.
	
	
	Nada porque tem erro na linha do for.
	
Explicação:
Simular outra estrutura de repetição foi bem explorada na AULA 5
		Analise o código a seguir e marque a alternativa que exprime o que esse trecho de código executa:
#include < stdio.h> //Retire o espaço depois de < quando for compilar
int main()
{
   int x, i;
   printf("Entre com numero: "); scanf("%d", &x);
   for(i=1; i<1 + x/2; i++)
   {
      if(x%i==0 && i%2!=0) printf("Divisores: %d\n", i);
   }
   if(x%2!=0)printf( "Divisores: %d\n", x);
   return 0;
}
	
	
	
	O código mostra os números divisíveis por 2.
	
	
	O código mostra os todos os divisores pares de um número.
	
	
	O código mostra os todos os divisores ímpares de um número.
	
	
	O código mostra os números divisíveis por 3.
	
	
	O código mostra os todos os divisores de um número.
		
		A programação oferece diversas estruturas de forma a facilitar a programação quanto a sua organização. Alguns dessas estruturas evitam que determinada parte do código tenha de ser repetido diversas vezes. Marque a alternativa que contenha todas essas estruturas.
	
	
	
	FOR, WHILE e DO WHILE
	
	
	IF e SWITCH CASE
	
	
	WHILE, DO WHILE e SWITCH CASE
	
	
	SWITCH CASE e IF/ELSE
	
	
	IF/ELSE e FOR
	
	
	
	 
		
	
		2.
		Analise o trecho de código abaixo e determine qual a saída gerada:
int i,  A = 0, B = 1 ;
for (i = 1; i < 5; i++) {
      A = B;
      B = i + B * A;
}
cout << " A = " <<  A << " B =  " << B;
	
	
	
	A = 39  B = 1525
	
	
	A = 8 B = 67
	
	
	A = 0 B = 1
	
	
	A = 67  b = 4757
	
	
	A = 6 B = 39
	
	
	
	 
		
	
		3.
		 Muitas séries matemáticas podem ser geradas pela estrutura do  for. Analise o código abaixo, supondo que você digitou 2 e 4 quando lhe foram solicitados dois números e escolha a opção que contém a série exibida pelo código.
	
	
	
	2       4       4       8       12       20       32       52
	
	
	2       4       6       10       16       26       42
	
	
	2       4       6       8       19       12       14       16
	
	
	2       4       4       8       12       20       32       
	
	
	2       4       6       10       16       26       42       68
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		4.
		Analise o código a seguir e marque a alternativa que exprime o que esse trecho de código executa, caso o usuário introduza um número positivo maior que zero:
#include < stdio.h> //Retire o espaço depois de < quando for compilar
int main()
{
int x, i=1;
printf("Entre com numero: "); scanf("%d", &x);
while(i<=x)
{
    if(i%2!=0) printf("%d\n", i);
    i++;
}
return 0;
}
	
	
	
	O código mostra os números divisíveis por 2.
	
	
	O código mostra os números divisíveis por 3.
	
	
	O código mostra os todos os números pares menores ou igual a x.
	
	
	O código mostra os todos os números ímpares menores ou igual a x.
	
	
	O código mostra os todos os divisores ímpares de um número.
 
	
Explicação:
O aluno deve compreender que estão sendo testados os números menores que o número introduzido pelo usuário, e caso o número testado tenha seja ímpar será mostrado.
Assim como o próprio número quando este for ímpar.
	
	
	
	 
		
	
		5.
		O programa abaixo terá qual saída?
int main() {
int j = 2;
for ( int i = 1 ; i < = 3 ; i++ ) {
     cout << i * j << endl; }
}
	
	
	
	2
4
6
	
	
	12
	
	
	1 * 2 = 2
2 * 2 = 4
3 * 2 = 6
	
	
	2, 4, 6
	
	
	1 * 2
2 * 2
2 * 3
	
	
	
	 
		
	
		6.
		Considere o trecho de código abaixo. O que será impresso quando o programa for executado?
int main()
{
    int contador = 10; 
     
    while (contador > 1) 
    {
          printf("%d ", contador); 
          
          contador--;
         
    }
     
    return 0; 
}
	
	
	
	Nunca vai parar. 10 10 10 10 10 10 10 10...
	
	
	10 9 8 7 6 5 4 3 2 1
	
	
	10 9 8 7 6 5 4 3 2
	
	
	Nunca vai parar. 1 1 1 1 1 1 1 1 1 1 1 1 ...
	
	
	1 2 3 4 5 6 7 8 9
	
Explicação:
A estrutura while repete o bloco enquanto o teste for verdadeiro.
Se a variável contadorcomeça com 10 e exibe o valor do contador enquanto ele for maior do que, significa que quando ele for decrementado e chegar a 1, interromperá a repetição;
Resposta correta: 10 9 8 7 6 5 4 3 2
	
	
	
	 
		
	
		7.
		int main() {
  int contador = 1; 
  while (contador < 10)
 {
    printf("%d ", contador);
    contador++;
} 
return 0;
}
	
	
	
	0 1 2 3 4 5 6 7 8 9 10 11
	
	
	0 1 2 3 4 5 6 7 8 9 10
	
	
	1 2 3 4 5 6 7 8 9
	
	
	1 2 3 4 5 6 7 8 9 10
	
	
	1 2 3 4 5 6 7 8 9 10 11
	
	
	
	 
		
	
		8.
		Todo laço de repetição dever possuir um critério de parada para que o mesmo não fique executando indefinidamente.
Analise o código a seguir e marque a opção que representa um critério de parada a ser introduzido no código, no bloco while, a fim que o código em execução
mostre todos os números pares diferente de zero e inferiores ao valor introduzido pelo usuário a variável x.
#include < stdio.h> //Retire o espaço depois de < quando for compilar
int main()
{
int x, i=1;
printf("Entre com numero: "); scanf("%d", &x);
while(i<=x)
{
   if(i%2==0) printf("%d\n", i);
}
return 0;
}
	
	
	
	i+x;
 
	
	
	i--;
	
	
	x++;
	
	
	i++;
	
	
	x--;
	
Explicação:
A fim de garantir que o programa execute apenas enquanto que a variável i seja menor que o valor armazenado em x. Temos que incrementar a variável i a cada iteração do laço.
Assim fazemos i++
		Suponha que as notas digitadas pelo usuário sejam respectivamente (4.5; 8.5; 6.5).
int main()
{
float n1, n2, n3, med;
puts("Digites as notas");
scanf("%f", &n1);
scanf("%f", &n2);
scanf("%f", &n3);
med= (n1+n2+n3)/3;
if(med>=7)
printf("Aluno aprovado com: %.1f\n", med);
else
printf("Aluno reprovado com: %.1f\n", med);
system("pause");
return 0;
}
Desconsidere a necessidade da declaração das bibliotecas.
Qual será a mensagem final exibida para o usuário?
	
	
	
	Aluno aprovado com: 6.5
	
	
	Aluno aprovado com: 6.00
	
	
	Aluno aprovado com: 6.0
	
	
	Aluno reprovado com: 6.50
	
	
	Aluno reprovado com: 6.5
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		2.
		Observe o trecho abaixo. Supondo que você digitou 8 na entrada de dados, o que será exibido?
int  num;
puts("\nDigite número inteiro\n");
scanf("%d", &num);
if( num = 5 )
  printf(" \nMuito interessante\n" );
  printf(" \nDificil");
   
 
	
	
	
	Dá erro de sintaxe porque faltam as chaves.
	
	
	Desce o cursor e exibe Muito interessante. Desce o cursor e exibe Dificil.
	
	
	Desce o cursor e exibe Dificil.
	
	
	.Desce o cursor e só exibe Muito interessante.
	
	
	Dá erro porque só tem um sinal de igual no teste.
	
Explicação:
Muita atenção para o comando de atribuição dentro do teste, uma vez que só tem um =. Sendo assim, qualquer valor digitado será substituído por 5 e o teste será verdadeiro porque a UAL retorna um se o valor for diferente de 0 nesse caso.
 
	
	
	
	 
		
	
		3.
		Uma empresa que presta serviços de pintura predial, desenvolveu um aplicativo destinado a calcular o número de latas necessárias para pintar uma parede. O programa lê o tipo de pintura(interna ou externa), a largura e a altura em metros(inteiros) da parede. Para calcular a quantidade de tinta e o número de latas, sabe-se que são necessários 3 litros de tinta para pintar cada metro quadrado interno ou 4 litros para cada metro quadrado externo. Sabe-se também que cada lata tem 2 litros de tinta.
Dado o trecho de programa abaixo, identifique a opção correta que complemente o programa para realizar o cálculo do número de latas de tinta:
void main(){
float altura, largura;
char tipo; int total_latas, tot_metros, aux;
puts("\nDigite E para Externo e I para Interno");
tipo = getchar();
puts("\nDigite a altura da parede: ");
scanf("%f",&altura);
printf("\nDigite a largura da parede: ");
scanf("%f",&largura);
tot_metros = altura*largura;
	
	
	
	if(tot_metros%2)
aux = 1;
else
aux = 0;
switch(tipo){
case 'I': break;
case 'i': break;
printf("%d",(tot_metros*3)/2+aux);
case 'E': break;
case 'e': break;
printf("%d",(tot_metros*4)/2+aux);
default:
printf("%s","Tipo invalido");
}
system("PAUSE");
}
	
	
	if(tot_metros%2)
aux = 1;
else
aux = 0;
switch(tipo){
case 'I':
case 'i':
printf("%d",(tot_metros*3)/2+aux);
case 'E':
case 'e':
printf("%d",(tot_metros*4)/2+aux);
default:
printf("%s","Tipo invalido");
}
system("PAUSE");
}
	
	
	switch(tipo){
case 'I':
case 'i':
printf("%d",(tot_metros*3)/2+aux);
break;
case 'E':
case 'e':
printf("%d",(tot_metros*4)/2+aux);
break;
default:
printf("%s","Tipo invalido");
}
system("PAUSE");
}
	
	
	if(tot_metros%2)
aux = 1;
else
aux = 0;
switch(tipo){
case 'I':
case 'i':
printf("%d",(tot_metros*3)/2+aux);
break;
case 'E':
case 'e':
printf("%d",(tot_metros*4)/2+aux);
break;
default:
printf("%s","Tipo invalido");
}
system("PAUSE");
}
	
	
	if(tot_metros%2)
aux = 1;
else
aux = 0;
switch(tipo){
case 'I': break;
case 'i': break;
printf("%d",(tot_metros*3)/2+aux);
break;
case 'E': break;
case 'e': break;
printf("%d",(tot_metros*4)/2+aux);
break;
default:
printf("%s","Tipo invalido");
}
system("PAUSE");
}
	
	
	
	 
		
	
		4.
		Qual dos trechos de programa em C++ apresentados indica corretamente se um numero é par ou impar?
	
	
	
	cin >> numero;
if (numero %2 = 1)
cout << "par";
else
cout <<"impar";
	
	
	cin >> numero;
if (numero / 2 == 0)
cout << "par";
else
cout <<"impar";
	
	
	cin >> numero;
cout << numero %2;
	
	
	cin >> numero;
if (numero % 2 = 0)
cout << "par";
else
cout <<"impar";
	
	
	cin >> numero;
if (numero %2 == 0)
cout << "par";
else
cout <<"impar";
	
Explicação:
cin >> numero;
if (numero / 2 == 0)
cout << "par";
else
cout <<"impar";
Neste trecho a comparação verifica se o resultado da divisão por 2 é zero, por isso está errada.(numero / 2 == 0)
cin >> numero;
if (numero % 2 = 0)
cout << "par";
else
cout <<"impar";
Neste trecho não há comparação e sim a tentativa errada de se fazer uma atribuição (numero % 2 = 0)
cin >> numero;
if (numero %2 = 1)
cout << "par";
else
cout <<"impar";
Neste trecho não há comparação e sim a tentativa errada de se fazer uma atribuição (numero % 2 = 1)
cin >> numero;
cout << numero %2;
Neste trecho de código é impresso o resto da divisão por 2 do valor armazenado na variável numero. E não é isto que se quer.
	
	
	
	 
		
	
		5.
		Em uma estrutura de decisão com if/else onde se deseja comparar vetores de char, pode-se usar:
 
	
	
	
	a função strcmp() 
 
	
	
	operadores lógicos
 
	
	
	a função pow() 
 
	
	
	operadores aritméticos
 
	
	
	operadores relacionais
 
	
Explicação:
Para se criar um teste que compare vetores de char só é possível com a função strcmp() da biblioteca string.h
nunca pode-se usar os operadores relacionais.
	
	
	
	 
		
	
		6.
		Um desenvolvedor construiu um código onde estava presente o trecho abaixo.
char resp;
scanf("%c", &resp);
switch(toupper(resp)) ;
{
case 'A': puts("Digitou a letra A" ); break;
case 'E': puts("Digitou a letra E" ); break;
case 'i': puts("Digitou a letra I" );
case 'O': puts("Digitou a letra O" );
case 'U': puts("Digitou a letra U" ); break;
default: puts("Nao digitou vogal" );
}
Analise as afirmativas abaixo e assinale a opção correta.
I Se digitar I, aparece: Digitou a letra I / Digitou a letra O/ Digitou a letra U uma mensagem em cada linha.
II Se digitar i, aparece: Nao digitou vogal.
III Se digitar o, aparece:Digitou a letra O/ Digitou a letra U uma mensagem em cada linha.
IV Se digitar a, aparece: Nao digitou vogal.
V Se digitar A, aparece: Digitou a letra A.
	
	
	
	II, III e V são verdadeiras
	
	
	II e, IV são verdadeiras
	
	
	III e IV são verdadeiras
	
	
	Só a a III é verdadeira
	
	
	I, III e IV são verdadeiras
	
	Gabarito
Coment.
	
	
	
	 
		
	
		7.
		Preencha as lacunas abaixo para que a mensagem abaixo seja exibida, caso a variável Idade seja maior ou igual a 18 e a variável Peso seja maior que 50.
if((Idade_ _ _18)_ _ _(peso_ _ _50))
{
printf("Você pode ser doador de Sangue");
}
	
	
	
	<>; and; >;>=; e; >;
	
	
	>=; &&; >;
	
	
	>=; &; >;
	
	
	>>; and; >;
	
Explicação:
Relendo a pergunta:
Preencha as lacunas abaixo para que a mensagem abaixo seja exibida, caso a variável Idade seja maior ou igual a 18 e a variável Peso seja maior que 50. 
Preenchendo
if((Idade >=18) &&  (peso > 50)) 
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		8.
		Alguns iniciantes na linguagem C sentem dificuldades de usar a estrutura dos ifs encadeados. Sabemos que algumas afirmativas abaixo não produziriam um resultado errado, mas que tornaria o programa com menor qualidade, visto que testes seriam realizados sem necessidade.
Então, leia com atenção e só escolha a afirmativa poderá ajudá-los a construir programas com qualidade, usando todos os recursos da estrutura if ... else if .....
 
	
	
	
	Melhor seria substituir, sempre, os ifs encadeados pela estrutura do switch().
	
	
	Posso substituir ifs encadeados por ifs simples sem prejuízo de qualidade.
	
	
	O número de ifs encadeados é igual ao número de respostas possíveis, não considerando a resposta errada do usuário, pois essa seria criticada no else.
	
	
	O número de ifs encadeados é igual ao número de respostas possíveis, considerando a resposta errada do usuário e não usaria else.
	
	
	Posso substituir por vários ifs simples e um if composto, ao final, para criticar a resposta errada do usuário.
		Em programação é possível que haja decisões usando o IF. Todo IF deve vir seguido de uma condição que deve ter como resultado Verdadeiro ou Falso. Considerando esta afirmativa, qual das opções abaixo deve apresentar erro na compilação.
	
	
	
	if (x <= 8)
	
	
	if (a != 6)
	
	
	if (z = 21)
	
	
	if (x > 7.2)
	
	
	if (y >= 14)
	
Explicação:
Errada: if (z = 21)
O operador relacional de igualdade é ==
	
	
	
	 
		
	
		2.
		A estrutura do if na linguagem C, como em toda linguagem, tem uma sintaxe. Observe as afirmações abaixo e escolha a opção ERRADA.
 
I As chaves de abertura e fechamento, sempre,  não são obrigatórias.
II No teste unimos expressões relacionais com operadores lógicos quando necessário.
III A palavra then está presente na estrutura.
IV O uso do  else poderá não ser necessário.
 
	
	
	
	I está errada.
	
	
	IV está correta e a I não está correta.
	
	
	II está correta e a III não está correta.
	
	
	II e IV estão corretas.
	
	
	I e III estão corretas.
	
Explicação:
Não existe then na linguagem C
Somente estão corretas a II e IV.
Como está pedindo a errada, teremos: I e III estão corretas como resposta.
 
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		3.
		Seja o código a seguir, caso o usuário insira o valor 3 na variável num, qual a mensagem aparecerá na tela?
#include
#include
int main ()
{
    int num;
    printf ("Digite um numero: ");
    scanf ("%d",&num);
    if(num = 2)
       printf("O numero eh 2");
    else  printf("O numero eh diferente de 2");
    return(0);
}
	
	
	
	O numero eh 3
	
	
	Nenhuma mensagem é exibida, pois há um erro no código.
	
	
	O numero eh diferente de 2
	
	
	O numero eh diferente de 3
	
	
	O numero eh 2
	
Explicação:
Há um erro lógico neste código, pois a condição avaliada deveria ser num == 2, entretanto quando escrevemos num =2, é realizada uma atribuição do valor 2 na variável num, assim quando esta é avaliada como condição, será considerada sempre verdadeira, portanto para qualquer que seja o número digitado este código sempre executrá a linha de comando  printf("O numero eh 2");
	
	
	
	 
		
	
		4.
		Se a minha média for maior ou igual a 6 estarei aprovado, caso contrário, estarei reprovado. Qual dos trechos abaixo escritos em C++ representa esta situação?
	
	
	
	if (media != 6)
{
cout << "Aprovado";
}
else
{
cout << "Reprovado";
}
	
	
	if (media > 6)
cout << "Aprovado";
else
cout << "Reprovado";
	
	
	if (media > 6)
{
cout << "Aprovado";
}
else
{
cout << "Reprovado";
}
	
	
	if (media >= 6)
cout << "Aprovado";
else
cout << "Reprovado";
	
	
	if (media <= 6)
cout << "Aprovado";
else
cout << "Reprovado";
	
Explicação:
if (media > 6) errado pois aprovado apenas aqueles que obtiverem media maior que 6
if (media <= 6)errado pois aprovado apenas aqueles que obtiverem media menor ou igual que 6
if (media != 6)errado pois aprovado apenas aqueles que obtiverem media diferente que 6
if (media >= 6)correto pois aprovado apenas aqueles que obtiverem media maior ou igual que 6
	
	
	
	 
		
	
		5.
		Um programa deve ler um valor inteiro. Caso o valor lido seja positivo deve imprimir a mensagem "Valor positivo". Assinale a opção que apresenta  estrutura condicional CORRETA para a solução desse problema.
 
 
	
	
	
	if ( valor <= 0 )
	
	
	if (valor < 0 )
	
	
	if ( valor > 0 )
	
	
	if ( valor != 0 )
  
	
	
	if ( valor == 0 )
	
	
	
	 
		
	
		6.
		Verifique o código a seguir e marque a alternativa que representa o que seria exibido na tela se o usuário atribuísse o valor 1 para a variável aux:
int main(){
int aux;
scanf("%d",&aux);
switch(aux)
{
  case 1 : printf("caso 1");
  case 2 : printf("caso 2");
           break;
  case 3 : printf("caso 3");
           break;
  case 4 : printf("caso 4");
}
 
	
	
	
	caso 3
 
	
	
	caso 2
 
	
	
	caso 1
 
	
	
	caso 2caso 3
	
	
	caso 1caso 2
 
	
Explicação:
A entrada no bloco switch se dará no case 1 já que o valor atribuído a vaiável aux é 1, porém como não há o comando break após a execução do comando printf("caso 1"), a execução do programa prossegue para o case 2.
e é executado o comando printf("caso 2"), em seguida o comando break para a execução do bloco switch. Assim o que é exibido na tela é caso 1caso 2, já que não há nenhuma quebra de linha.
	
	
	
	 
		
	
		7.
		Qual é a saída de tela, deste trecho de programa?
int x=4,
y=8;
if (x < 2)
    printf ("%d \n", x);
else
    printf ("%d \n", y);
	
	
	
	\n4
	
	
	8
	
	
	9
	
	
	12
	
	
	\n8
	
Explicação:
Neste trecho de código são declaradas duas variáveis do tipo inteiro, x e y.
A variável x recebe o valor 4 e y recebe o valor 8.
O comando if testa a condição x<2.
Caso a condição seja verdadeira, a linha de comando que será executada é: printf ("%d \n", x); que exibe na tela o valor armazenado em x.
Caso a condição testada seja falsa, a linha de comando que será executada é: printf ("%d \n", y); que exibe o valor armazenado em y. Neste caso, como o valor de x é 4 a condição x<2 é falsa assim será exibido o valor de y, isto é 8.
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		8.
		Um desenvolvedor estava construindo um código que tinha quatro possibilidades de resposta válidas além de uma mensagem de erro.
O dado testado era do tipo inteiro.
Assinale a opção que ele escolheu.
	
	
	
	quatro ifs simples e um composto
	
	
	quatro ifs simples
	
	
	switch() com quatro cases e um default
	
	
	três ifs simples e um composto
	
	
	switch() com cinco cases
		
		Observe o trecho do programa abaixo:
float a, b, c;
printf("\n Digite o primeiro numero: "); scanf ("%f",&a);
printf("\n Digite o segundo numero: "); scanf ("%f",&b);
if (a >= b) { printf("Valor de c: %f" , c = a + b); } else { printf("Valor de c: %f" , c = a - b); }
Se o usuário digitar os números abaixo, marque a opção que contém as saídas corretas.
10 e 5 ; 8 e 8 ; 3 e 9 ; 25 e 15 ; 6 e 32.
	
	
	
	16 ; - 16 ; -6 ; 40 ; -26
	
	
	15 ; 16 ; -6 ; 40 ; -26
	
	
	15 ; 0 ; -6 ; 35 ; 26
	
	
	15 ; 16 ; 6 ; 40 ; -26
	
	
	16 ; 0 ; -6 ; 40 ; 26
	
	
	
	 
		
	
		2.
		Considere o código abaixo. Considere que o usuário digite 3. O que será impresso para o usuário?
int main (void )
{
  int valor;
 
  printf ("Digite um valor de 1 a 7: ");
  scanf("%d", &valor);
 
  switch ( valor )
  {
     case 1 :
       printf ("Domingo\n");
     break;
 
     case 2 :
       printf ("Segunda\n");
     break;
 
     case 3 :
        printf ("Terca\n");
     break;
 
     case 4 :
        printf ("Quarta\n");break;
 
     case 5 :
        printf ("Quinta\n");
     break;
 
     case 6 :
        printf ("Sexta\n");
     break;
 
     case 7 :
        printf ("Sabado\n");
     break;
 
     default :
       printf ("Valor invalido!\n");
  }
 
  return 0;
}
	
	
	
	Quinta
	
	
	Terca
	
	
	Valor invalido
	
	
	Segunda
	
	
	Quarta
	
	
	
	 
		
	
		3.
		Marque a opção que apresenta apenas operadores relacionais:
	
	
	
	> < == <= >=
	
	
	> < ++ == >=
	
	
	!+ != == =+
	
	
	> < == && >=
	
	
	> < == >+ >=
	
Explicação:
Os operadores relacionais do C são:
> < == >= <= !=
	
	
	
	 
		
	
		4.
		 Uma das dificuldades da estrutura escolha/ caso é o fato das restrições variarem para cada linguagem, dificultando a fixação. Na linguagem C, essa estrutura recebe o nome de switch() e tem suas restrições. Observe os trechos abaixo e assinale o que é possível ser usado na linguagem C, supondo que  se espera encontrar na variável de nome a, inteira, alguns valores e entres eles está o número 90. Analise as linhas abaixo e assinale que foi escrita corretamente para testar o número 90 na estrutura switch().
	
	
	
	case 90: printf("Pode") ; break;
	
	
	case a=90: printf("Pode") ;break;
	
	
	case a > 90: printf("Pode") ;break;
	
	
	90: printf("Pode"); stop;
	
	
	90: printf("Pode");
	
Explicação:
A estrutura switch tem uma sintaxe simples, mas precisamos saber que ela não admite que se use nos casos(cases) operadores relacionais.
Cada case(obrigatório) deverá conter uma constante.
Em alguns casos, o break; poderá ser dispensável.
Sendo assim, duas respostas sem case estão erradas e duas que apresentam operadores relacionais estão erradas.
case 90: printf("Pode") ; break; é a resposta correta.
	
	Gabarito
Coment.
	
	
	
	 
		
	
		5.
		Na estrutura de decisão o teste é uma expressão relacional que compara os valores dos seus operandos. A expressão relacional é formada, por um operador relacional e dois operandos. Podemos afirmar que:
	
	
	
	A Unidade Aritmética e Lógica testa essa expressão e retorna a soma lógica dos valores dos operandos.
	
	
	A Unidade Aritmética e Lógica testa essa expressão e retorna uma mensagem pra que o programdor saiba qual será o desvio do fluxo.
	
	
	A Unidade Aritmética e Lógica testa essa expressão e retorna 1 (ou qualquer número diferente de zero) quando a expressão é verdadeira.
	
	
	A Unidade Aritmética e Lógica testa essa expressão e retorna o valor lógico do maior operando.
 
	
	
	A Unidade Aritmética e Lógica testa essa expressão e retorna o valor lógico do menor operando.
	
Explicação:
A Unidade Aritmética e Lógica testa essa expressão e retorna 1 (ou qualquer número diferente de zero) quando a expressão é verdadeira. E retorna zero quando a expressão é falsa.
	
	
	
	 
		
	
		6.
		No contexto do comando switch e do uso do comando break emm seu interior, na linguagem de programação C é correto afirmar que:
	
	
	
	toda cláusula case de um comando switch, incluindo a cláusula case default, deve conter um comando break;
	
	
	a expressão usada numa cláusula case de um comando switch pode ser de qualquer tipo e deve conter pelo menos uma variável;
	
	
	quando um comando break é executado, o comando switch é encerrado e o fluxo de controle passa para o próximo comando após o fim do comando switch
	
	
	não é possível executar comandos de uma das cláusulas case de um comando switch na mesma execução desse comando.
	
	
	os comandos na cláusula case default de um comando switch são executados apenas se nenhuma das cláusulas case anteriores possuir um comando break;
	
	
	 
		
	
		7.
		 Qual a saída esperado no trecho de código abaixo:
int x = 4;
int y = 8;
if (x < 2){
      printf("%d", x);
} else{
       printf("%d", y);
}
	
	
	
	4
	
	
	9
	
	
	8
	
	
	12
	
	
	\n8
	
	
	
	 
		
	
		8.
		Observe o trecho do programa abaixo:
             float a, b, c;
                        printf("\n Digite o primeiro numero: ");
                        scanf ("%f",&a);
                        printf("\n Digite o segundo numero: ");
                        scanf ("%f",&b);
           
                        if (a >= b)  {
                        printf("Valor de c: %f" , c = a + b);
                        }
                        else {
                                    printf("Valor de c: %f" , c = a - b);
}
Se o usuário digitar os números abaixo, marque a opção que contém as saídas corretas.
10 e 5 ; 8 e 8 ; 3 e 9 ; 25 e 15 ; 6 e 32.
	
	
	
	15 ; 16 ; -6 ; 40 ; -26
	
	
	15 ; 16 ; 6 ; 40 ; -26
	
	
	16 ; 0 ; -6 ; 40 ; 26
	
	
	16 ; - 16 ; -6 ; 40 ; -26
	
	
	15 ; 0 ; -6 ; 35 ; 26
		Na linguagem de programação C, como em outras, na criação de programas, devemos definir os tipos de dados para nossas variáveis de acordo com o problema em questão.
Das opções apresentadas qual possui apenas tipos da linguagem C, conforme o material apresentado nas aulas.
	
	
	
	char, int, float, double, boolean
	
	
	char, int, float, double, void
	
	
	char, int, real, double, boolean
	
	
	char, integer, float, real, boolean
	
	
	char, int, real, double, void
	
	Gabarito
Coment.
	
	
	
	 
		
	
		2.
		Dado o trecho de lógica utilizando o conceito da linguagem de programação C. Diga o resultado das variáveis x, y e z depois da seguinte sequência de operações:
int x,y,z;
x=y=10;
z=++x;
x=-x;
y++;
x=x+y-(z--);
	
	
	
	x = 11
y = 11
z = 15
	
	
	x = -01
y = 01
z = 10
	
	
	x = -13
y = 11
z = 13
	
	
	x = -20
y = 20
z = 10
	
	
	x = -11
y = 11
z = 10
	
Explicação:
int x,y,z; 
x=y=10; 
z=++x; 
x=-x; 
y++;
x=x+y-(z--); 
Nesta questão são declaradas 3 variáveis do tipo inteiro (x,y e z). 
Atribui-se o valor 10 para as variáveis x e y.
Em seguida incrementa-se o valor de x, passando este a valer 11 e atribui-se este valor a variável z.
 O comando seguinte é x=-x, atribui-se a variável x o seu valor negativo, isto é -11. 
Em seguida incrementa-se o valor em y que passa a valer 11.
Então é realizada a expressão : x=x+y-(z--), Assim x= -11+11-11, ou seja x recebe -11.
E por fim decrementa-se o valor de z, que passa valer 10.
Pois embora a variável esteja entre parênteses usa-se o valor dela e só depois o decremento é realizado, pois o operador de decremento está pós-fixado.
Logo os valores finais das variáveis são:
x=-11, y=11 e z=10
	
	Gabarito
Coment.
	
	
	Gabarito
Coment.
	
	
	
	 
		
	
		3.
		São todos operadores aritméticos da Linguagem C:
	
	
	
	+, -, *, /
	
	
	%, ||, &&, ==
	
	
	&&, ||, !
	
	
	MOD, DIV, %, &&
	
	
	>, >=, <, <=, ==
	
Explicação: Os operadores aritméticos são: + (soma), - (subtração), * (multiplicação) e / (divisão).
	
	
	
	 
		
	
		4.
		Um aluno declarou uma variável real da seguinte forma: float num =145.1;
Qual linha ele deverá incluir em seu programa para que exiba o conteúdo com quatro casas à esquerda do ponto decimal e, as demais, à direita.
	
	
	
	printf("\nValor de num: %d ",(int)num); 
 
	
	
	printf("\nValor de num: %.4d",num); 
	
	
	printf("\nValor de num: %8.3f ",num);
	
	
	printf("\nValor de num: %.2f ",num);
	
	
	printf("\nValor de num: %08.2f ",num); 
	
Explicação:
O aluno precisa conhecer todos os especificadores de formato e o que significa casting(conversão de tipo)
	
	
	
	 
		
	
		5.
		Marque a opção que apresenta apenas dados primitivos da linguagem C
	
	
	
	char, boolean, int, double
	
	
	char, int, float, double
	
	
	char, inteiro, real, composto
 
	
	
	chat, int, real, double
	
	
	char, boolean, inteiro, double
	
Explicação:
A linguagem C apresenta apenas 4 tipos primitivos de dados : char, int, float e double
	
	
	
	 
		
	
		6.
		Um aluno viu o trecho de programa abaixo e não sabe qual das linhas daria como resposta 4.50
int num1=3, num2=6, num3=4;
Indique a linha.
	
	
	
	printf("\nResultado: %.2f ",(float)num1 + num2/num3);
	
	
	printf("\nResultado: %d ",num1 + num2/num3);printf("\nResultado: %.2f ",num1 + (float)num2/num3);
	
	
	printf("\nResultado: %.2d",num1*1.0 + num2/num3);
	
	
	printf("\nResultado: %.2f ",(float)(num1 + num2/num3)); 
	
Explicação:
O aluno precisa conhecer todos os especificadores de formato e o que significa casting(conversão de tipo) e que inteiro dividido por inteiro, inteiro será o quociente.
	
	
	
	 
		
	
		7.
		Analisando o código a seguir, que usa a função getchar(), podemos dizer:
/* programa getchar.c */
 
#include
int main(void)
{
   char cLetra;
 
   cLetra = getchar(); 
 
   printf("Letra digitada %c\n", cLetra);
   printf("Na tabela ASCII %d\n", cLetra);
   return 0;
}
	
	
	
	O código está correto, pois a  função getchar(), não tem nenhuma ação nesse código.
	
	
	O código está correto, embora a função getchar() retorne um int e este está sendo atribuído a uma variável tipo char.
	
	
	O código está errado, pois a função getchar() retorna um número e seu retorno não pode ser atribuído a uma variável do tipo char.
 
	
	
	O código está errado, pois a função getchar() deve ser usada apenas para dar uma pausa no código.
 
	
	
	O código está errado, pois a função getchar() nunca retorna um número. Portanto não pode-se usar a linha  printf("Na tabela ASCII %d\n", cLetra);
	
Explicação:
A resposta correta é: O código está correto, embora a função getchar() retorne um int e este está sendo atribuído a uma variável tipo char.
O código está correto, pois embora a função getchar() retorne um int, pode-se atribuir para um char devido a conversão automática da linguagem.
	
	
	
	 
		
	
		8.
		Sabe-se que os códigos das letras Maiúsculas se encontram no intervalo fechado de 65 a 90(A-Z) e os das letras Minúsculas se encontram no intervalo fechado de 97 a 122(a-z)
Qual das linhas abaixo apresenta a letra e Minúscula?
char c='A';
	
	
	
	printf("\nValor de num: %c",tolower(c)+4);
	
	
	printf("\nValor de c: %c ",c);
	
	
	printf("\nValor de c: %f ",c);
	
	
	printf("\nValor de num: %c ",toupper(c)+3);
	
	
	printf("\nValor de c: %d ",c); 
	
Explicação:
O aluno precisa conhecer todos os especificadores de formato e o que significa casting(conversão de tipo) e conhecer as finalidades das funções tolower() e toupper()
	
	Analise o trecho de código a seguir e marque a opção que representa o valor armazenado na variável media.
int a,b ;
float media;
a=5;
b=2;
media=a/b;
 
	
	
	
	3.0
	
	
	2
 
	
	
	2.5
 
	
	
	5
 
	
	
	3
 
	
Explicação:
Na linguagem C o resultado de uma divisão entre inteiros sempre resultará em um número inteiro, a menos que se use cast.
	
	
	
	 
		
	
		2.
		Um aluno sabia que, no Código ASCII os algarismo de 0 a 9 têm códigos no intervalo fechado de 48 a 57.
Ele viu várias linhas em um programa e gostaria de saber qual a linha que estava exibindo o algarismo de código 51.
int num=51;
 
	
	
	
	printf("\nValor de num: %.f ",num);
	
	
	printf("\nValor de num: %.f ",(float)num); 
 
	
	
	printf("\nValor de num: %c ",num);
	
	
	printf("\nValor de num: %d ",num); 
	
	
	printf("\nValor de num: %.4d",num);
	
Explicação:
O aluno precisa conhecer todos os especificadores de formato e o que significa casting(conversão de tipo)
	
	
	
	 
		
	
		3.
		Acerca dos operadores, marque a opção correta:
	
	
	
	Não podemos realizar operações dentro do comando printf.
	
	
	Todas as alternativas acima estão corretas.
	
	
	O operador = tem a mesma função de ==.
	
	
	O operador "maior ou igual" pode ser utilizado tanto como >= quanto =>.
	
	
	O operador potência necessita de uma biblioteca específica.
	
	
	
	 
		
	
		4.
		Na linguagem de programação C, como em outras, na criação de programas, precisamos fazer a entrada e saída de dados no sistema e para tal temos algumas opções.
Das opções apresentadas, qual não é parte linguagem C, conforme o material apresentado nas aulas.
	
	
	
	scanf ( )
	
	
	cin ( )
	
	
	fgetc(stdin)
	
	
	printf ( )
	
	
	getchar ( )
	
	
	 
		
	
		5.
		Em C++, como podemos inicializar a variável sexo recebendo um valor F?
	
	
	
	char sexo == F;
	
	
	char sexo = F;
	
	
	char sexo = 'F';
	
	
	char sexo = "F";
	
	
	string sexo = "F"
	
Explicação:
A atribuição de uma variável do tipo char deve ser realizada com o valor entre aspas simples, ou melhor apóstrofes.
	
	
	
	 
		
	
		6.
		Sabe-se que os códigos das letras Maiúsculas se encontram no intervalo fechado de 65 a 90(A-Z) e os das letras Minúsculas se encontram no intervalo fechado de 97 a 122(a-z)
Qual das linhas abaixo apresenta a letra H Maiúscula?
char c='e';
	
	
	
	printf("\nValor de c: %f ",c);
	
	
	printf("\nValor de c: %d ",c); 
	
	
	printf("\nValor de c: %c ",c);
	
	
	printf("\nValor de num: %c",tolower(c)+3);
	
	
	printf("\nValor de c %c ",toupper(c)+3); 
	
Explicação:
O aluno precisa conhecer todos os especificadores de formato e o que significa casting(conversão de tipo) e conhecer as finalidade das funções tolower() e toupper().
	
	
	
	 
		
	
		7.
		Escolha a opção que inclui somente nomes válidos para variáveis na linguagem C.
	
	
	
	2_ou_1, fim, *h, j
	
	
	i, j, int, obs
	
	
	nota-2 , a36, x_y
	
	
	If, nota_do_aluno_2, HOJE, _yes
	
	
	2nota, a36, x#y, --j
	
Explicação:
Analisando as possíveis respostas.
i, j, int, obs -> Tem palavra reservada (int)
2nota, a36, x#y, --j -> Não pode começar por número, nem ter caractere # e nem -
If, nota_do_aluno_2, HOJE, _yes -> CORRETA
2_ou_1, fim, *h, j -> Não pode começar por número, nem ter caractere * e o segundo caractere, sendo o primeiro _, Não pode ser número.
nota-2 , a36, x_y -> Não pode ter caractere -
	
	Gabarito
Coment.
	
	
	
	 
		
	
		8.
		Um engenheiro precisava calcular o valor do imposto a ser pago no carnê leão.
Sabe-se que o imposto é calculado sobre o salário bruto.
Acompanhe o programa codificado na linguagem C, supondo que você digitou 4000 para primeira solicitação de entrada e 1000, para segunda solicitação. Escolha a opção onde está presente o valor do imposto.
	
	
	
	Valor do imposto a ser pago: 800.00
	
	
	Valor do imposto a ser pago: 650.00
	
	
	Valor do imposto a ser pago: 750.00
	
	
	Valor do imposto a ser pago: 850.00
	
	
	Valor do imposto a ser pago: 1000.00
	
Explicação:
A variável imposto recebe (4000 + 1000) e que multiplicado por 15 obterá o resultado 7500.00. Depois, esse valor é dividido por, totalizando 750.00
		Na linguagem de programação C, como em outras, na criação de programas, precisamos fazer a entrada e saída de dados no sistema e para tal temos algumas opções.
Das opções apresentadas, qual não é parte linguagem C, conforme o material apresentado nas aulas.
	
	
	
	scanf ( )
	
	
	cin ( )
	
	
	fgetc(stdin)
	
	
	printf ( )
	
	
	getchar ( )
	
	
	
		1.
		Os operadores de incremento (++) e decremento (--) são muito utilizados no desenvolvimento de programas. Se em uma linha de um programa em C utilizarmos o seguinte comando: a=b++, qual das opções abaixo demonstra a operação que será executada:
	
	
	
	b=b-1; a=b;
	
	
	a=b; b=b-1;
	
	
	a=a+1; b=b+1;
	
	
	a=b; b=b+1;
	
	
	b=b+1; a=b;
	
Explicação:
a=b++; Significa que, primeiro, o valor atual de b será atribuído à variável a e, depois, a variável b será incrementada de 1.
Sendo assim, equivaleria aos dois comandos : a=b; b=b+1;
	
	
	
	 
		
	
		2.
		As bibliotecas da linguagem C guardam funções predefinidas da linguagem. Veja o código a seguir e marque a alternativa que contém as bibliotecas necessárias para que este código funcione.
#include________
#include________
int main()
{
int a=2, b=2, c=8, delt;
delt=(pow(b, 2)-(4*a*c));
system("pause");
return (0);
}
Não leve em consideração os sinais de maior e menor que envolvem o nome das bibliotecas.
	
	
	
	cmat.h - ctype.h
	
	
	stdlib.h - ctype.h
	
	
	stdio.h - stdlib.h
	
	
	stdio.h - ctype.h
	
	
	math.h - stdlib.h
	
Explicação:
Como não

Outros materiais