有以下程序: #include #include main() { FILE=l=fo; char ch,str[5]: if((fp=fopen(“file.txt”,“wb+”))=NULL)

admin2019-07-10  15

问题 有以下程序:
    #include
    #include
    main()
    {  FILE=l=fo;
    char ch,str[5]:
    if((fp=fopen(“file.txt”,“wb+”))=NULL)
    {prinff(“error!\n”);exit(0);}
    eh=getchar();
    while(ch!=‘!’)
    {  fputc(ch,f0);
    ch=getchar();
    }
    rewind(fp);
    do{.
    fgets(str,4,f0);
    puts(str);
    }
    while(!feof(fo));
    fclose(fp);
    }
    程序运行时输入:c:\\test!<回车>,则程序的输出结果是(    )。

选项 A、C:\
B、e:\test
    \te
    st
C、e:tes
D、e:\t
    t    est

答案A

解析 分析程序可知,程序是首先以可写方式打开文件file.txt,然后使用getchar()逐个读入输入的字符,写到文件file.txt中,直到输入的字符是‘!’,停止写入文件;然后使用rewind()将文件指针定位到文件开头位置,再调用龟ets()函数,将文件中的内容读入str字符数组中,再用puts()输出,直到遇到文件结尾符,关闭文件。其中写入文件时是逐个写入的,而读出时调用fgets(str,4,fp),由此可知fgets至多读取3个字符到str,然后在结尾自动加上“\0”字符,作为字符串的结尾标志,使用puts输出时,输出3个字符并完成换行,当输入c:\\test!<回车>时,输出为:
    c:\
    \te
    st
故答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/57kiFFFM
0

相关试题推荐
最新回复(0)