31题不会,c语言大神帮帮忙

 我来答
My_Persistence
2017-01-04 · TA获得超过3467个赞
知道大有可为答主
回答量:1201
采纳率:81%
帮助的人:432万
展开全部

答案是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。我想这个分析应该是很清楚的吧,你应该能看懂的。望采纳哈。。

wdswxs1245
2017-01-04 · 超过20用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:29.2万
展开全部
C 就是指针从字符串末尾往前移动,每移动一次打印一次,就是这样输出了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式