【计算机类职业资格】二级C语言-编译预处理和动态存储分配、结构体和共用体、文件(二)及答案解析.doc
《【计算机类职业资格】二级C语言-编译预处理和动态存储分配、结构体和共用体、文件(二)及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言-编译预处理和动态存储分配、结构体和共用体、文件(二)及答案解析.doc(53页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言-编译预处理和动态存储分配、结构体和共用体、文件(二)及答案解析(总分:88.00,做题时间:90 分钟)一、B选择题/B(总题数:25,分数:25.00)1.以下对 C 语言中联合类型数据的正确叙述是_。 A.一旦定义了一个联合变量后,即可引用该变量或该变量中的任意成员 B.一个联合变量中可以同时存放其所有成员 C.一个联合变量中不能同时存放其所有成员 D.联合类型数据可以出现在结构体类型定义中,但结构体类型数据不能出现在联合类型定义中(分数:1.00)A.B.C.D.2.若 fp 是指向某文件的指针,且已读到文件的末尾,则表达式 feof(fp)的返回值是_。 A.EOF B
2、.-1 C.非零值 D.NULL(分数:1.00)A.B.C.D.3.下述关于 C 语言文件操作的结论中,_是正确的。 A.对文件操作必须先关闭文件 B.对文件操作必须先打开文件 C.对文件操作顺序无要求 D.对文件操作前必须先测试文件是否存在,然后再打开文件(分数:1.00)A.B.C.D.4.如果需要打开一个已经存在的非空文件“FILE”进行修改,正确的打开语句是_。 A.fp=fopen(“FILE“, “r“); B.fp=fopen(“FILE“, “ab+“); C.fp=fopen(“FILE“, “w+“); D.fp=fopen(“FILE“, “r+“);(分数:1.00)
3、A.B.C.D.5.以下程序用于把从终端输入的字符输出到名为 abc.txt 的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。#include main() FILE *fout; char ch;fout=fopen(abc.txt, w);ch=fgetc(stdin)while(ch!=#) fputc(ch, fout);ch=fgetc(stdin);fclose(fout)出错的原因是_。 A.函数 fopen()调用形式错误 B.输入文件没有关闭 C.函数 fgetc()调用形式错误 D.文件指针 stdin 没有定义(分数:1.00)A.B.C.D.6.有以下
4、程序:#include stdio.hmain () FILE *pf;char *s1=“China“, *s2=“Beijing“;pf=fopen(“abc.dat“, “wb+“);fwrite(s2, 7, 1, pf);fwrite(s1, 3, 1, pf);fclose (pf);以上程序运行后,abc.dat 文件的内容是U /U。 A.China B.Beijing C.BeijingChi D.BeijingChina(分数:1.00)A.B.C.D.7.下列程序的输出结果是U /U。#include stdio.hmain() FILE *fp; int i, k=0,
5、 n=0;fp=fopen( “d1.dat“, “w“);for(i=1; i4; i+) fprintf(fp, “% d“, i);fclose(fp);fp=fopen(“d1.dat“, “r“);fscanf(fp, “% d% d“, printf(“% d% d/n“, k, n);fclose(fp); A.12 B.1230 C.123 D.00(分数:1.00)A.B.C.D.8.有以下程序:#include stdio.hmain() FILE *fp; int i=20, j=50, k, n;fp=fopen(“d1.dat“, “w“);fprintf(fp, “
6、% d/n“, i);fprintf(fp, “% d/n“, j);fclose(fp);fp=fopen(“d1.dat“, “r“);fscanf(fp, “% d% d“, printf(“% d % d/n“, k, n);fclose(fp);程序运行后的输出结果是U /U。 A.20 30 B.20 50 C.30 50 D.30 20(分数:1.00)A.B.C.D.9.标准函数 fgets(s,n,f)的功能是_。 A.从 f 所指的文件中读取长度为 n 的字符串存入指针 s 所指的内存 B.从 f 所指的文件中读取长度不超过 n-1 的字符串存入指针 s 所指的内存 C.从
7、 f 所指的文件中读取 n 个字符串存入指针 s 所指的内存 D.从 f 所指的文件中读取长度为 n-1 的字符串存入指针 s 所指的内存(分数:1.00)A.B.C.D.10.C 语言中系统的标准输出文件是指_。 A.显示器 B.键盘 C.软盘 D.硬盘(分数:1.00)A.B.C.D.11.若 fp 是指向某文件的指针,且未读到文件的末尾,则表达式 feof(fp)的返回值是_。 A.EOF B.1 C.0 D.非零值(分数:1.00)A.B.C.D.12.已知一个文件中存放了若干学生的档案记录,其数据结构如下:struct st char num10;int age;float scor
8、e5;定义一个数组:struct st a10;假定文件已正确打开,不能正确地从文件中读入 10 名学生数据到数组中的是_。 A.fread(a, sizeof(struct st), 10, fp); B.for(i=0; i10; i+) fread(ai, sizeof(struct st), 1, fp); C.for(i=0; i10; i+) fread(a+i, sizeof(struct st), 1, fp); D.for(i=0; i10; i+=2) fread(a+i, sizeof(struct st), 2, fp);(分数:1.00)A.B.C.D.13.如果需要
9、打开一个已经存在的非空文件“FILE”并向文件尾添加数据,正确的打开语句是_。 A.fp=fopen(“FILE“, “r“); B.fp=fopen(“FILE“, “r+“); C.fp=fopen(“FILE“, “w+“); D.fp=fopen(“FILE“, “a+“);(分数:1.00)A.B.C.D.14.若以下程序所生成的可执行文件名为 filel.exe,当输入以下命令执行该程序时:FILEL CHINA BEIJING SHANGHAI程序的输出结果是_。main(int argc, char *argv) while(argc-0)+argv; printf(“% s“
10、, *argv); A.CHINA BEIJING SHANGHAI B. FILEL CHINA BEIJING C.C B S D. F C B(分数:1.00)A.B.C.D.15.在高级语言中,对文件操作的一般步骤是_。 A.打开文件-操作文件-关闭文件 B.操作文件-修改文件-关闭文件 C.读写文件-打开文件-关闭文件 D.读文件-写文件-关闭文件(分数:1.00)A.B.C.D.16.C 语言可以处理的文件类型是_。 A.文本文件和数据文件 B.文本文件和二进制文件 C.数据文件和二进制文件 D.以上答案都不完全(分数:1.00)A.B.C.D.17.以下叙述中,错误的是_。 A.
11、二进制文件打开后可以先读文件的末尾,而顺序文件不可以 B.在程序结束时,应当用函数 fclose()关闭已打开的文件 C.在利用函数 fread()从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据 D.不可以用 FILE 定义指向二进制文件的文件指针(分数:1.00)A.B.C.D.18.函数调用语句 fseek(fp,10L,2);的含义是_。 A.将文件位置指针移动到距离文件头 10 个字节处 B.将文件位置指针从当前位置向文件尾方向移动 10 个字节 C.将文件位置指针从当前位置向文件头方向移动 10 个字节 D.将文件位置指针从文件末尾处向文件头方向移动 10 个字节(分数
12、:1.00)A.B.C.D.19.若要用 fopen()函数打开一个新的二进制文件,该文件要既能读也能写,则打开方式是_。 A.“ab+“ B.“wb+“ C.“rb+“ D.“ab“(分数:1.00)A.B.C.D.20.有以下程序(提示:程序中“fseek(fp, *-2L *sizeof(int), SEEK_END);”语句的作用是使位置指针从文件末尾向前移#include stdio.hmain() FILE *fp; int i, a4=1,2,3,4), b;fp=fopen(“data.dat“, “wb“);for(i=0; i4; i+)fwrite(fclose(fp);
13、fp=fopen(“data.dat“, “rb“);fseek(fp, -2L *sizeof(int), SEEK_END.;fread( /*从文件中读取 sizeof(int)字节的数据到变量 b* /fclose(fp);printf(“% d/n“ b)执行后输出的结果是_ A.2 B.1 C.4 D.3(分数:1.00)A.B.C.D.21.若要以“a+“方式打开一个已存在的文件,则以下叙述正确的是_。 A.文件打开时,原有文件内容不被删除,位置指针移动到文件末尾,可做添加和读操作 B.文件打开时,原有文件内容不被删除,位置指针移动到文件开头,可做重写和读操作 C.文件打开时,原
14、有文件内容被删除,只可做写操作 D.以上各种说法都不正确(分数:1.00)A.B.C.D.22.fscanf()函数的正确调用形式是_。 A.fscanf(文件指针,格式字符串,输出列表); B.fscanf(格式字符串,输出列表,文件指针); C.fscanf(格式字符串,文件指针,输出列表); D.fscanf(文件指针,格式字符串,输入列表);(分数:1.00)A.B.C.D.23.函数 ftell(fp)的作用是_。 A.得到流式文件中的当前位置 B.移动流式文件的位置指针 C.初始化流式文件的位置指针 D.以上答案均正确(分数:1.00)A.B.C.D.24.fgetc()函数的作用
15、是从指定文件读入一个字符,该文件的打开方式必须是_。 A.只写 B.追加 C.读或读写 D.选项 B 和选项 C 都正确(分数:1.00)A.B.C.D.25.在执行 fopen()函数时,ferror()函数的初值是_。 A.TURE B.-1 C.1 D.0(分数:1.00)A.B.C.D.二、B操作题/B(总题数:18,分数:63.00)26.下列给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数 fun()的功能是:把形参 x 的值放入一个新结点并插入链表中,使插入后各结点数据域中的数据仍保持递增有序。请在标号处填入正确的内容,使程序得出正确的
16、结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构。试题程序#include stdio.h#include stdlib.h#define N 8typedef struct list int data;struct list * next; SLIST;void fun(SLIST * h, int x) SLIST *p, *q, *s;s=(SLIST *)malloc(sizeof(SLIST);s-data=_;q=h;p=h-next;while(p!=NULL p=p-next;s-next=p;q-next=_;SLIST * creatlist(int *
17、 a) SLIST *h, *p, *q; int i;h=p=(SLIST *) malloc(sizeof(SLIST);for(i=0; iN; i+) q=(SLIST *) malloc sizeof(SLIST);q-data=ai; p-next=q; p=q;p-next=NULL;return h;void outlist (SLIST * h) SLIST *p;p=h-next;if(p=NULL)printf(“/nThe list is NULL! /n“);else printf(“/nHead“);do printf(“-% d“, p-data);p=p-nex
18、t; while(p!=NULL);printf(“-End/n“);main() SLIST *head; int x;int aN=11,12,15,18,19,22,25,29;head=creatlist (a);printf(“/nThe list before inserting:/n“);outlist(head);printf(“/nEnter a number:“);scanf(“% d“, fun(head, x);printf(“/nThe list after inserting:/n“);outlist(head);(分数:4.00)填空项 1:_27.下列给定程序中
19、,函数 fun()的功能是:将形参 s 所指字符串中的所有字母字符按顺序前移,其他字符按顺序后移,处理后将新字符串的首地址作为函数值返回。例如,若 s 所指字符串为 asd123fgh543df,处理后新字符串为 asdfghdf123543。请在标号处填入正确的内容,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构。试题程序#include stdio.h#include stdlib.h#include string.hchar *fun(char * s) int i, j, k, n; char *p, *t;n=strlen(s)+1;t=(cha
20、r *)malloc (n*sizeof(char);p=(char *)malloc (n*sizeof(char);j=0; k=0;for(i=0; in; i+)( if(si=a) j+;else pk=si; k+; for(i=0; i_; i+)tj+i=pi;tj+k=_;return t;main() char s80;printf(“Please input:“); scanf(“% s“,s);printf(“/nThe result is:% s/n“, fun(s);(分数:4.00)填空项 1:_28.某学生的记录由学号、8 门课程成绩和平均分组成,学号和 8 门
21、课程的成绩已在主函数中给出,请编写函数 fun(),其功能是:求出该学生的平均分,并放入记录的 ave 成员中。例如,学生的成绩是 85.5、76、69.5、85、91、72、64.5、87.5,则他的平均分应为 78.875。注意:部分源程序给出如下。请勿改动主函数 main()和其他函数中的任何内容,仅在函数 fun()的花括号中填入你编写的若干语句。试题程序#include stdio.h#define N 8typedef struct char num10;double sN;double ave; STREC;void fun(STREC *a)void main() STREC
22、s=“GA005“, 85.5,76,69.5,85,91,72,64.5,87.5;int i;fun(printf(“The % ss student data:/n“, s.num);for(i=0; iN; i+)printf(“% 4.1f/n“, s.si);printf(“/nave=% 7.3f/n“, s.ave);_29.下列给定程序中,函数 fun()的功能是:计算一个带头结点的单向链表中各节点的数据域中数值之和,结果作为函数值返回。请在标号处填入正确的内容,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构。试题程序#include s
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 编译 预处理 动态 存储 分配 结构 共用 文件 答案 解析 DOC

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