A-A+
下面C程序中 若在屏幕上输入数值331后回车 程序执行后 屏幕上显示的输出结果应为(63)。
问题详情
下面C程序中,若在屏幕上输入数值331后回车,程序执行后,屏幕上显示的输出结果应为(63)。 main(void) { unsigned int a,b,c,d; Scanf("%o",&a); b = a>>4; c = ~ (~ 0 << 4); d = b & c; printf("d=%on",d); }
A.d=10
B.d=15
C.d=25
D.d=45
参考答案
正确答案:B
解析:在屏幕上输入数值331后回车,a的值为八进制的331,其二进制表示为11011001。右移4位后为1101。故执行语句b=a>>4;得b的二进制表示为1101。
现在由语句c=~(~0<<4):计算c的值:
0:0000000000000000
~0:1111111111111111
~0<<4:1111111111110000
~(~0<<4):0000000000001111
故c的值为1111。
由d=b&c;得到d为1101,即八进制的15。故本题答案为B。