For option a, lexical analyzer will see the next character after + , because it will choose the longest possible group as a lexeme. If after + no valid character is seen then only the lexical analyzer will generate token for + operator. Thus option a is not the answer.
For option b, on seeing the 'return' character sequence, lexical analyzer will generate token i.e. keyword for lexeme return only if there is no character except a delimiter, otherwise if the next character follows the pattern of identifier, then token id will be generated instead of keyword. Thus option b is no answer.
Similar explanation for option c and option d.
For option e, lexical analyzer, on seeing first + operator , will see the next character which is also + operator. After seeing the second + operator, lexical analyzer will group the ++ operator into a lexeme without seeing the next character. Because after ++ operator , there is no character which will together form a single lexeme. Thus lexical analyzer will generate token for lexeme ++(increment operator).
Why token is generated for ++ and not for +?
This is because lexical analyzer generated a token for longest sequence that can form a token.
Similar explanation for , ; ( ) ' operators in option e. Thus option e is the answer.