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

上传人:周芸 文档编号:498775 上传时间:2018-11-30 格式:DOC 页数:19 大小:56.50KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷11及答案与解析.doc_第1页
第1页 / 共19页
[计算机类试卷]国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷11及答案与解析.doc_第2页
第2页 / 共19页
[计算机类试卷]国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷11及答案与解析.doc_第3页
第3页 / 共19页
[计算机类试卷]国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷11及答案与解析.doc_第4页
第4页 / 共19页
[计算机类试卷]国家二级C语言机试(结构体、共用体、位运算及文件操作)模拟试卷11及答案与解析.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、国家二级 C语言机试(结构体、共用体、位运算及文件操作)模拟试卷 11及答案与解析 一、选择题 1 若变量已正确定义,则以下语句的输出结果是 s=32; s=32; printf(“ d“, s); ( A) -1 ( B) 1 ( C) 32 ( D) 0 2 若有以下程序 main()int c; c=105: printf(“ d n“, c); 则程序的输出结果是 ( A) 15 ( B) 10000 ( C) 5 ( D) 105 3 若有以下程序 main()int c; C=1315; printf(“ d n“, c); 则程序的输出结果是 ( A) 15 ( B) 18 (

2、C) 13 ( D) 5 4 有以下程序 main()int i=0; i= i: printf(“ d n“, i); 程序运行后的输出结果是 ( A) 0 ( B) 1 ( C) 8 ( D) -1 5 有以下程序 main()int i=1; i=ii; printf(“ d n“, i); 程序运行后的输出结果是 ( A) -1 ( B) 0 ( C) 1 ( D) 7 6 下面关于位运算符的叙述,正确的是 ( A) 表示 “按位异或 ”的运算 ( B) 表示 “按位或 ”的运算 ( C)表示 “按位异或 ”的运算 ( D) &表示 “按位与 ”的运算 7 以下叙述中正确的是 ( A)

3、打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖 ( B)在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1个数据 ( C) C语言中的文件是流式文件,因此只能顺序存取数据 ( D)当对文件的读 (写 )操作完成之后,必须将它关闭,否则可能导致数据丢失 8 下列关于 C语言文件的叙述中正确的是 ( A)文件由结构序列组成,可以构成二进制文件或文本文件 ( B)文件由一系列数据依次排列组成,只能构成二进制文件 ( C)文件由数据序列组成,可以构成二进制文件或文本文件 ( D)文件由字符序列组成,其类型只能是文本文件 9 下面选项中关于 “文件指针

4、”概念的叙述正确的是 ( A)文件指针就是文件位置指针,表示当前读写数据的位置 ( B)文件指针指向文件在计算机中的存储位置 ( C)文件指针是程序中用 FILE定义的指针变量 ( D)把文件指针传给 fscanf函数,就可以向文本文件中写入任意的字符 10 设 fp已定义,执行语句 fp=fopen(“file”, “w”);后,以下针对文本文件 file操作叙述的选项中正确的是 ( A)写操作结束后可以从头开始读 ( B)只能写不能读 ( C)可以在原有内容后追加写 ( D)可以随意读和写 11 以下函数不能用于向文件中写入数据的是 ( A) fwrite ( B) fputc ( C)

5、ftell ( D) fprintf 12 设文件指针 fp已定义,执行语句 fp=fopen(“file“, “w“);后,以下针对文本文件 file操作叙述的选项中正确的是 ( A)写操作结束后可以从头开始读 ( B)可以在原有内容后追加写 ( C)可以随意读和写 ( D)只能写不能读 13 有以下程序 #include main()FILE*f; f=fopen(“filea txt“, “w“); fprintf(f, “abc“); fclose(f); 若文本文件 filea txt中原有内容为: hello,则运行以上程序后,文件 filea txt中的内容为 ( A) abcl

6、o ( B) abc ( C) helloabc ( D) abchello 14 有以下程序 #include main() FILE*fp; int i, a6=1, 2, 3, 4, 5, 6; fp=fopen(“d2 dat“, “w+“); for(i=0; i main() FILE*fp; int a10=1, 2, 3, i, n; fp=fopen(“d1 dat“, “W“); for(i=0; i main() FILE*pf; char*s1=“China“, *s2=“Beijing“; pf=fopen(“abc dat“, “wb+“); fwrite(s2,

7、7, 1, pD; rewind(pf); *文件位置指针回到文件开头 * fwrite(s1, 5, 1, pf); fclose(pf); 以上程序执行后 abc dat文件的内容是 ( A) Chinang ( B) China ( C) ChinaBeijing ( D) BeijingChina 20 有下列程序: #include main() FILE*fp; int k, n, a6=1, 2, 3, 4, 5, 6; fp=fopen(“d2 dat“, “w“); fprintf(fp, “ d d d n“, a0, a1, a2); fprintf(fp, “ d d

8、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) 1 23 4 ( D) 1 2 21 有下列程序: #include main() FILE*fp; int a10=1, 2, 3, 0, 0), i; fp=fopen(“d2 dat“, “wb“); fwtite(a, sizeof(int), 5, fp); fwrite(

9、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; f1)=fopen(“myfile dat“, “w“); fputs(“abc“, fp); fclose(fp); fp=fopen(“myfile dat“, “a+“); fprintf(fp, “ d“, 28); rewind(fp); fscanf(fp, “ s“, str); puts(str

10、); fclose(fp); 程序运行后的输出结果是 ( A) 28c ( B) abc28 ( C) abc ( D)因类型不一致而出错 24 以下程序依次把从终端输入的字符存放到 f文件中,用 #作为结束输入的标志,则在横线处应填入的选项是 #include main()FILE*fp; char ch; fp=fopen(“fname“, “w“); while(ch=getchar()!=#) fputc(_); fclose(fp); ( A) fp, ch ( B) ch ( C) ch, “fname“ ( D) ch, fp 25 以下程序用来统计文件中字符的个数 (函数 fe

11、of用以检查文件是否结束,结束时返回非零 ) #include main()FILE*fp; long num=0; fp=fopen(“fname dat“, “r“); while(_) fgetc(fp); num+; printf(“num= d n, num); fclose(fp); 下面选项中,填入横线处不能得到正确结果的是 ( A) feofffp) ( B) feof(fp)=NULL ( C) !feofffp) ( D) feof(fp)=0 26 下面关于 “EOF”的叙述,正确的是 ( A) EOF的值等于 0 ( B)文本文件和二进制文件都可以用 EOF作为文件结束

12、标志 ( C) EOF是在库函数文件中定义的符号常量 ( D)对于文本文件, fgetc函数读入最后一个字符时,返回值是 EOF 27 若 fp已定义为指向某文件的指针,且没有读到该文件的末尾,则 C语言函数feof(fp)的函数返回值是 ( A) 0 ( B)非 0 ( C) -1 ( D) EOF 国家二级 C语言机试(结构体、共用体、位运算及文件操作)模拟试卷 11答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 “按位异或 ”运算的规则是:参与 运算的两个运算数中相对应的二制位上,若数相同,则该位的结果为 0;若数不同,则该位的结果为 1。因为语句“s=32; s=32; ”

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

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

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

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

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

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

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

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

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

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

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

24、分隔符,所以每一行会被认为是一个完整的数,并存入到变量 k和 n中,输出变量 k和 n的值为 123 456。 【知识模块】 结构体、共用体、位运算及文件操作 21 【正确答案】 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,最后的输出结果为 “1, 2

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

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

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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