Considere int a=2 , b=3, c=4, d=5; Quantas conversões de tipo serão necessárias e qual será o valor atribuído à variável float v pela instrução a seguir. Lembrar que a função pow retorna um valor do tipo float.
v=(a+pow((c+d), 2) / pow(b, 2) * d) *(1.0 / c) ;

Passo 1

O enunciado pede para contabilizar quantas conversões implícitas de int para float ocorrem ao avaliar a expressão e calcular o valor final de v, sabendo que a=2, b=3, c=4, d=5 e que pow retorna float.

Passo 2

Primeiro calculamos c+d e b, pois serão usados em pow. Temos c+d=4+5=9 e b=3. A chamada pow((c+d),2) recebe dois ints (9 e 2) e converte cada um para float (2 conversões). Da mesma forma, pow(b,2) converte b e 2 para float (mais 2 conversões).

Passo 3

Depois, dividimos os resultados de pow: como ambos são float, não há conversão. Em seguida multiplicamos por d; como d é int, ocorre 1 conversão para float.

Passo 4

Agora somamos a (int) ao resultado float anterior: a é convertido para float (1 conversão).

Passo 5

Para o fator (1.0/c), assumimos 1.0 como float, logo c (int) é convertido para float (1 conversão), e o resultado da divisão é float.

Passo 6

Por fim, multiplicamos o subtotal (float) por (1.0/c) (float), sem gerar conversões adicionais.

Passo 7

Somando todas as conversões: 2 (primeiro pow) + 2 (segundo pow) + 1 (multiplicação por d) + 1 (soma com a) + 1 (divisão 1.0/c) = 7 conversões. O valor de v fica:
c+d&=9, pow(9,2)&=81, pow(3,2)&=9, 81/9times5&=9times5=45, 2+45&=47, 1.0/4&=0.25, v&=47times0.25=11.75

Resposta

Serão necessárias 7 conversões de tipo e o valor atribuído a v será 11.75.

Exercícios relacionados