ImageVerifierCode 换一换
格式:DOC , 页数:20 ,大小:127.50KB ,
资源ID:498778      下载积分:2000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-498778.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文([计算机类试卷]国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷14及答案与解析.doc)为本站会员(周芸)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

[计算机类试卷]国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷14及答案与解析.doc

1、国家二级 C语言机试(结构体、共用体、位运算及文件操作)模拟试卷 14及答案与解析 一、选择题 1 有以下程序 #include main() int a=5, b=1, t; t=(a main()FILE*f; f=fopen(“filea txt“, “w“); fprintf(f, “abc“); fclose(f); 若文本文件 filea txt中原有内容为: hello,则运行以上程序后,文件 filea txt中的内容为 ( A) abclo ( B) abc ( C) helloabe ( D) abchello 15 有以下程序 #include main() FILE*f

2、p; int i, a6=1, 2, 3, 4, 5, 6; fp=fopen(“d2 dat“, “w+“); for(i=0; i main() FILE*fb; char*s1=“Fortran“, “s2=“Basic“; if(fb=fopen(“test txt“, “wb“)=NULL) printf(“Cant open test txt file n“); exit(1); fwrite(s1, 7, 1, fb); *把从地址 s1开始的 7个字符写到 fb所指文件中 * fseek(fb, 0L, SEEK SET); *文件位置指针移到文件开头 * fwrite(s2,

3、 5, 1, fb); fclose(fb); ( A) Basican ( B) BasicFortran ( C) Basic 、 ( D) FortranBasic 17 读取二进制文件的 函数调用形式为: fread(buffer, size, count, fp);其中buffer代表的是 ( A)一个整型变量,代表待读取的数据的字节数 ( B)一个内存块的首地址,代表读入数据存放的地址 ( C)一个文件指针,指向待读取的文件 ( D)一个内存块的字节数 18 有下列程序: #include main() FILE*fp; int a10=1, 2, 3), i, n; fp=fop

4、en(“d1 dat“, “w“); for(i=0; i 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) Chinang ( B) China ( C) ChinaBeijing ( D) BeijingChina 21 有下列程序: #include main() FI

5、LE*fp; int k, n, a61=1, 2, 3, 4, 5, 6; fp=fopen(“d2 dat“, “w“); fprintf(fp, “ d d d n“, a0, a1, a2); fprintf(fp, “ d d d n“, a3, a4, a5); fclose(fp); 。 fp=fopen(“d2 dat“, “r“); fscanf(fp, “ d d“, &k, &n); printf(“ d d n“, k, n); fclose(fp); 程序运行后的输出结果是 ( A) 1 4 ( B) 123 456 ( C) 123 4 ( D) 1 2 22 有下

6、列程序: #include main() FILE*fp; int a10=1, 2, 3, 0, 0), i; fp=fopen(“d2 dat“, “wb“); fwtite(a, sizeof(int), 5, fp); fwrite(a, sizeof(int), 5, fp); fclose(fp); fp=fopen(“d2 dat“, “rb“); fread(a, sizeof(int), 10, fp); fclose(fp); for(i=0; i main() FILE*fp; char str10; fp=fopen(“myfile dat“, “w“); fputs(

7、“abc“, fp); fclose(fp); fp=fopen(“myfile dat“, “a+“); fprintf(fp, “ d“, 28); rewind(fp); fscanf(fp, “ s“, str); puts(str); fclose(fp); 程序运行 后的输出结果是 ( A) 28c ( B) abc28 ( C) abe ( D)因类型不一致而出错 25 以下程序依次把从终端输入的字符存放到 f文件中,用 #作为结束输入的标志,则在横线处应填入的选项是 #include main()FILE*fp; char ch; fp=fopen(“fname“, “w“);

