选择题 31.  有以下程序:
    #include<stdio.h>
    main()
    {  int x=4,y;
    do
    {  y=x;
    if(!y)printf("x");
    else
    printf("y");
    x--;
    }while(x);
    }
    程序的运行结果是______。
【正确答案】 B
【答案解析】[考点] 本题考查do-while语句和if...else语句。
do-while语句的功能是先执行循环体,再判断条件,所以先判断if语句的条件,y=-4,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=3,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=2,满足while循环条件,继续循环。第三次循环:先判断if语句的条件,y=2,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=1,满足while循环条件,继续循环。第四次循环:先判断if语句的条件,y=-1,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=0,不满足while循环条件,结束循环。综上所述,选项B正确。