选择题 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正确。