有以下程序 (a123.txt在当前盘符下已经存在)#include "stdio.h"void main(){ FILE *fp; int a[10],*p=a; fp=fopen("a123.txt","w"); while( strlen(gets(p))>0 ) { fputs(a,fp); fputs("\n",fp); } fclose(fp);} 程序实现的功能是A.从键盘输入若干行字符,按行号倒序写入文本文件a123.txt中B.从键盘输入若干行字符,取前两行写入文本文件a123.txt中

题目

有以下程序 (a123.txt在当前盘符下已经存在)#include "stdio.h"void main(){ FILE *fp; int a[10],*p=a; fp=fopen("a123.txt","w"); while( strlen(gets(p))>0 ) { fputs(a,fp); fputs("\n",fp); } fclose(fp);} 程序实现的功能是A.从键盘输入若干行字符,按行号倒序写入文本文件a123.txt中B.从键盘输入若干行字符,取前两行写入文本文件a123.txt中C.从键盘输入若干行字符,第一行写入文本文件a123.txt中D.从键盘输入若干行字符,依次写入文本文件a123.txt中


相似考题
参考答案和解析
正确答案:D
本题考查文件的读写操作。程序中使用fopen函数打开文本文档a123,打开方式为只写。初始定义了一个整型数组,长度为10。while循环的判断语句是判断是否有输入字符存在。strlen函数是计算输入字符串的长度。fputs函数是向指定的文件输出一个字符串。题目给出的程序就是只要从键盘上输入字符,就将该字符向指定的文件输出。
更多“有以下程序 (a123.txt在当前盘符下已经存在)#include "stdio.h"void main(){ FILE *fp;int a[10] ”相关问题
  • 第1题:

    假定当前盘符下有两个如下文本文件: 文件名 a1.txt a2.txt 内容 123# 321# 则下面程序段执行后的结果为 #include"stdio.h" void fc(FILE*p) { charc; while((c=fgetc(p))!='#')putchar(c);} main() { FILE*fp; fp=fopen("a1.txt","r"); fc(fp); fclose(fp);

    A.123321

    B.123

    C.321

    D.以上答案都不正确


    正确答案:A
    解析: 本题的功能是顺序的读两个文本文件,依次输出。当打开文件时出现错误,fopen函数将返回NULL。

  • 第2题:

    有以下程序 include void WriteStr(char*fn,char*str) {FILE*fp; fp=f

    有以下程序 #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中的内容是 ______。

    A.start

    B.end

    C.startend

    D.endrt


    正确答案:B
    解析:两次使用“写入”的方式打开同一个文件,在第二次打开时,文件指针指向文件头,所以此次写入的数据覆盖了文件原有的数据,故本题中t1.dat的内容为end。

  • 第3题:

    在C中,打开文件的程序段中正确的是

    A.#include <stdio.h> FILE *fp; fp=fopen("file1.c","WB");

    B.#include <stdio.h> FILE fp; fp=fopen("file1.c","w");

    C.#include <stdio.h> FILE *fp; fp=fopen("file1.c","w");

    D.#include <string.h> FILE *fp; fp=fopen("file1.c","w");


    #include <stdio.h> FILE *fp; fp=fopen("file1.c","w");

  • 第4题:

    有以下程序includevoid WriteStr(char*fn,char*str){FILE*fp; fp=fopen(fn,"w");fputs

    有以下程序 #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中的内容是

    A.start

    B.end

    C.startend

    D.endrt


    正确答案:B
    解析:使用fputs函数输出字符串到文件时,将覆盖原文件中的内容。

  • 第5题:

    假定当前盘符下有两个如下文本文件: 文件名 a1.txt a2.txt 内容 123# 321# 则下面程序段执行后的结果为 #include "stdio.h" void fc(FILE *p) { char c; while((c=fgetc(p))!='#')putchar(c);} main() { FILE *fp; fp=fopen("a1.txt","r"); fc(fp); fclose(fp); fp=fopen("a2.txt","r"); fc(fp); fclose(fp); putchar('\n');}

    A.123321

    B.123

    C.321

    D.以上答案都不正确


    正确答案:A
    解析:本题的功能是顺序的读两个文本文件;依次输出。当打开文件时出现错误,fopen函数将返回NULL。