欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷8及答案解析.doc

    • 资源ID:1332367       资源大小:62KB        全文页数:10页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷8及答案解析.doc

    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。


    注意事项

    本文(【计算机类职业资格】国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷8及答案解析.doc)为本站会员(testyield361)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开