答案1
看来您希望部分和子部分缩进相等。我随意选择了\leftmargini
。
\documentclass{exam}
\usepackage{showframe}% MWE only, to show first margin
\marksnotpoints
\renewcommand{\questionlabel}{Question \thequestion.}
\renewcommand{\questionshook}{\leftmargin=0pt%
\labelwidth=-\labelsep}
\renewcommand\partlabel{\hbox to \labelwidth{\alph{partno}.\hfil}}
\renewcommand{\partshook}{\setlength{\leftmargin}{\leftmargini}%
\setlength{\labelwidth}{\dimexpr \leftmargin-\labelsep}}
\renewcommand\subpartlabel{\hbox to \labelwidth{\thesubpart.\hfil}}
\renewcommand{\subpartshook}{\setlength{\leftmargin}{\leftmargini}%
\setlength{\labelwidth}{\dimexpr \leftmargin-\labelsep}}
\begin{document}
\begin{questions}
\question[4]\hfill
This is the first question.
\begin{parts}
\part
This is a part.
\part
\begin{subparts}
\subpart
This is a subpart.
\subpart
This is a periscope.
\subpart
This is a pair of diving planes.
\end{subparts}
\part
It's sad to be apart.
\end{parts}
\end{questions}
\end{document}