Informática, perguntado por jooelmi, 5 meses atrás

Sejam as variáveis a, b e c do tipo int (inteiro). Considerando as linhas de código na linguagem C abaixo:

a = 3, b = 2, c = 2;
c++;
c += !a >= b && c != b;

Assinale a alternativa que corresponda ao valor da variável c ao final da execução:

Soluções para a tarefa

Respondido por hen22df83
6

Resposta:

A alternativa "B" está correta.

Explicação:

Na primeira linha as variáveis a, b, c (todas do tipo int) são inicializadas com os valores 3, 2 e 2, respectivamente;

Na segunda linha a variável c é incrementada em 1 unidade. Logo, c = 3 e as demais variáveis permanecem inalteradas (a = 3 e b = 2);

Na terceira linha temos a expressão lógica !a >= b && c != b sendo somada ao valor de c e atribuída à própria variável c ;

Do lado esquerdo da expressão temos a verificação se a negação de a (!a) é maior ou igual a b. Como o valor de a é diferente de zero, portanto considerado na linguagem C como um valor verdadeiro, a sua negação será considerada como falso, ou seja, 0 (zero). E como b tem valor igual a 2, o resultado de !a >= b (0 >= 2) será falso (F);

Do lado direito da expressão temos a verificação se a variável c é diferente de b. Após ter sido incrementada, c = 3. E como b = 2, c != b será verdadeiro (V);

Substituindo na expressão !a <= b && c != b, temos F && V, ou seja, falso E verdadeiro, o que resulta em falso;

Resta atribuir o resultado da expressão lógica à variável c.

Como c é do tipo inteiro, o valor falso será representado pela linguagem C como 0 (zero);

Substituindo em c += !a >= b && c != b, temos c += 0, que é o mesmo que c = c + 0.

Assim, c = 3 + 0 = 3.

Perguntas interessantes