参考答案和解析
正确答案:A
解析:a=73=11111=100=4(+进制),b=~4&3=~100&11=11&11=11=3(+进制),所以,答案为选项A)。注意:位运算的优先级及其所构成的表达式。
更多“以下程序的功能是进行位运算main(){ unsigned char a,b;a=73;b=~4&3;printf("%d%d\n",a,b);} ”相关问题
  • 第1题:

    以下程序的功能是进行位运算: 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
    解析:C语言提供六种位运算符,按优先级由高到低的顺序分别为:取反(-)→左移()和右移(>>)→按位与(&)→按位异或(∧)→按位或(|)。”∧”是按位异或运算,当对应位上的二进制数值相同时,异或的结果为0,对应位上的二进制数值不同时,异或的结果为1,本题“7∧3”相当于0111∧0011,所以a的值为4;“&”是按位与运算符,只有当所有对应位上的数值都为1时,结果才为1;"-"是按位取反。题中“-4&3”相当于1011&0011=0011,所以b的值为 3。

  • 第2题:

    以下程序的功能是进行位运算 main ( ) { unsigned char a, b; a=73; b=~4&3; printf (,%d %d\n" ,a,b); } 程序运行后的输出结果是

    A.4 3

    B.7 3

    C.7 0

    D.4 0


    正确答案:A
    解析:是位异或运算符,其作用是将左右运算分量的相应二进制位进行异或操作。即,相应位同时为。或同时为1则结果相应位为0,否则结果相应位为1。所以a=73=(00000111)2(00000011)2=(00000100)2=4。~是位反运算符,作用是将运算分量的二进制位按位取反。即,原来是0的二进制位变成1,原来是1的变成0。&是位与运算符,其作用是将左右运算分量的相应二进制位进行与操作。即,相应位同时为1时结果相应位为1,否则结果相应位为0。所以b=-4&3=~(00000100)2&(00000011)2(11111011)2&(00000011)2=(00000011)2=3。故应该选择A。

  • 第3题:

    以下程序的功能是进行位运算。 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

  • 第4题:

    以下程序的功能是进行位运算:include main( )unsigned char a,b;a =7∧3; b = ~4&3

    以下程序的功能是进行位运算:#include <stdio.h>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
    解析:“^”是按位异或运算,运算规则是:当两个二进制数对应位上的数相同时,异或结果为0,否则结果为1。73相当于0110011,所以a的值为4。“&”是按位与运算符,其运算规则是:当二进制数的所有对应位上的数值都为1时,结果才为1;“~”是按位取反。~4&3相当于1011&0011=0011,所以b的值为3。

  • 第5题:

    有以下程序include.main(){char*p="abcde\ofghjik\0";printf("%d\n",strlen(p));} 程

    有以下程序 #include.<string.h> main() { char *p="abcde\ofghjik\0"; printf("%d\n",strlen(p)); } 程序运行后的输出结果是

    A.12

    B.15

    C.6

    D.5


    正确答案:D
    解析:本题首先定义了一个字符型指针变量p,并用一个宇符串给它赋值,然后调用printf()函数输出p所指向的字符串的长度。字符串的结束标记为“\0”,其长度为“\0”前的字符个数,故长度为5。所以4个选项中D正确。