1、练习 9 位运算一、填空题1. 设有 char a,b;若要通过 aa=0x9a; b=a;printf(“b:%xn”,b);return 0;7. 以下程序的运行结果是 。#include int main()unsigned a=0112,x,y,z;x=a3;printf(“x=%o,“,x);y=(0int main()unsigned a=0361,x,y; int n=5;x=an; printf(“y1=%o,“,y);y|=x; printf(“y2=%o,“,y);return 0;9. 以下程序的运行结果是 。 #include int main()char a=0x95
2、,b,c;b=(a a=b|c; printf(“%xn“,a);return 0;10. 以下程序的输出结果是 。#include int main() int x=5;char z=a ;printf(“ %dn“,(xint B;B=(241A0 B1 CTURE DFALSE7. 若有以下程序段,则执行以下语句后 x,y 的值是分别是 。int x=1,y=2; x=xy; y=yx; x=xy;Ax=1,b=2 Bx=2,y=2 Cx=2,y=1 Dx=1.y=18. 在位运算中,操作数每右移一位,其结果相当于 。A操作数乘以 2 B操作数除以 2C操作数除以 4 D操作数乘以 49
3、. 在位运算中,操作数每左移一位,其结果相当于 。A操作数乘以 2 B操作数除以 2 C操作数除以 4 D操作数乘以 410. 以下程序的输出结果是 。A100 B80 C64 D32#includeint main()char x=040;printf(“ %on”,x1);return 0;参考答案:一、 填空题1. 100000100B 2. (a&0x40)=1 3. 00001111B 4. 0000000011111111B5. 11110000B 6. b:ffffff65 7. x=11,y=17,z=11 8. x=1704000,y1=7,y2=17040079. 59 10. 1 二、单选题1. B 2. D 3. C 4. B 5. B6. B 7. C 8. B 9. A 10. A