> 3. Which of the following aren not legal types in C?

a. `short unsigned int`
b. `short float`
c. `long double`
d. `unsigned long`

Answer:
b. `short float`

> 4. If `c` is a variable of type `char`, which of the following statements is illegal?

```c
char c;
// A:
i += c; // i has type int
// B:
c = 2 * c - 1;
// C:
putchar(c);
// D:
printf(c);
```

Answer:
D is illegal because `printf` operates on strings, not `char`s.

> 6. For each of the following items of data, specify which one of the types `char`, `short`, `int`, or `long`is the smallest one guaranteed to be large enough to store the item.

Answer:
A. Days in a month: `char`
B. Days in a year: `short`
C. Minutes in a day: `short`
D. Seconds in a day: `long`

> 10. Suppose that `i` is a variable of type `int`, `j` is a variable of type `float`, and `k` is a variable of type `unsigned int`. What is the type of the expression `i + (int) j * k`?

Answer:
`unsigned int`

> 15. Use `typedef` to create types named `Int8`, `Int16`, and `Int32`. Define the types so that they represent 8 bit, 16 bit, and 32 bit integers on your machine.

Answer:
```C
typedef char Int8;
typedef short Int16;
typedef long Int32;
```