单选题有以下程序:#include main(){ FILE *pf; char *s1=China,*s2=Beijing; pf=fopen(abc.dat,wb+); fwrite(s2,7,1,pf); rewind(pf); /*文件位置指针回到文件开头*/ fwrite(s1,5,1,pf); fclose(pf);}以上程序执行后abc.dat文件的内容是(  )。A ChinaB ChinangC ChinaBeijingD BeijingChina

题目
单选题
有以下程序:#include main(){ FILE *pf; char *s1=China,*s2=Beijing; pf=fopen(abc.dat,wb+); fwrite(s2,7,1,pf); rewind(pf);   /*文件位置指针回到文件开头*/ fwrite(s1,5,1,pf); fclose(pf);}以上程序执行后abc.dat文件的内容是(  )。
A

China

B

Chinang

C

ChinaBeijing

D

BeijingChina


相似考题
参考答案和解析
正确答案: A
解析:
pf是一个文件指针,fopen("abc.dat","wb+");执行后,pf指向可读写的二进制文件abc.dat。语句fwrite(s2,7,1,pf);是将s2的前7*1个字符的内容写入pf中,即Beijing。rewind(pf);是将文件位置指针移回到文件开头,语句fwrite(s1,5,1,pf);是从文件的开头位置,将s1的前5*1个字符的内容写入,替换掉原来位置上的内容,所以结果为Chinang。答案选择B选项。
更多“单选题有以下程序:#include main(){ FILE *pf; char *s1=China,*s2=Beijing; pf=fopen(abc.dat,wb+); fwrite(s2,7,1,pf); rewind(pf); /*文件位置指针回到文件开头*/ fwrite(s1,5,1,pf); fclose(pf);}以上程序执行后abc.dat文件的内容是(  )。A ChinaB ChinangC ChinaBeijingD BeijingChina”相关问题
  • 第1题:

    执行以下程序后,test.txt文件的内容是(若文件能正常打开)( )。includemain(){FILE*fp;c

    执行以下程序后,test.txt文件的内容是(若文件能正常打开)( )。 #include<stdio.h> main() { FILE*fp; char*s1="Fortran",*s2="Basic"; if((fp=fopen("test.txt","wb"))==NULL) { printf("Can't open test.txt file\n");exit(1);} fwrite(s1,7,1,fp);/*把从地址s1开始的7个字符写到fp所指文件中*/ fseek(fp,0L,SEEK_SET);/*文件位置指针移到文件开头*/ fwrite(s2,5,1,fp); fclose(fp); }

    A.Basican

    B.BasicFortran

    C.Basic

    D.FortranBasic


    正确答案:A

  • 第2题:

    请补充main函数,该函数的功能是:把一个字符串中的所有小写字母字符全部转换成大写字母字符,其他字符不变,结果保存原来的字符串中。

    例如:当str[N]“123 abcdef ABCDEF!”,结果输出:

    “123ABCDEFABCDEF!”。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<stdio.h>

    include<stdlib.h>

    include<conio.h>

    define N 80

    void main()

    {

    int j;

    char str[N]="123abcdef ABCDEF!";

    char* pf=str;

    clrscr();

    printf("*** original string ***\n");

    puts(str);

    【 】;

    while(*(pf+j)).

    {

    if(*(pf+j)>='a'&&* (pf+j)<='z')

    {

    *(pf+j)=【 】;

    j++;

    }

    else

    【 】;

    }

    printf("****** new string ******\n");

    puts(str);

    system("pause");

    }


    正确答案:j=0 *(pf+j)-32 j++
    j=0 *(pf+j)-32 j++ 解析:第一空:变量j声明时没有初始化,而后面程序用到j,所以在这里对j初始化为0。第二空:将小写字母转换为对应的大写字母的方法是,小写字母的ASCII码减去32,得到对应的大写字母的ASCII码。第三空:如果当前字符不是小写字母,则不做任何处理,使指针指向下一个字符,准备进行判断。

  • 第3题:

    执行以下程序后,test.txt文件的内容是(若文件能正常打开) ()。include include

    执行以下程序后,test.txt文件的内容是(若文件能正常打开) ( )。#include <stdio.h>#include <stdlib.h>main( ){ FILE * fp; char * s1 = "Fortran" , * s2 = "Basic"; if((fp = fopen( "test. txt" ," wb" )) = = NULL) { prinff( "Can't open test. txt file \n"); exit(1); } fwrite( s1 ,7,1 ,fp); /* 把从地址s1开始到7个字符写到fp所指文件中*/ fseek(fp,OL,SEEK_SET); /*文件位置指针移到文件开头*/ fwrite (s2,5,1,fp); felose (fp);}

    A.Basiean

    B.BasieFortran

    C.Basic

    D.FortranBasie


    正确答案:A
    解析:程序以“只写”方式打开一个名为test.txt的文件,并向该文件写入指针变量s1指向的7个字符"Fortran",执行fseek函数,使文件位置指针移到文件的开头,再次向文件输入指针变量s2指向的5个字符"Basic"这时系统会覆盖原有的内容"Fortr",所以最后test.txt里的内容为:Basican。

  • 第4题:

    函数fseek(pf,OL,SEEK END)中的SEEK ENE 代表的起始点是( )。A.文件开始B.文件末尾SX

    函数fseek(pf,OL,SEEK END)中的SEEK ENE 代表的起始点是( )。

    A.文件开始

    B.文件末尾

    C.文件当前位置

    D.以上都不对


    正确答案:B
    SEEK_SET代表文件的开始,SEEK_END代表文件末尾,SEEK_CUR代表文件当前位置。

  • 第5题:

    设有以下函数: void fun(int n,char*s){…} 则下面对函数指针的定义和赋值均正确的是( )。

    A.void(*pf)( );pf=fun;

    B.void*pf( );pf=fun

    C.void*pf( );*pf=fun;

    D.void(*pf)(int,char);pf=&fun;


    正确答案:A
    函数指针的定义格式为函数类型(*指针变量名)(形参列表);函数名和数组名一样代表了函数代码的首地址,因此在赋值时,直接将函数指针指向函数名就行了。所以选项A正确。

  • 第6题:

    有以下程序 include main() { FILE*pf, char *s1="China",

    有以下程序 #include <stdio.h> main() { FILE*pf, char *s1="China",*s2="Beijing"; pf=fopen("abc.dat","wb+"); fwrite(s2,7,1,pf); rewind(pf); /*文件位置指针回到文件开头*/ fwrite(s1,5,1,pf); fclose(pf); } 以上程序执行后abc.dat文件的内容是______。

    A.China

    B.Chinang

    C.ChinaBeijing

    D.BeijingChina


    正确答案:B
    解析:fwrite(buffer,size,count,fp);:buffer是一个指针,用于指向输出数据存放的内存区域的起始地址,size是要输出的字节数,count是要输出大小为size个字节的数据块的个数。fp是文件指针。fwrite函数的功能是对中所指向的文件存入 count次,每次存放一个大小为size的数据块,将存入的数据块存到buffer指向的内存区,如果buffer内存区有数据,则将其覆盖。本题中第一次调用fwrite函数是向文件中写入s2的值“Beijing”,第二次调用fwrite函数是向文件中写入s1的值“China”,并将先前的“Beijing”的前几个字符覆盖,得到“Chinang”。

  • 第7题:

    设有以下函数:

    void fun(int n,char*$s){……}

    则下面对函数指针的定义和赋值均正确的是

    A.void(*pf)( );pf=fun;

    B.void*Pf( );pf=fun;

    C.void*pf( ); *pf=fun;

    D.void(*pf)(int,char);nf=&fun;


    正确答案:A
    解析:函数指针的定义形式是:数据类型标识符(*指针变量名)( )。void(*pf)( )定义了一个没有返回值的函数指针pf,在给函数指针变量赋值时,只需给出函数名而不必给出参数。所以给pf赋值时,只把函数名fun赋给pf即可。所以正确答案为选项A)。

  • 第8题:

    有下列程序: #include<stdi0.h> voidmain( ) {FILE*pf; char*s1="China",*s2="Beijing"; pf=fopen("abc.dat","wb+"); fwrite(s2,7,1,pf); rewind(pf);/*文件位置指针回到文件开头*/ fwrite(s1,5,1,pf); fclose(pf); } 以上程序执行后abc.dat文件的内容是( )。

    A.China

    B.Chinang

    C.ChinaBeijing

    D.BeijingChina


    正确答案:B
    B。【解析】本题考查fwrite的调用形式。其格式为“fwrite(buffer,size,count,fp);”。fwritie函数的功能是对fp所指向的文件存入count次,每次存入一个大小为size的数据块。将存入的数据块存到buffer指向的内存区,如果buffer内存区有数据则将其覆盖。本题中第一次调用fwrite函数,向文件中写入s2的值“Beijing”,第二次调用fwrite函数,向文件中写入S1的值“China”,并将之前“Beijing”的前几个字符覆盖,得到Chi-nang。

  • 第9题:

    执行以下程序后,test.txt文件的内容是(若文件能正常打开)______。 #include <stdio.h> main() { FILE *fp; char *s1="Fortran",*s2="Basic"; if((fp=fopen("test.txt","wb"))=NULL) { printf("Can't open test.txt file\n"); exit(1);} fwrite(s1,7,1,fp); /* 把从地址s1开始的7个字符写到fp所指文件中*/ f seek(fp, 0L,SEEK_SET);/*文件位置指针移到文件开头*/ fwrite(s2,5,1,fp); fclose(fp); }

    A.Basican

    B.BasicFortran

    C.Basic

    D.FortranBasic


    正确答案:A
    解析:此题考核的是文件的读写,定义一个FILE类型结构体的指针fp,以“只写”方式打开—个test.txt文件,并向文件输入指针变量s1指向的7个字符,则文件内的内容为“Fortran”,执行fseek函数文件位置指针移到文件的开头,再次向文件输入指针变量s2指向的5个字符,虽然此时的文件前5个字符字符已被“Forta”所占用,但当向文件输入“Basic”这五个字符时,系统会覆盖原有的内容“Forta”,所以最后test.txt里的内容为:Basican。

  • 第10题:

    焊接位置PF(板)的覆盖范围为()

    • A、PF(板)
    • B、PF(板)、PA
    • C、PF(板)、PA、PB
    • D、PF(板)、PA、PB、PC

    正确答案:C

  • 第11题:

    下列语句定义pf为指向float类型变量f的指针,()是正确的。

    • A、floatf,*pf=f;
    • B、floatf,*pf=&f;
    • C、float*pf=&f,f;
    • D、floatf,pf=f;

    正确答案:B

  • 第12题:

    单选题
    设有以下函数:void fun(int n,char* s){……}则下面对函数指针的定义和赋值均是正确的是(  )。
    A

    void(*pf)();pf=fun;

    B

    void * pf();pf=fun;

    C

    void * pf();* pf=fun;

    D

    void(* pf)(int,char);pf=&fun;


    正确答案: D
    解析:
    函数指针的一般定义形式为:
    返回值类型 (* 指针变量名) ([形参列表]);
    其中,“返回值类型”说明函数的返回类型,“(* 指针变量名)”中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。
    以本题函数和函数指针为例,将函数的首地址赋给指针,可以是pf=fun;或者pf=&fun;
    选项A,参数列表与题干函数不符,错误。选项B,函数指针定义格式错误。选项C。函数指针定义格式错误,复制格式也错误。答案选择D选项。

  • 第13题:

    有以下程序 include main(){FILE *fp;int i; char ch[]="abcd",t; fp=fopen("abc.dat"

    有以下程序 #include <stdio.h> main() {FILE *fp; int i; char ch[]="abcd",t; fp=fopen("abc.dat","wb++"); for(i=O;i<4;i++)fwrite(&ch[i],1,1,fp); fseek (fp,-2L,SEEK_END); fread (&t,1,1,fp); fclose (fp); printf ("%c\n",t); } 程序执行后的输出结果是______。

    A.d

    B.c

    C.b

    D.a


    正确答案:A
    解析:此题考核的是文件的读写,定义—个FILE类型结构体的指针fp,以“可以由位置函数设置读和写”方式打开一个 abc.dat文件,并向文件输入数组变量ch指向的字符串,则文件内的内容为“abcd”,执行fseek函数,则文件类型指针fp指向文件尾向前移动2个字节的位置处,即指针指向“b”,所以最后的输出结果为b,答案选C。

  • 第14题:

    设函数f的原型是:char *f (const char*);,pf 是指向f 的指针,则pf 的定义是【 】。


    正确答案:char(*p)(const char*)=f;
    char(*p)(const char*)=f; 解析:如果要使指针指向函数,函数的原型应该改为上面的形式。

  • 第15题:

    请补充函数fun(),该函数的功能是建立一个带头结点的单向链表并输出到文件“out98.dat”和屏幕上,各结点的值为对应的下标,链表的结点数及输出的文件名作为参数传入。

    注意:部分源程序给出如下。

    请勿改动主函数main 和其他函数中的任何内容,仪在函数fun()的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<stdio. h>

    include<conio. h>

    include<stdlib. h>

    typedef struct ss

    {

    int data;

    struct ss *next;

    } NODE;

    void fun(int n,char*filename)

    {

    NODE *h,*p, *s;

    FILE *pf;

    int i;

    h=p= (NODE *) malloc (sizeof (NODE));

    h->data=0;

    for (i=1; i {

    s=(NODE *)malloc (sizeof (NODE));

    s->data=【 】;

    【 】;

    p=【 】

    }

    p->next=NULL;

    if ( (pf=fopen (filename, "w") ) ==NULL)

    {

    printf {"Can not open out9B.clat! ");

    exit (0);

    }

    p=h;

    fprintf (pf, "\n***THE LIST***\n");

    print f ("\n***THE LIST***\n")

    while (p)

    {

    fprintf (pf, "%3d", p->data)

    printf ("%3d",p->data);

    if (p->next ! =NULL)

    {

    fprintf (pf, "->");

    printf ("->");

    }

    p=p->next;

    }

    fprintf (pf, "\n");

    printf ("\n");

    fclose (pf);

    p=h;

    while (p)

    {

    s=p;

    p=p->next;

    free (s);

    }

    }

    main()

    {

    char * filename="out98. dat";

    int n;

    clrscr ();

    printf (" \nInput n: ");

    scanf ("%d", &n);

    fun (n, filename);

    }


    正确答案:I p->next=s p->next
    I p->next=s p->next 解析:第一空:题目要求各结点的值为对应的下标,头结点的值为0,其他结点的值从1开始,所以此空应填i。第三空:为了将结点p和结点s连接起来,应将结点p的next 指针指向结点s。第三空:为了通过for 循环形成链表,每执行完一次循环操作,都要将指针p 指向下一个结点。

  • 第16题:

    有以下程序:includemain(){FILE *pf;char*s1="China",*s2="Beijing":pf=fopen("abc.da

    有以下程序: #include<stdio.h> main() {FILE *pf; char*s1="China",*s2="Beijing": pf=fopen("abc.dat","wb+"); fwrite(s2,7,1,pf); rewind(pf); /*文件位置指针回到文件开头*/ fwrite(s1,5,1,pf); fclose(pf); } 以上程序执行后abc.dat文件的内容是( )。

    A.China

    B.Chinang

    C.ChinaBeijing

    D.BeijingChina


    正确答案:B

  • 第17题:

    以下程序的执行结果是_______。 include include include void

    以下程序的执行结果是_______。

    include<iostream.h>

    include<fstream.h>

    include<stdlib.h>

    void main()

    {

    char ch:

    fstream file:

    file.open("abc.dat",ios::out1ios::inlios::binary);

    if(! file)

    {

    cout<<“abc.dat文件不能打开”<<endl:

    abort


    正确答案:25
    25

  • 第18题:

    有以下程序:includemain(){ FILE*fp;int i;char ch[]="abcd",t;fp=fopen("abc.dat","w

    有以下程序: #include <stdio.h> main() { FILE *fp; int i; char ch[]="abcd",t; fp=fopen("abc.dat","wb+"); for(i=0;i<4;i++)fwrite(&ch[i]1,1,fp); fseck(fp,-2L,SEEK_END) ; fread(&t,1,1,fp); felose(fp); printf("%c\n",t); } 程序执行后的输出结果是( )。

    A.d

    B.c

    C.b

    D.a


    正确答案:B
    解析:程序首先定义了一个文件指针fp,并使用fopen()函数以"wb+"方式新建一个可读写文件"abe.dat"。然后使用一个for循环,循环变量i从0递增到3,在循环体中每次写入ch[i]的值。所以循环结束时,文件中的内容应该为:abed。接下来程序使用fseek()函数,将文件的读写指针从文件末尾处向后退2个字节,文件末尾是最后一个输出字节的下一个字节,即下次写入数据的位置,所以此时文件读写指针指向的是字符'c'。最后调用ficadO函数从文件中读取1个字节到变量t中。所以最终输出应该为:c。故本题选B。

  • 第19题:

    有以下程序:

    以上程序执行后abc.dat文件的内容是( )。

    A.China

    B.Chinang

    C.ChinaBeijing

    D.BeijingChina


    正确答案:B
    本题考查文件操作函数,fwrite和rewind函数,题目中先是将s2字符串写入adc.dat中,然后将写指针回到文件开头,然后写入sl字符串,那么sl字符串就将前5个字符覆盖,所以最终结果为Chinan9,选项B正确。

  • 第20题:

    设有以下函数:

    voidfun(intn,char}s){……}

    则下面对函数指针的定义和赋值均正确的是( )。

    A.void(*pf)(int,char);pf=&fun;

    B.void+pf( );pf=fun;

    C.void*pf( );*pf=fun;

    D.void(*pf)(int,char*);pf=fun;


    正确答案:D
    函数的参数可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。函数名代表函数的人口地址,指向函数的指针应该定义为void(+pf)()。如果定义为void·pf(),则表示函数pf返回值为一个基类型为void的指针。因此D选项正确。

  • 第21题:

    函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是( )。 A.文件开始B.文件末尾S

    函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是( )。

    A.文件开始

    B.文件末尾

    C.文件当前位置

    D.以上都不对


    正确答案:B
    SEEK_SET代表文件的开始,SEEK_END代表文件末尾,SEEK_CUR代表文件当前位置。

  • 第22题:

    执行DEC指令除对于SF、ZF有影响外,还要影响的标志位是()。

    • A、AF,PF,CF
    • B、OF,AF,CF
    • C、OF,PF,CF
    • D、OF,AF,PF

    正确答案:D

  • 第23题:

    单选题
    当加法运算结果为10110100B时,以下正确的选项是()
    A

    SF=1;PF=0

    B

    SF=1;PF=1

    C

    SF=0;PF=1

    D

    SF=0;PF=0


    正确答案: B
    解析: 暂无解析

  • 第24题:

    单选题
    有以下程序:#include main(){ FILE *pf; char *s1=China,*s2=Beijing; pf=fopen(abc.dat,wb+); fwrite(s2,7,1,pf); rewind(pf);   /*文件位置指针回到文件开头*/ fwrite(s1,5,1,pf); fclose(pf);}以上程序执行后abc.dat文件的内容是(  )。
    A

    China

    B

    Chinang

    C

    ChinaBeijing

    D

    BeijingChina


    正确答案: A
    解析:
    pf是一个文件指针,fopen("abc.dat","wb+");执行后,pf指向可读写的二进制文件abc.dat。语句fwrite(s2,7,1,pf);是将s2的前7*1个字符的内容写入pf中,即Beijing。rewind(pf);是将文件位置指针移回到文件开头,语句fwrite(s1,5,1,pf);是从文件的开头位置,将s1的前5*1个字符的内容写入,替换掉原来位置上的内容,所以结果为Chinang。答案选择B选项。