8、 while(ch=getchar()!=#) fputc(_); felose(fp); ( A) fp, ch ( B) ch ( C) ch, “fname“ ( D) ch, fp 26 以下程序用来统计文件中字符的个数 (函数 feof用以检查文件是否结束,结束时返回非零 ) #include main()FILE*fp; long num=0; fp=fopen(“fname dat“, “r“); while(_); fgetc(fp); num+; printf(“num= d n“, num); fclose(fp); 下面选项中,填入横线处不能得到正确结果的是 A)feof

9、(fp) B)feof(fp)=NULL ( A) feof(fp) ( B) feof(fp)=NULL ( C) !feof(fp) ( D) feof(fp)=0 27 下面关于 “EOF”的叙述,正确的是 ( A) EOF的值等于 0 ( B)文本文件和二进制文件都可以用 EOF作为文件结束标志 ( C) EOF是在库函数文件中定义的符号常量 ( D)对于文本文件, fgetc函数读入最后一个字符时,返回值是 EOF 28 若 fp已定义为指向某文件的指针,且没有读到该文件的末尾,则 C语言函数feof(fp)的函数返回值是 ( A) 0 ( B)非 0 ( C) -1 ( D) EO

10、F 国家二级 C语言机试(结构体、共用体、位运算及文件操作)模拟试卷 14答案与解析 一、选择题 1 【正确答案】 C 【试题解析】 本题考查位操作运算符。 “”是左移运算符,左移一位相当于乘 2, “ ”是按位或运算符。 5序移两位相当于乘 4,得到 20, 20的二 进制数是 00010100,和 00000001进行按位或操作得到 00010101,即十进制的 21。 【知识模块】 结构体、共用体、位运算及文件操作 2 【正确答案】 D 【试题解析】 “按位异或 ”运算的规则是:参与运算的两个运算数中相对应的二制位上,若数相同,则该位的结果为 0;若数不同,则该位的结果为 1。因为语句“

11、s=32; s=32; ”相当于 s与自身做按位异或运算,所以其结果等于 0。 【知识模块】 结构体、共用体、位运算及文件操作 3 【正确答案】 A 【试题解析】 按位异或 ()的运算规则是:参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为 0;若数不同,该位的结果为 1。整数 10和 5的二进制编码分别为 1010和 0101,异或结果为 1111,其十进制数据位 15。 【知识模块】 结构体、共用体、位运算及文件操作 4 【正确答案】 C 【试题解析】 按位或 ( )的运算规则是:参加运算的两个运算数中,只要两个相应的二进制位中一个为 1,则该位的运算结果即为 1:只有当

12、两个相应位的数都为0时,该位的运算结果才为 0。 13的二进制位 1101, 5的二进制位 0101,或运算的结果为 1101,因此值为 13。 【知识模块】 结构体、共用体、位运算及文件操作 5 【正确答案】 D 【试题解析】 运算符 ( )是位运算符中唯一的一个单目运算符,运算对象应置于运算符的右边,其运算功能是把运算对象的内容按位取反 (使每一位上的 0变 1, 1变 0)。 i的初值为 0,二进制位 00000000,因此取反后结果为 11111111,最高位为符号位,为一 1的补码形式,因此输出结果为一 1。 【知识模块】 结构体、共用体、位运算及文件操作 6 【正确答案】 B 【试

13、题解析】 按位异或 (n)的运算规则是:参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为 0:若数不同,该位的结果为 1。本题中表达式 ii的值必为 0,因为 i的各个位置的二进制值相同。 【知识模块】 结构体、共用体、位运算及文件操作 7 【正确答案】 D 【试题解析】 C语言提供了 6种位运算符,各种位运算符的含义见下表:【知识模块】 结构体、共用体、位运算及文件操作 8 【正确答案】 D 【试题解析】 在 C语言中,有两种对文件的存取方式;顺序存取和直接存取;如果以 “a”的 方式对一个已打开的文件进行写操作后,则原有文件中内容将保存,新的数据写在原有内容之后。如果以

14、“a+”的方式为读和写而打开一个文件,则既可以对文件进行读,也可以对文件进行写,而且在读和写操作之间不必关闭文件,可以从头开始读。当对文件的读 (写 )操作完成之后,必须将它关闭。 【知识模块】 结构体、共用体、位运算及文件操作 9 【正确答案】 C 【试题解析】 在 C语言中,对输入、输出的数据都按 “数据流 ”的形式进行处理。数据可以按文本形式或二进制形式存放在介质上,因此文件可以按数据的存放形式分为文本文 件和二进制文件。 【知识模块】 结构体、共用体、位运算及文件操作 10 【正确答案】 C 【试题解析】 文件指针实际上是指向一个结构体类型的指针,这个结构体中包含如缓冲区的地址、在缓冲

