The answer is C. The program prints:
16

Why?
Python works from the inside out. First double(4) returns 8. Then that answer goes into double again, which returns 16.
Trace table
A trace table follows the program step by step. Here’s this one:
| step | value |
|---|---|
| double(4) | 8 |
| double(8) | 16 |
The code again
def double(number):
return number * 2
print(double(double(4)))
Try it: change one number in the program and predict the new output before you run it.