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

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

1、国家二级 C语言(结构体、共用体、位运算及文件操作)机试模拟试卷 12及答案与解析 一、选择题 1 有以下程序 #include stdio.h main() char a=4; printf(“%dn“, a=a 1); ( A) 8 ( B) 16 ( C) 40 ( D) 4 2 有以下程序 #include stdio.h main() int a=5,b=1,t; t=(a 2)|b;printf(“%dn“,t); ( A) 11 ( B) 6 ( C) 21 ( D) 1 3 若变量已正确定义,则以下语句的输出结果是 s=32; s=32; printf(“%d“,s); ( A

2、) -1 ( B) 1 ( C) 32 ( D) 0 4 若有以下程序 main() int c; c= 105; printf(“%dn“, c); 则程序的输出结果是 ( A) 15 ( B) 10000 ( C) 5 ( D) 105 5 若有以下程序 main() int c; c = 13|5; printf(“%dn“, c); 则程序的输出结果是 ( A) 15 ( B) 18 ( C) 13 ( D) 5 6 有以下程序 main() int i=0; i = i; printf(“%dn“,i); 程序运行后的输出结果是 ( A) 0 ( B) 1 ( C) 8 ( D) -

3、1 7 有以下程序 main() int i=1; i = ii; printf(“%dn“, i ); 程序运行后的输出结果是 ( A) -1 ( B) 0 ( C) 1 ( D) 7 8 下面关于位运算符的叙述,正确的是 ( A) #表示 “按位异或 ”的运 算 ( B) |表示 “按位或 ”的运算 ( C) 表示 “按位异或 ”的运算 ( D) 后,以下针对文本文件file操作叙述的选项中正确的是 ( A)写操作结束后可以从头开始读 ( B)可以在原有内容后追加写 ( C)可以随意读和写 ( D)只能写不能读 13 有以下程序 #include stdio.h main() FILE *

4、f; f=fopen(“filea.txt“,“w“); fprintf(f,“abc“); fclose(f); 若文本文件 filea.txt中原有内容为: hello,则运行以上程序后,文件 filea.txt中的内容为 ( A) abclo ( B) abc ( C) helloabc ( D) abchello 14 有以下程序 #include stdio.h main() FILE *fp;int i,a6=1,2,3,4,5,6; fp=fopen(“d2.dat“,“w+“); for(i=0;i 6;i+) fprintf(fp,“%dn“,ai); rewind(fp);

5、 for(i=0;i 6;i+) fscanf(fp,“%d“, fclose(fp); for(i=0;i 6;i+) printf(“%d“,ai); ( A) 1,2,3,4,5,6 ( B) 6,5,4,3,2,1, ( C) 4,5,6,1,2,3, ( D) 1,2,3,3,2,1, 15 读取二进制文件的函数调用形式为: fread(buffer,size,count,fp); 其中 buffer代表的是 ( A)一个整型变量,代表待读取的数据的字节数 ( B)一个内存块的首地址,代表读入数据存放的地址 ( C)一个文件指针,指向待读取的文件 ( D)一个内存块的字节数 16 有

6、下列程序: #include stdio.h main() FILE *fp; int a10=1,2,3,i,n; fp=fopen(“d1.dat“,“w“); for(i=0;i 3;i+) fprintf(fp,“%d“,ai); fprintf(fp,“n“); fclose(fp); fp=open(“d1.dat“,“r“); fscanf(fp,“%d“, fclose(fp); printf(“%dn“,n); 程序的运行结果是 ( A) 12300 ( B) 123 ( C) 1 ( D) 321 17 以下叙述中错误的是 ( A) gets函数用于从终端读入字符串 ( B

7、) getchar函数用于从磁盘文件读入字符 ( C) fputs函数用于把字符串输出到文件 ( D) fwrite函数用于以二进制形式输出数据到文件 18 有以下程序 #include stdio.h main() FILE *pf; char *s1=“China“,*s2=“Beijing“; pf=fopen(“abc.dat“,“wb+“); fwrite(s2,7,l,pf); rewind(pf); /*文件位置指针回到文件开头 */ fwrite(s1,5,1,pf); fclose(pf); 以上程序执行后 abc.dat文件的内容是 ( A) Chinang ( B) Ch

8、ina ( C) ChinaBeijing ( D) BeijingChina 19 有下列程序: #include stdio.h main( ) FILE *fp;int k,n,a6=1,2,3,4,5,6; fp=fopen(“d2.dat“,“w“); fprintf(fp,“%d%d%dn“,a0,a1,a2); fprintf(fp,“%d%d%dn“,a3,a4,a5); fclose(fp); fp=fopen(“d2.dat“,“r“); fscanf(fp,“%d%d“,printf(“%d%dn“,k,n); fclose(fp); 程序运行后的输出结果是 ( A) 1

9、 4 ( B) 123 456 ( C) 123 4 ( D) 1 2 20 有下列程序: #include stdio.h 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 10;i+ +) printf(“%d“,ai ); 程序的

10、运行结果是 ( 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) 的返回值为 ( A) 0 ( B) 0 ( C) NULL ( D)非 0值 22 有以下程序 #include stdio.h main() FILE *fp;char str10; fp=fopen(“myfile.dat“,“w“); fputs(“abc“,fp); fclo

11、se(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) abc ( D)因类型不一致而出错 23 以下程序依次把从终端输入的字符存放到 f文件中,用 #作为结束输入的标志 , 则在横线处应填入的选项是 #include stdio.h main() FILE *fp; char ch; fp=fopen( “fname“, “w“ ); while( (

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

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

