结构体与联合体习题含答案_第1页
结构体与联合体习题含答案_第2页
结构体与联合体习题含答案_第3页
结构体与联合体习题含答案_第4页
结构体与联合体习题含答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2013年结构体与联合体习题选择题1、若程序中有以下的说明和定义:structabcintx;chary;structabcsi,s2;则会发生的情况是花括号后少了分号。B)程序将顺序编译、连接、执行D)能顺序通过编译、但连接出错A)编译时错C)能顺序通过编译、连接、但不能执行2、有以下程序段structstintx;int*y;*pt;inta=l,2;b=3,4;structstc2=10,a,20,b;Pt=c;以下选项中表达式的值为11的是A)*pt->yB)pt->xD) (P t+)->xD) stu3. age3、有以下说明和定义语句O-Pt->xstru

2、ctstudentintage;charnum;;structstudentstu3=20,“200401”,21,“200402”,19,“200403”;structstudent*p=stu;以下选项中引用结构体变量成员的表达式错误的是。A)(P-+)->numB)p->numC)(*p).num4、设有如下枚举类型定义enurnIanguageBasic=3,Assembly=6,Ada=100,COBOL,Fortran);枚举革Fortran的值为A)4B)75、以下叙述中错误的是。A)可以通过typedef增加新的类型°B)可以用typedef将已存在的类型

3、用一个新的名字来彳弋表C)用typedef定义新的类型名后,原有类型名仍有效D)用typedef可以为各种类型起别名,但不能为变量起别名6、有以下程序段typedefstructNODEintnum;structNODE*next;)OLD;以下叙述中正确的是A)以上的说明形式非法B)NODE是一个结构体类型C)OLD是一个结构体类型D)OLD是一个结构体变量7、以下选项中不能正确把cl定义成结构体变量的是1. typedefstructintred;intgreen;intblue;COLOR;COLORcl;2. structcolorclintred;intgreen;intblue;s

4、tructcolorintred;intgreen;intblue;3. cl;struct4. intred;intgreen;intblue;cl;A) 1B)2C)38、设有以下语句typedefstructSintg;charh;T;则F面叙述中正确的是A)可用S定义结构体变量B)可以用T定义结构体变量Os是struct类型的变量D)T是structS类型的变量9、设有如下说明typedefstructSTlonga;intb;charc2;EW;则卜面叙述中止确的是oA)以上的说明形式非法B) ST是一个结构体类型D)40NEW是一个结构体类型D)NEW是一个结构体变量10、以下对结

5、构体类型变量td的定义中,错误的是A)typedefstructaaintn;floatm;AA;AAtd;C)structintn;floatm;aa;structaatd;”、根据下面的定义,能打印出字母M的语句是Ostructpersoncharname9;intage;B)structaaintn;floatm;);structaatd;D)structintn;floatm:structpersonclass10=/zJohn”,17,"Paul",19,"Xary",18,"Adam”,16;A)printf(与cn”,class3

6、name);B)printf("%cn",Tl);C)printf("猊n",Ll);D)printf("%cn”,0);12、设有以下语句:structstintn;structst*next;staticstructsta3=5,7,&a2,9,'0',*p;p=&a0;则表达式的值是6。A)P+->nB)p->n*C)(*P)n+D)+p->n13、下面程序的输出结果为struct st int X;int *y;这里是设

7、了一个结构体指针变量*p。这个结构体中又嵌套了一个指针变量*y 0然后再设了一个普通数数组dt4o然后下一步是给结构体 定义的一个变量数组:de 4,并且分别给结构体内的成员 直接赋值:里面分别赋了四次。 *P;intdt4=10,20,30,40;structstaa4J=50,&dt0,60,&dtI1,70,&dt2,80,&dt3;main()/运里面是给结构体里的x和*y直接赋值。因为是rdt所以赋了四次。第一次:x对应50;P二aa;对应的是地址deW也就是1。.然后这样一次下去。printf(dn,+p->xprintf(dn,(+p)-&g

8、t;x);printf(dn,+(*P->y);A)10B)50051D)60206060702021213114、若已建立下面的链表结构,指针入p、S分别指向图中所示的结点,则不能将S所指的结点插到链表末尾的语句组是datanextheadNULLA) s->next=NULL;p=p->next;p->next=s;B) p=p->next;s->next=p->next;p->next=s;C) p=p->next;s->next=p;p->next=s;D) p=(*p).next;(*s).next=(*p).next

