# 2.11. Exercises

**Exercise 2.17.** First, fully parenthesize the following expressions according to the
precedence and associativity rules. Then, replacing the variables and
constants with the appropriate type names, show how the type of the
expression is derived by replacing the highest precedence expressions with
its resulting type.

The variables are:

char c; int i; unsigned u; float f;

For example: `i = u+1;`

parenthesizes
as `(i = (u + 1));`

The types are

(int = (unsigned + int));

then

(int = (unsigned)); /* usual arithmetic conversions */

then

(int); /* assignment */

`c = u * f + 2.6L;`

`u += --f / u % 3;`

`i <<= u * - ++f;`

`u = i + 3 + 4 + 3.1;`

`u = 3.1 + i + 3 + 4;`

`c = (i << - --f) & 0xf;`