:: is basically meant to manipulate a global variable, in case a local variable also has the same name.
Object Oriented Programming MCQ - Find Output
The symbol << has a context sensitive meaning. The << in (a << 2) means shifting a by 2 bits to the left, which is nothing but multiplying it by 4. So, a < <2 will be 5 x 4 = 20 and hence the output will be FIRST20SECOND.
int &p=x aliases p to x. This means they refer to the same memory location. So, the address of x will be same as that of p.

