谁能给我解释一下这道c语言题?

王朝知道·作者佚名  2009-07-06
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

#include "stdio.h"

void WriteStr(char *fn,char *str)

{

FILE *fp;

fp=fopen(fn,"W");

fputs(str,fp);

fclose(fp);

}

main()

{

WriteStr("t1.dat","start");

WriteStr("t1.dat","end");

}

程序运行后,文件t1.dat中的内容是 d

A)start

B)end

C)startend

D)endrt

我总觉得他给的程序有错误,可是不知到错在那?

而且writestr函数要求的是两个字符型指针,可主函数在引用时却给了两个字符串???

谁明白,解释一下

參考答案:

答案是正确的,因为你使用打开文件时没有调整属性,均是直接写入属性所以第二次写入内容时候还是从文件的最开始位置写入,所以前三个字符被第二次的写入覆盖了,如果想得到答案C可以第二次打开文本使用“at++”属性。

另外你看清楚了,函数的参数是两个字符型指针是没错,但是你是否理解了参数传递的本质呢?

你应该很常见到char *p="hello";之类的定义吧,所以是没有问题的。

参考资料:

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航