Logo Passei Direto
Buscar

Programação

Colégio Objetivo
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 é:


x= 255 ch=0
f= 98.8999 ch= Y x=89
x= 300 ch=300
f= 98. 8999 ch= c x=99
x= 300 ch=300
f= 98.89 ch= b x=98
x= 256 ch=44
f= 0.8999 ch= Y x=98
x= 300 ch=44
f= 98.8999 ch= b x=98
User badge image
Estudando com Questões

há 2 anos

AV1
5 pág.

FAMETRO

Respostas

User badge image

Ed Verified user icon

ano passado

Vamos analisar o código e a saída do programa C passo a passo: 1. Declarações e atribuições: - `ch = x = 300;` - O valor 300 é atribuído a `x`, que é um `int`. - Quando atribuímos 300 a `ch`, que é um `char`, ocorre uma conversão automática. O tipo `char` só pode armazenar valores de 0 a 255 (considerando 1 byte). Portanto, `ch` receberá o valor `300 % 256`, que é `44` (o que corresponde ao caractere `,`). 2. Primeiro printf: - `printf("x=%d ch=%d\n", x, ch);` - Aqui, `x` é `300` e `ch` é `44`. A saída será: `x=300 ch=44`. 3. Segunda atribuição: - `x = ch = f = 98.8999;` - `f` recebe `98.8999`, que é um `float`. - `ch` recebe `98`, pois é convertido para `char`, resultando em `98` (que corresponde ao caractere `b`). - `x` recebe `98`, que é um `int`. 4. Segundo printf: - `printf("f= %.4f ch=%c x=%d \n", f, ch, x);` - Aqui, `f` é `98.8999`, `ch` é `b` e `x` é `98`. A saída será: `f=98.8999 ch=b x=98`. Portanto, a saída correta do programa é: ``` x=300 ch=44 f=98.8999 ch=b x=98 ``` Agora, analisando as opções que você forneceu, a alternativa correta é: **x= 300 ch=44 f= 98.8999 ch= b x=98**

Essa resposta te ajudou?

0
Dislike0
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar essa resposta. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

User badge image

Ed Verified user icon

há 2 anos

A saída do programa é: x= 255 ch=0 f= 98.8999 ch= Y x=89 x= 300 ch=300 f= 98.8999 ch= c x=99 x= 300 ch=300 f= 98.89 ch= b x=98 x= 256 ch=44 f= 0.8999 ch= Y x=98 x= 300 ch=44 f= 98.8999 ch= b x=98 Espero ter ajudado! Se tiver mais alguma dúvida, é só perguntar.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Essa pergunta também está no material:

AV1
5 pág.

FAMETRO

Mais perguntas desse material

Na linguagem C, o cabeçalho de biblioteca stdio.h possui definições de sub-rotinas relativas às operações de entrada/saída padrão. Uma das funções tratadas na biblioteca, associada a esse cabeçalho, é a função:


scanf
print
atoi
strcpy
trunc

Marque a opção que representa a seguinte lógica de programação.
A expressão a seguir especifica que: 1 será adicionado a x, se x for maior que 0; 1 será subtraído de x, se x for menor que 0; o valor de x será mantido, se x for igual a zero.
if(x>=0) x++; else if(x<=0) x--;
if(x>0) x++; else if(x<0) x++;
if(x>0) x++; else if(x<0) x--;
if(x>0) x--; else if(x<0) x--;
if(x>0) x--; else if(x<0) x++;



if(x>=0) x++; else if(x<=0) x--;
if(x>0) x++; else if(x<0) x++;
if(x>0) x++; else if(x<0) x--;
if(x>0) x--; else if(x<0) x--;
if(x>0) x--; else if(x<0) x++;

Mais conteúdos dessa disciplina