【正确答案】
B
【答案解析】[解析] 本题的关键是要弄清楚C语言中常量的表示方法和有关的赋值规则。在一个整型常量后面加一个字母1或L,则认为是long int型常量。一个整型常量,如果其值在-32768~+32767范围内,可以赋给一个int型或long int型变量;但如果整型常量的值超出了上述范围,而在-2147483648~2147483647范围内,则应将其值赋给一个long int型变量。本例中-2L虽然为long int型变量,但是其值为-2,因此可以通过类型转换把长整型转换为短整型,然后赋给int型变量a,并按照%d格式输出该值。