Well for the first two , you are spot on.
Now as for
3) can I declare the parameter of the method in the code blocks ?
If this sentence meant to do something like this
void method(int a) {
int a; // Error because a is alread declared in method() stack
for (int a; a<1;a++); //Error again because its already declared in stack.
}
Hope this clears your doubt.
Thanks
Deepak