niusouti.com
更多“有以下程序:main(){intx=0,y=5,z=3; while(z-->0&amp;&amp;++x<5)y=y-1; printf("%d,%d,%d\n",x, ”相关问题
  • 第1题:

    有以下程序 main() { int x=0,y=5,z=3; while(z-->0&&++x<5)y=y-1; printf("%d,%d,%d\n",x,y,z); } 程序执行后的输出结果是

    A.3,2,0

    B.3,2,-1

    C.4,3,-1

    D.5,-2,-5


    正确答案:B
    解析:本题中首先定义了三个整型变量x、y和z并分别赋值为0、5和3, while循环的判定条件为z-->0&&++x5,由于z的初值为3,所以当z--执行3次后, z-->0将不再成立,又由于x的初值为0,所以++x执行5次,++X5将不再成立,而他们两个表达式的值为逻辑与的关系,故当z-->0不成立时整个表达式的值为假,因此该循环共执行了3次,即语句y=y-1共执行了三次,但while循环的判定表达式却执行了四次,故最后输出的x、y、z的值分别为3,2,-1。

  • 第2题:

    3、以下程序执行后的输出结果是 #include <stdio.h> int main() { int x=0,y=5,z=3; while(z-->0 && ++x<5) { y=y-1; } printf("%d,%d,%d\n",x,y,z); return 0; }

    A.3,2,-1

    B.3,2,0

    C.4,3,-1

    D.5,-2,-5


    20 0 20 0

  • 第3题:

    有以下程序: main() { int x=0,y=5,z=3; while(z-->0&&++x<5) y=y-1; printf("%d,%d,%dn",x,y,z); } 程序执行后的输出结果是()

    A.3,2,0

    B.3,2,-1

    C.4,3,-1

    D.5,-2,-5


    A*P=a;P指向首地址,*(P+2))往后移动两个元素,指向3,所以正确答案为A。

  • 第4题:

    有以下程序段,输出结果是()。 int x=0,y=5,z=3; while(z-->0&&++x<5) y=y-1; printf("%d,%d,%dn",x,y,z);

    A.3,2,0

    B.3,2,-1

    C.4,3,-1

    D.5,-2,-5


    B9用二进制表示为1001,右移1位后为0100,即十进制4。

  • 第5题:

    14、以下程序执行后的输出结果是#include <stdio.h> int main() { int x=0,y=5,z=3; while(z-->0 && ++x<5) { y=y-1; } printf("%d,%d,%d\n",x,y,z); return 0; }

    A.3,2,-1

    B.3,2,0

    C.4,3,-1

    D.5,-2,-5


    (14)emoclew