14、算及文件操作)机试模拟试卷 12答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 本题主要考查按位右移运算。 a=4的二进制为 00000100, a 1后为 00001000,其值为十进制数值 8。 【知识模块】 结构体、共用体、位运算及文件操作 2 【正确答案】 C 【试题解析】 本题考查位操作运算符。 是左移运算符,左移一位相当于乘 2, |是按位或运算符。 5左移两位相当于乘 4,得到 20, 20的二进制数是 00010100,和 00000001进行按位或操作得到00010101,即十进制的 21。 【知识模块】 结构体、共用体、位运算及文件操作 3 【正确答案】 D 【

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

16、案】 C 【试题解析】 按位或( |)的运算规则是:参加运算的两个运算数中,只要两个相应的二进制位中一个为 1,则该位的运算结果即为 1;只有当两个相应位的数都为 0时,该位的运算结果才为 0。 13的二进制位 1101,5的二进制位 0101,或运算的结果为 1101,因此值为 13。 【知识模块】 结构体、共用体、位运算及文件操作 6 【正确答案】 D 【试题解析】 运算符( )是位运算符中唯一的一个单目运算符,运算对象应置于运算符的右边,其运算功能是把运算对象的内容按位取反(使每一位上的 0变1, 1变 0)。 i的初值为 0,二进制位 00000000,因此取反后结果为 1111111

17、1,最高位为符号位,为 -1的补码形式,因此输出结果为 -1. 【知识模块】 结构体、共用体、位运算及文件操作 7 【正确答案】 B 【试题解析】 按位异或( )的运算规则是:参与运算的 两个运算数中相对应的二进制位上,若数相同,则该位的结果为 0;若数不同,该位的结果为 1。本题中表达式 ii的值必为 0,因为 i的各个位置的二进制值相同。 【知识模块】 结构体、共用体、位运算及文件操作 8 【正确答案】 D 【试题解析】 C语言提供了 6种位运算符,各种位运算符的含义见下表:各种位运算符及其含义 【知识模块】 结构体、共用体、位运算及文件操作 9 【正确答案】 D 【试题解析】 在 C语言

18、中,有两种对文件的存取方式;顺序存取和直接存取;如果以 “a”的方式对一个已打开的文 件进行写操作后,则原有文件中内容将保存,新的数据写在原有内容之后。如果以 “a+”的方式为读和写而打开一个文件,则既可以对文件进行读,也可以对文件进行写,而且在读和写操作之间不必关闭文件,可以从头开始读。当对文件的读(写)操作完成之后,必须将它关闭。 【知识模块】 结构体、共用体、位运算及文件操作 10 【正确答案】 C 【试题解析】 在 C语言中,对输入、输出的数据都按 “数据流 ”的形式进行处理。数据可以按文本形式或二进制形式存放在介质上,因此文件可以按数据的存放形式分为文本文件和二进制文件。 【知识模块

19、】 结构体、共用体、位运算及文件操作 11 【正确答案】 C 【试题解析】 文件指针实际上是指向一个结构体类型的指针,这个结构体中包含如缓冲区的地址、在缓冲区中当前存取的字符的位置、对文件是 “读 ”或 “写 ”、是否出错、是否已经遇到文件结束标志等信息。 一般称文件指针结构体类型名为 FILE,可以用此类型名来定义文件指针。 【格式】 FILE *指针变量名 【说明】 FILE是一个存储文件信息的结构体类型的变量。 注意不要和文件位置指针混淆,在文件内部有一个位置指针,用以指示文件内部的当前读 写位置。使用 fgetc函数,每读写一次,该指针均向后移动,它不需在程序中定义说明,而是由系统自动

20、设置 【知识模块】 结构体、共用体、位运算及文件操作 12 【正确答案】 C 【试题解析】 在题目中函数 fopen以 “只写 ”方式打开文件 file。 【知识模块】 结构体、共用体、位运算及文件操作 13 【正确答案】 B 【试题解析】 本题考查文件打开方式。格式:文件指针名 =fopen(文件名,使用文件方式 ) 需要注意的是:用 “w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定 的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。 【知识模块】 结构体、共用体、位运算及文件操作 14 【正确答案】 B 【知识模块】 结构体、共用体、位运算及文件操作

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

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

23、到文件 abc.dat中,然后调用 rewind(pf),把文件位置指针回到文件开头,再调用 fwrite(s1,5,1,pf)把字符串 “China”写入到文件 abc.dat中,所以此时文件 abc. 【知识模块】 结构体、共用体、位运算及文件操作 19 【正确答案】 B 【试题解析】 用文件函数 fopen打开 d2.dat文件并把数组 a6中的元素分两行写入到 d2.dat文件中,关闭文件。然后再次打开文件 d2.dat,用 fscanf()函数读取文件 d2.dat中的数据,因为每行没有分隔符,所以每一行会被认为是一个完整的数,并存入到变量 k和 n中,输出变量 k和 n的值为 12

24、3 456。 【知识模块】 结构体、共用体、位运算及文件操作 20 【正确答案】 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,3,0,0,1,2,3,0,0”。 【知识模块】 结构体、共用体、位运算及文件操作 21 【正确答案】 D 【试题解析

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

26、写入一个字符。使用格式为 fputc(ch,fp); 其中 ch是待输出的某个字符,它可以是一个字符常量,也可以是一个字符变量;fp是文件指针。 fputc(ch,fp)的功能是将字符 ch写到文件指针 fp所指的文件中。如果输出成功, fputc函数返回所输出的字符;如果输出失败,则返回一个 EOF值。 EOF是在 stdio.h库函数文件中定义的 符号常量,其值等于 -1。 【知识模块】 结构体、共用体、位运算及文件操作 24 【正确答案】 C 【试题解析】 feof函数用来判断文件是否结束。如果遇到文件结束,函数 feof( fp)的值为 1,否则为 0。题目横线用于判断文件不结束,读出

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

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

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

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