[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷23及答案与解析.doc

上传人:花仙子 文档编号:497951 上传时间:2018-11-30 格式:DOC 页数:20 大小:186.50KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷23及答案与解析.doc_第1页
第1页 / 共20页
[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷23及答案与解析.doc_第2页
第2页 / 共20页
[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷23及答案与解析.doc_第3页
第3页 / 共20页
[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷23及答案与解析.doc_第4页
第4页 / 共20页
[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷23及答案与解析.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、国家二级 C语言机试( C语言程序设计)模拟试卷 23及答案与解析 一、选择题 1 若变量已正确定义,则以下语句的输出结果是 s 32; S 32; printf(“ d“, s); ( A) 1 ( B) 1 ( C) 32 ( D) 0 2 若有以下程序 main() int c; c 10 5; printf(“ d n“, c); 则程序的输出结果是 ( A) 15 ( B) 10000 ( C) 5 ( D) 105 3 若有以下程序 main() int c; c 13 5; printf(“ d n“, c); 则程序的输出结果是 ( A) 15 ( B) 18 ( C) 13

2、( 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 i i; 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) ftell (

5、 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) abclo ( B)

6、 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 6; i )fprintf(fp,“ d n“,ai); rewind(fp); for(i 0; i 6; i )fscanf(fp,“ d“,&a5-i); fclose(fp); for(i 0; i 6; i )printf(“ d“ai); ( A) 1, 2, 3, 4, 5, 6 ( B) 6, 5, 4, 3, 2,

7、 1, ( C) 4, 5, 6, 1, 2, 3, ( D) 1, 2, 3, 3, 2, 1, 15 执行以下程序后, test txt文件的内容是 (若文件能正常打开 ) #include 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, OL, SEEK_SET

8、); *文件位置指针移到文件开头 * fwrite(s2, 5, 1, fb); fclose(fb); ( A) Basican ( B) BasicFortran ( C) Basic ( D) FortranBasic 16 读取二进制文件的函数调用形式为: fread(buffer, size, count, fp);其中buffer代 表的是 ( A)一个整型变量,代表待读取的数据的字节数 ( B)一个内存块的首地址,代表读入数据存放的地址 ( C)一个文件指针,指向待读取的文件 ( D)一个内存块的字节数 17 有下列程序: #include main() FILE *fp; in

9、t 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“, n); fclose(fp); printf(“ d n“, n); 程序的运行结果是 ( A) 12300 ( B) 123 ( C) 1 ( D) 321 18 以下叙述中错误的是 ( A) gets函数用于从终端读入字符串 ( B) getchar函数用于从磁盘文件读入字符 ( C) f

10、puts函数用于把字符串输出到文件 ( D) fwrite函数用于以二进制形式输出数据到文件 19 有以下程序 #include 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) Beijing

11、China 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 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 45

12、6 ( C) 123 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(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); 程序的运行结果是 ( A)

13、 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, 22 设 fp为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为 ( A) 0 ( B) 0 ( C) NULL ( D)非 0值 23 有以下程序 #include main() FILE*fp; char str10; fp fopen(“myfile dat“, “W“); fput

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

15、e(ch getchar()! ) fputc(_); fclose(fp); ( A) fp, ch ( B) ch ( C) ch, “fname“ ( D) ch, fp 25 以下程序用来统计文件中字符的个数 (函数 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(fp) (

16、 B) feof(fp)=NULL ( C) !feof(fp) ( D) feof(fp)=0 26 下面关于 “EOF”的叙述,正确的是 ( A) EOF的值等于 0 ( B)文本文件和二进制文件都可以用 EOF作为文件结束标志 ( C) EOF是在库函数文件中定义的符号常量 ( D)对于文本文件, fgetc函数读入最后一个字符时,返回值是 EOF 27 若 fp已定义为指向某文件的指针,且没有读到该文件的末尾,则 C语言函数feof(fp)的函数返回值是 ( A) 0 ( B)非 0 ( C) 1 ( D) EOF 国家二级 C语言机试( C语言程序设计)模拟试卷 23答案与解析 一、

17、选择题 1 【正确答案】 D 【试题解析】 “按位异或 ”运算的规则是:参与运算的两个运算数中相对应的二制位上,若数相同,则该位的结果为 0;若数不同,则该位的结果为 1。因为语句 s 32; s 32;相当于 s与自身做按位异或运算,所以其结果等于 0。 【知识模块】 C语 言程序设计 2 【正确答案】 A 【试题解析】 按位异或 ()的运算规则是:参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为 0;若数不同,该位的结果为 1。整数 10和 5的二进制编码分别为 1010和 0101,异或结果为 1111,其十进制数据位 15。 【知识模块】 C语言程序设计 3 【正确答

18、案】 C 【试题解析】 按位或 (1)的运算规则是:参加运算的两个运算数中,只要两个相应的二进制位中一个为 1,则该位的运算结果即为 1;只有当两个相应位的数都为0时,该位的运算结果才为 0。 13的二进制位 1101, 5的二进制位 0101,或运算的结果为 1101,因此值为 13。 【知识模块】 C语言程序设计 4 【正确答案】 D 【试题解析】 运算符 ( )是位运算符中唯一的一个单目运算符,运算对象应置于运算符的右边,其运算功能是把运算对象的内容按位取反 (使每一位上的 0变 1, 1变 0)。 i的初值为 0,二进制位 00000000,因此取反后结果为 11111111,最高位为

19、符号位,为 1的补码形式,因此输出结果为 1 【知识模块】 C语言程序设计 5 【正确答案】 B 【试题解析】 按位异或 ( )的运算规则是:参与运算的两个运算数中相对应的二进制位上,若数相同,则该位的结果为 0;若数不同,该位的结果为 1。本题中表达式 ii的值必为 0,因为 i的各个位置的二进制值相同。 【知识模块】 C语言程序设计 6 【正确答案】 D 【试题解析】 C语言提供了 6种位运算符,各种位运算符的含义见下表:【知识模块】 C语言程序设计 7 【正确答案】 D 【试题解析】 在 C语言中,有两种对文件的存取方式;顺序存取和直接存取;如果以 “a”的方式对一个已打开的文件进 行写

20、操作后,则原有文件中内容将保存,新的数据写在原有内容之后。如果以 “a ”的方式为读和写而打开一个文件,则既可以对文件进行读,也可以对文件进行写,而且在读和写操作之间不必关闭文件,可以从头开始读。当对文件的读 (写 )操作完成之后,必须将它关闭。 【知识模块】 C语言程序设计 8 【正确答案】 C 【试题解析】 在 C语言中,对输入、输出的数据都按 “数据流 ”的形式进行处理。数据可以按文本形式或二进制形式存放在介质上,因此文件可以按数据的存放形式分为文本文件和二进制文件。 【知识模块】 C语 言程序设计 9 【正确答案】 C 【试题解析】 文件指针实际上是指向一个结构体类型的指针,这个结构体

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

22、文件输入数据。 【知识模块】 C语言程序设计 10 【正确答案】 B 【试题解析】 本题考查文件操作。 fopen的 mode参数有多种类型: r以只读方式打开文件、 r以可读写方式打开文件、 rb以读写方式打开一个二进制文件、 w以只写方式打开文件、 w以读写方式打开文件、 wb读写方式打开二进制文件。 【知识模块 】 C语言程序设计 11 【正确答案】 C 【试题解析】 本题考查文件操作。 ftell函数返回文件指针的当前位置,其他的都写文件函数。 【知识模块】 C语言程序设计 12 【正确答案】 D 【试题解析】 在题目中函数 fopen以 “只写 ”方式打开文件 file。 【知识模块

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

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

25、数据块的指针;对 fread来说,它是内存块的首地址,输入的数据存入此内存块中; 【知识模块】 C语言程序设计 17 【正确答案】 B 【试题解析】 本题考查以读和写的方式打开文件对文件内容操作的不同, fpfopen(“d1.dat“, “w“);以可写的方式为输出建立新文本文件,调用 printf,输出“123”, fp fopen(“d1, dat“, “r“);以只读的方式打开文本文件,不能对文件内容进行操作。 【知识模块】 C语言程序设计 18 【正确答案】 B 【试题解析】 本题考查的是输入 输出函数的使用, gets和 getchar函数用于从标准输入设备终端读入字符串和字符,并

26、非从磁盘文件读入, fputs用于把字符串输出到文件, fwrite用于以二进制形式输出数据到文件。 【知识模块】 C语言程序设计 19 【正确答案】 A 【试题解析】 本题主考查函数 fwrite的使用。函数 fwrite的调用形式为: int fwrite(char *pt, unsigned size, unsigned n, FILE*fp);其功能是把 pt所指向的n*size个字节输出到 fp所指文件中。在本题中 fwrite(s2, 7, 1, pf);的功能是把字符串 “Beijing”输入到文件 abc dat中,然后调用 rewind(pf),把文件位置指针回到文件开头,再

27、调用 fwrite(s1, 5, 1, Pf)把字符串 “China”写入到文件abc dat中,所以此时文件 abc dat的内容为 Chinang。 【知识模块】 C语言程序设计 20 【正确答案】 B 【试题解析】 用文件函数 fopen打开 d2 dat文件并把数组 a6中的元素分两行写入到 d2 dat文件中,关闭文件。然后再次打开文件 d2 dat,用 fscanf()函数读取文件 d2 dat中的数据,因为每行没有分隔符,所以每一行会被认为是一个完整的数,并存入到变量 k和 n中,输出变量 k和 n的值为 123 456。 【知识模块】 C语言程序设计 21 【正确答案】 B 【

28、试题解析】 首先用函数 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”。 【知识模块】 C语言程序设计 22 【正确答案】 D 【试题解析】 ANSI C提供的 feof函数的功能是判断 fp所指的文件的位

29、置是否已达到文件尾,如果达到文件尾,则 feof函数的值为 1,否则为 0,表示文件尚未结束。 【知识模块】 C语言程序设计 23 【正确答案】 B 【试题解析】 在程序中首先把字符串 abc写入到文件 myfile dat中 ,然后再把整数 28追加到字符串 abc的后面,最后把文件 myfile dat的内容读入到字符串str中,并把其内容输出。 【知识模块】 C语言程序设计 24 【正确答案】 D 【试题解析】 fputc()是以字符 (字节 )为单位的读写函数。每次可从文件读出或向文件写入一个字符。使用格式为 fputc(ch, fp);其中 ch是待输出的某个字符,它可以是一个字符常

30、量,也可以是一个字符变量; fp是文件指针。 fputc(ch, fp)的功能是将字符 ch写到文件指针 fp所指的文件中。如果输出成功, fputc函 数返回所输出的字符;如果输出失败,则返回一个 EOF值。 EOF是在 stdio h库函数文件中定义的符号常量,其值等于 -1。 【知识模块】 C语言程序设计 25 【正确答案】 C 【试题解析】 feof函数用来判断文件是否结束。如果遇到文件结束,函数feof(fp)的值为 1,否则为 0。题目横线用于判断文件不结束,读出字符。文件不结束 feof值为 0,若执行循环则应用表达式 !feof(fp)。 【知识模块】 C语言程序设计 26 【正确答案】 C 【试题解析】 EOF是在 stdio h库函数文件中定义的符号常量,其值等于 1。EOF用作文件结束标志,在二进制或者文本文件内部有一个位置指针,用以指示文件内部的当前读写位置。使用 fgetc函数,每读写一次,该指针均向后移动, 【知识模块】 C语言程序设计 27 【正确答案】 A 【试题解析】 feof用来判断文件是否结束。如果遇到文件结束,函数 feof(fp)的值为 1,否则为 0。 【知识模块】 C语言程序设计

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

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

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