• Matéria: Lógica
  • Autor: renanpicoli9283
  • Perguntado 3 anos atrás

A linguagem C possui um mecanismo de conversão automática de tipos. Considere que o tipo char tenha 1 byte, o tipo int tenha 2 bytes e o tipo float tenha 4 bytes e que o código ASCII da letra Y é 89, da letra b é 98 e da letra c é 99. Analise o programa C abaixo. Int main () { int x; char ch; float f; ch=x= 300; printf ("x=%d ch=%d\n", x, ch); x=ch=f= 98. 8999; printf ("f= %. 4f ch=%c x=%d \n", f, ch, x); return 0; } A saída desse programa é: (Ref. : 202213532971) x= 300 ch=300 f= 98. 89 ch= b x=98 x= 300 ch=44 f= 98. 8999 ch= b x=98 x= 256 ch=44 f= 0. 8999 ch= Y x=98 x= 300 ch=300 f= 98. 8999 ch= c x=99 x= 255 ch=0 f= 98. 8999 ch= Y x=89

Respostas

respondido por: vbonat
0

Analisando o código em linguagem de programação C, determinaremos que a saída é dada por b).

Código em linguagem de programação C

A variável do tipo char (caractere) em C é codificada por um número inteiro (int). Assim, podemos imprimir o seu valor em inteiro ou o caractere correspondente. A primeira instrução para imprimir do programa retornará os valores inteiros de x (int) e ch (char), pois utiliza a instrução "%d":

printf ("x = %d ch = %d\n", x, ch);

x = 300 ch = 44

A segunda instrução para imprimir retornará o valor da variável float  (%f), inteiro (%d) e o caractere correspondente ao inteiro (%ch):

printf ("f = %.4f ch = %c x = %d \n", f, ch, x);

f = 98.8999 ch = b x = 98

Portanto, é correta a alternativa b).

Alternativas organizadas

a) x= 300 ch=300 f= 98. 89 ch= b x=98

b) x= 300 ch=44 f= 98. 8999 ch= b x=98

c) x= 256 ch=44 f= 0. 8999 ch= Y x=98

d) x= 300 ch=300 f= 98. 8999 ch= c x=99

e) x= 255 ch=0 f= 98. 8999 ch= Y x=89

Anexos:
Perguntas similares