标题:现有两道题不会,求助
只看楼主
nightelf
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2004-9-3
 问题点数:0 回复次数:10 
现有两道题不会,求助

1.有以下程序 #include <stdio.h> void fun(char *fname,char *st) { FILE *myf; int i; myf=fopen(fname,"w"); for(i=0;i<strlen(st);i++)fputc(st[i],myf); fclose(myf); } main() {fun("test.t","new world");fun("test,t","hello,");} 程序执行后,文件test.t中的内容是 A)hello, B)new worldhello, C)new world D)hello,rld 答案是A 为什么 ,我认为应该是B 帮忙讲解一下

2.下列变量定义中合法的是 A)short _a=1-.1e-1; B)double b=1+5e2.5; C)long do=0xfdaL D)float 2_and=1-e-3; 答案是A,帮忙解释一下

搜索更多相关主题的帖子: myf fun hello test 
2004-09-04 21:46
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
得分:0 

1.fputc为覆盖型函数,就是不管文件有没有内容都把要写的字符写进去,而且在头处写入并覆盖原来的字符。fputc的用法见楼下的英文,具体是说把第一个参数的内容写入第二个参数所指的文件头,并覆盖……

2. B. e是次方,不能是浮点型, C.地址格式吧?好象不能大写字母,"L", D.变量名第一个字符不能是数字,

A合法,因为.1前省略了0而已,_a没有问题,只要第一个字符不是数字就行。

[此贴子已经被作者于2004-09-04 23:51:41编辑过]

2004-09-04 23:41
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
得分:0 

晕,查了好久没发现fputc用法,想破头了~~~我翻译一下,译得不好不要骂!

fputc-Put a character to a level 2 file 把一个字符传给第二个参数(指针)指想的文件 Synopsis 用法 #include <stdio.h> r = fputc(c,fp); int r; /* EOF or c */ int c; /* character to be output */ //要输出的字符 FILE *fp; /* level 2 file pointer */ //第二个参数(指针) Description 描述 This function puts a single character to the specified level 2 file. 该函数把一个单字符传给 指定的 第二个参数指向的文件 Returns 返回 If successful, this function returns the character c; otherwise, 如果成功,该函数返回字符变量C,否则, it returns EOF. For disk files, an EOF return usually means that 返回结束符"EOF",对于磁盘文件,一个结束符返回通常意味着 the disk is full. However, this type of return can also occur if 该磁盘已满。不过,这种返回也会发生如果 the device is write-protected or if a write error occurs. In any 该设备标志为只读或者如果一个读错误发生。 在有些 case, additional error information can be found in the external 情况下,额外的错误信息会被发现在外部 integers. 整数。(最后一句可理解为:当传入的参数不在可用作用域时编译器会提示出错)

[此贴子已经被作者于2004-09-05 00:03:01编辑过]

2004-09-04 23:47
nightelf
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2004-9-3
得分:0 
live41受累了,非常感谢

新手,请多关照
2004-09-05 09:11
nightelf
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2004-9-3
得分:0 

还是有点不明白

fun("test.t","new world") 把new world输出到文件里

fun("test,t","hello,") 覆盖了原来的new world,但后面还有rld呢,怎么就没了


新手,请多关照
2004-09-05 09:43
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
得分:0 

呵呵,我说错了,昨晚我睡前又想了一下,觉得不妥,不是覆盖的问题,另有原因……

个人猜想可能是fun("test,t","hello,");第二次调用的时候把原来有的信息清除了吧?

[此贴子已经被作者于2004-09-05 12:05:31编辑过]

2004-09-05 12:03
nightelf
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2004-9-3
得分:0 
哦,是这样呀

新手,请多关照
2004-09-05 12:33
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 

myf=fopen(fname,"w");

以 “W”方式打开一个文件,是要清空原文件的信息的。

另:我看了楼主的几个贴子,你的问题太多,原因就是没有仔细看书。建议重学C。

[此贴子已经被作者于2004-09-05 12:50:00编辑过]


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-09-05 12:49
nightelf
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2004-9-3
得分:0 

谢谢8楼的建议,可是暑假我已经从看了一遍c的书了,我觉得书上有的地方说的太少了,不细致。看不懂,比如比如你说的:以 “W”方式打开一个文件,是要清空原文件的信息的。我在书上就没看到。

[此贴子已经被作者于2004-09-05 14:05:25编辑过]


新手,请多关照
2004-09-05 14:04
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
得分:0 

2:

C)long do=0xfdaL

do应该是个关键字吧?


2004-09-05 16:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-4988-1-1.html




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

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