社区
C语言
帖子详情
一道二级C语言题目!
cxr5201314
2009-03-26 09:21:11
#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);
}
怎么执行的 看不懂 汗。。。没返回值 怎么输出呢?
...全文
135
15
打赏
收藏
一道二级C语言题目!
#include #include 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); } 怎么执行的 看不懂 汗。。。没返回值 怎么输出呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rclijia
2009-03-31
打赏
举报
回复
[Quote=引用楼主 cxr5201314 的帖子:]
#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);
}
[/Quote]
程序能执行吗????
P指向只读区,你对*P修改肯定出错啊!!
changhe325
2009-03-27
打赏
举报
回复
[Quote=引用 7 楼 hahayihua 的回复:]
首先
s1->&1,s2->&7
循环第1次:s1 <s2
t=1;s1->&2;*s1=7;s2->&6;*s2=1;即此时数字是1734517
循环第2次 s1 <s2
t=7;s2->&3; *s1=1; s2->&5; *s2=7 1714717
循环第3次:s1 <s2
t=1;s2->&4;*s1=7;s2->&4; *s2=1; 1717717 -> 1711717
[/Quote]
行不行啊?这个程序本来是错的啊!你们都用什么编译器啊……
晕死
xing_cq
2009-03-26
打赏
举报
回复
#include <stdio.h>
#include <string.h>
char 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);
}
magipan
2009-03-26
打赏
举报
回复
我用dev-c++运行出错的,不是试图改变常量么?传进去的是个常量地址啊
changhe325
2009-03-26
打赏
举报
回复
我用vc调试,总是abort
说XX地址不能为"written"
xiaoQ008
2009-03-26
打赏
举报
回复
覺得用文字敘述這個過程比較麻煩
況且語言的表述方式未必適合樓主您的風格~
本人覺得
自己用debuger跟蹤一遍應該就明白了~
shouwangzhe1981
2009-03-26
打赏
举报
回复
差一点出错,好好推推。
changhe325
2009-03-26
打赏
举报
回复
这个程序是错的……
p="1234567"; 这样的定义 p指向的是字符串常量……
对里面字符的操作都是非法的……
改成char p[] ="1234567";才可以吧。
hahayihua
2009-03-26
打赏
举报
回复
首先
s1->&1,s2->&7
循环第1次:s1<s2
t=1;s1->&2;*s1=7;s2->&6;*s2=1;即此时数字是1734517
循环第2次 s1<s2
t=7;s2->&3; *s1=1; s2->&5; *s2=7 1714717
循环第3次:s1<s2
t=1;s2->&4;*s1=7;s2->&4; *s2=1; 1717717 -> 1711717
cxr5201314
2009-03-26
打赏
举报
回复
传参数看的懂 执行过程中不是很明白。。
猫已经找不回了
2009-03-26
打赏
举报
回复
。。基本功不行,传2个参数看不懂?
cxr5201314
2009-03-26
打赏
举报
回复
怎么会输出1711717呢? 能说下执行步骤吗?谢谢!
downmooner
2009-03-26
打赏
举报
回复
1234567
7654321
rjianfeili
2009-03-26
打赏
举报
回复
函数fun(char *w,int n)
其中 *w 就是“1234567” int n 就是 “1234567”的长度 是没有返回值
但是指针p已经改变了指向的内存的值 后面puts(p) 就是输出来了
nullw
2009-03-26
打赏
举报
回复
fun(..)接收了指针,并在函数中拷贝和改变了指针所指向内存的值,虽然p没有改变,p所指向的值改变了。
全国计算机等级考试历届笔真题详解-
二级
C语言
程序设计
全国计算机等级考试历届笔真题详解-
二级
C语言
程序设计(2009年版)
计算机
二级
C语言
习题
C语言
答案 要备战
二级
C的同学非常有用的·
计算机
二级
C语言
上机填空,改错,编程一百题完整版
计算机国家
二级
C语言
上机填空,改错,编程各一百题,希望对参加国家
二级
C语言
的同学有所帮助!
近五年
二级
C语言
真题及答案(含公共基础教程)
近五年
二级
C语言
真题试题及详尽答案,并且含公共基础教程,是您准备
二级
的不二选择。
上海市计算机
二级
C语言
历年真题1997~2009
上海市计算机
二级
C语言
历年真题1997~2009,后面几年的附带答案!
C语言
70,022
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章