C语言题目有图,求助,刚入门,题目没看懂,希望答案有详细过程?

54.请写出以下程序执行后,文件test. txt中的内容。(5分)
# include < stdio. h>
void fun(char * fname,char * st,char * mode)
{
FILE * myf;int i;
myf = fopen( fname , mode);
for(i=0;i< strlen(st);i++)
fputc(st[i],myf);
fclose(myf) ;
}
void main( )
{
fun("test. txt" ,great","w');
fun("test. txt" , "hello" ,"w");
fun("test. txt", "world!","a");
}

源程序的每一句解释(见注释),运行结果,程序的功能和运行结果分析如下

#include<stdio.h>

void main()

{

 union//定义一个包含长整型和字符型数组的联合结构

 {

  long b;//定义一个长整型

  char c[4];//定义一个字符型数组

 }s;//定义一个联合结构的变量s

 s.b= 0xa0000L;//对联合中的长整型赋值

 s.c[0]+='A';//对联合中的字符数组的第一个元素赋值

 //以十进制整型输出字符数组的第三个元素

 //以字符型输出字符数组的第一个元素

 printf("%d%c\n",s.c[2],s.c[0]);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-11-04
这个没什么特殊的,关键看打开文件的模式,w是写模式,会覆盖文件的原内容,a是追加写入模式,在原内容的后面追加内容。所以第二次调用后,文件内容被对比成hello,第三次调用后,追加上world!,最终结果为:helloworld!本回答被提问者采纳
第2个回答  2020-11-04
#include stdio.h
void fun(char * fname,char* st,char *mode){
FILE * myf;int i; /*变量声明*/
Myf=fopen( fname,mode);/*打开文件*/
for(i=0;i<strlen(st);i++)/*循环*/
fput(st[i],myf);/*输出字符到文件*/
fclose(myf);/*关闭文件*/
}

void main(){/*主程序入口*/
fun("test.txt","great","w");/*调用函数后打开文件test.txt,写入great*/
fun("test.txt","hello","w");/*调用函数后打开文件test.txt,写入hello*/
fun("test.txt" , "world!","a");/*调用函数后打开文件test.txt,从尾部写入world*/
相似回答