请高手帮我解决一下这道C语言题目,谢谢!

下面的程序的运行结果为()#include<stdio.h>#include<string.h>fun(char*w,intn){chart,*s1,*s2;s1=w;s... 下面的程序的运行结果为( )
#include<stdio.h>
#include<string.h>
fun( char *w,int n)
{
char t,*s1, *s2;
s1=w; s2=w+n-1;
while(s1<s2) {t=*s1++; *s1=*s2--; *s2=t;}
}
main( )
{
char *p;
p="1234567";
fun(p,strlen(p));
puts(p);
}

A 7654321 B 1714171 C 1711717 D 7177171

请简略的说一下过程,谢谢!!
strlen:统计字符串中字符的个数(不包括终止符‘\0')
展开
 我来答
魔法师00可可
2010-07-17 · TA获得超过1660个赞
知道大有可为答主
回答量:726
采纳率:100%
帮助的人:952万
展开全部
1、1234567
s1指针指向1,s2指针指向7
t=*s1++ s1指针指向2(t得到1的值 1)
s1=*s2-- s2指针指向6(值发生改变1734567)
*s2=t; (值发生改变1734517)
2、
s1指针指向2,s2指针指向6
t=*s1++ s1指针指向3(t得到2的值 7)
s1=*s2-- s2指针指向5(值发生改变1714517)
*s2=t; (值发生改变1714717)
3、
s1指针指向3,s2指针指向5
t=*s1++ s1指针指向4(t得到3的值 1)
s1=*s2-- s2指针指向4(值发生改变1711717)
s1=*s2-- s2指针指向5(值发生改变1711717)
4、函数退出

#include<stdio.h>
#include<string.h>
void fun( char *w,int n)
{
char t,*s1, *s2;
s1=w; s2=w+n-1;
while(s1<s2) {t=*s1++; *s1=*s2--; *s2=t;}
}
void main( )
{
char p[10]="1234567";
fun(p,strlen(p));
puts(p);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式