Buscar

Marcar questão para revisar antes de finalizar A linguagem C possui um mecanismo de conversão automática de tipos. Considere que o tipo char tenha ...

Marcar questão para revisar antes de finalizar 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 é:

Respostas

User badge image

Ed Verified user icon

Para resolver esse problema, precisamos entender como a conversão automática de tipos funciona em C, considerando os tamanhos dos tipos de dados e os valores atribuídos. Analisando o código fornecido: 1. Na linha "ch=x=300;", o valor 300 é atribuído a x, que é um inteiro de 2 bytes. Como 300 é maior que o intervalo de um char (que vai de -128 a 127), ocorrerá um overflow e o valor armazenado em ch será o resto da divisão de 300 por 256, que é 44. Portanto, x=300 e ch=44. 2. Na linha "x=ch=f=98.8999;", o valor 98.8999 é atribuído a f, que é um float de 4 bytes. Esse valor será truncado para 98, pois ch é um char e só pode armazenar valores inteiros. Portanto, f=98.0000, ch='b' (correspondente ao código ASCII 98) e x=98. Assim, a saída do programa será: "x=300 ch=44" "f=98.0000 ch=b x=98" Portanto, a alternativa correta é: c) "x=300 ch=44" e "f=98.0000 ch=b x=98"

0
Dislike0

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Mais conteúdos dessa disciplina