
一道c语言的题,求c高手帮忙
#include<stdio.h>#include<string.h>voidfun(char*w,intm){chars,*p1,*p2;p1=w;p2=w+m-1;w...
#include <stdio.h>
#include<string.h>
void fun(char *w,int m)
{ char s,*p1,*p2;
p1=w;p2=w+m-1;
while(p1<p2)
{ s=*p1++;*p1=*p2--;*p2=s;}
}
main()
{char a[ ] ="ABCDEFG";
fun (a,strlen(a));puts(a);
}
程序运行后的输出结果是多少?
我还想顺便问一下,这道题fun函数最后既没有printf之类的输出也没有return
那他返回主函数的时候岂不是等于什么都没做么····
最好能把fun函数的工作过程说明一下~谢谢啦 展开
#include<string.h>
void fun(char *w,int m)
{ char s,*p1,*p2;
p1=w;p2=w+m-1;
while(p1<p2)
{ s=*p1++;*p1=*p2--;*p2=s;}
}
main()
{char a[ ] ="ABCDEFG";
fun (a,strlen(a));puts(a);
}
程序运行后的输出结果是多少?
我还想顺便问一下,这道题fun函数最后既没有printf之类的输出也没有return
那他返回主函数的时候岂不是等于什么都没做么····
最好能把fun函数的工作过程说明一下~谢谢啦 展开
3个回答
展开全部
没有return就等于这个函数只是执行某项功能. 这个程序是看不到输出的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
AGAAGAG
他的参数是一个指针,就可以改变他的值~ 作用是改变数组A里面的值~
他的参数是一个指针,就可以改变他的值~ 作用是改变数组A里面的值~
追问
能帮忙把fun函数的过程解释一下么?我还是没懂这道题,麻烦你啦
追答
函数参数 w是字符数组 m 是数组长度
用p1指向w数组第一个字符, p2指向最后一个
然后进行while循环
第一次: s = *p1++ 此时s为A ---- p1指向下一个元素值是B---然后*p1=*p2--让p1值为G,p2指向前一个元素F--------------然后*p2=s 让p2的值为A;
第一次执行以后字符串第一个元素为A
第二次:s=*p1++ 由于第一次P1值为G所以S为G,p1指向第三个元素-----然后*p1=*p2--让P1的值为前面P2的值也就是A,并且P2指向前一个元素
第二次执行以后字符串第二个元素为G
同理到最后~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该输出GFEDCBA ,注意到程序末尾有个puts,其作用为输出一个字符串 。
fun的作用简单来说就是将一个字符串倒置。while循环部分你如果不太清楚,就给它变个形,就是
while(p1<p2)
{s=*p1;*p1=*p2;*p2=s; p1++;p2--} 这里只要注意到自增运算符的运算规律以及它和*的优先级结合性就可以了
fun的作用简单来说就是将一个字符串倒置。while循环部分你如果不太清楚,就给它变个形,就是
while(p1<p2)
{s=*p1;*p1=*p2;*p2=s; p1++;p2--} 这里只要注意到自增运算符的运算规律以及它和*的优先级结合性就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询