C语言位运算练习题1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言位运算练习题
一、选择题:
(1)以下程序的功能是进行位运算
main()
{ unsigned char a, b;
a=7^3; b= ~4 & 3;
printf("%d %d ",a,b);
}
程序运行后的输出结果是
A)4 3
B)7 3
C)7 0
D)4 0
(2)有以下程序
main()
{
int c=35; printf("%d ",c&c);
}
程序运行后的输出结果是
A)0
B)70
C)35
D)1
(3) 设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是
A) c1^c2
B) c1&c2
C) ~c2
D) c1|c2
(4) 有以下程序
main( )
{ unsigned char a,b;
a=4|3;
b=4&3;
printf(“%d %d ”,a,b(;
}
执行后输出结果是
A) 7 0
B) 0 7
C) 1 1
D) 43 0
(5) 有以下程序
main()
{ int x=3, y=2,z=1;
printf("%d ",x/y&~z);
}
程序运行后的输出结果是
A) 3
B) 2
C) 1
D) 0
(6) 设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是
A) 10101001
B) 10101000
C) 11111101
D) 01010101
(7) 有以下程序
main()
{ unsigned char a,b,c;
a=0x3; b=a|0x8; c=b<<1;
printf(“%d%d ”,b,c);
}
程序运行后的输出结果是
A) –11 12
B) –6 –13
C) 12 24
D) 11 22
(8) 以下程序的输出结果是
main()
{ char x=040;
printf("%0 ",x<<1);
A) 100
B) 80
C) 64
D) 32
(9) 整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是
A) x || y
B) x | y
C) x & y
D) x ^ y
(10) 以下程序的输出结果是
A) 0
B) 1
C) 2
D) 3
main()
{ int x=0.5; char z=’a’;
printf(“%d ”, (x&1)&&(z<’z’) ); }
(11) 设int b=2;表达式(b>>2)/(b>>1)的值是
A) 0
B) 2
C) 4
D) 8
(12) 设有如下定义:int x=l,y=-1;,则语句:printf("%d ",(x--&++y));的输出结果是
A) 1
B) 0
C) -1
D) 2
(13) 语句:printf("%d ",12 &012);的输出结果是
A) 12
B) 8
C) 6
D) 012
(14) 下面程序的输出是
A) 100
B) 160
C) 120
D) 64
main()
{ char x=040;
printf("%d ",x=x<<1);}
(15) 执行下面的程序段
int x=35;
char z=‘A‘;
int b;
b=((x&15)&&(z<’a’));
后,B的值为
A) 0
B) 1
C) 2
D) 3
(16) 设有以下语句:
char a=3,b=6,c;
c=a^b<<2;
则c的二进制值是【16】。
A) 00011011
B)00010100
C)00011100
D)00011000
二、填空题:
(1) 设二进制数a是00101101,若想通过异或运算a^b使a的高4位取反,低4位不变,则二进制数b应是【1】。
11110000