9、;(*p).next=s;15、下面程序的输出是main0enumteammy,your=4,his,her=his+10;printf(z/%d%d%d%dn/z,my,your,his,her);)D) 1 4 5 15D) 6A)0123B)0401000451516、下面程序的输出是main0structcmpixintx;inty;cnum2=l,3,2,7;prinnum0.y/cnum0.x*cnuml.x);A)0B)1C)317、设有如下定义:structskinta;floatb;data,*p;若有p=&data;,则对data中的a域的正确引用是A) (*p)

10、. data. aB) (* P).aC) p->data.aD) p. data, a18、有以下程序:*#i nclude<stdio. h> union pw int i; charmain ()ch2; a; a. ch0=13;程序的输出结果是 *h=。;prin tf («%dn a. i);. ,c0 (注意:ch0在低字节,B) 140 208ch在高字节。)D) 20919、已知字符0的ASCH码为十六进制的30,下面程序的输出是main 0 union un sig ned char c;un sig ned int i4;乙z. i 01=0x

11、39;z. il=0x36;prin tf (飞cz. c);A) 6B) 9D) 320、字符十的ASCII码的十进制数为48,且数组的第。个元素在低位,则以下程序的输出结果是#include<stdio.h>main()unioninti2;longk;charc4;r,*s=&r;s->i0=0x39;s->il=0x38;printf(z/%crr,s->c0).jA)39B)9C)38D)8填空题1、以下函数creat用来建立一个带头结点的单向链表,链新产生的结点总是插在链表的末尾。单向表的头指针作为函数值返回.请填空:#include<s

12、tdio.h>structlistchardata;structlist*next;structlist*creat0structlist*h,*p,*q;charch;h=_tructlist*)_malloc(sizeof(structlist);P=q=h;ch=getchar();while(ch!=?)p=_structlist*)_malloc(sizeof(structlist);p->data=ch;p->next=p;q=p;ch=getchar0;)p->next=,0,;return(h):)2、有以下说明定义和语句,可用a.day引用结构体成员d

13、ay,请写出引用结构体成员a.day的其'匕两种形式(*b)day、b->daystructintday;charmouth;intyear;a,*b;b=&a;3、现有如图所示的存储结构,每个结点含两个域,data是指向字符串的指针域,next是指向结点的指针域。请填空完成此结构的类型定义和说明。head40structlink; *head;char*data;_structlink*next4、若有以下说明和定义语句,则变量w在内存中所占的字节数是unionaachar c6;);struct st union aa v; float w5;floatx,y;stu

14、dcharnum6;s4;ave;a,*p;6、以下程序用来输出结构体变量ex所占存储单元的字节数,请填空。structst(charname20;doublescore;main()structstex;printf("exsize:n%d,sizeof_ex).)doubleave;w;/325、设有以下结构类型说明和变量定义,则变量a在内存所占字节数是2_。Structdouble7、以下程序段用于构成一个简单的单向链表,请填空。structSTRUintx,y;floatrate;.structSTRU_*p;a,b;a. x=0;a.y=0;a.rate=0;a.p=&am

15、p;b;b. x=0;b.y=0;b.rate=0;b.p=XULL;8、若有如下结构体说明:structSTRUinta,b;charc;doubled:structSTRUpl,p2;);请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型_structSTRUt20;9、若以下定义和语句,则sizeof(a)的值是12上而sizeof(b)的值是_4structintday;charmouth;intyear;a,*b;b=&a;10,变量root有如图所示有存储结构,其中SP是指向字符串的指针域,next是指向该结构的指针域,data用以存放整型数请填空,完成此结构的类

16、型说明和变量root的定义spnextdataroot I I I I40structlistchar*sp;structlist*nextintdataroot;11、设有以下定义structssintinfo;structss*link;x,y,z;且已建立如下图所示链表结构:II-I7i-I7|xyz请写出删除结点y的赋值语句一x.link=z;,12、以下程序的运行结果是2002Shangxian#inelude<string.h>typedefstructstudentcharname10;longsno;floatscore;STU;main()STUr/,cnu/cu,2002,90,c=Anhua,2003,95?,d,*p=&d;a=(zhangsan,2001,95),b=ShangxianKd=a;d=b;if(stremp(,)>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论