The important thing to remember is that the reference operator returns the memory address of the variable/object.
a) You initialize and assign memory addresses to pointers which then can be dereferenced.
b) The function parameter will hold a copy of its type, which is a pointer in this case. Therefore, any memory address stored in a pointer passed to a function will also be dereference-able by the function's parameter.
c) Pretty iffy, so I agree with you there. Indeed, reference variables can be used as aliases to variables (not just ints). Therefore, you are using the same variable without having to use pointers.
I would say c is definitely false though a is worded a little off. In fact, its just the wording that kind of sets them off.
a) False, although taking the address of a reference will give you the address of the aliased variable.
b) True. Pointers may be passed by reference the same as any other type.
c) In the sense that a reference and a pointer are both indirect ways to get to a thing, one needs to dereference a pointer (sometimes via *) to get past the indirection and such a thing is not required for a reference. The wording didn't make much sense to me.