This is Q20 from Dan's Mock Exam 3
The answer is given as c.
Explanation: Short is signed and char is not signed so an explicit cast is necessary when a short is assigned to a char and vice versa.
but then how can byte,short,char and int be implicitly casted as shown by the explanation of the following questions also on Dan's exams
The compiler will implicitly do a narrowing conversion for an assignment statement if the right hand operand is a compile time constant of type byte, short, char, or int and the value falls within the range of the variable on the left and if the variable is of type byte, short, or char.
This was in Dan's Mock exam 1 Q22
If both operands of a binary arithmetic expression are of type byte, char or short; then both are implicitly widened to type int, and the result of the expression is of type int.
This is from Dan's Mock exam 2 Q11
Thanks