一、选择题
15.1 以下程序的输出结果是
A) 100
B) 160
C) 120
D) 64
main()
{ char x=040;
printf("%d\\n",x=x<<1);
}
答案:D
15.2 以下程序中c的二进制值是
A) 00011011
B) 00010100
C) 00011100
D) 00011000
char a=3, b=6, c;
c=a^b<<2;
答案:A
15.3 以下程序的输出结果是
A) 0
B) 1
C) 2
D) 3
main()
{ int x=35; char z=\’A\’;
printf("%d\\n",(x&15)&&(z<\’a\’));
}
答案:B
15.4 以下程序的输出结果是
A) 0
B) 1
C) 2
D) 3
main()
{ int a=5,b=6,c=7,d=8,m=2,n=2;
printf("%d\\n",(m=a>b)&(n=c>d));
}
答案:A
二、填空题
15.5 设变量a的二进制数是00101101,若想通过运算a^b使a的高4位取反,低4位不变,则b的二进制数应是_______。
答案:11110000
15.6 a为任意整数。能将变量a清零的表达式是______。
答案:a&0
15.7 a为任意整数。能将变量a中的各二进制位均置成1的表达式是_____。
答案:a=a|0xffff
15.8 能将两字节变量x的高8位置全1,低字节保持不变的表达式是_____。
答案:x=x|0xff00
15.9 运用位运算,能将八进制数012500除以4,然后赋给变量a的表达式是_____。
答案:a=012500>>2
15.10 运用位运算,能将变量ch中的大写字母转换成小写字母的表达式是_____。
答案:ch|0x20