1、国家二级 C 语言机试(结构体、共用体、位运算及文件操作)模拟试卷 8 及答案解析(总分:52.00,做题时间:90 分钟)一、选择题(总题数:26,分数:52.00)1.若有以下程序 main()int c; c=105: printf(“dn“,c); 则程序的输出结果是(分数:2.00)A.15B.10000C.5D.1052.若有以下程序 main()int c; c=1315; printf(“dn“,c); 则程序的输出结果是(分数:2.00)A.15B.18C.13D.53.有以下程序 main()int i=0; i=i: printf(“dn“,i); 程序运行后的输出结果是
2、(分数:2.00)A.0B.1C.8D.一 14.有以下程序 main()int i=1: i=ii; printf(“dn“,i); 程序运行后的输出结果是(分数:2.00)A.一 1B.0C.1D.75.下面关于位运算符的叙述,正确的是(分数:2.00)A.#表示“按位异或”的运算B.表示“按位或”的运算C.表示“按位异或”的运算D.&表示“按位与”的运算6.以下叙述中正确的是(分数:2.00)A.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖B.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1 个数据C.C 语言中的文件是流式文件,因此
3、只能顺序存取数据D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失7.下列关于 C 语言文件的叙述中正确的是(分数:2.00)A.文件由结构序列组成,可以构成二进制文件或文本文件B.文件由一系列数据依次排列组成,只能构成二进制文件C.文件由数据序列组成,可以构成二进制文件或文本文件D.文件由字符序列组成,其类型只能是文本文件8.下面选项中关于“文件指针”概念的叙述正确的是(分数:2.00)A.文件指针就是文件位置指针,表示当前读写数据的位置B.文件指针指向文件在计算机中的存储位置C.文件指针是程序中用 FILE 定义的指针变量D.把文件指针传给 fscanf 函数,就可以向
4、文本文件中写入任意的字符9.设 fp 已定义,执行语句 fp=fopen(“file”,“w”);后,以下针对文本文件 file 操作叙述的选项中正确的是(分数:2.00)A.写操作结束后可以从头开始读B.只能写不能读C.可以在原有内容后追加写D.可以随意读和写10.以下函数不能用于向文件中写入数据的是(分数:2.00)A.fwriteB.fputcC.ftellD.fprintf11.设文件指针 fp 已定义,执行语句 fp=fopen(“file“,“w“);后,以下针对文本文件 file 操作叙述的选项中正确的是(分数:2.00)A.写操作结束后可以从头开始读B.可以在原有内容后追加写C
5、.可以随意读和写D.只能写不能读12.有以下程序 #includestdioh main()FILE*f; f=fopen(“fileatxt“,“w“); fprintf(f,“abc“); fclose(f); 若文本文件 fileatxt 中原有内容为:hello,则运行以上程序后,文件 fileatxt 中的内容为(分数:2.00)A.abcloB.abcC.helloabcD.abchello13.有以下程序 #ineludestdioh main() FILE*fp;int i,a6=1,2,3,4,5,6; fp=fopen(“d2dat“,“w+“); for(i=0;i;i+
6、)fprintf(fp,“dn“,ai); rewind(fp); for(i=O;i6;i+)fscanf(fp,“d“,&a5i); fclose(fp); for(i=0;i6;i+)printf(“d“,ai); (分数:2.00)A.1,2,3,4,5,6B.6,5,4,3,2,1,C.4,5,6,1,2,3,D.1,2,3,3,2,1,14.执行以下程序后,testtxt 文件的内容是(若文件能正常打开) #includestdioh main() FILE*fb; char*s1=“Fortran“,*s2=“Basic“; if(fb=fopen(“testtxt“,“wb“)
7、=NULL) printf(“Cant open testtxt filen“);exit(1); fwrite(s1,7,1,fb); *把从地址 s1 开始的 7 个字符写到 fb 所指文件中* fseek(fb,0L,SEEK SET); *文件位置指针移到文件开头* fwrite(s2,5,1,fb); fclose(fb); (分数:2.00)A.BasicanB.BasicFortranC.BasicD.FortranBasic15.读取二进制文件的函数调用形式为: fread(buffer,size,count,fp);其中 buffer 代表的是(分数:2.00)A.一个整型变
8、量,代表待读取的数据的字节数B.一个内存块的首地址,代表读入数据存放的地址C.一个文件指针,指向待读取的文件D.一个内存块的字节数16.有下列程序: #includestdioh main() FILE*fp;int a10=1,2,3),i,n; fp=fopen(“d1dat“,“w“); for(i=0;i3;i+)fprintf(fp,“d“,ai); fprintf(fp,“n“);fclose(fp); fp=open(“d1dat“,“r“); fscanf(fp,“d“,&n); fclose(fp); printf(“dn“,n); 程序的运行结果是(分数:2.00)A.12
9、300B.123C.1D.32117.以下叙述中错误的是(分数:2.00)A.gets 函数用于从终端读入字符串B.getchar 函数用于从磁盘文件读入字符C.fputs 函数用于把字符串输出到文件D.fwrite 函数用于以二进制形式输出数据到文件18.有以下程序 #includestdioh main() FILE*pf; char*s1=“China“,*s2=“Beijing“; pf=fopen(“abcdat“,“wb+“); fwrite(s2,7,1,pf); rewind(pf); *文件位置指针回到文件开头* fwrite(s1,5,1,pf); fclose(pf);
10、以上程序执行后 abcdat 文件的内容是(分数:2.00)A.ChinangB.ChinaC.ChinaBeijingD.BeijingChina19.有下列程序: #includestdioh main() FILE*fp;int k,n,a6=1,2,3,4,5,6; fp=fopen(“d2dat“,“W“); fprintf(fp,“dddn“,a0,a1,a2); fprintf(fp,“dddn“,a3,a4,a5); fclose(fp); fp=fopen(“d2dat“,“r“); fscanf(fp,“dd“,&k,&n);printf(“ddn“,k,n); fclos
11、e(fp); 程序运行后的输出结果是(分数:2.00)A.1 4B.123 456C.123 4D.1 220.有下列程序: #includestdioh main() FILE*fp;int a10=1,2,3,0,0,i; fp=fopen(“d2dat“,“wb“); fwtite(a,sizeof(int),5,fp); fwrite(a,sizeof(int),5,fp); fclose(fp); fp=fopen(“d2dat“,“rb“); fread(a,sizeof(int),10,fp); fclose(fp); for(i=0;i10;i+)printf(“d“,ai);
12、 程序的运行结果是(分数:2.00)A.1,2,3,1,2,3,0,0,0,0,B.1,2,3,0,0,1,2,3,0,0,C.123,0,0,0,0,123,0,0,0,0,D.1,2,3,0,0,0,0,0,0,0,21.设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为(分数:2.00)A.0B.0C.NULLD.非 0 值22.有以下程序 #includestdioh main() FILE*fp;char str10; fp=fopen(“myfiledat“,“w“); fputs(“abc“,fp);fclose(fp); fp=fopen
13、(“myfiledat“,“a+“);fprintf(fp,“d“,28); rewind(fp); fscanf(fp,“s“,str);puts(str); fclose(fp); 程序运行后的输出结果是(分数:2.00)A.28cB.abc28C.abcD.因类型不一致而出错23.以下程序依次把从终端输入的字符存放到 f 文件中,用#作为结束输入的标志,则在横线处应填入的选项是 #includestdioh main() FILE*fp; char ch; fp=fopen(“fname“,“w“); while(ch=getchar()!=#) fputc(_); fclose(fp)
14、; (分数:2.00)A.fp,chB.chC.ch,“fname“D.ch,fp24.以下程序用来统计文件中字符的个数(函数 feof 用以检查文件是否结束,结束时返回非零) #includestdioh main()FILE*fp; long num=0; fp=fopen(“fnamedat“,“r“); while(_) fgetc(fp);num+; printf(“num=dn“,num); fclose(fp): 下面选项中,填入横线处不能得到正确结果的是(分数:2.00)A.feof(fp)B.feof(fp)=NULLC.!feof(fp)D.feof(fp)=025.下面关
15、于“EOF”的叙述,正确的是(分数:2.00)A.EOF 的值等于 0B.文本文件和二进制文件都可以用 EOF 作为文件结束标志C.EOF 是在库函数文件中定义的符号常量D.对于文本文件,fgetc 函数读入最后一个字符时,返回值是 EOF26.若 fp 已定义为指向某文件的指针,且没有读到该文件的末尾,则 C 语言函数 feof(fp)的函数返回值是(分数:2.00)A.0B.非 0C.1D.EOF国家二级 C 语言机试(结构体、共用体、位运算及文件操作)模拟试卷 8 答案解析(总分:52.00,做题时间:90 分钟)一、选择题(总题数:26,分数:52.00)1.若有以下程序 main()
16、int c; c=105: printf(“dn“,c); 则程序的输出结果是(分数:2.00)A.15 B.10000C.5D.105解析:解析:按位异或()的运算规则是:参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为 0;若数不同,该位的结果为 1。整数 10 和 5 的二进制编码分别为 1010 和 0101,异或结果为 1111,其上进制数据位 15。2.若有以下程序 main()int c; c=1315; printf(“dn“,c); 则程序的输出结果是(分数:2.00)A.15B.18C.13 D.5解析:解析:按位或()的运算规则是:参加运算的两个运算数中
17、,只要两个相应的二进制位中一个为1,则该位的运算结果即为 1;只有当两个相应位的数都为 0 时,该位的运算结果才为 0。13 的二进制位1101,5 的二进制位 0101,或运算的结果为 1101,因此值为 13。3.有以下程序 main()int i=0; i=i: printf(“dn“,i); 程序运行后的输出结果是(分数:2.00)A.0B.1C.8D.一 1 解析:解析:运算符()是位运算符中唯一的一个单目运算符,运算对象应置于运算符的右边,其运算功能是把运算对象的内容按位取反(使每一位上的 0 变 1,1 变 0)。i 的初值为 0,二进制位 00000000,因此取反后结果为 1
18、1111111,最高位为符号位,为1 的补码形式,因此输出结果为1。4.有以下程序 main()int i=1: i=ii; printf(“dn“,i); 程序运行后的输出结果是(分数:2.00)A.一 1B.0 C.1D.7解析:解析:按位异或()的运算规则是:参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为 0;若数不同,该位的结果为 1。本题中表达式 ii 的值必为 0,因为 i 的各个位置的二进制值相同。5.下面关于位运算符的叙述,正确的是(分数:2.00)A.#表示“按位异或”的运算B.表示“按位或”的运算C.表示“按位异或”的运算D.&表示“按位与”的运算 解析
19、:解析:C 语言提供了 6 种位运算符,各种位运算符的含义见下表:6.以下叙述中正确的是(分数:2.00)A.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖B.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1 个数据C.C 语言中的文件是流式文件,因此只能顺序存取数据D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失 解析:解析:在 C 语言中,有两种对文件的存取方式;顺序存取和直接存取:如果以“a”的方式对一个已打开的文件进行与操作后,则原有文件中内容将保存,新的数据写在原有内容之后。如果以“a+”的方式为读和写而打开一
20、个文件,则既可以对文件进行读,也可以对文件进行写,而且在读和写操作之间不必关闭文件,可以从头开始读。当对文件的读(写)操作完成之后,必颈将它关闭。7.下列关于 C 语言文件的叙述中正确的是(分数:2.00)A.文件由结构序列组成,可以构成二进制文件或文本文件B.文件由一系列数据依次排列组成,只能构成二进制文件C.文件由数据序列组成,可以构成二进制文件或文本文件 D.文件由字符序列组成,其类型只能是文本文件解析:解析:在 C 语言中,对输入、输出的数据都按“数据流”的形式进行处理。数据可以按文本形式或二进制形式存放在介质上,因此文件可以按数据的仔放形式分为文本文件和二进制文件。8.下面选项中关于
21、“文件指针”概念的叙述正确的是(分数:2.00)A.文件指针就是文件位置指针,表示当前读写数据的位置B.文件指针指向文件在计算机中的存储位置C.文件指针是程序中用 FILE 定义的指针变量 D.把文件指针传给 fscanf 函数,就可以向文本文件中写入任意的字符解析:解析:文件指针实际上是指向一个结构体类型的指针,这个结构体中包含如缓冲区的地址、在缓冲区中当前存取的字符的位置、对文件是“读”或“写”、是否出错、是否已经遇到文件结束标志等信息。一般称文件指针结构体类型名为 FILE,可以用此类型名来定义文件指针。 【格式】FILE*指针变量名 【说明】FILE 是一个存储文件信息的结构体类型的变
22、量。 注意不要和文件佗置指针混淆,在文什内部有一个位置指针,用以指示文件内部的当前读写位置。使用 fgetc 晒数,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的。而文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。fscanf 函数可以向文本文件和二进制文件输入数据。9.设 fp 已定义,执行语句 fp=fopen(“file”,“w”);后,以下针对文本文件 file 操作叙述的选项中正确的是(分数:2.00)A.写操作结束后可以从头开始读B.只能写不能读 C.可以在原有内容后追加写D.可以随意读和写解析:解析:本题考查文件操作
23、。fopen 的 mode 参数有多种类型:r 以只读方式打开文件、r+以可读写方式打开文件、rb+以读写方式打开一个二进制文件、w 以只写方式打开文件、w+以读写方式打开文件、wb+以读写方式打开二进制文件。10.以下函数不能用于向文件中写入数据的是(分数:2.00)A.fwriteB.fputcC.ftell D.fprintf解析:解析:本题考查文件操作。ftell 函数返回文件指针的当前他置,其他的都写文件函数。11.设文件指针 fp 已定义,执行语句 fp=fopen(“file“,“w“);后,以下针对文本文件 file 操作叙述的选项中正确的是(分数:2.00)A.写操作结束后可
24、以从头开始读B.可以在原有内容后追加写C.可以随意读和写D.只能写不能读 解析:解析:在题目中函数 fopen 以“只写”方式打开文件 file。12.有以下程序 #includestdioh main()FILE*f; f=fopen(“fileatxt“,“w“); fprintf(f,“abc“); fclose(f); 若文本文件 fileatxt 中原有内容为:hello,则运行以上程序后,文件 fileatxt 中的内容为(分数:2.00)A.abcloB.abc C.helloabcD.abchello解析:解析:本题考查文件打开方式。 格式:文件指针名=fopen(文件名,使用
25、文件方式)13.有以下程序 #ineludestdioh main() FILE*fp;int i,a6=1,2,3,4,5,6; fp=fopen(“d2dat“,“w+“); for(i=0;i;i+)fprintf(fp,“dn“,ai); rewind(fp); for(i=O;i6;i+)fscanf(fp,“d“,&a5i); fclose(fp); for(i=0;i6;i+)printf(“d“,ai); (分数:2.00)A.1,2,3,4,5,6B.6,5,4,3,2,1, C.4,5,6,1,2,3,D.1,2,3,3,2,1,解析:解析:在程序中定义了一个整型数组 a6
26、,并对它赋初值,并以写入的方式打开了文件 d2dat。然后利用一个 for 循环把数组 a 中的元素数据写入文件 d2dat 中,调用函数 rewind 把将文件内部的位置指针重新指向一个文件的开头,再利用 for 循环语句把文件中的数据依次写入到倒序排列的数组 a 中,最后输出数组 a 中的数组元素。14.执行以下程序后,testtxt 文件的内容是(若文件能正常打开) #includestdioh main() FILE*fb; char*s1=“Fortran“,*s2=“Basic“; if(fb=fopen(“testtxt“,“wb“)=NULL) printf(“Cant ope
27、n testtxt filen“);exit(1); fwrite(s1,7,1,fb); *把从地址 s1 开始的 7 个字符写到 fb 所指文件中* fseek(fb,0L,SEEK SET); *文件位置指针移到文件开头* fwrite(s2,5,1,fb); fclose(fb); (分数:2.00)A.Basican B.BasicFortranC.BasicD.FortranBasic解析:解析:本题主要考查文件的基本操作。在 main 函数中,首先打开 texttxt 文件,然后通过fwrite 函数把 s1 字符串写到文件中,接下来通过 fseek 函数把文件指针移动到文件开始
28、,再调用 fwrite函数把 s2 字符窜写到文件中,s2 的长度小于 s1 的长度,因此第二次写的时候会覆盖第一次写的部分内容,程序运行后 testtext 中内容为 Basican。15.读取二进制文件的函数调用形式为: fread(buffer,size,count,fp);其中 buffer 代表的是(分数:2.00)A.一个整型变量,代表待读取的数据的字节数B.一个内存块的首地址,代表读入数据存放的地址 C.一个文件指针,指向待读取的文件D.一个内存块的字节数解析:解析:buffer 是数据块的指针,对 fread 来说,它是内存块的首地址,输入的数据存入此内存块中。16.有下列程序
29、: #includestdioh main() FILE*fp;int a10=1,2,3),i,n; fp=fopen(“d1dat“,“w“); for(i=0;i3;i+)fprintf(fp,“d“,ai); fprintf(fp,“n“);fclose(fp); fp=open(“d1dat“,“r“); fscanf(fp,“d“,&n); fclose(fp); printf(“dn“,n); 程序的运行结果是(分数:2.00)A.12300B.123 C.1D.321解析:解析:本题考查以读和写的方式打开文件对文件内容操作的不同,fp=fopen(“d1dat“,“w“);以可
30、写的方式为输出建立新文本文件,调用 printf,输出“123”,fp=fopen(“d1,dat“,“r“);以只读的方式打开文本文件,不能对文件内容进行操作。17.以下叙述中错误的是(分数:2.00)A.gets 函数用于从终端读入字符串B.getchar 函数用于从磁盘文件读入字符 C.fputs 函数用于把字符串输出到文件D.fwrite 函数用于以二进制形式输出数据到文件解析:解析:本题考查的是输入输出函数的使用,gets 和 getchar 函数用于从标准输入设备终端读入字符串和字符,并非从磁盘文件读入,fputs 用于把字符串输出到文件,fwrite 用于以二进制形式输出数据到文
31、件。18.有以下程序 #includestdioh main() FILE*pf; char*s1=“China“,*s2=“Beijing“; pf=fopen(“abcdat“,“wb+“); fwrite(s2,7,1,pf); rewind(pf); *文件位置指针回到文件开头* fwrite(s1,5,1,pf); fclose(pf); 以上程序执行后 abcdat 文件的内容是(分数:2.00)A.Chinang B.ChinaC.ChinaBeijingD.BeijingChina解析:解析:本题主考查函数 fwrite 的使用。函数 fwrite 的调用形式为:int fwr
32、ite(char*pt,unsigned size,unsigned n,FILE*fp);其功能是把 pt 所指向的 n*size 个字节输出到 fp 所指文件中。在本题中“fwrite(s2,7,1,pf;”的功能是把字符串“Beijing”输入到文件abcdat 中,然后调用 rewind(pf),把文件位置指针回到文件开头,再调用“fwrite(s1,5,1,pf)”把字符串“China”写入到文件 abcdat 中,所以此时文件 abcdat 的内容为 Chinang。19.有下列程序: #includestdioh main() FILE*fp;int k,n,a6=1,2,3,4
33、,5,6; fp=fopen(“d2dat“,“W“); fprintf(fp,“dddn“,a0,a1,a2); fprintf(fp,“dddn“,a3,a4,a5); fclose(fp); fp=fopen(“d2dat“,“r“); fscanf(fp,“dd“,&k,&n);printf(“ddn“,k,n); fclose(fp); 程序运行后的输出结果是(分数:2.00)A.1 4B.123 456 C.123 4D.1 2解析:解析:用文件函数 fopen 打开 d2dat 文件并把数组 a6中的元素分两行写入到 d2dat 文件中,关闭文件。然后再次打开文件 d2dat,用
34、 fscanf()函数读取文件 d2dat 中的数据,因为每行没有分隔符,所以每一行会被认为是一个完整的数,并存入到变量 k 和 n 中,输出变量 k 和 n 的值为 123 456。20.有下列程序: #includestdioh main() FILE*fp;int a10=1,2,3,0,0,i; fp=fopen(“d2dat“,“wb“); fwtite(a,sizeof(int),5,fp); fwrite(a,sizeof(int),5,fp); fclose(fp); fp=fopen(“d2dat“,“rb“); fread(a,sizeof(int),10,fp); fcl
35、ose(fp); for(i=0;i10;i+)printf(“d“,ai); 程序的运行结果是(分数:2.00)A.1,2,3,1,2,3,0,0,0,0,B.1,2,3,0,0,1,2,3,0,0, C.123,0,0,0,0,123,0,0,0,0,D.1,2,3,0,0,0,0,0,0,0,解析:解析:首先用函数 fopen()以“wb”的方式开打文件“d2dat”,然后调用两次 fwrite 函数将数组 a 的 5 个元素,依次输出到文件 fp 中,共 10 个字节,关闭文件。再次打开文件,使用文件指针指向文件的开头,调用 fread 函数从文件 fb 中读取这 10 个字节的数据到
36、数组 a 中,此时数组 a 的内容就变为1,2,3,0,0,1,2,3,0,0,最后的输出结果为“1,2,3,0,0,1,2,3,0,0”。21.设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为(分数:2.00)A.0B.0C.NULLD.非 0 值 解析:解析:ANSI C 提供的 feof 函数的功能是判断 fp 所指的文件的位置是否已达到文件尾,如果达到文件尾,则 feof 函数的值为 1,否则为 0,表不文件尚末结束。22.有以下程序 #includestdioh main() FILE*fp;char str10; fp=fopen(“myf
37、iledat“,“w“); fputs(“abc“,fp);fclose(fp); fp=fopen(“myfiledat“,“a+“);fprintf(fp,“d“,28); rewind(fp); fscanf(fp,“s“,str);puts(str); fclose(fp); 程序运行后的输出结果是(分数:2.00)A.28cB.abc28 C.abcD.因类型不一致而出错解析:解析:存程序中首先把字符串 abc 写入到文件 myfiledat 中,然后再把整数 28 追加到字符串abc 的后面,最后把文件 myfiledat 的内容读入到字符串 str 中,并把其内容输出。23.以下
38、程序依次把从终端输入的字符存放到 f 文件中,用#作为结束输入的标志,则在横线处应填入的选项是 #includestdioh main() FILE*fp; char ch; fp=fopen(“fname“,“w“); while(ch=getchar()!=#) fputc(_); fclose(fp); (分数:2.00)A.fp,chB.chC.ch,“fname“D.ch,fp 解析:解析:fputc()是以字符(字节)为单位的读写函数。每次可从文什读出或向文件写入一个字符。使用格式为“fputc(ch,fp);”。 其中 ch 是待输出的某个字符,它可以是一个字符常量,也可以是一个
39、字符变量;fp 是文件指针。fputc(ch,fp)的功能是将字符 ch 写到文什指针 fp 所指的文件中。如果输出成功,fbutc 函数返回所输出的字符;如果输出失败,则返同一个 EOF 值。EOF 是在 stdio.h 库函数文件中定义的符号常量,其值等于一 1。24.以下程序用来统计文件中字符的个数(函数 feof 用以检查文件是否结束,结束时返回非零) #includestdioh main()FILE*fp; long num=0; fp=fopen(“fnamedat“,“r“); while(_) fgetc(fp);num+; printf(“num=dn“,num); fcl
40、ose(fp): 下面选项中,填入横线处不能得到正确结果的是(分数:2.00)A.feof(fp)B.feof(fp)=NULLC.!feof(fp) D.feof(fp)=0解析:解析:feof 函数用来判断文件是否结束。如果遇到文件结束,函数 feof(fp)的值为 1,否则为 0。题目横线用于判断文件不结束,读出字符。文件不结束 feof、值为 0,若执行循环则应用表达式!feof(fb)。25.下面关于“EOF”的叙述,正确的是(分数:2.00)A.EOF 的值等于 0B.文本文件和二进制文件都可以用 EOF 作为文件结束标志C.EOF 是在库函数文件中定义的符号常量 D.对于文本文件,fgetc 函数读入最后一个字符时,返回值是 EOF解析:解析:EOF 是在 stdioh 库函数文件中定义的符号常量,其值等于1。EOF 用作文件结束标志,在二进制或者文本文件内部有一个位置指针,用以指示文件内部的当前读写位置。使用 fgetc 函数,每读写一次,该指针均向后移动,26.若 fp 已定义为指向某文件的指针,且没有读到该文件的末尾,则 C 语言函数 feof(fp)的函数返回值是(分数:2.00)A.0 B.非 0C.1D.EOF解析:解析:feof 用来判断文件是否结束。如果遇到文件结束,函数 feof(fb)的值为 1,否则为 0。