Ah ok - you're right, the question is crap. At least, it's badly worded: "*the* two rectangles" would normally refer to the two rectangles previously created, but I think the intention is for you to create two rectangles that *do* overlap and print the intersection, *then* to create two new rectangles (or possibly only one new one) which do not overlap and to again print the result of the intersection method.
It's well worth reading the API doc for Rectangle.intersection(Rectangle) - it explains what the return value will be when the two Rectangles don't overlap. I think this is as much as anything else to test your ability to read the API docs. The intersection method documentation does have the answer to the first part of the second question, and there is a method in Rectangle which is the perfect answer to the second part.
I think that's the best way to interpret the question. It's certainly misleadingly written if you read it logically. If your teacher says you've got the right answer in the end, perhaps you should suggest to them that they wrote the wrong question and draw their attention to their careless use of the definite article.