欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C语言-273及答案解析.doc

    • 资源ID:1325109       资源大小:100.50KB        全文页数:26页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C语言-273及答案解析.doc

    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

    24、“); fscanf(fp,“%d“, fclose(fp); printf(“%d/n“,n); 程序的运行结果是_。(分数:2.00)A.321B.12300C.1D.12334.设文件指针 fp 已定义,执行语句 fp=fopen(“file“,“w“);后,以下针对文本文件 file 操作叙述的选项中正确的是_。(分数:2.00)A.只能写不能读B.写操作结束后可以从头开始读C.可以在原有内容后追加写D.可以随意读和写35.有以下程序: #include stdio.h main( ) FILE *f; f=fopen(“filea.txt“,“w“); fprintf(f,“abc“

    25、); fclose(f); 若文本文件 filea.txt 中原有内容为:hello,则运行以上程序后,文件 filea.txt 中的内容为_。(分数:2.00)A.abcloB.abcC.helloabcD.abchello36.以下程序依次把从终端输入的字符存放到 f 文件中,用“#”作为结束输入的标志,则在横线处应填入的选项是_。 #include stdio.h main( ) FILE *fp; char ch; fp=fopen(“fname“,“w“); while(ch=getchar()!=“#“)fputc(_); fclose(fp); (分数:2.00)A.ch,“fn

    26、ame“B.fp,chC.chD.ch,fp37.读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中 buffer 代表的是_。(分数:2.00)A.一个内存块的字节数B.一个整型变量,代表待读取的数据的字节数C.一个文件指针,指向待读取的文件D.一个内存块的首地址,代表读入数据存放的地址38.有以下程序: #include stdio.h main( ) FILE *Pf; char *s1=“China“, *s2=“Beijing“; pf=fopen(“abc.dat“,“wb+“); fwrite(s2,7,1,pf); rewind(pf

    27、); /*文件位置指针回到文件开头*/ fwrite(s1,5,1,pf); fclose(pf); 以上程序执行后 abc.dat 文件的内容是_。(分数:2.00)A.ChinaB.ChinangC.ChinaBeijingD.BeijingChina39.有以下程序: #include stdio.h main( ) FILE *fp; int a10=1,2,3,0,0,i; fp=fopen(“d2.dat“,“wb“); fwrite(a,sizeof(int),5,fp); fwite(a,sizeof(int),5,fp); fclose(rp); fp=fopen(“d2.d

    28、at“,“rb“); fread(a,sizeof(int),10, fp); fclose(fp); for(i=0;i10;i+) printf(“%d,“,ai); 程序的运行结果是_。(分数:2.00)A.1,2,3,0,0,0,0,0,0,0,B.1,2,3,1,2,3,0,0,0,0,C.123,0,0,0,0,123,0,0,0,0,D.1,2,3,0,0,1,2,3,0,0,40.有以下程序: #include stdio.h main( ) FILE *fp; int k,n,a6=1,2,3,4,5,6; fp=fopen(“d2.dat“,“w“); fprintf(fp

    29、,“%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“, printf(“%d%d/n“, k, n); fclose(fp); 程序运行后的输出结果是_。(分数:2.00)A.1 2B.1 4C.123 4D.123 45641.有以下程序: #include stdio.h main( ) FILE *fp;char str10; fp=fopen(“myfile.dat“,“w“); fputs(“abc“,fp); fclos

    30、e(fp); fp=fopen(“myfile.dat“,“a+“); fprintf(fp,“%d“,28); rewind(fp); fscanf(fp,“%s“,str); puts(str); fclose(fp); 程序运行后的输出结果是_。(分数:2.00)A.abcB.28cC.abc28D.因类型不一致而出错42.设 fp 为指向某二进制文件的指针,且已读到此文件末尾,则函数 feof(fp)的返回值为_。(分数:2.00)A.0B.“/0“C.非 0 值D.NULL43.以下程序用来统计文件中字符的个数(函数 feof 用以检查文件是否结束,结束时返回非零值): #inclu

    31、de stdio.h main( ) FILE *fp; long num=0; fp=fopen(“fname.dat“,“r“); while( _ )fgetc(fp);num+; printf(“num=%d/n“,num); fclose(fp); 下面选项中,填入横线处不能得到正确结果的是_。(分数:5.00)A.feof(fp)=NULLB.!feof(fp)C.feof(fp)D.feof(fp)=044.若有以下程序: #include stdio.h main( ) FILE *fp; int i, a6=1,2,3,4,5,6,k; fp=fopen(“data.dat“

    32、,“w+“); for(i=0;i6;i+) fseek(fp,0L,0); fprintf(fp,“%d/n“,ai); rewind(fp); fscanf(fp,“%d“, fclose(fp); printf(“%d/n“,k); 则程序的输出结果是_。(分数:5.00)A.123456B.1C.6D.2145.若有以下程序: #include stdio.h main( ) FILE *fp; int i, a6=1,2,3,4,5,6,k; fp=fopen(“data.dat“,“w+b“); for(i=0;i6;i+) fseek(fp,0L,0); fwrite( rewi

    33、nd(fp); fread( fclose(fp); printf(“%d“,k); 则程序的输出结果是_。(分数:5.00)A.6B.1C.123456D.21二级 C 语言-273 答案解析(总分:102.00,做题时间:90 分钟)一、选择题(总题数:45,分数:102.00)1.以下关于 typedef 的叙述错误的是_。(分数:2.00)A.用 typedef 可以增加新类型 B.typedef 只是将已存在的类型用一个新的名字来代表C.用 typedef 可以为各种类型说明一个新名,但不能用来为变量说明一个新名D.用 typedef 为类型说明一个新名,通常可以增加程序的可读性解析

    34、:解析 typedef 并不是增加了新类型,而是用一个新名字替代已存在的类型,不能为变量说明一个新名,使用 typedef 可以增强移植性。所以 A 选项错误。2.若有以下语句: typedef struct S int g; char h; T; 以下叙述中正确的是_。(分数:2.00)A.可用 S 定义结构体变量B.可用 T 定义结构体变量 C.S 是 struct 类型的变量D.T 是 struct S 类型的变量解析:解析 本题考查 typedef 重新声明一种结构体类型。T 为结构体类型名,而不是结构体变量,所以 B 选项正确。3.设有以下语句: typedef struct TT

    35、char c; int a4; CIN; 则下列叙述中正确的是_。(分数:2.00)A.CIN 是 struct TT 类型的变量B.TT 是 struct 类型的变量C.可以用 TT 定义结构体变量D.可以用 CIN 定义结构体变量 解析:解析 本题考查 typedef 重新声明一种结构体类型,其中 CIN 为结构体类型名,而不是结构体变量,所以 D 选项正确。4.若有定义: typedef int* T; T a10; 则 a 的定义与下面哪个语句等价_。(分数:2.00)A.int (*a)10;B.int *a10; C.int *a;D.int a10;解析:解析 本题考查 type

    36、def 的使用方法。typedef 对已存在的类型使用一个新的名字,其中本题中“int *”用 T 来代替,所以定义 T a10;就相当于 int * a10;,因此选项 B 正确。5.若有定义: typedef char T10; T *a; 上述定义中 a 的类型与下面选项中完全相同的是_。(分数:2.00)A.char a10;B.char(*a)10;C.char *a;D.char *a10; 解析:解析 本题考查 typedef 的使用方法。typedef 并不创建新的类型,只是对已存在的类型使用一个新名字,在出现新名字的地方可以直接替换为原先的类型来处理。因此选项 D 正确。6.

    37、以下结构体说明和变量定义中,正确的是_。(分数: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;abc x,y;解析:解析 本题考查 typedef 的使用方法。typedef 对已存在的类型使用一个新的名字,选项 A 中的“ABC”为新的类型别名,定义正确。7.以下叙述中正确的是_。(分数:2.00)A.使用

    38、typedef 说明新类型名时,其格式是:typedef 新类型名 原类型名;B.在程序中,允许用 typedef 来说明一种新的类型名 C.使用 typedef 说明新类型名时,后面不能加分号D.在使用 tyoedef 改变原类型的名称后,只能使用新的类型名解析:解析 本题考查 typedef 的使用方法。typedef 对已存在的类型使用一个新的名字,选项 A 中新类型名应该在原类型名之后,C 选项中后面要加分号,D 选项中可以使用原类型名。8.以下叙述中正确的是_。(分数:2.00)A.使用 typedef 定义新类型名后,新类型名与原类型名实际上是等价的 B.结构体类型中的各个成分均不

    39、能是数组或指针C.结构体类型的变量,不能在声明结构体类型时一起定义D.元素为结构体类型的数组,只能在声明过结构体类型之后单独进行定义解析:解析 本题考查 typedef 的使用方法。typedef 对已存在的类型使用一个新的名字,结构体类型中的成分可以是数组和指针,所以 B 选项错误;结构体类型的变量可以在声明结构体的时候一起定义,所以 C 选项错误;D 选项中二者可以一起定义。9.有以下程序: main( ) struct STU char name9; char sex; double score2; ; struct STU a=“Zhao“,“m“,85.0, 90.0, b=“Qia

    40、n“, “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,90 C.Zhao,f,95,92D.Qian,f,95,92解析:解析 本题考查结构体初始化操作。本题中可以直接将结构体 a 赋值给 b,所以输出的结果和 a一样,故选项 B 正确。10.以下结构体类型说明和变量定义中正确的是_。(分数:2.00)A.stuct REC; int n; char c; ;REC t1,t

    41、2;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;解析:解析 本题考查结构体的相关知识。选项 A 中的“struct REC”后面不能有分号,C 选项中的“typedef struct REC”的后面也不能有分号,选项 D 中的 REC 已经是结构体变量,不能当做结构体类型来使用。11.以下叙述中正确的是_。(分数:2.00)A.结构体类型中各个成分的类型必须是一致的B.

    42、结构体类型中的成分只能是 C 语言中预先定义的基本数据类型C.在定义结构体类型时,编译程序就为它分配了内存空间D.一个结构体类型可以由多个称为成员(或域)的成分组成 解析:解析 本题考查结构体类型。结构体类型中的成分可以是结构体,所以 B 选项错误;定义结构体时编译程序并不会给它分配内存空间,所以 C 选项错误;结构体中各个成分的类型可以是不一样的,所以A 选项错误。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

    43、ord a;C.struct ord int x;int y;int z; a;D.struct int x;int y;int z; a;解析:解析 A 选项错误,不能在定义结构体的同时,叉用结构体类型名定义变量。B、C、D 选项是定义结构体类型变量的三种形式:B 选项是先定义结构体类型,再定义结构体类型变量。C 选项是直接定义结构体类型变量。D 选项是在定义结构体类型的同时定义结构体类型变量。13.设有定义: struct comp1ex int real, unreal; data1=1,8,data2; 则以下赋值语句中错误的是_。(分数:2.00)A.data2=(2,6); B.d

    44、ata2=data1;C.data2.real=data1.rea1;D.data2.real=data1.unreal;解析:解析 A 选项中可以在声明变量的同时为 data2j 赋值,但是“data2=(2,6);”应写作 data2=2,6。所以选择 A 选项。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

    45、(“%d,%s,%6.1 f/n“,a.a,a.b,a.c); struct A f(struct A t) t.a=1002; strcpy(t.b,“ChangRong“); t.c=1202.0; return t; 程序运行后的输出结果是_。(分数:2.00)A.1002,ZhangDa,1202.0B.1002,ChangRong,1202.0 C.1001,ChangRong,1098.0D.1001,ZhangDa,1098.0解析:解析 本题考查结构体变量的引用以及作为函数参数的用法。题目虽然看似复杂,其实比较容易,f 函数的参数是结构体变量,然后对参数重新赋值并返回,所以该题

    46、目的答案为 B 选项。15.有以下程序段: 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-x B.pt-xC.*pt-yD.(pt+)-x解析:解析 本题考查结构体数组初始化以及结构体变量的引用方法。题目中定义了一个结构体数组 c并初始化,指针 pt 指向 c 的第一个元素,那么 pt-x 为 10,+pt-x 为 11,* pt-y 为 1,(pt+)-x为 20,所以答案为 A。16.有以下程序: #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); 程序运行后的输出结果是_。


    注意事项

    本文(【计算机类职业资格】二级C语言-273及答案解析.doc)为本站会员(eastlab115)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开