[二级C试题天天练]C语言考试试题10

文章作者 100test 发表时间 2007:03:10 16:59:25
来源 100Test.Com百考试题网


21 以下程序的功能是进行位运算
 main()
 {
unsigned char a, b.
 a=7^3. b= ~4 &. 3.
 printf("%d %d\n",a,b).
 }
程序运行后的输出结果是
 A)4 3 B)7 3 C)7 0 D)4 0

答案:a
解析:a=7^3=111^11=100=4(十进制),b=~4&.3=~100&.11=11&.11=11=3(十进制),所以答案为a
“按位与”运算
运算符作用:把参加运算的两个运算数,按对应的二进制位分别进行“与”运算,当两个相应的位都为1时,该位的结果为1,否则为0。
如: 12 : 00001100
&. 10 : 00001010
结果 : 00001000
按位“与”运算特征:任何位上的二进制数,只要和0“与”,该位即被屏蔽(清零);和1“与”,该位保留原值不变。
“按位异或”运算
异或运算的规则是:参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为0;数不同,则该位的结果为1。
如: 00110011
^ 11000011
结果 11110000
“按位异或”运算特征:数为1的位和1“异或”结果为1,原为0的位和1“异或”结果就为1;而和0“异或”的位其值均未变。
“按位或”运算
按位或的运算规则是:参加运算的两个运算数中,只要两个相应的二进制位中有一个为1,该位的运算结果即为1;只有当两个相应位的数都为0是,该位的运算结果才为0。
如: 0123 : 01010011
014 : 00001100
结果 0123| 014 : 01011111
位数不同的运算数之间的运算规则
位运算的对象可以是整型和字符型数据。当两个运算数类型不同时位数亦会不同。遇到这种情况,系统将自动进行如下处理:
(1) 先将两个运算数右端对齐。
(2) 再将位数短的一个运算数往高位扩充,即:无符号数和正整数左侧用0补全;负数左侧用1补全;然后对位数相等的这两个运算数,按位进行位运算。



相关文章


C 习题与解析(友元-01)
C 习题与解析(引用-04)
[二级C试题天天练]C语言考试试题10
C 习题与解析(引用-03)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