# 1.7.1. Expressions-WE6-P1¶

Subgoals for evaluating an assignment statement

Determine resultant data type of expression

Update variable for pre-increment or pre-decrement operators (side effect)

Evaluate arithmetic expression according to operator precedence

If an assignment statement (=), is Left Hand Side (LHS) a variable? Check data type of value against data type of variable.

Update variable for post-increment or post-decrement operators (side effect)

For the assignment statements below, either give the new value of the assigned variable, or explain why the statement is invalid. Each problem is independent of the others (e.g. Question 2 does not depend on Question 1, only the “Given” code). **If you must round a numeric answer, use 4 decimal places of precision.**

Expressions-WE6-P1

**Given**

```
int alpha = 2, beta = 1, delta = 3, eta, gamma;
double omega = 2.5, theta = -1.3, kappa = 3.0, lambda, rho;
```

Q34: `rho = alpha / kappa + --beta;`

What is the value of rho?

Q35: `rho = alpha / kappa + --beta;`

What is the value of beta after execution?

Q36: `eta = ++alpha * --delta`

What is the value of delta after execution?

Q37: `eta = ++alpha * --delta`

What is the value of alpha after execution?

Q38: `eta = ++alpha * --delta`

What is the value of eta?

Q39: `gamma = alpha / --delta + ++beta;`

What is the value of delta after execution?

Q40: `gamma = alpha / --delta + ++beta;`

What is the value of beta after execution?

Q41: `gamma = alpha / --delta + ++beta;`

What is the value of gamma after execution?