In static scoping all variables are assigned scope before the program execution. If a variable declaration is missing in local scope it is checked in global scope. So, here the output will be
2 2 2
as the $r$ is procedure 2 is always the global $r$.
In dynamic scoping, non local variables are assigned scope during program execution. If a variable declaration is missing in local scope, it is checked in the function which called the current one. So, the output will be
2 5 2
as when procedure $one$ calls procedure $two$, $r$ will be from procedure $one$ and it has value $5$.