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
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