求大神指示这两道c语言的题

如题所述

(4)向文件用fprintf写数据是在for循环中进行的,而for循环体的第一句是fseek(fp,0L,0);,这一句的意思是“把文件内部指针从文件开头向后移动0个字符位置”,其结果就是指针停在文件开头。每循环一次都这么做,所以1,2,3,4,5,6六个数都写在文件开头的位置上了——2覆盖了1,3覆盖了2……6覆盖了5。最后文件里只在开头那个位置上存储了一个数6,所以读到k里就是6。
(5)A是错误的,所以是应选项。x[10]的类型是struct st,所以从指针x开始一次写10个元素(如B)或分别写10个块(如C)或从第一个元素的地址开始依次一次写一个元素,然后地址增一个元素之量直到10元素写完都可以。唯独A只把第一个元素连续 写了10次!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-03-14
4)因为在循环中,每次都将文件读写指针移动到头上,然后再写入。所以只有最后一次的写入才有效,前面写入的数据都被覆盖了。最后读入和输出的是6.

5)图上的说明已经说得很清楚了。就是选A。
第2个回答  2016-03-13
你能拍照清晰一点么, 感觉有点看不清楚追问