Enunciado

Ache o erro em cada um dos seguintes trechos de códigos. (Nota: pode haver mais de um erro.)

a) For ( x = 100, x >= 1, x++ )

printf( “%d\n”, x );

b) O código a seguir deveria imprimir se determinado

inteiro é ímpar ou par:

switch ( valor % 2 ) {

case 0:

printf( “Inteiro par\n” );

case 1:

printf( “Inteiro ímpar\n” );

}

c) O código a seguir deveria ler um inteiro e um caractere e imprimi-los. Suponha que o usuário digite

100 A.

scanf( “%d”, &intVal );

charVal = getchar();

printf( “Inteiro: %d\nCaractere: %c\n”,

intVal, charVal );

d) for ( x = .000001; x == .0001; x += .000001

) {

printf( “%.7f\n”, x );

}

e) O código a seguir deveria exibir os inteiros ímpares

de 999 a 1:

for ( x = 999; x >= 1; x += 2 ) {

printf( “%d\n”, x );

}

f) O código a seguir deveria exibir os inteiros pares de

2 a 100:

contador = 2;

Do {

if ( contador % 2 == 0 ) {

printf( “%d\n”, contador );

}

contador += 2;

} While ( contador

g) O código a seguir deveria somar os inteiros de 100 a

150 (supondo que total seja inicializado com 0):

for ( x = 100; x

total += x;

}

Passo 1

Saalve, tranquilo?

Vamos lá programar?!

Passo 2

a) os erros no programa estão destacados em azul

O código contém três erros na mesma linha (linha 1) que são os seguintes:

1. Na linha 1 do código a palavra-chave for não está escrita certa. Já que na linguagem C é bem sensível, precisamos escrever for minúsculo.

2. O segundo erro na linha 1 do código é a falha de ter separado cada condição por vírgula ( , ) e não por ponto e vírgula ( ; ).

3. Na linha 1 o terceiro erro é o uso do operador de pós incremento “ x + + ”. Dentro do loop o valor para x é inicializado em 100 e deve ir até 1, o que não é possível com o operador de pós incremento. Para o valor de x diminuir até 1 o operador de decremento deve ser usado como “ x - - "

Agora o código depois de todos os erros corrigidos:

Passo 3

b) os erros no programa são basicamente duas afirmações que estão faltando

Lista de erros no código:

1. A afirmação que está faltando nesse programa é que depois das linhas 4 e 6 deveria ter um comando b r e a k para sair do loop ou mudar para o próximo caso.

Agora o código depois de todos os erros corrigidos:

Passo 4

c) o erro no programa é um comando que está faltando

Lista de erros no código:

1. Para imprimir o inteiro e o caractere na saída, o código deveria ler o valor do caractere. Então o código precisa de um scanf() para o valor do caractere depois da linha 1 e deveria ter outro scanf() que consiga ler o valor do caractere.

Agora o código depois de todos os erros corrigidos:

Passo 5

d) os erros no programa estão destacados em azul:

Lista de erros no código:

1. Na linha 1 do código tem um número de ponto flutuante. Números de ponto flutuante nunca são designados ou nunca são comparados com = = operadores devido a sua imprecisão. Então uma variável inteira como < = operador deve ser usado no loop. O uso de = = operadores causa um problema de imprecisão, que causa um loop infinito.

Agora o código depois de todos os erros corrigidos:

Passo 6

e) os erros no programa estão destacados em azul:

Lista de erros no código:

1. Os erros estão na linha 1 do código. Nós precisamos imprimir os números inteiros ímpares de 999 até 1 e como vamos diminuindo os termos de 999 até 1 então a terceira condição na linha 1 do for deveria ser x - = 2 . Um operador de atribuição de subtração deve ser usado em vez de um operador de atribuição de adição

Agora o código depois de todos os erros corrigidos:

Passo 7

f) os erros no programa estão destacados em azul:

Lista de erros no código:

1. Na linha 1 do código o valor da variável conter não foi inicializado por qualquer palavra chave de tipo. No código, valores inteiros vão ser impressos na saída então a inicialização deve ser feita. Para corrigir o código na linha 1 a palavra-chave int deve ser colocada antes do valor do counter.

2. Na linha 2 do código o comando Do deveria estar em minúsculo.

3. Na linha 7 do código o comando While deveria estar em minúsculo. Já que o valor do counter precisa ser impresso até 100, no loop do while o valor deve ser menor ou igual < =

Agora o código depois de todos os erros corrigidos:

Passo 8

g) os erros no programa estão destacados em azul:

Lista de erros no código:

1. Tem somente um erro na linha 1 do código. O comando for não deveria terminar com ponto e vírgula ( ; ), que deve ser removido

Agora o código depois de todos os erros corrigidos:

Exercícios de Livros Relacionados

Uma pessoa cujo peso é 5,20 10 2 N está sendo puxada para cima vertica
Uma pequena esfera é pendurada por uma corda no teto de uma van. Quand
Mostre que o comprimento de atenuação Λ é igual à distância média que
Deve-se usar a expressão relativística para a energia cinética do elét
Use os dados da figura 2-17 para calcular a espessura de uma lâmina de