问题 单项选择题

有以下程序:
#include <stdio.h>
main()
char a=4;
printf("%d\n", a=a<<1);

程序的运行结果是( )。

A) 40
B) 16
C) 8
D) 4

答案

参考答案:C

解析: 本题考查的是左移运算。因为计算机中的数据都是以二进制形式存放,而位移运算的实质就是将这些二进制左移或右移若干位。如果不考虑溢出,每左移1位其实就等价于对原数乘以2,右移1位就等价于对原数除以2。这就好像在现实的十进制中,如果我们将100左移1位,结果是1000,是不是大了10倍将100右移1位,结果是10,结果等于十分之一了。所以,本题中a<<1的结果是4*2=8,因为8不会超过char类型的表示范围,所以输出结果为8,应该选择C)。

单项选择题 A1/A2型题
单项选择题