早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

下面C程序中,若在屏幕上输入数值331后回车,程序执行后,屏幕上显示的输出结果应为(63)。main(void)

题目

下面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=%o\n",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=~(~04):计算c的值:
       0:  0000000000000000
      ~0:  1111111111111111
    ~04:  1111111111110000
  ~(~04):  0000000000001111
  故c的值为1111。
  由d=b&c;得到d为1101,即八进制的15。故本题答案为B。