31题不会,c语言大神帮帮忙
2个回答
展开全部
答案是C,分析如下:
char str[]="xyz"; //等价于char str[]={'x','y','z','\0'};
while(*ps) ps++; //当这个while循环执行结束后,ps指针就指向了字符'\0'。
//字符数组str本身的值就是数组首元素地址,即str[0]的地址。
//所以在for循环语句当中,ps--,那么ps指针就指向了字符'z',也就是str[2]元素。
//ps-str>=0,刚开始就是&str[2]-&str[0]=2>=0,输出字符串{'z','\0'},即z。
//ps--,那么ps就指向了'y',即&str[1]-&str[0]=1>=0,输出字符串{'y','z','\0'},即yz
//ps--,那么ps就指向了'x',即&str[0]-&str[0]=0>=0,输出字符串{'x','y','z','\0'}
//即xyz。
//ps--,此时就不满足for循环条件了,就不会执行puts(ps);语句了,程序结束。
综上分析,所以答案是C。我想这个分析应该是很清楚的吧,你应该能看懂的。望采纳哈。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询