15、区中当前存取的字符的位置、对文件是 “读 ”或 “写 ”、是否出错、是否已经遇到文件结束标志等信息。一般称文件指针结构体类型名为FILE,可以用此类型名来定义文件指针。 格式 FILE*指针变量名 说明 FILE是一个存储文件信息的结构体类型的变量。 注意不要和文件位置指针混淆,在文件内部有 一个位置指针,用以指示文件内部的当前读写位置。使用 fgetc函数,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动设置的。而文件指针是指向整个文件的,须在程序中定义说明,只要不重新赋值,文件指针的值是不变的。 fscanf函数可以向文本文件和二进制文件输入数据。 【知识模块】 结构体

16、、共用体、位运算及文件操作 11 【正确答案】 B 【试题解析】 本题考查文件操作。 fopen的 mode参数有多种类型: r以只读方式打开文件、 r+以可读写方式打开文件、 rb+以读写方式打开一个二 进制文件、 w以只写方式打开文件、 w+以读写方式打开文件、 wb+以读写方式打开二进制文件。 【知识模块】 结构体、共用体、位运算及文件操作 12 【正确答案】 C 【试题解析】 本题考查文件操作。 ftell函数返回文件指针的当前位置,其他的都写文件函数。 【知识模块】 结构体、共用体、位运算及文件操作 13 【正确答案】 D 【试题解析】 在题目中函数 fopen以 “只写 ”方式打开

17、文件 file。 【知识模块】 结构体、共用体、位运算及文件操作 14 【正确答案】 B 【试题解析】 本题考查文件打开方式。 格式:文件指针名 =fopen(文件名,使用文件方式 ) 需要注意的是:用 “w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。 【知识模块】 结构体、共用体、位运算及文件操作 15 【正确答案】 B 【试题解析】 在程序中定义了一个整型数组 a6,并对它赋初值,并以写入的方式打开了文件 d2 dat。然后利用一个 for循环把数组 a中的元素数据写入文件d2 dat中,调用函数 re

18、wind把将文件内部的位置指针重新指向一个文件的开头,再利用 for循环语句把文件中的数据依次写入到倒序排列的数组 a中,最后输出数组 a中的数组元素。 【知识模块】 结构体、共用体、位运算及文件操作 16 【正确答案】 A 【试题解析】 本题主要考查文件的基本操作。在 main函数中,首先打开text txt文件,然后通过 fwrite函数把 s1字符串写到文件中,接下来通过 fseek函数把文件指针移动到文件开始,再调用 fwrite函数把 s2字符窜写到文件中, s2的长度小于 sl的长度,因此第二次写 的时候会覆盖第一次写的部分内容,程序运行后 test text中内容为 Basica

19、n。 【知识模块】 结构体、共用体、位运算及文件操作 17 【正确答案】 B 【试题解析】 buffer是数据块的指针,对 fread来说,它是内存块的首地址,输入的数据存入此内存块中。 【知识模块】 结构体、共用体、位运算及文件操作 18 【正确答案】 B 【试题解析】 本题考查以读和写的方式打开文件对文件内容操作的不同,fp=fopen(“d1 dat“, “w“);以可写的方式为输出建立新文本文 件,调用 printf,输出 “123”, fp=fopen(“dl, dat“, “r“);以只读的方式打开文本文件,不能对文件内容进行操作。 【知识模块】 结构体、共用体、位运算及文件操作

20、19 【正确答案】 B 【试题解析】 本题考查的是输入输出函数的使用, gets和 getchar函数用于从标准输入设备终端读入字符串和字符,并非从磁盘文件读入, fputs用于把字符串输出到文件, fwrite用于以二进制形式输出数据到文件。 【知识模块】 结构体、共用体、位运算及文件操作 20 【正确答案 】 A 【试题解析】 本题主考查函数 fwrite的使用。函数 fwrite的调用形式为: int fwrite(char*pt, unsigned size, unsigned n, FILE*fp);其功能是把 pt所指向的n*size个字节输出到 fp所指文件中。在本题中 “fwr

