参考答案和解析
正确答案:D
解析:先求得x/y的值为1,然后按位对非1数进行与运算,则结果必为0。
更多“有以下程序 main( ) { int x=3, y=2, z=1; printf("%d\n",x/y&~z); } 程序运行后的输 ”相关问题
  • 第1题:

    有以下程序

    main()

    { int x,y,z;

    x=y=1; z=x++,y++,++y;

    printf("%d,%d,%d\n",x,y,z);

    }

    程序运行后的输出结果是

    A.2,3,3

    B.2,3,2

    C.2,3,1

    D.2,2,1


    正确答案:C
    解析:整型变量x、y的初值都为1,"x++,y++,++y"是一个逗号表达式,程序执行"z=x++,y++,++y"后,x的值为2,y的值为3,z取豆号表达式中第二个表达式的值,为1。

  • 第2题:

    有以下程序:includemain(){int x=3,y=2,z=1; printf("%d\n",x/y&~z);程序运行后的

    有以下程序: #include <stdio.h> main() { int x=3,y=2,z=1; printf("%d\n",x/y&~z); 程序运行后的输出结果是( )。

    A.3

    B.2

    C.1

    D.0


    正确答案:D
    解析:&是按位“与”运算符,若参加运算的两个运算量的相应位都为1,则该位的结果值为1,否则为0。~是“取反”运算符,用来对一个二进制数按位取反,即将0变1,1变0。对于x/y&~z,先计算x/y的值,结果为1,用十六进制表示为0001;z用十六进制表示为0001,则~z为FFFE;最后进行&运算,整个表达式的值为0。

  • 第3题:

    有以下程序: main() {int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d,%d\n",x,y,z); 程序运行后的输出结果是( )。

    A.2,3,3

    B.2,3,2

    C.2,3,1

    D.2,2,1


    正确答案:C
    解析:z=x++是先把x的值1赋给z,所以z=1,然后再把x加1赋给x,x=2,++y后y又加1,所以y=3。

  • 第4题:

    有以下程序: main() { int x=3,y=2,z=1; printf("%d\n",x/y&~z); } 程序运行后的输出结果是( )。

    A.3

    B.2

    C.1

    D.0


    正确答案:D
    解析:在prinft()函数的表达式中,“&”前面表达式的值为1(3/2=1)表示为二进制为00000001,而按位取反运算符“~”的优先级高于按位与运算符“&”,先计算“&”后面的取反运算符“~”。z的二进制表示为00000001,取反后为11111110,员后进行“&”,即“00000001&11111110”可知结果为00000000,故最后的值为0,所以,4个选项中选项D符合题意。

  • 第5题:

    有以下程序: main() { int x=5,y=2,z=1; printf("%d\n",x%y&~z); }程序运行后的输出结果为______。

    A.3

    B.2

    C.1

    D.0


    正确答案:D