【计算机类职业资格】国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷14及答案解析.doc
《【计算机类职业资格】国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷14及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷14及答案解析.doc(10页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C 语言机试(结构体、共用体、位运算及文件操作)模拟试卷 14 及答案解析(总分:56.00,做题时间:90 分钟)一、选择题(总题数:28,分数:56.00)1.有以下程序 #include main() int a=5,b=1,t; t=(aA.11B.6C.21D.12.若变量已正确定义,则以下语句的输出结果是 s=32; s=32; printf(“d“,s);(分数:2.00)A.-1B.1C.32D.03.若有以下程序 main()int c; c=105; printf(“dn“,c); 则程序的输出结果是(分数:2.00)A.15B.10000C.5D.1054.若有
2、以下程序 main()int c; C=1315; printf(“dn“,c); 则程序的输出结果是(分数:2.00)A.15B.18C.13D.55.有以下程序 main()int i=0; i=i; printf(“dn“,i); 程序运行后的输出结果是(分数:2.00)A.0B.1C.8D.-16.有以下程序 main()int i=1; i=ii; printf(“dn“,i); 程序运行后的输出结果是(分数:2.00)A.-1B.0C.1D.77.下面关于位运算符的叙述,正确的是(分数:2.00)A.#表示“按位异或”的运算B.表示“按位或”的运算C.表示“按位异或”的运算D.&表
3、示“按位与”的运算8.以下叙述中正确的是(分数:2.00)A.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖B.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1 个数据C.C 语言中的文件是流式文件,因此只能顺序存取数据D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失9.下列关于 C 语言文件的叙述中正确的是(分数:2.00)A.文件由结构序列组成,可以构成二进制文件或文本文件B.文件由一系列数据依次排列组成,只能构成二进制文件C.文件由数据序列组成,可以构成二进制文件或文本文件D.文件由字符序列组成,其类型只能是文本文
4、件10.下面选项中关于“文件指针”概念的叙述正确的是(分数:2.00)A.文件指针就是文件位置指针,表示当前读写数据的位置B.文件指针指向文件在计算机中的存储位置C.文件指针是程序中用 FILE 定义的指针变量D.把文件指针传给 fscanf 函数,就可以向文本文件中写入任意的字符11.设 fp 已定义,执行语句 fp=fopen(“file”,“W”);后,以下针对文本文件 file 操作叙述的选项中正确的是(分数:2.00)A.写操作结束后可以从头开始读B.只能写不能读C.可以在原有内容后追加写D.可以随意读和写12.以下函数不能用于向文件中写入数据的是(分数:2.00)A.fwriteB
5、.foutcC.ftellD.fprintf13.设文件指针 fp 已定义,执行语句 fp=fopen(“file“,“w“);后,以下针对文本文件 file 操作叙述的选项中正确的是(分数:2.00)A.写操作结束后可以从头开始读B.可以在原有内容后追加写C.可以随意读和写D.只能写不能读14.有以下程序 #include main()FILE*f; f=fopen(“fileatxt“,“w“); fprintf(f,“abc“); fclose(f); 若文本文件 fileatxt 中原有内容为:hello,则运行以上程序后,文件 fileatxt 中的内容为(分数:2.00)A.abc
6、loB.abcC.helloabeD.abchello15.有以下程序 #include main() FILE*fp;int i,a6=1,2,3,4,5,6; fp=fopen(“d2dat“,“w+“); for(i=0;i6;i+)fscanf(fp,“d“,&a5-i); fclose(fp); for(i=0;iA.1,2,3,4,5,6B.6,5,4,3,2,1,C.4,5,6,l,2,3,D.1,2,3,3,2,1,16.执行以下程序后,testtxt 文件的内容是(若文件能正常打开) #includestdioh main() FILE*fb; char*s1=“Fortra
7、n“,“s2=“Basic“; if(fb=fopen(“testtxt“,“wb“)=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.Basic 、D.FortranBasic17.读取二进制文件的函数调用形式为: fread(buffer,
8、size,count,fp);其中 buffer 代表的是(分数:2.00)A.一个整型变量,代表待读取的数据的字节数B.一个内存块的首地址,代表读入数据存放的地址C.一个文件指针,指向待读取的文件D.一个内存块的字节数18.有下列程序: #include main() FILE*fp;int a10=1,2,3),i,n; fp=fopen(“d1dat“,“w“); for(i=0;iA.12300B.123C.1D.32119.以下叙述中错误的是(分数:2.00)A.gets 函数用于从终端读入字符串B.getchar 函数用于从磁盘文件读入字符C.fputs 函数用于把字符串输出到文件
9、D.fwrite 函数用于以二进制形式输出数据到文件20.有以下程序 #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.ChinangB.ChinaC.ChinaBeijingD.BeijingChina21.有下列程序: #include main()
10、FILE*fp;int k,n,a61=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); fclose(fp); 程序运行后的输出结果是(分数:2.00)A.1 4B.123 456C.123 4D.1 222.有下列程序: #include main() FILE*fp;int a10=1,2,3,0,
11、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;iA.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,23.设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数 fe
12、of(fp)的返回值为(分数:2.00)A.0B.0C.NULLD.非 0 值24.有以下程序 #include main() FILE*fp;char str10; fp=fopen(“myfiledat“,“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.abc28C.abeD.因类型不一致而出错25.以下程序依次把从
13、终端输入的字符存放到 f 文件中,用#作为结束输入的标志,则在横线处应填入的选项是 #include main()FILE*fp; char ch; fp=fopen(“fname“,“w“); while(ch=getchar()!=#) fputc(_); felose(fp); (分数:2.00)A.fp,chB.chC.ch,“fname“D.ch,fp26.以下程序用来统计文件中字符的个数(函数 feof 用以检查文件是否结束,结束时返回非零) #include main()FILE*fp; long num=0; fp=fopen(“fnamedat“,“r“); while(_)
14、; fgetc(fp);num+; printf(“num=dn“,num); fclose(fp); 下面选项中,填入横线处不能得到正确结果的是 A)feof(fp) B)feof(fp)=NULL(分数:2.00)A.feof(fp)B.feof(fp)=NULLC.!feof(fp)D.feof(fp)=027.下面关于“EOF”的叙述,正确的是(分数:2.00)A.EOF 的值等于 0B.文本文件和二进制文件都可以用 EOF 作为文件结束标志C.EOF 是在库函数文件中定义的符号常量D.对于文本文件,fgetc 函数读入最后一个字符时,返回值是 EOF28.若 fp 已定义为指向某文件
15、的指针,且没有读到该文件的末尾,则 C 语言函数 feof(fp)的函数返回值是(分数:2.00)A.0B.非 0C.-1D.EOF国家二级 C 语言机试(结构体、共用体、位运算及文件操作)模拟试卷 14 答案解析(总分:56.00,做题时间:90 分钟)一、选择题(总题数:28,分数:56.00)1.有以下程序 #include main() int a=5,b=1,t; t=(aA.11B.6C.21 D.1解析:解析:本题考查位操作运算符。 “”是左移运算符,左移一位相当于乘 2,“”是按位或运算符。5 序移两位相当于乘 4,得到 20,20 的二进制数是 00010100,和 0000
16、0001 进行按位或操作得到00010101,即十进制的 21。2.若变量已正确定义,则以下语句的输出结果是 s=32; s=32; printf(“d“,s);(分数:2.00)A.-1B.1C.32D.0 解析:解析:“按位异或”运算的规则是:参与运算的两个运算数中相对应的二制位上,若数相同,则该位的结果为 0;若数不同,则该位的结果为 1。因为语句“s=32;s=32;”相当于 s 与自身做按位异或运算,所以其结果等于 0。3.若有以下程序 main()int c; c=105; printf(“dn“,c); 则程序的输出结果是(分数:2.00)A.15 B.10000C.5D.105
17、解析:解析:按位异或()的运算规则是:参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为 0;若数不同,该位的结果为 1。整数 10 和 5 的二进制编码分别为 1010 和 0101,异或结果为 1111,其十进制数据位 15。4.若有以下程序 main()int c; C=1315; printf(“dn“,c); 则程序的输出结果是(分数:2.00)A.15B.18C.13 D.5解析:解析:按位或()的运算规则是:参加运算的两个运算数中,只要两个相应的二进制位中一个为1,则该位的运算结果即为 1:只有当两个相应位的数都为 0 时,该位的运算结果才为 0。13 的二进制位
18、1101,5 的二进制位 0101,或运算的结果为 1101,因此值为 13。5.有以下程序 main()int i=0; i=i; printf(“dn“,i); 程序运行后的输出结果是(分数:2.00)A.0B.1C.8D.-1 解析:解析:运算符()是位运算符中唯一的一个单目运算符,运算对象应置于运算符的右边,其运算功能是把运算对象的内容按位取反(使每一位上的 0 变 1,1 变 0)。i 的初值为 0,二进制位 00000000,因此取反后结果为 11111111,最高位为符号位,为一 1 的补码形式,因此输出结果为一 1。6.有以下程序 main()int i=1; i=ii; pr
19、intf(“dn“,i); 程序运行后的输出结果是(分数:2.00)A.-1B.0 C.1D.7解析:解析:按位异或(n)的运算规则是:参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为 0:若数不同,该位的结果为 1。本题中表达式 ii 的值必为 0,因为 i 的各个位置的二进制值相同。7.下面关于位运算符的叙述,正确的是(分数:2.00)A.#表示“按位异或”的运算B.表示“按位或”的运算C.表示“按位异或”的运算D.&表示“按位与”的运算 解析:解析:C 语言提供了 6 种位运算符,各种位运算符的含义见下表:8.以下叙述中正确的是(分数:2.00)A.打开一个已存在的文件
20、并进行了写操作后,原有文件中的全部数据必定被覆盖B.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1 个数据C.C 语言中的文件是流式文件,因此只能顺序存取数据D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失 解析:解析:在 C 语言中,有两种对文件的存取方式;顺序存取和直接存取;如果以“a”的方式对一个已打开的文件进行写操作后,则原有文件中内容将保存,新的数据写在原有内容之后。如果以“a+”的方式为读和写而打开一个文件,则既可以对文件进行读,也可以对文件进行写,而且在读和写操作之间不必关闭文件,可以从头开始读。当对文件的读(写)操作完成之后
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 国家 二级 语言 结构 共用 运算 文件 操作 模拟 试卷 14 答案 解析 DOC

链接地址:http://www.mydoc123.com/p-1332364.html