21、ite(s2, 7, 1, pf); ”的功能是把字符串 “Beijing”输入到文件 abc dat中,然后调用 rewind(pf),把文件位置指针回到文件开头,再调用 “fwrite(s1, 5, 1, pf)”把字符串 “Chma”写入到文件abc dat中,所以此时文件 abc dat的内容为 Chinang。 【知识模块】 结构体、共用体、位运算及文件操作 21 【正确答案】 B 【试题解析】 用文件函数 fopen打开 d2 dat文件并把数组 a6中的元素分两行写入到 d2 dat文件中,关闭文件。然后再次打开文件 d2 dat,用 fscanf()函数读取文件 d2 dat中

22、的数据,因为每行没有分隔符,所以每一行会被认为是一个完整的数。并存入到变量 k和 n中,输出变量 k和 n的值为 123 456。 【知识模块】 结构体、共用体、位运算及文件 操作 22 【正确答案】 B 【试题解析】 首先用函数 fopen()以 “wb”的方式开打文件 “d2 dat”,然后调用两次 fwrite函数将数组 a的 5个元素,依次输出到文件 fp中,共 10个字节,关闭文件。再次打开文件,使用文件指针指向文件的开头,调用 fread函数从文件 fp中读取这 10个字节的数据到数组 a中,此时数组 a的内容就变为 1, 2, 3, 0, 0,1, 2, 3, 0, 0,最后的输

23、出结果为 “1, 2, 3, 0, 0, 1, 2, 3, 0, 0”。 【知识模块】 结构体、共用体、位运算及文件操作 23 【正确答案】 D 【试题解析】 ANSI C提供的 feof函数的功能是判断 fp所指的文件的位置是否已达到文件尾,如果达到文件尾,则 feof函数的值为 1,否则为 0,表示文件尚未结束。 【知识模块】 结构体、共用体、位运算及文件操作 24 【正确答案】 B 【试题解析】 在程序中首先把字符串 abc写入到文件 myfile dat中,然后再把整数 28追加到字符串 abc的后面,最后把文件 myfile dat的内容读入到字符串str中,并把其内容输出。 【知识

24、模块】 结构体、共用体、位运算及 文件操作 25 【正确答案】 D 【试题解析】 fputc()是以字符 (字节 )为单位的读写函数。每次可从文件读出或向文件写入一个字符。使用格式为 “fpute(eh, fp); ”。 其中 ch是待输出的某个字符,它可以是一个字符常量,也可以是一个字符变量; fp是文件指针。 fputc(ch, fp)的功能是将字符 ch写到文件指针 fp所指的文件中。如果输出成功, fputc函数返回所输出的字符:如果输出失败,则返回一个EOF值。 EOF是在 stdio h库函数文件中定义的符号常量,其值等于 -1。 【 知识模块】 结构体、共用体、位运算及文件操作

25、26 【正确答案】 C 【试题解析】 feof函数用来判断文件是否结束。如果遇到文件结束,函数 feof(fp)的值为 1,否则为 0。题目横线用于判断文件不结束,读出字符。文件不结束 feof值为 0,若执行循环则应用表达式 !feof(fp)。 【知识模块】 结构体、共用体、位运算及文件操作 27 【正确答案】 C 【试题解析】 EOF是在 stdio h库函数文件中定义的符号常量,其值等于 -1。EOF用作文件结束标志,在二进制或者文本文件内部有 一个位置指针,用以指示文件内部的当前读写位置。使用 fgetc函数,每读写一次,该指针均向后移动, 【知识模块】 结构体、共用体、位运算及文件操作 28 【正确答案】 A 【试题解析】 feof用来判断文件是否结束。如果遇到文件结束,函数 feof(fp)的值为 1,否则为 0。 【知识模块】 结构体、共用体、位运算及文件操作

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