| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 802 人关注过本帖
标题:有关字符指针函数的问题
只看楼主 加入收藏
zmrfff
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2008-10-21
结帖率:95.83%
收藏
已结贴  问题点数:15 回复次数:4 
有关字符指针函数的问题
我最近正在狂做c笔试题,有一部分做错的题,特地摘录出来,请高手们答疑解惑,谢谢啦!
1、阅读以下函数
fun(char *s1,char *s2)
{
   int i=0;
while(s1[i]==s2[i]&&s2[i]!='\0'))i++;
return(s1[i]=='\0'&&s2[i]!='\0'));
}
此函数的功能是比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0。
比较s1和s2所指字符串是否相等这句话我理解了,它对应的是while(s1[i]==s2[i]&&s2[i]!='\0'))i++;这条语句,但后半句:若相等,函数值为1,否则函数值为0。我没想明白。若相等,函数值为1,则s1[i]=='\0',s2[i]!='\0'这两个条件都得成立,我认为若s1[i]=='\0',s2[i]!='\0',则两个字符串不等,那么与若相等,函数值为1这个说法矛盾。实在有点糊涂,请高手指点,谢谢!
2、文件类型题
(1)#include<stdio.h>
void main()
{
    FILE *fp;
     int i,k=0,n=0;
   fp=fopen("d1.dat", "w");
    for(i=1;i<4;i++) fprintf(fp,"%d",i);
fclose(fp);
fp=fopen("d1.dat", "r");

fscanf(fp,"%d%d",&k,&n);printf("%d %d\n",k,n);
fclose(fp);
}
执行后输出结果是?答案给的是123 0
我分析的是开始以只写方式打开文件d1.dat,然后写入1,2,3这3个数据至文件d1.dat中。而后以只读方式打开文件,用fscanf函数将d1.dat的数据读给k和n,我想不明白的是为什么k不是12或者1,而n为什么是0?

(2))#include<stdio.h>
void main()
{
    FILE *fp;
     int i,a[4]={1,2,3,4},b;
   fp=fopen("data.dat", "wb");
    for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp);
  fclose(fp);
 fp=fopen("data.dat", "rb");

fseek(fp,-2L*sizeof(int),SEEKEND);
fread(&b,sizeof(int),1,fp);
fclose(fp);
printf("%d\n",b);
}
执行后输出结果是?
答案给的是3。
我分析的是通过fwrite函数写入a数组中4个元素1,2,3,4。而后fseek函数从文件末尾处向前移2个整数字节,而后fread函数从文件中读取1个整形数据到变量b中,既然前移2个整数字节,不就是从4移到2么?为什么是3,请问我哪里分析错了?请指点,谢谢!
搜索更多相关主题的帖子: 字符 函数 指针 
2009-09-18 19:17
dianzi1987
Rank: 2
等 级:论坛游民
帖 子:5
专家分:24
注 册:2009-9-18
收藏
得分:7 
(1)  是为了出现这样的 字符串  s1="abc"  s2="abcd"
(2)  没有格控制符123就按一个整体读取
(3) 1234| 竖线为文件指针,往前两个整数字节,就变成12|34 读取一个字节,当然是3了
呵呵,不知道对不对。。。。
2009-09-18 20:09
暗留香
Rank: 2
等 级:论坛游民
帖 子:49
专家分:75
注 册:2009-9-4
收藏
得分:7 
1:TC测试,你的那个函数不管两字符串是否相等,返回值都是0,所以,代码错误,返回语句中改为:
return(s1[i]=='\0'&&s2[i]=='\0')); 就正常了,这下你应该了解了~
2:这个问题也好理解,首先输入123到文件,然后读取,但读取的时候它把123看成是一个整数,并把它的值给了K,N的值是多少?没值给它了.....
3:解答这个问题前我得问你个问题:跑步的时候你超过了第二名你现在第几名了?  答案:第二名
  恩,娱乐下·~
从数字4尾部到数字4首部,是一个int......从数字三尾部到数字三首部又是一个int 总共两~
2009-09-18 20:12
zmrfff
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2008-10-21
收藏
得分:0 
清楚了一半,请继续,谢谢!
2009-09-18 23:15
暗留香
Rank: 2
等 级:论坛游民
帖 子:49
专家分:75
注 册:2009-9-4
收藏
得分:0 
清楚了哪一半- -!
2009-09-19 01:02
快速回复:有关字符指针函数的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016324 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved