【试题055】C语言位逻辑运算符例题

1.说明:将数据中的每个二进制位上的0/1作为逻辑值,按位运算

位逻辑运算符分为按位非、按位与、按位或和按位异或四种

规则:~按位取反,&同时为1才为1,|有一边为1就为1,^相同为0不同为1

2.题目:

设int a=2,b=5;,结果为0的表达式是 ? A a%b B a&b C a=b D a!=b

  • 分析:A: a%b→2%5=2
  • B:a&b→2&5→0010&0101=0
  • C:a=b将b的值赋给a,a=5
  • D:a!=b→2≠5结果为真1

3.题目:设int x=1,y=-1;

则执行语句printf("%d\n”,x--&++y);后输出结果是 ?

  • 分析:x--&++y→1&0=0

4.题目:

下面值为0的表达式是? A 0==0 B 2&&5 C !5<2 D 2&5

  • 分析:A:0==0为真输出1
  • B:2&&5两边都不为0是真的,输出1
  • !5<2→5是非0数字,那么!5=0,所以0<2为真输出1
  • 2&5→0010&0101=0

5.题目:

下列表达式值为0的是? A 5/2 B 2&&5 C !2 || 5 D 2&5

  • 分析:A:5/2=2
  • B:2&&5两边都不为0是真的,输出1
  • C: !2 || 5,2是非0数,那么!2=0,0 || 5=1
  • 2&5→0010&0101=0

6.题目:设int x=1,y=2;

则执行语句printf("%d\n",x&y);后输出结果是?

  • 分析:x&y=1&2=0001&0010=0

7.题目:设int x=3,y=5;

则执行printf("%d\n",x^y);后输出?

  • 分析:x^y=3^5=0011^0101=0110=6

8.题目:执行语句printf("%d\n",4&5/6);后的输出结果是?

  • 分析:4&5||6:根据运算符优先级,&排8,||排12
  • 所以4&5=0100&0101=0100=4
  • 接着 4 ||直接短路输出1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值