Static analysis can detect structural issues like undefined variables (a), unreachable code (b), variable redefinitions (d), and array bounds violations (e) by analyzing code without execution. However, it cannot determine if a stored value is logically correct for the intended computation (c); that requires understanding requirements and dynamic testing.