【计算机类职业资格】二级C语言-273及答案解析.doc
《【计算机类职业资格】二级C语言-273及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言-273及答案解析.doc(26页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言-273 及答案解析(总分:102.00,做题时间:90 分钟)一、选择题(总题数:45,分数:102.00)1.以下关于 typedef 的叙述错误的是_。(分数:2.00)A.用 typedef 可以增加新类型B.typedef 只是将已存在的类型用一个新的名字来代表C.用 typedef 可以为各种类型说明一个新名,但不能用来为变量说明一个新名D.用 typedef 为类型说明一个新名,通常可以增加程序的可读性2.若有以下语句: typedef struct S int g; char h; T; 以下叙述中正确的是_。(分数:2.00)A.可用 S 定义结构体变量B.可用
2、 T 定义结构体变量C.S 是 struct 类型的变量D.T 是 struct S 类型的变量3.设有以下语句: typedef struct TT char c; int a4; CIN; 则下列叙述中正确的是_。(分数:2.00)A.CIN 是 struct TT 类型的变量B.TT 是 struct 类型的变量C.可以用 TT 定义结构体变量D.可以用 CIN 定义结构体变量4.若有定义: typedef int* T; T a10; 则 a 的定义与下面哪个语句等价_。(分数:2.00)A.int (*a)10;B.int *a10;C.int *a;D.int a10;5.若有定义
3、: typedef char T10; T *a; 上述定义中 a 的类型与下面选项中完全相同的是_。(分数:2.00)A.char a10;B.char(*a)10;C.char *a;D.char *a10;6.以下结构体说明和变量定义中,正确的是_。(分数:5.00)A.typedef struct abc int n; double m; ABC;ABC x,y;B.struct abc int n;double m;struct abc x,yC.struct ABCint n;double m;struct ABC x,y;D.struct abcint n;double m;ab
4、c x,y;7.以下叙述中正确的是_。(分数:2.00)A.使用 typedef 说明新类型名时,其格式是:typedef 新类型名 原类型名;B.在程序中,允许用 typedef 来说明一种新的类型名C.使用 typedef 说明新类型名时,后面不能加分号D.在使用 tyoedef 改变原类型的名称后,只能使用新的类型名8.以下叙述中正确的是_。(分数:2.00)A.使用 typedef 定义新类型名后,新类型名与原类型名实际上是等价的B.结构体类型中的各个成分均不能是数组或指针C.结构体类型的变量,不能在声明结构体类型时一起定义D.元素为结构体类型的数组,只能在声明过结构体类型之后单独进行
5、定义9.有以下程序: main( ) struct STU char name9; char sex; double score2; ; struct STU a=“Zhao“,“m“,85.0, 90.0, b=“Qian“, “f“,95.0, 92.0; b=a; printf(“%s, %c, %2.0f, %2.0f/n“, b.name, b.sex, bscore0, b.score1); 程序的运行结果是_。(分数:2.00)A.Qian,m,85,90B.Zhao,m,85,90C.Zhao,f,95,92D.Qian,f,95,9210.以下结构体类型说明和变量定义中正确的
6、是_。(分数:2.00)A.stuct REC; int n; char c; ;REC t1,t2;B.typedef struct int n; char c; REC;REC t1,t2;C.typedef struct REC; int n=0; char c= “A“ ; t1,t2;D.structint n; char c; REC;REC t1, t2;11.以下叙述中正确的是_。(分数:2.00)A.结构体类型中各个成分的类型必须是一致的B.结构体类型中的成分只能是 C 语言中预先定义的基本数据类型C.在定义结构体类型时,编译程序就为它分配了内存空间D.一个结构体类型可以由多
7、个称为成员(或域)的成分组成12.下面结构体的定义语句中,错误的是_。(分数:2.00)A.struct ord int x;int y;int z; struct ord a;B.struct ord int x;int y;int z; struct ord a;C.struct ord int x;int y;int z; a;D.struct int x;int y;int z; a;13.设有定义: struct comp1ex int real, unreal; data1=1,8,data2; 则以下赋值语句中错误的是_。(分数:2.00)A.data2=(2,6);B.data
8、2=data1;C.data2.real=data1.rea1;D.data2.real=data1.unreal;14.有以下程序: #include stdio.h #include string.h struct A int a; char b10; double c; ; struct A f(struct A t); main( ) struct A a =1001,“ZhangDa“, 1098.0; a =f(a); printf(“%d,%s,%6.1 f/n“,a.a,a.b,a.c); struct A f(struct A t) t.a=1002; strcpy(t.b,
9、“ChangRong“); t.c=1202.0; return t; 程序运行后的输出结果是_。(分数:2.00)A.1002,ZhangDa,1202.0B.1002,ChangRong,1202.0C.1001,ChangRong,1098.0D.1001,ZhangDa,1098.015.有以下程序段: struct st int x; int *y; *pt; int a=1,2, b=3,4; struct st c2=10,a,20,bt; pt=c; 以下选项中表达式的值为 11 的是_。(分数:2.00)A.+pt-xB.pt-xC.*pt-yD.(pt+)-x16.有以下程
10、序: #include stdio.h struct S int n; int a20; void f(int *a, int n) int i; for(i=0;in-1;i+ +) ai+=i; main( ) int i; struct S s=10, 2,3,1,6,8,7,5,4,10,9; f(s. a, s.n); for (i=0; is.n; i+) printf(“%d,“,s.ai); 程序运行后的输出结果是_。(分数:2.00)A.2,3,1,6,8,7,5,4,10,9,B.3,4,2,7,9,8,6,5,11,10,C.2,4,3,9,12,12,11,11,18,
11、9,D.1,2,3,6,8,7,5,4,10,9,17.有以下程序: #include stdio.h #include string.h typedef struct char name9; char sex; float score2; STU; void f(STU A) STU b=“Zhao“, “m“, 85.0, 90.0; int i; strcpy(a.name, b.name); a.sex=b.sex; for (i=0; i2; i+ +) a.scorei=b.scorei; main( ) STU c=“Qian“,“f“, 95.0, 92.0; f(c); pr
12、intf(“%s,%c,%2.0f,%2.0f/n“, c.name, c.sex, c.score0, c.score1); 程序的运行结果是_。(分数:2.00)A.Zhao,m,85,90B.Qian,m,85,90C.Zhao,f,95,92D.Qian,f,95,9218.有以下程序: #include stdio.h #include string.h struct A int a; char b10; double c; ; void f(struct A t); main( ) struct A a=1001,“ZhangDa“,1098.0; f(a); printf(“%d
13、,%s,%6.1f/n“,a.a,a.b,a.c); void f(struct A t) t.a=1002; strcpy(t.b,“ChangRong“); t.c=1202.0; 程序运行后的输出结果是_。(分数:2.00)A.1002,ZhangDa,1202.0B.1002,ChangRong,1202.0C.1001,ChangRong,1098.0D.1001,ZhangDa,1098.019.有以下定义和语句: struct workers int num; char name20; char c; struct int day; int month; int year; s;
14、 ; struct workers w,*pw; pw= 能给 w 中 year 成员赋 1980 的语句是_。(分数:2.00)A.pw-year=1980;B.year=1980;C.s.year=1980;D.* pw.year=1980;20.有以下程序: #include stdio.h struct tt int x; struct tt *y; *p; struct tt a4=20,a+1,15,a+2,30,a+3,17,a; main( ) int i; p=a; for(i=1; i=2; i+ +) printf(“%d,“,p-x); p=p-y; 程序的运行结果是_
15、。(分数:2.00)A.20,30,B.30,17C.15,30,D.20,15,21.有以下程序: #include stdio.h struct S int a, b; data2=10,100,20,200; main( ) struct S p=data1; printf(“%d/n“,+(p.a); 程序运行后的输出结果是_。(分数:2.00)A.10B.11C.20D.2122.有以下程序: #include stdio.h struct ord int x,y; dt2=1,2,3,4; main( ) struct ord *p=dt; printf(“%d,“,+(p-x);
16、 printf(“%d/n“,+(p-y); 程序运行后的输出结果是_。(分数:2.00)A.3,4B.4,tC.2,3D.1,223.有以下结构体说明、变量定义和赋值语句: struct STD char name10; int age; char sex; s5, *ps; ps= 则以下 scanf 函数调用语句有错误的是_。(分数:2.00)A.scanf(“%s“,s0.name);B.scanf(“%d“,C.scanf(“%c“,D.scanf(“%d“,ps-age);24.有以下程序: #include stdio.h typedef struct int b, p; A;
17、void f(A c) /*注意:c 是结构变量名 */ int j; c.b+=1; c.p+=2; main( ) int i; A a=1,2; f(a); printf(“%d,%d/n“,a.b,a.p); 程序运行后的输出结果是_。(分数:2.00)A.2,4B.1,2C.1,4D.2,325.有以下程序: #include stdio.h struct S int n; int a20; ; void f(struct S *p) int i,j,t; for(i=0;ip-n-1;i+ +) for(j=i+1; jP-n; j+ +) if(p-aip-aj) t=P-ai;
18、 p-ai=p-aj; p-aj=t; main( ) int i; struct S s=10,2,3,1,6,8,7,5,4,10,9; f( for (i=0; is.n; i+) printf(“%d,“, s.ai); 程序运行后的输出结果是_。(分数:2.00)A.2,3,1,6,8,7,5,4,10,9,B.10,9,8,7,6,5,4,3,2,1,C.1,2,3,4,5,6,7,8,9,10,D.10,9,8,7,6,1,2,3,4,5,26.有以下程序: #include stdio.h #include string.h typedef struct char name9;
19、 char sex; int score2; STU; STU f(STU a) STU b=“Zhao“,“m“,85,90; int i; strcpy(a.name, b.name); a.sex=b.sex; for (i=0; i2; i+) a.scorei=b.scorei; return a; main( ) STU c=“Qian“,“f“,95,92,d; d=f(c); printf(“%s,%c,%d,%d,“,d.name,d.sex, d.score0, d.score1); printf(“%s,%c,%d,%d/n“, c.name,c.sex, c.score
20、0, c.score1); 程序运行后的输出结果是_。(分数:2.00)A.Zhao,m,85,90, Qian,f,95,92B.Zhao,m,85,90, Zhao,m,85,90C.Qian,f,95,92, Qian,f,95,92D.Qian,f,95,92, Zhao,m,85,9027.为了建立如下图所示的存储结构(即每个节点含两个域,data 是数据域,next 是指向节点的指针域),则在( )处应填入的选项是_。 Struct link char data;_ node; (分数:2.00)A.link next;B.struct link * next;C.link *ne
21、xt;D.struct link next;28.程序中已构成如下图所示的不带头节点的单向链表结构,指针变量 s、p、q 均已正确定义,并用于指向链表节点,指针变量 s 总是作为指针指向链表的第一个节点。 (分数:2.00)A.删除尾节点B.尾节点成为首节点C.删除首节点D.首节点成为尾节点29.假定已建立以下链表结构,且指针 p 和 q 已指向如下图所示的节点: (分数:2.00)A.p-next=q-next; free(q);B.p=q-next; free(q);C.p=q; free(q);D.(*p).next=(*q).next; free(p);30.下列关于 C 语言文件的叙
22、述中正确的是_。(分数:2.00)A.文件由一系列数据依次排列组成,只能构成二进制文件B.文件由结构序列组成,可以构成二进制文件或文本文件C.文件由数据序列组成,可以构成二进制文件或文本文件D.文件由字符序列组成,其类型只能是文本文件31.下面选项中关于“文件指针”概念的叙述正确的是_。(分数:2.00)A.文件指针是程序中用 FILE 定义的指针变量B.文件指针就是文件位置指针,表示当前读/写数据的位置C.文件指针指向文件在计算机中的存储位置D.把文件指针传给 fscanf 函数,就可以向文本文件中写入任意的字符32.以下叙述中正确的是_。(分数:2.00)A.当对文件的读(写)操作完成之后
23、,必须将它关闭,否则可能导致数据丢失B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1 个数据D.C 语言中的文件是流式文件,因此只能顺序存取数据33.有以下程序: #include stdio.h main( ) FILE *fp; int a10=1,2,3,i,n; fp=fopen(“d1.dat“,“w“); for(i=0; i3; i+)fprintf(fp,“%d“,ai); fprintf(fp,“/n“); fclose(fp); fp=fopen(“d1.dat“,“r
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 273 答案 解析 DOC
