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